/// <summary> /// 处理测斜数据。 /// </summary> /// <param name="Name">命令名称。</param> /// <param name="OriginalCode">原始数据。</param> /// <param name="info">测斜信息。</param> public static void Handle(string Name, string OriginalCode, CeXieInfo info) { UInt16 ResultNum; string Reason; CeXieDal.GetDeviceInfo(info, out ResultNum, out Reason); if (ResultNum == 0) { MyLibrary.Log.Debug(Name + "正常信息:" + Reason + " 设备编号:" + info.DeviceId); } else if (ResultNum == 1) { MyLibrary.Log.Debug(Name + "出错:" + Reason + " 设备编号:" + info.DeviceId + " 原始代码:" + OriginalCode); } else { string[] InfoArray = Reason.Split(','); string m_DeviceId = InfoArray[0]; string m_DESCRIPTION = InfoArray[1]; string m_StandardX = InfoArray[2]; string m_StandardY = InfoArray[3]; List <SendInfo> sendInfo = CeXieDal.GetSendList(); if (sendInfo.Count != 0) { string RetrunMsg = ""; string content = ""; PushAlarmListInfo listInfo; for (int i = 0; i < sendInfo.Count; i++) { //content = "警告:" + sendInfo[i].Name + "你好,[" + info.DeviceTime + "][" + m_DESCRIPTION + "]监测到倾斜角度位移超过5°,正常X轴" + m_StandardX + "°Y轴" + m_StandardY + "°,目前X轴" + info.Reserved1 + "°Y轴" + info.Reserved2 + "°,请尽快排查处理!"; content = "【天地人科技】警告:" + sendInfo[i].Name + "您好," + info.DeviceTime.ToString("yyyy - MM - dd") + ",我公司监测到设备" + info.DeviceId + ",安装位置为" + m_DESCRIPTION + ",边坡结构发生倾斜,存在滑坡险情,请尽快排查处理、"; listInfo = new PushAlarmListInfo(); bool IsOk = Send(sendInfo[i].Phone, content, out RetrunMsg); listInfo.Issuccess = IsOk?"1":"2"; listInfo.DeviceId = m_DeviceId; listInfo.DeviceCode = info.DeviceId; listInfo.Description = m_DESCRIPTION; listInfo.AngleX = info.Reserved1; listInfo.AngleY = info.Reserved2; listInfo.StandardX = m_StandardX; listInfo.StandardY = m_StandardY; listInfo.AlarmTime = info.DeviceTime; listInfo.Name = sendInfo[i].Name; listInfo.Phone = sendInfo[i].Phone; CeXieDal.PushAlarmList_Insert(listInfo); MyLibrary.Log.Debug(RetrunMsg + " 设备编号:" + listInfo.DeviceCode); } } else { MyLibrary.Log.Debug(Name + ";推送预警配置表(TB_PUSHALARMSET)没有任何内容 设备编号:" + info.DeviceId); } } }
public static void GetDeviceInfo(CeXieInfo info, out UInt16 resultNum, out string reason) { Database db = DataConnect.GetConnect; DbCommand cmd = db.GetStoredProcCommand("pro_CeXie"); db.AddInParameter(cmd, ":Pi_DeviceCode", DbType.String, info.DeviceId); db.AddInParameter(cmd, ":Pi_DeviceTime", DbType.Date, info.DeviceTime); db.AddInParameter(cmd, ":Pi_AngleX", DbType.String, info.Reserved1); db.AddInParameter(cmd, ":Pi_AngleY", DbType.String, info.Reserved2); db.AddOutParameter(cmd, ":po_ResultNum", DbType.String, 256); db.AddOutParameter(cmd, ":po_Reason", DbType.String, 256); db.ExecuteNonQuery(cmd); resultNum = Convert.ToUInt16(db.GetParameterValue(cmd, ":po_ResultNum")); reason = db.GetParameterValue(cmd, ":po_Reason").ToString(); }
public bool Execute() { try { byte[] DeviceTypeByte = new byte[2]; //设备类型 Array.Copy(_content, 1, DeviceTypeByte, 0, 2); string DeviceType = Convert.ToUInt16(ConverUtil.ByteToStr_A(DeviceTypeByte), 16).ToString(); byte[] DeviceIdByte = new byte[4]; //设备Id Array.Copy(_content, 3, DeviceIdByte, 0, 4); string DeviceId = Convert.ToUInt32(ConverUtil.ByteToStr_A(DeviceIdByte), 16).ToString(); string CommandWord = _content[7].ToString(); //命令字 byte[] XAxisAngleValueByte = new byte[2]; //X轴值 Array.Copy(_content, 8, XAxisAngleValueByte, 0, 2); string XAxisAngleValue = DataJM.GetAngleValue(ConverUtil.ByteToStr_A(XAxisAngleValueByte)); byte[] YAxisAngleValueByte = new byte[2]; //Y轴值 Array.Copy(_content, 10, YAxisAngleValueByte, 0, 2); string YAxisAngleValue = DataJM.GetAngleValue(ConverUtil.ByteToStr_A(YAxisAngleValueByte)); string Version = _content[12].ToString(); //版本号。 CeXieInfo info = new CeXieInfo(); info.DeviceTime = DateTime.Now; info.DeviceType = DeviceType; info.DeviceId = DeviceId; info.ProtocolType = CommandWord; info.Reserved1 = XAxisAngleValue; info.Reserved2 = YAxisAngleValue; info.Version = Version; info.StationNo = StationId.ToString(); info.ServiceTime = PlatformTime; ICeXieDal.Handle(Name, OriginalCode, info); } catch (Exception ex) { MyLibrary.Log.Error(Name + "错误:" + ex.Message + " 基站编号:" + StationId.ToString() + " 原始代码:" + OriginalCode); } return(true); }
public static void AgreementFormat_Insert(CeXieInfo info) { Database db = DataConnect.GetConnect; DbCommand cmd = db.GetSqlStringCommand(@"insert into tb_agreementformat (listid, devicetime, devicetype, deviceid, protocoltype, reserved1, reserved2, reserved3, reserved4, reserved5, version, stationno, servicetime, intime) values (sys_guid(), :devicetime, :devicetype, :deviceid, :protocoltype, :reserved1, :reserved2, :reserved3, :reserved4, :reserved5, :version, :stationno, :servicetime, sysdate)"); db.AddInParameter(cmd, ":devicetime", DbType.Date, info.DeviceTime); db.AddInParameter(cmd, ":devicetype", DbType.String, info.DeviceType); db.AddInParameter(cmd, ":deviceid", DbType.String, info.DeviceId); db.AddInParameter(cmd, ":protocoltype", DbType.String, info.ProtocolType); db.AddInParameter(cmd, ":reserved1", DbType.String, info.Reserved1); db.AddInParameter(cmd, ":reserved2", DbType.String, info.Reserved2); db.AddInParameter(cmd, ":reserved3", DbType.String, info.Reserved3); db.AddInParameter(cmd, ":reserved4", DbType.String, info.Reserved4); db.AddInParameter(cmd, ":reserved5", DbType.String, info.Reserved5); db.AddInParameter(cmd, ":version", DbType.String, info.Version); db.AddInParameter(cmd, ":stationno", DbType.String, info.StationNo); db.AddInParameter(cmd, ":servicetime", DbType.Date, info.ServiceTime); db.ExecuteNonQuery(cmd); }
public bool Execute() { try { #region 测斜统计 DateTime time = ConverUtil.Time(_content, 0); //设备时间。 string ZhongJiId = _content[6].ToString(); //中继号 string DeviceType = ConverUtil.ByteToStr_2(_content, 7); string DeviceId = ConverUtil.ByteToStr_4(_content, 9); // 设备Id string CommandWord = _content[13].ToString(); //命令字 byte[] XAxisAngleValueByte = new byte[2]; //X轴值 Array.Copy(_content, 14, XAxisAngleValueByte, 0, 2); string XAxisAngleValue = DataJM.GetAngleValue(ConverUtil.ByteToStr_A(XAxisAngleValueByte)); byte[] YAxisAngleValueByte = new byte[2]; //Y轴值 Array.Copy(_content, 16, YAxisAngleValueByte, 0, 2); string YAxisAngleValue = DataJM.GetAngleValue(ConverUtil.ByteToStr_A(YAxisAngleValueByte)); string Version = _content[18].ToString(); //版本号。 CeXieInfo info = new CeXieInfo(); info.DeviceTime = time; info.DeviceType = DeviceType; info.DeviceId = DeviceId; info.ProtocolType = CommandWord; info.Reserved1 = XAxisAngleValue; info.Reserved2 = YAxisAngleValue; info.Version = Version; info.StationNo = StationId.ToString(); info.ServiceTime = PlatformTime; CeXieDal.AgreementFormat_Insert(info); #endregion #region 处理后发送短信 //byte[] timeByte = new byte[6]; //设备时间 //Array.Copy(_content, 0, timeByte, 0, 6); //DateTime time = Utils.GetTime(timeByte); //string ZhongJiId = _content[6].ToString(); //中继号 //byte[] DeviceTypeByte = new byte[2]; //设备类型 //Array.Copy(_content, 7, DeviceTypeByte, 0, 2); //string DeviceType = Convert.ToUInt64(ConverUtil.ByteToStr_A(DeviceTypeByte), 16).ToString(); //byte[] DeviceIdByte = new byte[4]; //设备Id //Array.Copy(_content, 9, DeviceIdByte, 0, 4); //string DeviceId = Convert.ToUInt64(ConverUtil.ByteToStr_A(DeviceIdByte), 16).ToString(); //string CommandWord = _content[13].ToString(); //命令字 //byte[] XAxisAngleValueByte = new byte[2]; //X轴值 //Array.Copy(_content, 14, XAxisAngleValueByte, 0, 2); //string XAxisAngleValue = Utils.GetAngleValue(ConverUtil.ByteToStr_A(XAxisAngleValueByte)); //byte[] YAxisAngleValueByte = new byte[2]; //Y轴值 //Array.Copy(_content, 16, YAxisAngleValueByte, 0, 2); //string YAxisAngleValue = Utils.GetAngleValue(ConverUtil.ByteToStr_A(YAxisAngleValueByte)); //string Version = _content[18].ToString(); //版本号。 //CeXieInfo info = new CeXieInfo(); //info.DeviceTime = time; //info.DeviceType = DeviceType; //info.DeviceId = DeviceId; //info.ProtocolType = CommandWord; //info.Reserved1 = XAxisAngleValue; //info.Reserved2 = YAxisAngleValue; //info.Version = Version; //info.StationNo = StationId.ToString(); //info.ServiceTime = PlatformTime; //ICeXieDal.Handle(Name, OriginalCode, info); #endregion } catch (Exception ex) { MyLibrary.Log.Error(Name + "错误:" + ex.Message + " 基站编号:" + StationId.ToString() + " 原始代码:" + OriginalCode); } return(true); }