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("获取发报时间出错"); } try { int count = Convert.ToInt32(UserData.Substring(16, 2), 16); Ps = new bool[8 * count]; string hexStr = UserData.Substring(18, count * 2); string binStr = HexStringUtility.HexStringToBinString(hexStr); for (int i = 0; i < binStr.Length; i++) { Ps[binStr.Length - i - 1] = binStr[i] == '1'; } } catch (Exception ex) { if (ShowLog) { logHelper.Error(ex.Message + Environment.NewLine + "获取泵开关状态出错" + " " + RawDataStr); } return("获取泵开关状态出错"); } return(""); }
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("获取遥测站出错"); } try { string Remain = UserDataAll.Substring(30); int count = Convert.ToInt32(Remain.Substring(0, 2), 16); Ps = new bool[count]; string hexStr = Remain.Substring(2, ((count - 1) / 8 + 1) * 2); string binStr = HexStringUtility.HexStringToBinString(hexStr); for (int i = 0; i < binStr.Length; i++) { if (count > binStr.Length - i - 1) { Ps[binStr.Length - i - 1] = binStr[i] == '1'; } } } catch (Exception ex) { if (ShowLog) { logHelper.Error(ex.Message + Environment.NewLine + "获取泵开关状态出错" + " " + RawDataStr); } return("获取泵开关状态出错"); } return(""); }
public override void SetVal(int ByteCount, int Digits, string hexStr) { if (ByteCount <= 0 && Digits <= 0) { ByteCount = 4; Digits = 0; } this.Length = Convert.ToByte(WaterBaseProtocol.GetLengthHexStr(ByteCount, Digits), 16); this.AlarmStateV = HexStringUtility.HexStringToBinString(hexStr).PadLeft(32, '0'); }
public override void SetVal(int ByteCount, int Digits, string hexStr) { this.BitStr = HexStringUtility.HexStringToBinString(hexStr); }