private float verifyLiquidData(float src, String devCode, SZLiquidSession session) { //修正液位数据 if (src >= 0) { return(src); } //TODO LIST:根据设备DevCode,找到对应的井深信息 BLL.Device device = new BLL.Device(); float result = device.getWellDepByDevcode(devCode); if (result == -1) { session.Logger.Error("旧版液位监测仪器设备编号重复:" + devCode); return(src); } else if (result == -2) { session.Logger.Error("无法找到关联阀门:" + devCode); return(src); } else if (result == -3) { session.Logger.Error("设备关联阀门不唯一:" + devCode); return(src); } else { session.Logger.Info("液位液位监测:" + devCode + "采集盲区返回井深:" + result); } return(result); }
//命令执行前调用 public override void OnCommandExecuting(CommandExecutingContext commandContext) { BinaryRequestInfo request = (BinaryRequestInfo)commandContext.RequestInfo; byte[] sim = new byte[6]; byte[] header = headerToByteArray(request.Key); byte[] body = request.Body; Buffer.BlockCopy(body, 0, sim, 0, 6); if (!Utility.CodeUtils.CRC16_validate(header, body)) { commandContext.Cancel = true; } //sim卡号 string code = BitConverter.ToString(sim, 0, sim.Length).Replace("-", "").Substring(1); //打印燃气设备号 commandContext.Session.Logger.Info("燃气智能检测终端编号:" + code); object obj = new BLL.Device().getDeviceIdByCode(code); if (null == obj || string.IsNullOrEmpty(obj.ToString())) { commandContext.Cancel = true; } else { RQSession session = (RQSession)commandContext.Session; session.ID = Convert.ToInt32(obj); } }
public override void ExecuteCommand(GXSession session, StringRequestInfo requestInfo) { try { //TemperatureCurve:上传时间,设备ID,{间隔米数0 温度数据0},{间隔米数1 温度数据1}/r/n session.Logger.Info("诺可温度曲线采集开始!"); session.Logger.Info(requestInfo.Body); string[] body = requestInfo.Body.Split(','); Model.NKTemperatureCurveInfo temperatureCurve = new Model.NKTemperatureCurveInfo(); //设备ID temperatureCurve.DEVID = body[1]; //距离、温度值 if (body.Length > 2) { StringBuilder dsb = new StringBuilder(); StringBuilder tsb = new StringBuilder(); for (int i = 2; i < body.Length; i++) { string[] data = body[i].Split(' '); dsb.Append(data[0].Remove(0, 1)).Append(","); tsb.Append(data[1].Remove(data[1].Length - 1, 1)).Append(","); } temperatureCurve.DISTANCE = dsb.Remove(dsb.Length - 1, 1).ToString(); temperatureCurve.TEMPERATURE = tsb.Remove(tsb.Length - 1, 1).ToString(); } //采集时间 string sdate = body[0].Substring(0, 4) + "-" + body[0].Substring(4, 2) + "-" + body[0].Substring(6, 2) + " " + body[0].Substring(8, 2) + ":" + body[0].Substring(10, 2) + ":" + body[0].Substring(12, 2); temperatureCurve.UPTIME = Convert.ToDateTime(sdate); //上传时间 temperatureCurve.LOGTIME = DateTime.Now; new BLL.NKTemperatureCurve().insert(temperatureCurve); //温度报警规则 string devType = new BLL.Device().getDevTypeByCode(temperatureCurve.DEVID); new BLL.NKTemperatureCurve().saveAlarm(temperatureCurve.DISTANCE, temperatureCurve.TEMPERATURE, temperatureCurve.DEVID, (int)session.ID, devType); } catch (Exception e) { session.Logger.Error("诺可温度曲线数据采集失败!"); session.Logger.Error(requestInfo.Body); session.Logger.Error(e.ToString()); } }
//命令执行前调用 public override void OnCommandExecuting(CommandExecutingContext commandContext) { StringRequestInfo request = (StringRequestInfo)commandContext.RequestInfo; string code = request.Parameters[0]; object obj = new BLL.Device().getDeviceIdByCode(code); if (null == obj || string.IsNullOrEmpty(obj.ToString())) { commandContext.Cancel = true; } else { WSSession session = (WSSession)commandContext.Session; session.ID = Convert.ToInt32(obj); } }
public override void ExecuteCommand(RHRQSession session, StringRequestInfo requestInfo) { try { string[] bt = requestInfo.Body.Split(','); session.Logger.Info("RHRQ:" + requestInfo.Body); string stime = bt[0]; string sdate = stime.Substring(0, 4) + "-" + stime.Substring(4, 2) + "-" + stime.Substring(6, 2) + " " + stime.Substring(8, 2) + ":" + stime.Substring(10, 2) + ":" + stime.Substring(12, 2); DateTime upTime = Convert.ToDateTime(sdate); string devIds = bt[1]; string[] devs = (devIds.Replace("{", "").Replace("}", "")).Split(','); List <Model.AlarmRecordInfo> list = new List <Model.AlarmRecordInfo>(); foreach (string dev in devs) { Model.AlarmRecordInfo alarm = new Model.AlarmRecordInfo(); alarm.MESSAGE = "入户燃气泄漏"; //报警记录消息是否发送 alarm.MESSAGE_STATUS = 0; //报警记录是否被处理 alarm.ACTIVE = true; alarm.DEVICE_CODE = dev; alarm.DEVICE_TYPE_NAME = "入户燃气报警器"; object obj = new BLL.Device().getDeviceIdByCode(dev); //报警设备ID alarm.DEVICE_ID = Convert.ToInt32(obj); alarm.RECORDDATE = upTime; list.Add(alarm); } new BLL.AlarmRecord().insert(list); } catch (Exception e) { session.Logger.Error("入户燃气报警接收处理异常!"); session.Logger.Error(requestInfo.Body); session.Logger.Error(e.ToString()); } }
public override void ExecuteCommand(GXSession session, StringRequestInfo requestInfo) { try { //StressCurve:上传时间,设备ID,{间隔米数0 应力数据0},{间隔米数1 应力数据1}/r/n session.Logger.Info("诺可压力曲线采集开始!"); session.Logger.Info(requestInfo.Body); string[] body = requestInfo.Body.Split(','); BLL.NKStressCurve bll = new BLL.NKStressCurve(); Model.NKStressCurveInfo stressCurve = new Model.NKStressCurveInfo(); string sdate = body[0].Substring(0, 4) + "-" + body[0].Substring(4, 2) + "-" + body[0].Substring(6, 2) + " " + body[0].Substring(8, 2) + ":" + body[0].Substring(10, 2) + ":" + body[0].Substring(12, 2); stressCurve.UPTIME = Convert.ToDateTime(sdate); stressCurve.DEVID = body[1]; stressCurve.LOGTIME = DateTime.Now; StringBuilder dis = new StringBuilder(); StringBuilder val = new StringBuilder(); for (int i = 2; i < body.Length; i++) { string[] data = body[i].Split(' '); dis.Append(data[0].Remove(0, 1)).Append(","); val.Append(data[1].Remove(data[1].Length - 1, 1)).Append(","); } stressCurve.DISTANCE = dis.Remove(dis.Length - 1, 1).ToString(); stressCurve.STRESS = val.Remove(val.Length - 1, 1).ToString(); bll.insert(stressCurve); //TODO LIST:判断是否应力有超限报警?有的话插入到报警记录中 string devType = new BLL.Device().getDevTypeByCode(stressCurve.DEVID); bll.saveAlarm(stressCurve.DISTANCE, stressCurve.STRESS, stressCurve.DEVID, (int)session.ID, devType); } catch (Exception e) { session.Logger.Error("诺可压力曲线数据采集失败!"); session.Logger.Error(requestInfo.Body); session.Logger.Error(e.ToString()); } }
public override void ExecuteCommand(BYSession session, StringRequestInfo requestInfo) { try { //AlarmRpt:系统标示,命令字、设备ID,报警ID,报警状态,报警个数,报警位置|报警值#报警位置|报警值,报警时间/r/n session.Logger.Info("震动曲线开始:\n" + requestInfo.Body); string[] body = requestInfo.Body.Split(','); string alarmID = body[3]; string systemID = body[0]; string commandId = body[1]; string[] locations = body[6].Split('#'); string strDate = body[7]; string alarmStatus = body[4]; string devCode = body[2]; object obj = new BLL.Device().getDeviceIdByCode(devCode); if (obj == null) { session.Logger.Info("光纤编号 " + devCode + ":未注册:\n"); return; } int devId = Convert.ToInt32(obj); string devType = new BLL.Device().getDevTypeByDevId(devId); if (devType == null) { session.Logger.Info("设备类型表中,无该类型"); return; } List <Model.AlarmRecordInfo> list = new List <Model.AlarmRecordInfo>(); foreach (string loc in locations) { Model.AlarmRecordInfo alarm = new Model.AlarmRecordInfo(); if (alarmStatus == "1") { //开挖报警 alarm.MESSAGE = "管线开挖报警"; alarm.ITEMNAME = "开挖报警"; } else if (alarmStatus == "-99") { //断纤报警 alarm.MESSAGE = "断纤报警"; alarm.ITEMNAME = "断纤报警"; } else { //断纤报警自动清除 alarm.MESSAGE = "断纤报警自动清除"; alarm.ITEMNAME = "断纤报警自动清除"; } alarm.ITEMVALUE = loc.Replace('|', ','); alarm.DEVICE_ID = devId; alarm.ACTIVE = true; alarm.DEVICE_CODE = devCode; alarm.DEVICE_TYPE_NAME = devType; alarm.MESSAGE_STATUS = 0; alarm.RECORDDATE = Convert.ToDateTime(strDate); list.Add(alarm); } new BLL.AlarmRecord().insert(list); //发送返回信息AlarmRptR:系统标示码、命令号、报警ID\r\n string sdata0 = "AlarmRptsR:" + systemID + "," + commandId + "," + devCode + "," + alarmID; byte[] data0 = new byte[sdata0.Length + 2]; Encoding.ASCII.GetBytes(sdata0, 0, sdata0.Length, data0, 0); data0[sdata0.Length] = 0x0D; data0[sdata0.Length + 1] = 0x0A; session.Send(data0, 0, data0.Length); session.Logger.Info("光纤回复信息:" + sdata0); } catch (Exception e) { session.Logger.Error("振动定位数据采集失败!\n" + e.ToString()); } }