add extended mbus vib parser

This commit is contained in:
Wolfgang Hottgenroth 2020-11-17 18:13:34 +01:00
parent cd249e5ad8
commit e1a77d4fbf
Signed by: wn
GPG Key ID: 6C1E5E531E0D5D7F
2 changed files with 55 additions and 0 deletions

View File

@ -0,0 +1,17 @@
#ifndef _MBUSPARSEREXT_H_
#define _MBUSPARSEREXT_H_
#include <mbus/mbus-protocol.h>
typedef struct {
char name[32];
char unit[16];
uint8_t exponent;
} parsedVIB_t;
parsedVIB_t parseVIB(mbus_value_information_block vib);
#endif //_MBUSPARSEREXT_H_

View File

@ -0,0 +1,38 @@
#include <mbus/mbus-protocol.h>
#include <mbusParserExt.h>
static parsedVIB_t parseVIB_FB(mbus_value_information_block vib) {
parsedVIB_t parsedVIB = { .name = "FB", .unit = "?", .exponent = 1 };
return parsedVIB;
}
static parsedVIB_t parseVIB_FD(mbus_value_information_block vib) {
parsedVIB_t parsedVIB = { .name = "FD", .unit = "?", .exponent = 1 };
return parsedVIB;
}
static parsedVIB_t parseVIB_default(mbus_value_information_block vib) {
parsedVIB_t parsedVIB = { .name = "default", .unit = "?", .exponent = 1 };
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;
}