#pragma once #include "HM_Abstract.h" class MI_2CH : public HM_Abstract { public: MI_2CH(uint64_t serial); static bool isValidSerial(uint64_t serial); String typeName(); const byteAssign_t* getByteAssignment(); const uint8_t getAssignmentCount(); private: const byteAssign_t byteAssignment[32] = { { FLD_UDC, UNIT_V, CH1, 9, 2, 10 }, { FLD_IDC, UNIT_A, CH1, 11, 2, 10 }, { FLD_UAC, UNIT_V, CH1, 13, 2, 10 }, { FLD_F, UNIT_HZ, CH1, 15, 2, 100 }, { FLD_PAC, UNIT_W, CH1, 17, 2, 10 }, { FLD_YD, UNIT_WH, CH1, 19, 2, 1 }, { FLD_T, UNIT_C, CH1, 21, 2, 10 }, //{ FLD_YT, UNIT_KWH, CH1, 24, 0, 1 }, { FLD_IRR, UNIT_PCT, CH1, CALC_IRR_CH, CH1, CMD_CALC }, { FLD_UDC, UNIT_V, CH2, 34, 2, 10 }, { FLD_IDC, UNIT_A, CH2, 36, 2, 10 }, { FLD_UAC, UNIT_V, CH2, 38, 2, 10 }, { FLD_F, UNIT_HZ, CH2, 40, 2, 100 }, { FLD_PAC, UNIT_W, CH2, 42, 2, 10 }, { FLD_YD, UNIT_WH, CH2, 44, 2, 1 }, { FLD_T, UNIT_C, CH2, 46, 2, 10 }, // { FLD_YT, UNIT_KWH, CH1, 24, 0, 1 }, { FLD_IRR, UNIT_PCT, CH2, CALC_IRR_CH, CH2, CMD_CALC }, // { FLD_UAC, UNIT_V, CH0, 26, 2, 10 }, // { FLD_IAC, UNIT_A, CH0, 34, 2, 100 }, { FLD_PAC, UNIT_W, CH0, 17, 2, 10 }, { FLD_T, UNIT_C, CH0, 21, 2, 10 }, { FLD_PAC, UNIT_W, CH0, 42, 2, 10 }, { FLD_T, UNIT_C, CH0, 36, 2, 10 }, { FLD_UAC, UNIT_V, CH0, 13, 2, 10 }, { FLD_F, UNIT_HZ, CH0, 15, 2, 100 } // { FLD_YD, UNIT_WH, CH0, CALC_YD_CH0, 0, CMD_CALC }, // { FLD_YT, UNIT_KWH, CH0, CALC_YT_CH0, 0, CMD_CALC }, // { FLD_PDC, UNIT_W, CH0, CALC_PDC_CH0, 0, CMD_CALC }, // { FLD_EFF, UNIT_PCT, CH0, CALC_EFF_CH0, 0, CMD_CALC } }; };