public static Record Analyze(byte[] datas) { Debug.Assert(datas.Length == XGDefinition.RECODE_DATA_LENGTH); int year = BCDConvert.BCDToDec(datas[YEAR_POS]); int month = BCDConvert.BCDToDec(datas[MONTH_POS]); int day = BCDConvert.BCDToDec(datas[DAY_POS]); int hour = BCDConvert.BCDToDec(datas[HOUR_POS]); int minute = BCDConvert.BCDToDec(datas[MINUTE_POS]); int second = BCDConvert.BCDToDec(datas[SECOND_POS]); byte[] cardIdDatas = new byte[CARD_ID_DATA_LENGTH]; Array.Copy(datas, CARD_ID_BEGIN_POS, cardIdDatas, 0, CARD_ID_DATA_LENGTH); string cardId = MakeCardId(cardIdDatas); return(new Record(year, month, day, hour, minute, second, cardId)); }
public override CommResultState ProcessReceived(byte[] data) { CommResultState state = XGCommandMaker.CheckReceivedData( Station.Address, XGDefinition.DEVICE_TYPE, XGDefinition.FC_READ_DATE, data); if (state == CommResultState.Correct) { byte[] innerDatas = XGCommandMaker.GetReceivedInnerData(data); _day = BCDConvert.BCDToDec(innerDatas[0]); _month = BCDConvert.BCDToDec(innerDatas[1]); _year = BCDConvert.BCDToDec(innerDatas[2]); } else { SetInvalidValue(); } return(state); }