public string WriteMsg() { UserDataAll += SerialNumber.ToString("X").PadLeft(4, '0'); UserDataAll += SendTime.ToString("yyMMddHHmmss").PadLeft(12, '0'); UserDataAll += Iden_F1.GetHexStr(); Identifier_45 iden = new Identifier_45(); iden.AlarmStateV = "0".PadLeft(32, '0'); iden.AlarmStateV = (isUsed ? "1" : "0").PadRight(10, '0').PadLeft(32, '0'); UserData += iden.GetHexStr(); byte[] UserDataBytesAllTmp; WaterBaseMessage[] MsgListTmp; string msg = WaterBaseMessageService.GetMsgList_WriteMsg(this, UserDataAll, out UserDataBytesAllTmp, out MsgListTmp); if (msg == "") { UserDataBytesAll = UserDataBytesAllTmp; MsgList = MsgListTmp; } else { if (ShowLog) { logHelper.Error(msg); } } return(msg); }
public string ReadMsg(string UserDataAll) { short SerialNumberTmp; DateTime SendTimeTmp; string msg = WaterBaseMessageService.GetSerialNumberAndSendTime(UserDataAll, out SerialNumberTmp, out SendTimeTmp); if (msg == "") { SerialNumber = SerialNumberTmp; SendTime = SendTimeTmp; } else { if (ShowLog) { logHelper.Error(msg); } return(msg); } try { Iden_F1 = new Identifier_F1(); Iden_F1.RemoteStation = UserDataAll.Substring(20, 10); } catch (Exception ex) { if (ShowLog) { logHelper.Error(ex.Message + Environment.NewLine + "获取遥测站出错" + " " + RawDataStr); } return("获取遥测站出错"); } string Remain = UserDataAll.Substring(30); msg = ""; List <Identifier> List_RTUParam = Identifier.analyse(Remain, AFN, out msg); if (msg == "") { if (List_RTUParam.Count == 1) { if (List_RTUParam[0].GetKey() == (byte)Identifier_Standard._45) { Identifier_45 iden = (Identifier_45)List_RTUParam[0]; isUsed = iden.AlarmStateV[32 - (int)AlarmState._10] == '1'; } else { msg = "数据体非法,参数关键字非法"; } } else { msg = "数据体非法,参数超过1个"; } } return(msg); }
public string WriteMsg() { UserData = ""; UserData += SerialNumber.ToString("X").PadLeft(4, '0'); UserData += SendTime.ToString("yyMMddHHmmss").PadLeft(12, '0'); Identifier_45 iden = new Identifier_45(); iden.AlarmStateV = "0".PadLeft(32, '0'); iden.AlarmStateV = (isUsed ? "1" : "0").PadRight(10, '0').PadLeft(32, '0'); UserData += iden.GetHexStr(); UserDataBytes = HexStringUtility.HexStringToByteArray(UserData); return(WriteMsgBase()); }
public string ReadMsg() { if (UserDataBytes == null || UserDataBytes.Length == 0) { if (ShowLog) { logHelper.Error("无信息,无法分析!"); } return("无信息,无法分析!"); } UserData = HexStringUtility.ByteArrayToHexString(UserDataBytes); try { SerialNumber = Convert.ToInt16(UserData.Substring(0, 4), 16); } catch (Exception ex) { if (ShowLog) { logHelper.Error(ex.Message + Environment.NewLine + "获取流水号出错" + " " + RawDataStr); } return("获取流水号出错"); } try { SendTime = DateTime.ParseExact("20" + UserData.Substring(4, 12), "yyyyMMddHHmmss", CultureInfo.InvariantCulture); } catch (Exception ex) { if (ShowLog) { logHelper.Error(ex.Message + Environment.NewLine + "获取发报时间出错" + " " + RawDataStr); } return("获取发报时间出错"); } string Remain = UserData.Substring(16); string msg = ""; List <Identifier> List_RTUParam = Identifier.analyse(Remain, AFN, out msg); if (msg == "") { if (List_RTUParam.Count == 1) { if (List_RTUParam[0].GetKey() == (byte)Identifier_Standard._45) { Identifier_45 iden = (Identifier_45)List_RTUParam[0]; isUsed = iden.AlarmStateV[32 - (int)AlarmState._10] == '1'; } else { msg = "数据体非法,参数关键字非法"; } } else { msg = "数据体非法,参数超过1个"; } } return(msg); }