mbusgateway3variant/cube/User/Src/mbusParserExt.c
2020-11-17 18:20:09 +01:00

45 lines
1.0 KiB
C

#include <mbus/mbus-protocol.h>
#include <mbusParserExt.h>
#include <string.h>
static parsedVIB_t parseVIB_FB(mbus_value_information_block vib) {
parsedVIB_t parsedVIB = { .name = "FB unknown", .unit = "?", .exponent = 1 };
return parsedVIB;
}
static parsedVIB_t parseVIB_FD(mbus_value_information_block vib) {
parsedVIB_t parsedVIB = { .name = "FD unknown", .unit = "?", .exponent = 1 };
return parsedVIB;
}
static parsedVIB_t parseVIB_default(mbus_value_information_block vib) {
parsedVIB_t parsedVIB = { .name = "default unknown", .unit = "?", .exponent = 1 };
if ((vib.vif & 0b00000000) == 0b00000000) {
strcpy(parsedVIB.name, "Energy");
strcpy(parsedVIB.unit, "Wh");
}
return parsedVIB;
}
parsedVIB_t parseVIB(mbus_value_information_block vib) {
parsedVIB_t parsedVIB;
if (vib.vif == 0xfb) {
parsedVIB = parseVIB_FB(vib);
} else if (vib.vif == 0xfd) {
parsedVIB = parseVIB_FD(vib);
} else {
parsedVIB = parseVIB_default(vib);
}
return parsedVIB;
}