publishing results

This commit is contained in:
Wolfgang Hottgenroth 2020-11-18 18:47:52 +01:00
parent f584c7b543
commit 8e0d072571
Signed by: wn
GPG Key ID: 6C1E5E531E0D5D7F
2 changed files with 26 additions and 13 deletions

View File

@ -7,8 +7,8 @@
#include <stdbool.h> #include <stdbool.h>
typedef struct { typedef struct {
char name[32]; char *name;
char unit[16]; char *unit;
int8_t exponent; int8_t exponent;
bool found; bool found;
} parsedVIB_t; } parsedVIB_t;

View File

@ -7,8 +7,21 @@
#include <stdbool.h> #include <stdbool.h>
static const char NAME_VOLTAGE[] = "Voltage";
static const char NAME_CURRENT[] = "Current";
static const char NAME_POWER[] = "Power";
static const char NAME_ENERGY[] = "Energy";
static const char NAME_UNKNOWN[] = "unknown";
static const char UNIT_VOLT[] = "V";
static const char UNIT_AMPERE[] = "A";
static const char UNIT_WATT[] = "W";
static const char UNIT_WATTHOUR[] = "Wh";
static const char UNIT_UNKNOWN[] = "?";
static parsedVIB_t parseVIB_FB(mbus_value_information_block vib) { static parsedVIB_t parseVIB_FB(mbus_value_information_block vib) {
parsedVIB_t parsedVIB = { .name = "FB unknown", .unit = "?", .exponent = 1, .found = false }; parsedVIB_t parsedVIB = { .name = NAME_UNKNOWN, .unit = UNIT_UNKNOWN, .exponent = 1, .found = false };
coloredMsg(LOG_RED, true, "mpe pvd_fb unknown vife 0x%02x", vib.vife[0]); coloredMsg(LOG_RED, true, "mpe pvd_fb unknown vife 0x%02x", vib.vife[0]);
@ -16,16 +29,16 @@ static parsedVIB_t parseVIB_FB(mbus_value_information_block vib) {
} }
static parsedVIB_t parseVIB_FD(mbus_value_information_block vib) { static parsedVIB_t parseVIB_FD(mbus_value_information_block vib) {
parsedVIB_t parsedVIB = { .name = "FD unknown", .unit = "?", .exponent = 1, .found = false }; parsedVIB_t parsedVIB = { .name = NAME_UNKNOWN, .unit = UNIT_UNKNOWN, .exponent = 1, .found = false };
if ((vib.vife[0] & 0b01110000) == 0b01000000) { if ((vib.vife[0] & 0b01110000) == 0b01000000) {
strcpy(parsedVIB.name, "Voltage"); parsedVIB.name = NAME_VOLTAGE;
strcpy(parsedVIB.unit, "V"); parsedVIB.unit = UNIT_VOLT;
parsedVIB.exponent = (vib.vife[0] & 0b01111) - 9; parsedVIB.exponent = (vib.vife[0] & 0b01111) - 9;
parsedVIB.found = true; parsedVIB.found = true;
} else if ((vib.vife[0] & 0b01110000) == 0b01010000) { } else if ((vib.vife[0] & 0b01110000) == 0b01010000) {
strcpy(parsedVIB.name, "Current"); parsedVIB.name = NAME_CURRENT;
strcpy(parsedVIB.unit, "A"); parsedVIB.unit = UNIT_AMPERE;
parsedVIB.exponent = (vib.vife[0] & 0b01111) - 12; parsedVIB.exponent = (vib.vife[0] & 0b01111) - 12;
parsedVIB.found = true; parsedVIB.found = true;
} else { } else {
@ -36,16 +49,16 @@ static parsedVIB_t parseVIB_FD(mbus_value_information_block vib) {
} }
static parsedVIB_t parseVIB_default(mbus_value_information_block vib) { static parsedVIB_t parseVIB_default(mbus_value_information_block vib) {
parsedVIB_t parsedVIB = { .name = "default unknown", .unit = "?", .exponent = 1, .found = false }; parsedVIB_t parsedVIB = { .name = NAME_UNKNOWN, .unit = UNIT_UNKNOWN, .exponent = 1, .found = false };
if ((vib.vif & 0b01111000) == 0b00000000) { if ((vib.vif & 0b01111000) == 0b00000000) {
strcpy(parsedVIB.name, "Energy"); parsedVIB.name = NAME_ENERGY;
strcpy(parsedVIB.unit, "Wh"); parsedVIB.unit = UNIT_WATTHOUR;
parsedVIB.exponent = (vib.vif & 0b0111) - 3; parsedVIB.exponent = (vib.vif & 0b0111) - 3;
parsedVIB.found = true; parsedVIB.found = true;
} else if ((vib.vif & 0b01111000) == 0b00101000) { } else if ((vib.vif & 0b01111000) == 0b00101000) {
strcpy(parsedVIB.name, "Power"); parsedVIB.name = NAME_POWER;
strcpy(parsedVIB.unit, "W"); parsedVIB.unit = UNIT_WATT;
parsedVIB.exponent = (vib.vif & 0b0111) - 3; parsedVIB.exponent = (vib.vif & 0b0111) - 3;
parsedVIB.found = true; parsedVIB.found = true;
} else { } else {