From 5e4d9f3d4029b0df8ba48adea69fb4249f7ed582 Mon Sep 17 00:00:00 2001 From: john30 Date: Sat, 30 Jan 2016 17:58:48 +0100 Subject: [PATCH] added HCD:1, HCD:2, HCD:3, corrected max values for BCD+HCDdiff --- src/lib/ebus/data.cpp | 13 ++++++++----- src/lib/ebus/data.h | 4 ++-- src/lib/ebus/test/test_data.cpp | 31 +++++++++++++++++++++++++++++++ 3 files changed, 41 insertions(+), 7 deletions(-) diff --git a/src/lib/ebus/data.cpp b/src/lib/ebus/data.cpp index 3eb736da..1d49ee9e 100644 --- a/src/lib/ebus/data.cpp +++ b/src/lib/ebus/data.cpp @@ -56,11 +56,14 @@ static const dataType_t dataTypes[] = { {"TTH", 8, bt_tim, 0, 0, 5, 5, 30}, // truncated time (only multiple of 30 minutes), 00:30 - 24:00 (minutes div 30 + hour * 2 as integer) {"BDY", 8, bt_num, DAY|LST, 0x07, 0, 6, 1}, // weekday, "Mon" - "Sun" (0x00 - 0x06) [eBUS type] {"HDY", 8, bt_num, DAY|LST, 0x00, 1, 7, 1}, // weekday, "Mon" - "Sun" (0x01 - 0x07) [Vaillant type] - {"BCD", 8, bt_num, BCD|LST, 0xff, 0, 0x99, 1}, // unsigned decimal in BCD, 0 - 99 - {"BCD", 16, bt_num, BCD|LST, 0xffff, 0, 0x9999, 1}, // unsigned decimal in BCD, 0 - 9999 - {"BCD", 24, bt_num, BCD|LST, 0xffffff, 0, 0x999999, 1}, // unsigned decimal in BCD, 0 - 999999 - {"BCD", 32, bt_num, BCD|LST, 0xffffffff, 0, 0x99999999, 1}, // unsigned decimal in BCD, 0 - 99999999 - {"HCD", 32, bt_num, HCD|BCD|REQ, 0, 0, 0x63636363, 1}, // unsigned decimal in HCD, 0 - 99999999 + {"BCD", 8, bt_num, BCD|LST, 0xff, 0, 99, 1}, // unsigned decimal in BCD, 0 - 99 + {"BCD", 16, bt_num, BCD|LST, 0xffff, 0, 9999, 1}, // unsigned decimal in BCD, 0 - 9999 + {"BCD", 24, bt_num, BCD|LST, 0xffffff, 0, 999999, 1}, // unsigned decimal in BCD, 0 - 999999 + {"BCD", 32, bt_num, BCD|LST, 0xffffffff, 0, 99999999, 1}, // unsigned decimal in BCD, 0 - 99999999 + {"HCD", 32, bt_num, HCD|BCD|REQ, 0, 0, 99999999, 1}, // unsigned decimal in HCD, 0 - 99999999 + {"HCD", 8, bt_num, HCD|BCD|REQ, 0, 0, 99, 1}, // unsigned decimal in HCD, 0 - 99 + {"HCD", 16, bt_num, HCD|BCD|REQ, 0, 0, 9999, 1}, // unsigned decimal in HCD, 0 - 9999 + {"HCD", 24, bt_num, HCD|BCD|REQ, 0, 0, 999999, 1}, // unsigned decimal in HCD, 0 - 999999 pinDataType, uchDataType, {"SCH", 8, bt_num, SIG, 0x80, 0x81, 0x7f, 1}, // signed integer, -127 - +127 diff --git a/src/lib/ebus/data.h b/src/lib/ebus/data.h index 047a5809..24d8ad9b 100644 --- a/src/lib/ebus/data.h +++ b/src/lib/ebus/data.h @@ -115,8 +115,8 @@ typedef struct dataType_s { const BaseType type; //!< base data type const unsigned short flags; //!< flags (like #BCD) const unsigned int replacement; //!< replacement value (fill-up value for #bt_str / #bt_hexstr, no replacement if equal to #minValue for #bt_num) - const unsigned int minValue; //!< minimum binary value (ignored for @a StringDataField) - const unsigned int maxValue; //!< maximum binary value (ignored for @a StringDataField) + const unsigned int minValue; //!< minimum raw value (ignored for @a StringDataField) + const unsigned int maxValue; //!< maximum raw value (ignored for @a StringDataField) const short divisorOrFirstBit; //!< #bt_num: divisor (negative for reciprocal) or offset to first bit (if (#bitCount%8)!=0) } dataType_t; diff --git a/src/lib/ebus/test/test_data.cpp b/src/lib/ebus/test/test_data.cpp index 57f1ebdc..59725060 100644 --- a/src/lib/ebus/test/test_data.cpp +++ b/src/lib/ebus/test/test_data.cpp @@ -135,26 +135,57 @@ int main() {"x,,bcd", "26", "10feffff0126", "00", ""}, {"x,,bcd", "0", "10feffff0100", "00", ""}, {"x,,bcd", "99", "10feffff0199", "00", ""}, + {"x,,bcd", "100", "10feffff0199", "00", "Rw"}, {"x,,bcd", "-", "10feffff01ff", "00", ""}, {"x,,bcd", "", "10feffff019a", "00", "rw"}, + {"x,,bcd:1","26", "10feffff0126", "00", ""}, + {"x,,bcd:1","0", "10feffff0100", "00", ""}, + {"x,,bcd:1","99", "10feffff0199", "00", ""}, + {"x,,bcd:1","100", "10feffff0199", "00", "Rw"}, + {"x,,bcd:1","-", "10feffff01ff", "00", ""}, + {"x,,bcd:1","", "10feffff019a", "00", "rw"}, {"x,,bcd:2","126", "10feffff022601", "00", ""}, {"x,,bcd:2","0", "10feffff020000", "00", ""}, {"x,,bcd:2","9999", "10feffff029999", "00", ""}, + {"x,,bcd:2","10000","10feffff029999", "00", "Rw"}, {"x,,bcd:2","-", "10feffff02ffff", "00", ""}, {"x,,bcd:2","", "10feffff029a00", "00", "rw"}, {"x,,bcd:3","12346", "10feffff03462301", "00", ""}, {"x,,bcd:3","0", "10feffff03000000", "00", ""}, {"x,,bcd:3","999999", "10feffff03999999", "00", ""}, + {"x,,bcd:3","1000000","10feffff03999999", "00", "Rw"}, {"x,,bcd:3","-", "10feffff03ffffff", "00", ""}, {"x,,bcd:3","", "10feffff03009a00", "00", "rw"}, {"x,,bcd:4","1234567", "10feffff0467452301", "00", ""}, {"x,,bcd:4","0", "10feffff0400000000", "00", ""}, {"x,,bcd:4","99999999", "10feffff0499999999", "00", ""}, + {"x,,bcd:4","100000000","10feffff0499999999", "00", "Rw"}, {"x,,bcd:4","-", "10feffff04ffffffff", "00", ""}, {"x,,bcd:4","", "10feffff0400009a00", "00", "rw"}, + {"x,,hcd:1", "26", "10feffff011a", "00", ""}, + {"x,,hcd:1", "0", "10feffff0100", "00", ""}, + {"x,,hcd:1", "99", "10feffff0163", "00", ""}, + {"x,,hcd:1", "100", "10feffff0163", "00", "Rw"}, + {"x,,hcd:1", "", "10feffff019a", "00", "rw"}, + {"x,,hcd:2", "126", "10feffff021a01", "00", ""}, + {"x,,hcd:2", "0", "10feffff020000", "00", ""}, + {"x,,hcd:2", "9999", "10feffff026363", "00", ""}, + {"x,,hcd:2", "10000", "10feffff026363", "00", "Rw"}, + {"x,,hcd:2", "", "10feffff029a00", "00", "rw"}, + {"x,,hcd:3","12346", "10feffff032e1701", "00", ""}, + {"x,,hcd:3","0", "10feffff03000000", "00", ""}, + {"x,,hcd:3","999999", "10feffff03636363", "00", ""}, + {"x,,hcd:3","1000000", "10feffff03636363", "00", "Rw"}, + {"x,,hcd:3","", "10feffff03009a00", "00", "rw"}, + {"x,,hcd:4","1234567", "10feffff04432d1701", "00", ""}, + {"x,,hcd:4","0", "10feffff0400000000", "00", ""}, + {"x,,hcd:4","99999999", "10feffff0463636363", "00", ""}, + {"x,,hcd:4","100000000","10feffff0463636363", "00", "Rw"}, + {"x,,hcd","", "10feffff0400006400", "00", "rw"}, {"x,,hcd","1234567", "10feffff04432d1701", "00", ""}, {"x,,hcd","0", "10feffff0400000000", "00", ""}, {"x,,hcd","99999999", "10feffff0463636363", "00", ""}, + {"x,,hcd","100000000", "10feffff0463636363", "00", "Rw"}, {"x,,hcd","", "10feffff0400006400", "00", "rw"}, {"x,,str:16", "0123456789ABCDEF", "10feffff1130313233343536373839414243444546", "00", ""}, {"x,,uch:17", "", "10feffff00", "00", "c"},