Merge pull request #800 from shevu/develop

Update for registers size and description
pull/804/head
Fredrik Öhrström 2023-01-14 10:06:08 +01:00 zatwierdzone przez GitHub
commit 28f1a34c08
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
1 zmienionych plików z 65 dodań i 18 usunięć

Wyświetl plik

@ -76,6 +76,11 @@ namespace
// The first 8 bytes are error flags and a date time.
// E.g. 0F005B5996000000 therefore we skip the first 8 bytes.
//
// 0F - Spcial function / packet
// next 4B : Date - In default frame
// next 3B : Faults - In default frame example: please see description of 0x01 register
size_t i=8;
while (i < content.size())
{
@ -128,34 +133,76 @@ namespace
{
// case 0x0f: return 3; // Payload often starts with 0x0f,
// which also means dif = manufacturer data follows.
case 0x10: return 4; // Total volume
// After 0x0F there is always:
// next 4B : Date - In default frame
// next 3B : Faults - In default frame
case 0x00: return 4; // Date
case 0x01: return 3; // Faults - In default frame f.ex. 0F 09 4D A1 97 18 02 00 -> 18 02 00 -> 00 02 18 -> 0x0218
case 0xA1:
case 0x10: return 4; // Total volume - In default frame
case 0x11: return 2; // Flow
case 0x40: return 2;
case 0x41: return 2;
case 0x42: return 4;
case 0x43: return 2;
case 0x40: return 6; // Detectors
case 0x41: return 2; // Voltage
case 0x42: return 4; // Energy
case 0x43: return 2; // Life days - In default frame f.ex. 43 6E 0A -> 2670 days from first run
case 0x71: return 9;
case 0x73: return 1+4*4; // Historical data
case 0x75: return 1+6*4; // Historical data
case 0x7B: return 1+12*4; // Historical data
case 0x80: return 10;
case 0x81: return 10;
case 0x82: return 10;
case 0x83: return 10;
case 0x84: return 10;
case 0x86: return 10;
case 0x87: return 10;
case 0x80:
case 0x81:
case 0x82:
case 0x83:
case 0x84:
case 0x86:
case 0x87: return 10; // Events
case 0x85:
case 0x88:
case 0x8F: return 11; // Events
case 0x8A: return 9; // Events
case 0x8B:
case 0x8C: return 6; // Events
case 0x8E: return 7; // Events
case 0xA0: return 4;
case 0xA2: return 1;
case 0xA3: return 7;
case 0xA4: return 4;
case 0xA5:
case 0xA9:
case 0xAF: return 1;
case 0xA6: return 3;
case 0xA7:
case 0xA8:
case 0xAA:
case 0xAB:
case 0xAC:
case 0xAD: return 2;
case 0xB0: return 3;
case 0xB1: return 3;
case 0xB2: return 3;
case 0xB3: return 3;
case 0xB4: return 3;
case 0xB5: return 3;
case 0xB0: return 5;
case 0xB1: return 8;
case 0xB2: return 16;
case 0xB3: return 8;
case 0xB4: return 2;
case 0xB5: return 16;
// Unknown
case 0xB6: return 3;
case 0xB7: return 3;
case 0xB8: return 3;