public void updateStatus(Model.AlarmRecordInfo alarm) { try { if (alarm.DEVICE_CODE == null) { throw new Exception(alarm.ITEMNAME + ":设备编号为空!"); } OracleParameter[] parms = new OracleParameter[] { new OracleParameter(":DEVICE_CODE", alarm.DEVICE_CODE), }; string SQL = " UPDATE ALARM_ALARM_RECORD " + " SET " + " ACTIVE = " + 0 + " where " + " DEVICE_CODE = :DEVICE_CODE "; string strCnn = OracleHelper.ConnectionStringOrderDistributedTransaction; using (OracleConnection cnn = new OracleConnection(strCnn)) { OracleHelper.ExecuteNonQuery(cnn, CommandType.Text, SQL, parms); } } catch (Exception e) { throw e; } }
public override void ExecuteCommand(ALSession session, StringRequestInfo requestInfo) { try { session.Logger.Info("给水管线数据突变报警:" + requestInfo.Body); string[] body = requestInfo.Body.Split(','); List <Model.AlarmRecordInfo> alarms = new List <Model.AlarmRecordInfo>(); for (int i = 1; i < body.Length; i++) { string[] data = body[i].Split(' '); string regId = data[0].Substring(1, data[0].Length - 1); string devId = data[1]; string type = data[2]; // string value = data[3].Substring(0, data[3].Length - 1); Model.AlarmRecordInfo alarm = new Model.AlarmRecordInfo(); alarm.DEVICE_ID = Convert.ToInt32(new BLL.Device().getDeviceIdByCode(devId)); alarm.DEVICE_CODE = devId; // alarm.ITEMVALUE = value; switch (type) { case "pressure": alarm.RECORDCODE = "AD_DJ_SALTAION_ALARM_PRESSURE" + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss_fff"); //alarm.MESSAGE = "給水管线压力数据突变:【分区ID," + regId + "】,【设备ID," + devId + "】"; alarm.MESSAGE = "压力突变"; break; case "flow": alarm.RECORDCODE = "AD_DJ_SALTAION_ALARM_FLOW" + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss_fff"); alarm.MESSAGE = "流量突变"; // alarm.MESSAGE = "給水管线流量数据突变:【分区ID," + regId + "】,【设备ID," + devId + "】"; break; case "noise": alarm.RECORDCODE = "AD_DJ_SALTAION_ALARM_NOISE" + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss_fff"); alarm.MESSAGE = "噪声突变"; // alarm.MESSAGE = "給水管线噪声数据突变:【分区ID," + regId + "】,【设备ID," + devId + "】"; break; case "liquid": alarm.RECORDCODE = "AD_DJ_SALTAION_ALARM_LIQUID" + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss_fff"); // alarm.MESSAGE = "給水管线液位数据突变:【分区ID," + regId + "】,【设备ID," + devId + "】"; alarm.MESSAGE = "液位突变"; break; } alarm.RECORDDATE = StringUtil.toDateTime(body[0]); alarm.MESSAGE_STATUS = 0; alarm.ACTIVE = true; alarms.Add(alarm); } new BLL.AlarmRecord().insert(alarms); } catch (Exception e) { session.Logger.Error("给水数据突变报警异常:" + requestInfo.Body + " (异常信息:" + e.ToString() + ")"); } }
public void saveAlarm(String disList, String pressList, String devCode, int devId, String devType) { string[] pressArray = pressList.Split(','); string[] disArray = disList.Split(','); for (int i = 0; i < pressArray.Length; i++) { if (float.Parse(pressArray[i]) > pressAlarm) { string dis = disArray[i]; string press = pressArray[i]; Model.AlarmRecordInfo alarmRecordInfo = new Model.AlarmRecordInfo(); alarmRecordInfo.ACTIVE = true; alarmRecordInfo.DEVICE_CODE = devCode; alarmRecordInfo.DEVICE_ID = devId; alarmRecordInfo.DEVICE_TYPE_NAME = devType; alarmRecordInfo.ITEMNAME = "压力:" + dis; //到时候根据这个ID号来取消 alarmRecordInfo.ITEMVALUE = dis + "," + press; alarmRecordInfo.MESSAGE_STATUS = 0; alarmRecordInfo.RECORDCODE = ""; alarmRecordInfo.RECORDDATE = System.DateTime.Now; alarmRecordInfo.MESSAGE = "光纤压力超标"; BLL.AlarmRecord nc = new BLL.AlarmRecord(); nc.saveGXPressAlarm(alarmRecordInfo); } } }
//保存压力温度光纤报警记录 //先查询联合查询设备ID、ItemValue是否有报警记录,有的话清楚再保存 public void saveGXAlarm(Model.AlarmRecordInfo alarm) { try { if (alarm.DEVICE_CODE == null) { throw new Exception(alarm.ITEMNAME + ":设备编号为空!"); } OracleParameter[] parms = new OracleParameter[] { new OracleParameter(":DEVICE_CODE", alarm.DEVICE_CODE), new OracleParameter(":ITEMNAME", alarm.ITEMNAME) }; string SQL = " UPDATE ALARM_ALARM_RECORD " + " SET " + " ACTIVE = " + 0 + " where " + " DEVICE_CODE = :DEVICE_CODE AND " + " ITEMNAME = :ITEMNAME"; string strCnn = OracleHelper.ConnectionStringOrderDistributedTransaction; using (OracleConnection cnn = new OracleConnection(strCnn)) { OracleHelper.ExecuteNonQuery(cnn, CommandType.Text, SQL, parms); //保存新的报警记录 OracleParameter[] parms0 = GetAdapterParameters(); SetAdapterParameters(parms0, alarm); OracleHelper.ExecuteNonQuery(cnn, CommandType.Text, SQL_INSERT_ALARM_RECORD, parms0); } } catch (Exception e) { throw e; } }
public override void ExecuteCommand(GXSession session, StringRequestInfo requestInfo) { try { //VibratingPosition:上传时间,设备ID,{间隔米数 振动数据}/r/n session.Logger.Info("震动曲线开始:\n" + requestInfo.Body); string[] body = requestInfo.Body.Split(','); Model.AlarmRecordInfo alarm = new Model.AlarmRecordInfo(); //报警记录编号 alarm.RECORDCODE = "NK_GX_VIB_POS_" + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss_fff"); //报警信息 //string msg = "管线开挖报警:@devId:@val:@time"; // msg = msg.Replace("@time", body[0]); // msg = msg.Replace("@devId", body[1]); // msg = msg.Replace("@val", body[2]); //alarm.MESSAGE = msg; alarm.MESSAGE = "管线开挖报警"; //报警项目名称 alarm.ITEMNAME = "光纤震动报警"; //报警项目值 string[] vals = body[2].Split(' '); alarm.ITEMVALUE = vals[0].Replace("{", "") + "," + vals[1].Replace("}", ""); //报警设备ID alarm.DEVICE_ID = (int)session.ID; //报警记录日期 //转换bt[1] 20131212101010 bug fix by predator 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); alarm.RECORDDATE = Convert.ToDateTime(sdate); //报警记录消息是否发送 alarm.MESSAGE_STATUS = 0; //报警记录是否被处理 alarm.ACTIVE = true; alarm.DEVICE_CODE = body[1]; alarm.DEVICE_TYPE_NAME = "光纤"; List <Model.AlarmRecordInfo> list = new List <Model.AlarmRecordInfo>(); list.Add(alarm); new BLL.AlarmRecord().insert(list); } catch (Exception e) { session.Logger.Error("振动定位数据采集失败!\n" + e.ToString()); } }
public void saveAlarm(Model.AlarmRecordInfo alarm) { //set messageStatus = -1 where messageStatus=0 and message = 1 List <int> messageList = new List <int>(); messageList.Add((int)WellAlarmEnum.WELL_OPEN); new BLL.AlarmRecord().deleteByMessage(alarm.DEVICE_CODE, messageList); //add alarmRecord which messageStatus = 0 and message=1 new BLL.AlarmRecord().save(alarm); }
public void saveDeviceStatus(String devCode, WellAlarmEnum wellAlarmEnum) { Model.AlarmRecordInfo alarm = new Model.AlarmRecordInfo(); alarm.DEVICE_ID = Convert.ToInt32(new BLL.Device().getDeviceIdByCode(devCode)); alarm.DEVICE_CODE = devCode; alarm.MESSAGE = (int)wellAlarmEnum + ""; alarm.RECORDDATE = System.DateTime.Now; alarm.MESSAGE_STATUS = 0; alarm.ACTIVE = true; alarm.DEVICE_TYPE_NAME = TypeName; new BLL.AlarmRecord().save(alarm); }
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()); } }
private void saveWellAlarm(String devCode, CasicSession session) { try { List <Model.AlarmRecordInfo> alarms = new List <Model.AlarmRecordInfo>(); Model.AlarmRecordInfo alarm = new Model.AlarmRecordInfo(); alarm.DEVICE_ID = Convert.ToInt32(new BLL.Device().getDeviceIdByCode(devCode)); alarm.DEVICE_CODE = devCode; alarm.MESSAGE = (int)WellAlarmEnum.WELL_OPEN + ""; alarm.RECORDDATE = System.DateTime.Now; alarm.MESSAGE_STATUS = 0; alarm.ACTIVE = true; alarm.DEVICE_TYPE_NAME = "井盖状态监测仪"; alarms.Add(alarm); new BLL.WellInfo().saveAlarm(alarm); } catch (Exception e) { session.Logger.Error("井盖传感器报警插入出错:请检查该设备是否已注册:" + devCode); } }
public void saveAlarm(String disList, String tempList, String devCode, int devId, String devType) { string[] tempArray = tempList.Split(','); string[] disArray = disList.Split(','); // Model.NKTemperatureCurveInfo lastCurve = Model.NKTemperatureCurveInfo cu = this.getLastTempCurve(devCode); string[] lastDisArray = cu.DISTANCE.Split(','); string[] lastTempArray = cu.TEMPERATURE.Split(','); if (cu == null) { return; } for (int i = 0; i < tempArray.Length; i++) { string dis = disArray[i]; string temp = tempArray[i]; if (Math.Abs(float.Parse(temp) - float.Parse(lastTempArray[i])) > tempAlarm) { Model.AlarmRecordInfo alarmRecordInfo = new Model.AlarmRecordInfo(); alarmRecordInfo.ACTIVE = true; alarmRecordInfo.DEVICE_CODE = devCode; alarmRecordInfo.DEVICE_ID = devId; alarmRecordInfo.DEVICE_TYPE_NAME = devType; alarmRecordInfo.ITEMNAME = "温度:" + dis; //到时候根据这个ID号来取消 alarmRecordInfo.ITEMVALUE = dis + "," + temp; alarmRecordInfo.MESSAGE_STATUS = 0; alarmRecordInfo.RECORDCODE = ""; alarmRecordInfo.RECORDDATE = System.DateTime.Now; alarmRecordInfo.MESSAGE = "光纤温度超标"; alarmRecordInfo.RECORDCODE = ""; BLL.AlarmRecord nc = new BLL.AlarmRecord(); nc.saveGXPressAlarm(alarmRecordInfo); } } }
public override void ExecuteCommand(RQSession session, BinaryRequestInfo requestInfo) { try { //F1-50-11-19-19-23-01-10-00-2D-00-10-20-14-09-17-15-56-36-00- //00-42-3C-F5-C3-40-18-80-00-43-6F-00-00-00-00-00-00-00-00-67-27- //41-72-00-02-11-6C byte[] body = requestInfo.Body; session.Logger.Info("接收到燃气报警数据上!" + BitConverter.ToString(body, 0, body.Length)); byte[] sim = new byte[6]; Buffer.BlockCopy(body, 0, sim, 0, 6); if (string.IsNullOrEmpty(session.MacID)) { session.MacID = BitConverter.ToString(sim).Replace("-", "").Substring(1); } //获取设备ID string devId = session.MacID; //将采集上的数据保存到数据库 byte[] record = new byte[30]; byte[] dateTime = new byte[6]; //获取报警记录信息 Buffer.BlockCopy(body, 13, record, 0, body.Length - 17); //获取报警记录时间 Buffer.BlockCopy(record, 0, dateTime, 0, 6); string timeStr = BitConverter.ToString(dateTime).Replace("-", ""); string msg = "燃气设备警告:@devid:@itemname:@itemvalue:@time"; DateTime date = Convert.ToDateTime("20" + timeStr.Substring(0, 2) + "-" + timeStr.Substring(2, 2) + "-" + timeStr.Substring(4, 2) + " " + timeStr.Substring(6, 2) + ":" + timeStr.Substring(8, 2) + ":" + timeStr.Substring(10, 2)); string inPress = BitConverter.ToSingle(new byte[] { record[7], record[6], record[9], record[8] }, 0).ToString(); string outPress = BitConverter.ToSingle(new byte[] { record[11], record[10], record[13], record[12] }, 0).ToString(); string flow = BitConverter.ToSingle(new byte[] { record[15], record[14], record[17], record[16] }, 0).ToString(); string strength = BitConverter.ToSingle(new byte[] { record[19], record[18], record[21], record[20] }, 0).ToString(); string temperature = BitConverter.ToSingle(new byte[] { record[23], record[22], record[25], record[24] }, 0).ToString(); string cell = BitConverter.ToSingle(new byte[] { record[27], record[26], record[29], record[28] }, 0).ToString(); List <Model.AlarmRecordInfo> alarms = new List <Model.AlarmRecordInfo>(); if (float.Parse(inPress) != 0) { Model.AlarmRecordInfo alarm = new Model.AlarmRecordInfo(); alarm.RECORDCODE = "ALARM_XT_INPRESS_" + devId + "_" + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss_fff"); //alarm.MESSAGE = msg.Replace("@devid", devId).Replace("@itemname", "燃气进站压力") // .Replace("@itemvalue", inPress).Replace("@time", date.ToString()); alarm.ITEMNAME = "进站压力超限"; alarm.MESSAGE = alarm.ITEMNAME; alarm.ITEMVALUE = inPress; alarm.DEVICE_ID = (int)session.ID; alarm.RECORDDATE = DateTime.Now; alarm.MESSAGE_STATUS = 0; alarm.ACTIVE = true; alarm.DEVICE_CODE = session.MacID; alarm.DEVICE_TYPE_NAME = "燃气智能监测终端"; alarms.Add(alarm); //增加进站压力超限设备运行日志thc20150610 Model.DeviceLogInfo log = new Model.DeviceLogInfo(); log.DEVICE_ID = session.ID; log.MESSAGE = "燃气进站压力超限报警!"; log.OPERATETYPE = "报警数据上报"; log.LOGTIME = DateTime.Now; new BLL.DeviceLog().insert(log); } if (float.Parse(outPress) != 0) { Model.AlarmRecordInfo alarm = new Model.AlarmRecordInfo(); alarm.RECORDCODE = "ALARM_XT_OUTPRESS_" + devId + "_" + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss_fff"); // alarm.MESSAGE = msg.Replace("@devid", devId).Replace("@itemname", "燃气出站压力") // .Replace("@itemvalue", outPress).Replace("@time", date.ToString()); alarm.ITEMNAME = "出站压力超限"; alarm.MESSAGE = alarm.ITEMNAME; alarm.ITEMVALUE = outPress; alarm.DEVICE_ID = (int)session.ID; alarm.RECORDDATE = DateTime.Now; alarm.MESSAGE_STATUS = 0; alarm.ACTIVE = true; alarm.DEVICE_CODE = session.MacID; alarm.DEVICE_TYPE_NAME = "燃气智能监测终端"; alarms.Add(alarm); //增加出站压力超限设备运行日志thc20150610 Model.DeviceLogInfo log = new Model.DeviceLogInfo(); log.DEVICE_ID = session.ID; log.MESSAGE = "燃气出站压力超限报警!"; log.OPERATETYPE = "报警数据上报"; log.LOGTIME = DateTime.Now; new BLL.DeviceLog().insert(log); } if (float.Parse(flow) != 0) { Model.AlarmRecordInfo alarm = new Model.AlarmRecordInfo(); alarm.RECORDCODE = "ALARM_XT_FLOW_" + devId + "_" + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss_fff"); // alarm.MESSAGE = msg.Replace("@devid", devId).Replace("@itemname", "燃气流量") // .Replace("@itemvalue", flow).Replace("@time", date.ToString()); alarm.ITEMNAME = "流量超限"; alarm.MESSAGE = alarm.ITEMNAME; alarm.ITEMVALUE = flow; alarm.DEVICE_ID = (int)session.ID; alarm.RECORDDATE = DateTime.Now; alarm.MESSAGE_STATUS = 0; alarm.ACTIVE = true; alarm.DEVICE_CODE = session.MacID; alarm.DEVICE_TYPE_NAME = "燃气智能监测终端"; alarms.Add(alarm); //增加流量超限设备运行日志thc20150610 Model.DeviceLogInfo log = new Model.DeviceLogInfo(); log.DEVICE_ID = session.ID; log.MESSAGE = "燃气流量超限报警!"; log.OPERATETYPE = "报警数据上报"; log.LOGTIME = DateTime.Now; new BLL.DeviceLog().insert(log); } if (float.Parse(strength) != 0) { Model.AlarmRecordInfo alarm = new Model.AlarmRecordInfo(); alarm.RECORDCODE = "ALARM_XT_STRENGTH_" + devId + "_" + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss_fff"); // alarm.MESSAGE = msg.Replace("@devid", devId).Replace("@itemname", "燃气浓度") // .Replace("@itemvalue", strength).Replace("@time", date.ToString()); alarm.ITEMNAME = "浓度超限"; alarm.MESSAGE = alarm.ITEMNAME; alarm.ITEMVALUE = strength; alarm.DEVICE_ID = (int)session.ID; alarm.RECORDDATE = DateTime.Now; alarm.MESSAGE_STATUS = 0; alarm.ACTIVE = true; alarm.DEVICE_CODE = session.MacID; alarm.DEVICE_TYPE_NAME = "燃气智能监测终端"; alarms.Add(alarm); //增加浓度超限设备运行日志thc20150610 Model.DeviceLogInfo log = new Model.DeviceLogInfo(); log.DEVICE_ID = session.ID; log.MESSAGE = "燃气浓度超限报警!"; log.OPERATETYPE = "报警数据上报"; log.LOGTIME = DateTime.Now; new BLL.DeviceLog().insert(log); } if (float.Parse(temperature) != 0) { Model.AlarmRecordInfo alarm = new Model.AlarmRecordInfo(); alarm.RECORDCODE = "ALARM_XT_TEMPERATURE_" + devId + "_" + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss_fff"); // alarm.MESSAGE = msg.Replace("@devid", devId).Replace("@itemname", "燃气温度") // .Replace("@itemvalue", temperature).Replace("@time", date.ToString()); alarm.ITEMNAME = "温度超限"; alarm.MESSAGE = alarm.ITEMNAME; alarm.ITEMVALUE = temperature; alarm.DEVICE_ID = (int)session.ID; alarm.RECORDDATE = DateTime.Now; alarm.MESSAGE_STATUS = 0; alarm.ACTIVE = true; alarm.DEVICE_CODE = session.MacID; alarm.DEVICE_TYPE_NAME = "燃气智能监测终端"; alarms.Add(alarm); //增加温度超限设备运行日志thc20150610 Model.DeviceLogInfo log = new Model.DeviceLogInfo(); log.DEVICE_ID = session.ID; log.MESSAGE = "燃气温度超限报警!"; log.OPERATETYPE = "报警数据上报"; log.LOGTIME = DateTime.Now; new BLL.DeviceLog().insert(log); } if (float.Parse(cell) != 0) { Model.AlarmRecordInfo alarm = new Model.AlarmRecordInfo(); alarm.RECORDCODE = "ALARM_XT_CELL_" + devId + "_" + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss_fff"); // alarm.MESSAGE = msg.Replace("@devid", devId).Replace("@itemname", "电池电量") // .Replace("@itemvalue", cell).Replace("@time", date.ToString()); alarm.ITEMNAME = "电量超限"; alarm.MESSAGE = alarm.ITEMNAME; alarm.ITEMVALUE = cell; alarm.DEVICE_ID = (int)session.ID; alarm.RECORDDATE = DateTime.Now; alarm.MESSAGE_STATUS = 0; alarm.ACTIVE = true; alarm.DEVICE_CODE = session.MacID; alarm.DEVICE_TYPE_NAME = "燃气智能监测终端"; alarms.Add(alarm); } new BLL.AlarmRecord().insert(alarms); //发送反馈信息 byte[] first = { 0x7B, 0x89, 0x00, 0x11, 0x00, 0x0E }; byte[] second = { 0x01, 0x10, 0x00, 0x2D, 0x00, 0x10 }; byte[] modBusData = new byte[first.Length + sim.Length + second.Length]; first.CopyTo(modBusData, 0); sim.CopyTo(modBusData, first.Length); second.CopyTo(modBusData, first.Length + sim.Length); byte[] crcData = Utility.CodeUtils.getCrcByModBusData(modBusData); byte[] resp = new byte[modBusData.Length + crcData.Length]; modBusData.CopyTo(resp, 0); crcData.CopyTo(resp, modBusData.Length); session.Send(resp, 0, resp.Length); session.Logger.Info("报警主动上报已确认!" + BitConverter.ToString(body, 0, body.Length)); } catch (Exception e) { 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()); } }
public override void ExecuteCommand(WSSession session, StringRequestInfo requestInfo) { try { //SewAlarmData:设备ID,上传时间,CO数据,O2氧气数据,H2S数据,可燃气体数据\r\n session.Logger.Info("污水报警数据上传!"); session.Logger.Info(requestInfo.Body); string[] bt = requestInfo.Body.Split(','); if (string.IsNullOrEmpty(session.MacID)) { session.MacID = bt[0]; } List <Model.AlarmRecordInfo> alarms = new List <Model.AlarmRecordInfo>(); //TODO LIST:根据李雨龙需求,修改可能发生的4个报警记录合并为一条报警记录 // 一氧化碳、硫化氢、氧气、甲烷 Model.AlarmRecordInfo alarm = new Model.AlarmRecordInfo(); alarm.RECORDCODE = "WS_ALARM_H2S_" + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss_fff"); alarm.MESSAGE = "有害气体超标"; alarm.ITEMNAME = "FIREGAS"; alarm.DEVICE_ID = session.ID; alarm.DEVICE_CODE = session.MacID; alarm.MESSAGE_STATUS = 0; alarm.ACTIVE = true; string stime = bt[1]; 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); alarm.RECORDDATE = Convert.ToDateTime(sdate); alarm.DEVICE_TYPE_NAME = "有害气体监测仪"; string result = ""; double coAlarm = Convert.ToDouble(bt[2]) > 50.0?Convert.ToDouble(bt[2]):0; double o2Alarm = Convert.ToDouble(bt[3]) > 18 && Convert.ToDouble(bt[3]) < 23 ? 0 : Convert.ToDouble(bt[3]); double h2sAlarm = Convert.ToDouble(bt[4]) > 10.0 ? Convert.ToDouble(bt[4]) : 0; double firegasAlarm = Convert.ToDouble(bt[5]) > 2 ? Convert.ToDouble(bt[5]) : 0; result = coAlarm + "," + h2sAlarm + "," + o2Alarm + "," + firegasAlarm; alarm.ITEMVALUE = result; alarms.Add(alarm); /* * if (Convert.ToDouble(bt[3]) > 0) * { * Model.AlarmRecordInfo alarm = new Model.AlarmRecordInfo(); * alarm.RECORDCODE = "WS_ALARM_CO_" + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss_fff"); * //alarm.MESSAGE = "污水一氧化碳报警:【值:" + bt[3] + "】【时间:"+bt[1] + "】"; * alarm.MESSAGE = "CO超标"; * alarm.ITEMNAME = "CO"; * alarm.ITEMVALUE = bt[3]; * alarm.DEVICE_ID = session.ID; * alarm.MESSAGE_STATUS = false; * alarm.ACTIVE = true; * alarm.DEVICE_CODE = session.MacID; * alarm.DEVICE_TYPE_NAME = "有害气体监测仪"; * alarms.Add(alarm); * * //增加CO气体浓度报警设备运行日志thc20150610 * Model.DeviceLogInfo log = new Model.DeviceLogInfo(); * log.DEVICE_ID = session.ID; * log.MESSAGE = "CO浓度超限!"; * log.OPERATETYPE = "有害气体数据上报"; * log.LOGTIME = DateTime.Now; * new BLL.DeviceLog().insert(log); * } * if (Convert.ToDouble(bt[4]) > 0) * { * Model.AlarmRecordInfo alarm = new Model.AlarmRecordInfo(); * alarm.RECORDCODE = "WS_ALARM_O2_" + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss_fff"); * // alarm.MESSAGE = "污水氧气报警:【值:" + bt[3] + "】【时间:"+bt[1] + "】"; * alarm.MESSAGE = "氧气过低"; * alarm.ITEMNAME = "O2"; * alarm.ITEMVALUE = bt[4]; * alarm.DEVICE_ID = session.ID; * alarm.MESSAGE_STATUS = false; * alarm.ACTIVE = true; * alarm.DEVICE_CODE = session.MacID; * alarm.DEVICE_TYPE_NAME = "有害气体监测仪"; * alarms.Add(alarm); * * //增加O2气体浓度报警设备运行日志thc20150610 * Model.DeviceLogInfo log = new Model.DeviceLogInfo(); * log.DEVICE_ID = session.ID; * log.MESSAGE = "O2浓度超限!"; * log.OPERATETYPE = "有害气体数据上报"; * log.LOGTIME = DateTime.Now; * new BLL.DeviceLog().insert(log); * } * if (Convert.ToDouble(bt[5]) > 0) * { * Model.AlarmRecordInfo alarm = new Model.AlarmRecordInfo(); * alarm.RECORDCODE = "WS_ALARM_H2S_" + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss_fff"); * // alarm.MESSAGE = "污水H2S报警:【值:" + bt[4] + "】【时间:" +bt[1] + "】"; * alarm.MESSAGE = "H2S超标"; * alarm.ITEMNAME = "H2S"; * alarm.ITEMVALUE = bt[5]; * alarm.DEVICE_ID = session.ID; * alarm.MESSAGE_STATUS = false; * alarm.ACTIVE = true; * alarm.DEVICE_CODE = session.MacID; * alarm.DEVICE_TYPE_NAME = "有害气体监测仪"; * alarms.Add(alarm); * * //增加H2S气体浓度报警设备运行日志thc20150610 * Model.DeviceLogInfo log = new Model.DeviceLogInfo(); * log.DEVICE_ID = session.ID; * log.MESSAGE = "H2S浓度超限!"; * log.OPERATETYPE = "有害气体数据上报"; * log.LOGTIME = DateTime.Now; * new BLL.DeviceLog().insert(log); * } * * if (Convert.ToDouble(bt[6]) > 0) * { * Model.AlarmRecordInfo alarm = new Model.AlarmRecordInfo(); * alarm.RECORDCODE = "WS_ALARM_H2S_" + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss_fff"); * // alarm.MESSAGE = "污水可燃气体报警:【值:" + bt[5] + "】【时间:" + bt[1] + "】"; * alarm.MESSAGE = "甲烷超标"; * alarm.ITEMNAME = "FIREGAS"; * alarm.ITEMVALUE = bt[6]; * alarm.DEVICE_ID = session.ID; * alarm.DEVICE_CODE = session.MacID; * alarm.MESSAGE_STATUS = false; * alarm.ACTIVE = true; * alarm.DEVICE_TYPE_NAME = "有害气体监测仪"; * alarms.Add(alarm); * * //增加可燃气体报警设备运行日志thc20150610 * Model.DeviceLogInfo log = new Model.DeviceLogInfo(); * log.DEVICE_ID = session.ID; * log.MESSAGE = "可燃气体浓度超限!"; * log.OPERATETYPE = "有害气体数据上报"; * log.LOGTIME = DateTime.Now; * new BLL.DeviceLog().insert(log); * } **/ new BLL.AlarmRecord().insert(alarms); Model.DeviceLogInfo log = new Model.DeviceLogInfo(); log.DEVICE_ID = session.ID; log.MESSAGE = "有害气体浓度超标!"; log.OPERATETYPE = "有害气体数据上报"; log.LOGTIME = DateTime.Now; new BLL.DeviceLog().insert(log); //send the success cmd string sdata0 = "SewAlarmData:success"; 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); } catch (Exception e) { session.Logger.Error("污水报警数据保存异常!"); session.Logger.Error(requestInfo.Body); session.Logger.Error(e.ToString()); } }
public void saveGXPressAlarm(Model.AlarmRecordInfo alarm) { IDAL.IAlarmRecord dal = SensorHub.DALFactory.AlarmRecord.Create(); dal.saveGXAlarm(alarm); }
/// <summary> /// An internal function to bind values parameters for insert /// </summary> /// <param name="parms">Database parameters</param> /// <param name="noise">Values to bind to parameters</param> private void SetAdapterParameters(OracleParameter[] parms, Model.AlarmRecordInfo alarm) { if (null != alarm.DEVICE_CODE) { parms[0].Value = alarm.DEVICE_CODE; } else { parms[0].Value = DBNull.Value; } if (null != alarm.DEVICE_TYPE_NAME) { parms[1].Value = alarm.DEVICE_TYPE_NAME; } else { parms[1].Value = DBNull.Value; } if (null != alarm.RECORDCODE) { parms[2].Value = alarm.RECORDCODE; } else { parms[2].Value = DBNull.Value; } if (null != alarm.MESSAGE) { parms[3].Value = alarm.MESSAGE; } else { parms[3].Value = DBNull.Value; } if (null != alarm.ITEMNAME) { parms[4].Value = alarm.ITEMNAME; } else { parms[4].Value = DBNull.Value; } if (null != alarm.ITEMVALUE) { parms[5].Value = alarm.ITEMVALUE; } else { parms[5].Value = DBNull.Value; } if (null != alarm.DEVICE_ID) { parms[6].Value = alarm.DEVICE_ID; } else { parms[6].Value = DBNull.Value; } if (null != alarm.RECORDDATE) { parms[7].Value = alarm.RECORDDATE; } else { parms[7].Value = DBNull.Value; } if (null != alarm.MESSAGE_STATUS) { parms[8].Value = alarm.MESSAGE_STATUS; } else { parms[8].Value = DBNull.Value; } if (null != alarm.ACTIVE) { parms[9].Value = alarm.ACTIVE; } else { parms[9].Value = DBNull.Value; } }