public AlarmRuleInfo getAlarmRuleByDevcode(String devCode) { IAlarmRule alarmRuleDal = SensorHub.DALFactory.AlarmRule.Create(); AlarmRuleInfo alarmRuleInfo = alarmRuleDal.getAlarmRule(devCode); return(alarmRuleInfo); }
public void AddAlarmRule(AlarmRuleInfo alarmRuleInfo) { string connectionString_ATL = @"server=127.0.0.1;database=IFactory;uid=root;pwd=root;Persist Security Info=True;Charset=utf8;"; using (MySqlConnection connatl = new MySqlConnection(connectionString_ATL)) { connatl.Open(); IDbTransaction Idbtran = connatl.BeginTransaction(); try { string sql = string.Format( @"insert alarm_rule (rule_did, alarm_type_did, solution_did, solution_image_did, alarm_location_image_did , craft_did, unit_did, alarm_content, alarm_reason) values('{0}', '{1}', {2}, {3}, {4}, {5}, {6}, '{7}', '{8}');" , alarmRuleInfo.RuleDID, alarmRuleInfo.AlarmTypeDID, alarmRuleInfo.SolutionDID, alarmRuleInfo.SolutionImageDID, alarmRuleInfo.AlarmLocationImageDID , alarmRuleInfo.CraftDID, alarmRuleInfo.UnitDID, alarmRuleInfo.AlarmContent, alarmRuleInfo.AlarmReason); MySqlCommand cmd = new MySqlCommand(sql, connatl); cmd.ExecuteNonQuery(); Idbtran.Commit(); } catch { Idbtran.Rollback(); } finally { connatl.Close(); } } }
public AlarmRecordInfo getAlarmRecordByTime(AlarmRuleInfo alarmRuleInfo, SlNoiseInfo slNoiseInfo) { if (alarmRuleInfo != null) { string days = System.Configuration.ConfigurationSettings.AppSettings["SL_ALARM_DAYS"]; int num_days = Convert.ToInt32(days); float curValue = float.Parse(slNoiseInfo.DENSEDATA); if (alarmRuleInfo.HighValue != 0 && curValue > alarmRuleInfo.HighValue) { IDevice deviceDal = SensorHub.DALFactory.Device.Create(); AlarmRecordInfo alarmRecordInfo = new AlarmRecordInfo(); alarmRecordInfo.ACTIVE = true; alarmRecordInfo.DEVICE_CODE = slNoiseInfo.SRCID; alarmRecordInfo.DEVICE_ID = alarmRuleInfo.DeviceId; alarmRecordInfo.DEVICE_TYPE_NAME = deviceDal.getDevTypeByCode(slNoiseInfo.SRCID); alarmRecordInfo.ITEMNAME = "噪声值"; alarmRecordInfo.ITEMVALUE = curValue.ToString(); alarmRecordInfo.MESSAGE_STATUS = 0; alarmRecordInfo.RECORDCODE = ""; alarmRecordInfo.RECORDDATE = System.DateTime.Now; alarmRecordInfo.MESSAGE = "管线泄漏"; return(alarmRecordInfo); //TODO LIST:查询过去7天的报警记录 /* * DateTime endTime = slNoiseInfo.UPTIME; * DateTime startTime = endTime.AddDays(-num_days); * * ISlNoise slNoiseDal = SensorHub.DALFactory.SlNoise.Create(); * * int nums = slNoiseDal.getAlarmNumsByArrange(alarmRuleInfo.HighValue, * startTime, endTime, slNoiseInfo.SRCID); * if (nums == num_days) * { * IDevice deviceDal = SensorHub.DALFactory.Device.Create(); * * AlarmRecordInfo alarmRecordInfo = new AlarmRecordInfo(); * alarmRecordInfo.ACTIVE = true; * alarmRecordInfo.DEVICE_CODE = slNoiseInfo.SRCID; * alarmRecordInfo.DEVICE_ID = alarmRuleInfo.DeviceId; * alarmRecordInfo.DEVICE_TYPE_NAME = deviceDal.getDevTypeByCode(slNoiseInfo.SRCID); * alarmRecordInfo.ITEMNAME = "噪声值"; * alarmRecordInfo.ITEMVALUE = curValue.ToString(); * alarmRecordInfo.MESSAGE_STATUS = false; * alarmRecordInfo.RECORDCODE = ""; * alarmRecordInfo.RECORDDATE = System.DateTime.Now; * alarmRecordInfo.MESSAGE = "管线泄漏"; * return alarmRecordInfo; * } * */ } } return(null); }
public void AddImagePath(AlarmRuleInfo alarmRuleInfo) { Database equipDB = dataProvider.EQUIPDataBase; string sql = string.Format( @"insert solution_image (path) values('{0}');" , alarmRuleInfo.SolutionImage.Path); string sql2 = string.Format( @"insert alarm_location_image (path) values('{0}');" , alarmRuleInfo.AlarmLocationImage.Path); equipDB.ExecuteNonQuery(CommandType.Text, sql + sql2); }
public AlarmRuleSaveResponse Execute(AlarmRuleSaveRequest request) { AlarmRuleSaveResponse ruleSaveResponse = new AlarmRuleSaveResponse(); if (string.IsNullOrEmpty(request.AlarmRuleDID)) { AlarmRuleInfo alarmRuleInfo = new AlarmRuleInfo(); FacilityInfo facility = ServiceHelper.LoadService <IProductionService>().GetFacility(request.CraftDID); alarmRuleInfo.RuleDID = ServiceHelper.LoadService <IAlarmService>().GetNextAlarmRuleDID(facility.Process.Craft.CraftNO); alarmRuleInfo.FacilityDID = facility.FacilityDID; alarmRuleInfo.UnitDID = facility.ProcessDID; alarmRuleInfo.CraftDID = facility.Process.CraftDID; alarmRuleInfo.UnitDID = request.UnitDID; alarmRuleInfo.AlarmContent = request.AlarmContent; alarmRuleInfo.AlarmReason = request.AlarmReason; alarmRuleInfo.Solution = new SolutionInfo() { Content = request.SolutionText }; alarmRuleInfo.AlarmTypeDID = request.AlarmTypeDID; string str1 = "Upload/SolutionImages/"; string str2 = alarmRuleInfo.RuleDID + ".jpg"; if (!Directory.Exists(this.Server.MapPath("~/" + str1))) { Directory.CreateDirectory(this.Server.MapPath("~/" + str1)); } ImageHelper.SaveImage(ImageHelper.BytesToImage(request.GetFileParameters()["SolutionImage"].GetContent()), this.Server.MapPath("~/" + str1 + str2)); string str3 = "Upload/AlarmLocationImages/"; string str4 = alarmRuleInfo.RuleDID + ".jpg"; if (!Directory.Exists(this.Server.MapPath("~/" + str3))) { Directory.CreateDirectory(this.Server.MapPath("~/" + str3)); } ImageHelper.SaveImage(ImageHelper.BytesToImage(request.GetFileParameters()["AlarmLocationImage"].GetContent()), this.Server.MapPath("~/" + str3 + str4)); alarmRuleInfo.AlarmLocationImage = new AlarmLocationImageInfo() { Path = str3 + str4 }; alarmRuleInfo.SolutionImage = new SolutionImageInfo() { Path = str1 + str2 }; ServiceHelper.LoadService <IAlarmService>().AddAlarmRule(alarmRuleInfo); ServiceHelper.LoadService <IAlarmService>().SaveAlarmRuleFields(alarmRuleInfo.RuleDID, request.Fields); ruleSaveResponse.AlarmRuleDID = alarmRuleInfo.RuleDID; } return(ruleSaveResponse); }
public void saveAlarmInfo(List <Model.DjLiquidInfo> djs) { IAlarmRule alarmRuleDal = SensorHub.DALFactory.AlarmRule.Create(); foreach (Model.DjLiquidInfo dj in djs) { AlarmRuleInfo alarmRuleInfo = alarmRuleDal.getAlarmRule(dj.DEVID); AlarmRecordInfo alarmRecordInfo = getAlarmRecord(alarmRuleInfo, dj); if (null != alarmRecordInfo) { List <int> devStates = new List <int>(); devStates.Add((int)LiquidAlarmEnum.OVER_THRESH); new BLL.AlarmRecord().deleteByMessage(alarmRecordInfo.DEVICE_CODE, devStates); new BLL.AlarmRecord().save(alarmRecordInfo); } } }
private AlarmRecordInfo getAlarmRecord(AlarmRuleInfo alarmRuleInfo, DjNoiseInfo slNoiseInfo) { if (null != alarmRuleInfo) { float curValue = float.Parse(slNoiseInfo.DDATA); IDevice deviceDal = SensorHub.DALFactory.Device.Create(); IDjNoise slNoiseDal = SensorHub.DALFactory.DjNoise.Create(); AlarmRecordInfo alarmRecordInfo = new AlarmRecordInfo(); alarmRecordInfo.ACTIVE = true; alarmRecordInfo.DEVICE_CODE = slNoiseInfo.DEVID; alarmRecordInfo.DEVICE_ID = alarmRuleInfo.DeviceId; alarmRecordInfo.DEVICE_TYPE_NAME = deviceDal.getDevTypeByCode(slNoiseInfo.DEVID); alarmRecordInfo.ITEMNAME = "噪声值"; alarmRecordInfo.ITEMVALUE = curValue.ToString(); alarmRecordInfo.MESSAGE_STATUS = 0; alarmRecordInfo.RECORDCODE = ""; alarmRecordInfo.RECORDDATE = System.DateTime.Now; if (alarmRuleInfo.HighValue != 0 && curValue > alarmRuleInfo.HighValue) { alarmRecordInfo.MESSAGE = "管线泄漏"; return(alarmRecordInfo); } if (alarmRuleInfo.LowValue != 0 && curValue < alarmRuleInfo.LowValue) { alarmRecordInfo.MESSAGE = "噪声低于下限"; //return alarmRecordInfo; return(null); } if (alarmRuleInfo.Saltation != 0) { float lastData = slNoiseDal.getLastData(slNoiseInfo); if (-100 != lastData && Math.Abs(curValue - lastData) > alarmRuleInfo.Saltation) { alarmRecordInfo.MESSAGE = "噪声异常"; // return alarmRecordInfo; return(null); } } } return(null); }
public void saveAlarmInfo(List <Model.DjPressInfo> djs) { IAlarmRule alarmRuleDal = SensorHub.DALFactory.AlarmRule.Create(); // IAlarmRecord alarmRecordDal = SensorHub.DALFactory.AlarmRecord.Create(); AlarmRecord alarmRecordDal = new SensorHub.BLL.AlarmRecord(); List <Model.AlarmRecordInfo> list = new List <Model.AlarmRecordInfo>(); foreach (Model.DjPressInfo dj in djs) { AlarmRuleInfo alarmRuleInfo = alarmRuleDal.getAlarmRule(dj.DEVID, PRESS_TYPE); AlarmRecordInfo alarmRecordInfo = getAlarmRecord(alarmRuleInfo, dj); if (null != alarmRecordInfo) { list.Add(alarmRecordInfo); } } if (list.Count > 0) { alarmRecordDal.insert(list); } }
private AlarmRecordInfo getAlarmRecord(AlarmRuleInfo alarmRuleInfo, DjLiquidInfo liquidInfo) { if (null != alarmRuleInfo) { float curValue = float.Parse(liquidInfo.LIQUIDDATA); IDevice deviceDal = SensorHub.DALFactory.Device.Create(); IDjLiquid liquidDal = SensorHub.DALFactory.DjLiquid.Create(); AlarmRecordInfo alarmRecordInfo = new AlarmRecordInfo(); alarmRecordInfo.ACTIVE = true; alarmRecordInfo.DEVICE_CODE = liquidInfo.DEVID; alarmRecordInfo.DEVICE_ID = alarmRuleInfo.DeviceId; alarmRecordInfo.DEVICE_TYPE_NAME = deviceDal.getDevTypeByCode(liquidInfo.DEVID); alarmRecordInfo.ITEMNAME = "液位值"; alarmRecordInfo.ITEMVALUE = curValue.ToString(); alarmRecordInfo.MESSAGE_STATUS = 0; alarmRecordInfo.MESSAGE = (int)LiquidAlarmEnum.OVER_THRESH + ""; alarmRecordInfo.RECORDCODE = ""; alarmRecordInfo.RECORDDATE = System.DateTime.Now; if (alarmRuleInfo.HighValue != null && curValue > alarmRuleInfo.HighValue) { alarmRecordInfo.MESSAGE = (int)LiquidAlarmEnum.OVER_THRESH + ""; return(alarmRecordInfo); } if (alarmRuleInfo.Saltation != null) { float lastData = liquidDal.getLastData(liquidInfo); if (-1 != lastData && Math.Abs(curValue - lastData) > alarmRuleInfo.Saltation) { alarmRecordInfo.MESSAGE = "液位突变"; // return alarmRecordInfo; return(null); } } } return(null); }
private AlarmRecordInfo getAlarmRecord(AlarmRuleInfo alarmRuleInfo, Model.DjPressInfo pressInfo) { if (null != alarmRuleInfo) { float curValue = float.Parse(pressInfo.PRESSDATA); IDevice deviceDal = SensorHub.DALFactory.Device.Create(); IDjPress pressDal = SensorHub.DALFactory.DjPress.Create(); AlarmRecordInfo alarmRecordInfo = new AlarmRecordInfo(); alarmRecordInfo.ACTIVE = true; alarmRecordInfo.DEVICE_CODE = pressInfo.DEVID; alarmRecordInfo.DEVICE_ID = alarmRuleInfo.DeviceId; alarmRecordInfo.DEVICE_TYPE_NAME = deviceDal.getDevTypeByCode(pressInfo.DEVID); alarmRecordInfo.ITEMNAME = "压力值"; alarmRecordInfo.ITEMVALUE = curValue.ToString(); alarmRecordInfo.MESSAGE_STATUS = 0; alarmRecordInfo.RECORDCODE = ""; alarmRecordInfo.RECORDDATE = System.DateTime.Now; if (alarmRuleInfo.HighValue != 0 && curValue > alarmRuleInfo.HighValue) { alarmRecordInfo.MESSAGE = "压力超限"; return(alarmRecordInfo); } if (alarmRuleInfo.Saltation != 0) { float lastData = pressDal.getLastData(pressInfo); if (-1 != lastData && Math.Abs(curValue - lastData) > alarmRuleInfo.Saltation) { alarmRecordInfo.MESSAGE = "压力突变"; // return alarmRecordInfo; return(null); } } } return(null); }
private AlarmRecordInfo getAlarmRecord(AlarmRuleInfo alarmRuleInfo, Model.CasicTemp tempInfo) { if (null != alarmRuleInfo) { float curValue = float.Parse(tempInfo.Data); IDevice deviceDal = SensorHub.DALFactory.Device.Create(); ICasicTemp tempDal = SensorHub.DALFactory.CasicTemp.Create(); AlarmRecordInfo alarmRecordInfo = new AlarmRecordInfo(); alarmRecordInfo.ACTIVE = true; alarmRecordInfo.DEVICE_CODE = tempInfo.DEVCODE; alarmRecordInfo.DEVICE_ID = alarmRuleInfo.DeviceId; alarmRecordInfo.DEVICE_TYPE_NAME = deviceDal.getDevTypeByCode(tempInfo.DEVCODE); alarmRecordInfo.ITEMNAME = "温度值"; alarmRecordInfo.ITEMVALUE = curValue.ToString(); alarmRecordInfo.MESSAGE_STATUS = 0; alarmRecordInfo.RECORDCODE = ""; alarmRecordInfo.RECORDDATE = System.DateTime.Now; if (alarmRuleInfo.HighValue != 0 && curValue > alarmRuleInfo.HighValue) { alarmRecordInfo.MESSAGE = "温度超限"; return(alarmRecordInfo); } if (alarmRuleInfo.Saltation != 0) { float lastData = tempDal.getLastData(tempInfo); if (-1 != lastData && Math.Abs(curValue - lastData) > alarmRuleInfo.Saltation) { alarmRecordInfo.MESSAGE = "温度突变"; return(alarmRecordInfo); } } } return(null); }
public static AlarmRuleModel ToModel(this AlarmRuleInfo entity) { return(Mapper.Map <AlarmRuleInfo, AlarmRuleModel>(entity)); }
private bool IsOverMaxSLAlarm(String devCode, AlarmRuleInfo alarmRuleInfo) { SLNoiseCount slNoiseCount = new SLNoiseCount(); return(slNoiseCount.IncrementSLNoiseAlarmCount(devCode, alarmRuleInfo)); }
public void UpdateAlarmRule(AlarmRuleInfo alarmRuleInfo) { this.DataContext.SaveChanges(); }
public void AddAlarmRule(AlarmRuleInfo alarmRuleInfo) { this.DataContext.AlarmRuleInfos.Add(alarmRuleInfo); this.DataContext.SaveChanges(); }
static void testLiquidConfig() { byte ss = byte.Parse(DateTime.Now.ToString("yy")); byte ss1 = byte.Parse(DateTime.Now.ToString("MM")); byte ss2 = byte.Parse(DateTime.Now.ToString("dd")); byte ss3 = byte.Parse(DateTime.Now.ToString("HH")); byte ss4 = byte.Parse(DateTime.Now.ToString("mm")); byte ss5 = byte.Parse(DateTime.Now.ToString("ss")); byte ss7 = byte.Parse("0" + ((int)DateTime.Now.DayOfWeek).ToString()); DeviceConfigInfo conf; conf = (new DeviceConfig()).GetDeviceConfByDeviceCodeAndSensorCode("112015090038", "000034"); if (conf != null) { string content = conf.FrameContent; string[] items = content.Split(new char[] { '#' }, StringSplitOptions.RemoveEmptyEntries); byte[] sendData = new byte[items.Length + 9 + 2];//补充2个字节,用于扩展报警界限 for (int i = 0; i < items.Length - 10; i++) { sendData[i + 9] = byte.Parse(items[i], System.Globalization.NumberStyles.HexNumber); } //修正报警规则信息 SensorHub.BLL.DjLiquid djBll = new SensorHub.BLL.DjLiquid(); AlarmRuleInfo rule = djBll.getAlarmRuleByDevcode("112015090038"); float highValue = rule != null ? rule.HighValue : 1000; byte[] btHighValue = BitConverter.GetBytes(highValue); sendData[9 + 10 + 0] = btHighValue[0]; sendData[9 + 10 + 1] = btHighValue[1]; sendData[9 + 10 + 2] = btHighValue[2]; sendData[9 + 10 + 3] = btHighValue[3]; // if (requestInfo.Parameters[0] == "50") // { //液位时间修正 sendData[21 + 2] = ss5; sendData[22 + 2] = ss4; sendData[23 + 2] = ss3; sendData[24 + 2] = ss7; sendData[25 + 2] = ss2; sendData[26 + 2] = ss1; sendData[27 + 2] = ss; sendData[27 + 2 + 1] = 0x03; // } sendData[0] = 0XAA; sendData[1] = 0X1D; sendData[2] = 0x00; sendData[3] = 0x00; sendData[4] = 0X03; sendData[5] = 0X00; sendData[6] = System.BitConverter.GetBytes(sendData.Length - 9)[0]; sendData[7] = 0X00; sendData[8] = 0X00; String crcIn = ""; for (int i = 0; i < sendData.Length; i++) { crcIn += sendData[i].ToString("X2"); } ushort crcOut = CodeUtils.QuickCRC16(crcIn, 0, crcIn.Length); byte[] crcOutByte = BitConverter.GetBytes(crcOut); sendData[7] = crcOutByte[1]; sendData[8] = crcOutByte[0]; } }
public void SaveZZAlarmInfo(List <Model.SlNoiseInfo> djsAll) { List <Model.SlNoiseInfo> djs = this.Filter(djsAll); if (djs.Count == 0) { return; } String devCode = djs[0].SRCID; IAlarmRule alarmRuleDal = SensorHub.DALFactory.AlarmRule.Create(); AlarmRuleInfo alarmRuleInfo = alarmRuleDal.getAlarmRule(devCode); if (alarmRuleInfo == null || alarmRuleInfo.HighValue == 0) { return; } AlarmRecord alarmRecordDal = new SensorHub.BLL.AlarmRecord(); //如果最新一条消息没报警的话就清楚报警 if (float.Parse(djs[djs.Count - 1].DENSEDATA) < alarmRuleInfo.HighValue) { alarmRecordDal.removeByDevCode(devCode); return; } //判断是否都超过报警 bool isAllOverThresh = true; foreach (SlNoiseInfo slNoiseInfo in djs) { if (float.Parse(slNoiseInfo.DENSEDATA) < alarmRuleInfo.HighValue) { isAllOverThresh = false; break; } } //如果超过连续报警次数,将最新的数据插入到报警列表中 if (isAllOverThresh && IsOverMaxSLAlarm(devCode, alarmRuleInfo)) { IDevice deviceDal = SensorHub.DALFactory.Device.Create(); AlarmRecordInfo alarmRecordInfo = new AlarmRecordInfo(); alarmRecordInfo.ACTIVE = true; alarmRecordInfo.DEVICE_CODE = devCode; alarmRecordInfo.DEVICE_ID = alarmRuleInfo.DeviceId; alarmRecordInfo.DEVICE_TYPE_NAME = deviceDal.getDevTypeByCode(devCode); alarmRecordInfo.ITEMNAME = "噪声值"; alarmRecordInfo.ITEMVALUE = djs[djs.Count - 1].DENSEDATA; alarmRecordInfo.MESSAGE_STATUS = 0; alarmRecordInfo.RECORDCODE = ""; alarmRecordInfo.RECORDDATE = System.DateTime.Now; alarmRecordInfo.MESSAGE = (int)SlNoiseAlarmEnum.OVER_THRESH + ""; List <int> devStates = new List <int>(); devStates.Add((int)SlNoiseAlarmEnum.OVER_THRESH); new BLL.AlarmRecord().deleteByMessage(alarmRecordInfo.DEVICE_CODE, devStates); List <Model.AlarmRecordInfo> list = new List <Model.AlarmRecordInfo>(); list.Add(alarmRecordInfo); alarmRecordDal.insert(list); } }
public override void ExecuteCommand(SZLiquidSession session, StringRequestInfo requestInfo) { try { session.Logger.Info("LSSETREQU:液位配置请求帧:" + requestInfo.Body); session.MacID = requestInfo.Parameters[5]; string address = requestInfo.Parameters[3]; byte add0 = byte.Parse(address.Substring(0, 2), System.Globalization.NumberStyles.HexNumber); byte add1 = byte.Parse(address.Substring(2, 2), System.Globalization.NumberStyles.HexNumber); byte add2 = byte.Parse(address.Substring(4, 2), System.Globalization.NumberStyles.HexNumber); byte ss = byte.Parse(DateTime.Now.ToString("yy")); byte ss1 = byte.Parse(DateTime.Now.ToString("MM")); byte ss2 = byte.Parse(DateTime.Now.ToString("dd")); byte ss3 = byte.Parse(DateTime.Now.ToString("HH")); byte ss4 = byte.Parse(DateTime.Now.ToString("mm")); byte ss5 = byte.Parse(DateTime.Now.ToString("ss")); byte ss7 = byte.Parse("0" + ((int)DateTime.Now.DayOfWeek).ToString()); BLL.DeviceLog bllLog = new DeviceLog(); BLL.Device bllDevice = new Device(); DeviceConfigInfo conf; conf = (new DeviceConfig()).GetDeviceConfByDeviceCodeAndSensorCode(session.MacID, "000034"); if (conf != null) { //状态传感配置信息 //50# 00#14 #01 #00#00#34# C1 #00#05 #00#00#00#00 #1.23 #2D#17#0F#04#0F#0A#0F#03# string content = conf.FrameContent; string[] items = content.Split(new char[] { '#' }, StringSplitOptions.RemoveEmptyEntries); //byte[] sendData = new byte[items.Length]; byte[] sendData = new byte[26];//固定26字节 //for (int i = 0; i < items.Length; i++) for (int i = 0; i < 10; i++) { sendData[i] = byte.Parse(items[i], System.Globalization.NumberStyles.HexNumber); } //TODO LIST:修正液位警界高度、探头安装高度、当前时间 BLL.DjLiquid djBll = new BLL.DjLiquid(); AlarmRuleInfo rule = djBll.getAlarmRuleByDevcode(session.MacID); float highValue = rule != null ? rule.HighValue : 1000; byte[] btHighValue = BitConverter.GetBytes(highValue); sendData[10 + 0] = btHighValue[0]; sendData[10 + 1] = btHighValue[1]; sendData[10 + 2] = btHighValue[2]; sendData[10 + 3] = btHighValue[3]; float height = float.Parse(items[14]); byte[] btHeight = BitConverter.GetBytes(height); sendData[14 + 0] = btHeight[0]; sendData[14 + 1] = btHeight[1]; sendData[14 + 2] = btHeight[2]; sendData[14 + 3] = btHeight[3]; if (requestInfo.Parameters[0] == "50") { //液位时间修正 sendData[18] = ss5; sendData[19] = ss4; sendData[20] = ss3; sendData[21] = ss7; sendData[22] = ss2; sendData[23] = ss1; sendData[24] = ss; sendData[25] = 0x03; } string head = "LSSETREQU:"; byte[] btHead = System.Text.Encoding.Default.GetBytes(head); byte[] result = new byte[sendData.Length + btHead.Length]; Buffer.BlockCopy(btHead, 0, result, 0, btHead.Length); Buffer.BlockCopy(sendData, 0, result, btHead.Length, sendData.Length); session.Send(result, 0, result.Length); // /* * String crcIn = ""; * for (int i = 0; i < sendData.Length; i++) * { * crcIn += sendData[i].ToString("X2"); * } * ushort crcOut = CodeUtils.QuickCRC16(crcIn, 0, crcIn.Length); * byte[] crcOutByte = BitConverter.GetBytes(crcOut); * sendData[7] = crcOutByte[1]; * sendData[8] = crcOutByte[0]; * **/ session.Logger.Info("成功下发液位配置帧:" + BitConverter.ToString(result)); session.LiquidConf = conf; session.LiquidConf.SendTime = DateTime.Now; Model.DeviceLogInfo log = new Model.DeviceLogInfo(); log.DEVICE_ID = Convert.ToInt32(bllDevice.getDeviceIdByCode(session.MacID)); log.MESSAGE = "液位数据配置:采集间隔:" + sendData[9] + "分钟"; log.OPERATETYPE = "下发"; log.LOGTIME = DateTime.Now; bllLog.insert(log); return; } //无配置信息处理发送校时帧 byte[] setTime = { 0x50, 0x00, 0x14, 0x01, 0x00, 0x00, 0x34, 0xC2, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ss5, ss4, ss3, ss7, ss2, ss1, ss, 0x03 }; string head0 = "LSSETREQU:"; byte[] btHead0 = System.Text.Encoding.Default.GetBytes(head0); byte[] result0 = new byte[setTime.Length + btHead0.Length]; Buffer.BlockCopy(btHead0, 0, result0, 0, btHead0.Length); Buffer.BlockCopy(setTime, 0, result0, btHead0.Length, setTime.Length); session.Send(result0, 0, result0.Length); session.Logger.Info("成功下发液位计校时帧:" + BitConverter.ToString(result0, 0)); } catch (Exception e) { session.Logger.Error(e.ToString()); } }
public AlarmRuleInfo getAlarmRule(String devCode) { using (OracleConnection conn = new OracleConnection(OracleHelper.ConnectionStringOrderDistributedTransaction)) { try { String SQL = " SELECT r.* " + " FROM ALARM_ALARM_RULE r, ALARM_DEVICE d " + " WHERE r.DEVICE_ID = d.DBID " + " and d.DEVCODE = :devCode "; OracleParameter[] oraParams = new OracleParameter[] { new OracleParameter(":devCode", devCode), }; DataTable dt = OracleHelper.ExecuteDataset(conn, CommandType.Text, SQL, oraParams).Tables[0]; if (dt.Rows.Count > 0) { AlarmRuleInfo alarmRuleInfo = new AlarmRuleInfo(); if (dt.Rows[0]["DBID"] != null) { alarmRuleInfo.Dbid = long.Parse(dt.Rows[0]["DBID"].ToString()); } if (dt.Rows[0]["HIGHVALUE"] != null) { alarmRuleInfo.HighValue = float.Parse(dt.Rows[0]["HIGHVALUE"].ToString()); } if (dt.Rows[0]["LOWVALUE"] != null) { alarmRuleInfo.LowValue = float.Parse(dt.Rows[0]["LOWVALUE"].ToString()); } if (dt.Rows[0]["OVERTIME"] != null) { alarmRuleInfo.Overtime = float.Parse(dt.Rows[0]["OVERTIME"].ToString()); } if (dt.Rows[0]["SALTATION"] != null) { alarmRuleInfo.Saltation = float.Parse(dt.Rows[0]["SALTATION"].ToString()); } if (dt.Rows[0]["SENSORCODE"] != null) { alarmRuleInfo.SensorCode = dt.Rows[0]["SENSORCODE"].ToString(); } if (dt.Rows[0]["DEVICE_ID"] != null) { alarmRuleInfo.DeviceId = int.Parse(dt.Rows[0]["DEVICE_ID"].ToString());; } return(alarmRuleInfo); } } catch (Exception e) { throw e; } } return(null); }
/* * private static int SL_CONTINUE_ALARM_COUNT = int.Parse(System.Configuration. * ConfigurationSettings.AppSettings["SL_CONTINUE_ALARM_COUNT"]); */ public bool IncrementSLNoiseAlarmCount(String devCode, AlarmRuleInfo alarmRuleInfo) { return(DALFactory.SLNoiseCount.Create().IncrementSLNoiseAlarmCount(devCode, (int)alarmRuleInfo.Overtime)); }