Esempio n. 1
0
        public static RecordNo Parse(byte[] datas)
        {
            RecordNo r = new RecordNo();

            r._fromAddress             = datas[ADDRESS_POS];
            r._currentHistoryRecordNo  = BCDConvert.BCDToDec(datas[CURRENT_HISTORY_RECORDNO_POS]);
            r._currentPoweroffRecordNo = BCDConvert.BCDToDec(datas[CURRENT_POWEROFF_RECORDNO_POS]);
            r._currentVibratoRecordNo  = BCDConvert.BCDToDec(datas[CURRENT_VIBRATO_RECORDNO_POS]);
            return(r);
        }
Esempio n. 2
0
        static public HistoryRecord Parse(byte[] datas)
        {
            HistoryRecord r = new HistoryRecord();

            r._fromAddress = datas[ADDRESS_POS];

            r._beginDateTime = new DateTime(
                BCDConvert.BCDToDec(datas[BEGIN_DATETIME_BEGIN_POS + 0]) + 2000,
                BCDConvert.BCDToDec(datas[BEGIN_DATETIME_BEGIN_POS + 1]),
                BCDConvert.BCDToDec(datas[BEGIN_DATETIME_BEGIN_POS + 2]),
                BCDConvert.BCDToDec(datas[BEGIN_DATETIME_BEGIN_POS + 3]),
                BCDConvert.BCDToDec(datas[BEGIN_DATETIME_BEGIN_POS + 4]),
                0);

            r._endDatetTiem = new DateTime(
                BCDConvert.BCDToDec(datas[END_DATETIME_BEGIN_POS + 0]) + 2000,
                BCDConvert.BCDToDec(datas[END_DATETIME_BEGIN_POS + 1]),
                BCDConvert.BCDToDec(datas[END_DATETIME_BEGIN_POS + 2]),
                BCDConvert.BCDToDec(datas[END_DATETIME_BEGIN_POS + 3]),
                BCDConvert.BCDToDec(datas[END_DATETIME_BEGIN_POS + 4]),
                0);

            // 获取用水量
            //
            // 如:byte[] {0x00 0x01 0xE2 0x40} 表示 123456,
            // 使用的是高位在前低位在后,将其转换为低位在前高位在后形式,
            // 再使用BitConvert进行转换
            //
            byte[] usedWQ = new byte[4];
            Array.Copy(datas, USED_WATER_QUANTITY_BEGIN_POS, usedWQ, 0, 4);
            Array.Reverse(usedWQ);

            r._usedWaterQuantity = BitConverter.ToInt32(datas, USED_WATER_QUANTITY_BEGIN_POS);

            return(r);
        }