first use of libmbus

This commit is contained in:
2020-11-03 14:31:59 +01:00
parent 43fe49f90d
commit b1e2277ef5
3 changed files with 105 additions and 16 deletions

View File

@ -24,8 +24,10 @@ void my_errorHandler() {
show(LED_RED, ON);
}
void helloMeterbus(void *handle) {
static t_mbusDevice device = {
static uint8_t numOfDevices = 8;
static t_mbusDevice devices[] = {
{
.deviceName = "Total Power",
.address = 80,
.consideredField = {
@ -34,15 +36,93 @@ void helloMeterbus(void *handle) {
{ .label = "", .index = 0 },
{ .label = "", .index = 0 }
}
};
},
{
.deviceName = "Computer Power",
.address = 85,
.consideredField = {
{ .label = "energy", .index = 0 },
{ .label = "power", .index = 4 },
{ .label = "voltage", .index = 2 },
{ .label = "current", .index = 3 }
}
},
{
.deviceName = "Dryer Power",
.address = 81,
.consideredField = {
{ .label = "energy", .index = 0 },
{ .label = "power", .index = 4 },
{ .label = "voltage", .index = 2 },
{ .label = "current", .index = 3 }
}
},
{
.deviceName = "Laundry Power",
.address = 82,
.consideredField = {
{ .label = "energy", .index = 0 },
{ .label = "power", .index = 4 },
{ .label = "voltage", .index = 2 },
{ .label = "current", .index = 3 }
}
},
{
.deviceName = "Dishwasher Power",
.address = 83,
.consideredField = {
{ .label = "energy", .index = 0 },
{ .label = "power", .index = 4 },
{ .label = "voltage", .index = 2 },
{ .label = "current", .index = 3 }
}
},
{
.deviceName = "Light Power",
.address = 84,
.consideredField = {
{ .label = "energy", .index = 0 },
{ .label = "power", .index = 4 },
{ .label = "voltage", .index = 2 },
{ .label = "current", .index = 3 }
}
},
{
.deviceName = "Freezer Power",
.address = 86,
.consideredField = {
{ .label = "energy", .index = 0 },
{ .label = "power", .index = 4 },
{ .label = "voltage", .index = 2 },
{ .label = "current", .index = 3 }
}
},
{
.deviceName = "Fridge Power",
.address = 87,
.consideredField = {
{ .label = "energy", .index = 0 },
{ .label = "power", .index = 4 },
{ .label = "voltage", .index = 2 },
{ .label = "current", .index = 3 }
}
}
};
void triggerMBusRequest(void *handle) {
static uint8_t deviceIndex = 0;
static uint32_t cnt = 0;
logMsg("*** NEW REQUEST %d ***", cnt);
cnt++;
mbusCommRequest(&device);
// static char msg[] = "Hello";
// HAL_UART_Transmit_IT(&mbusUart, &msg, strlen(msg));
logMsg("");
logMsg("*** NEW REQUEST %s %d %d ***", devices[deviceIndex].deviceName, deviceIndex, cnt);
mbusCommRequest(&(devices[deviceIndex]));
cnt++;
deviceIndex++;
if (deviceIndex >= numOfDevices) {
deviceIndex = 0;
}
}
@ -53,7 +133,7 @@ void my_setup_2() {
frontendInit();
frontendSetThreshold(240);
schAdd(helloMeterbus, NULL, 0, 10000);
schAdd(triggerMBusRequest, NULL, 0, 10000);
}
void my_loop() {