private DataItem getCYWriteDataAskItem(byte[] buffer) { IdentityCode identityCode = MyDataConvert.get数据表示符(buffer); DataItem item = null; switch (identityCode) { case IdentityCode.设置服务器信息: item = new DataItem_C104(buffer); break; case IdentityCode.设置上传周期: item = new DataItem_C105(buffer); break; case IdentityCode.设置切断报警参数: item = new DataItem_C103(buffer); break; case IdentityCode.修正表数据: item = new DataItem_C102(buffer); break; case IdentityCode.设置公称流量: item = new DataItem_C101(buffer); break; case IdentityCode.换表: item = new DataItem_C107(buffer); break; } return(item); }
/// <summary> /// 设置报警参数任务 /// </summary> /// <param name="info"></param> /// <param name="meter"></param> /// <returns></returns> public string SetWariningParameter(IoT_SetAlarm info, IoT_AlarmMeter meter) { string result = ""; try { MongoDBHelper <Task> mongo_task = new MongoDBHelper <Task>(); Task task = new Task(); task.MeterMac = meter.MeterNo.Trim(); task.TaskDate = QuShi.getDate(); task.TaskID = Guid.NewGuid().ToString(); //用于和指令进行进行关联 task.TaskState = TaskState.Waitting; task.TaskType = TaskType.TaskType_设置报警参数; // //写任务 mongo_task.Insert(CollectionNameDefine.TaskCollectionName, task); meter.TaskID = task.TaskID; //3.设置报警参数 DataItem_C103 item_C103 = new DataItem_C103(Convert.ToByte(new Random().Next(0, 255)), new WaringSwitchSign(info.SwitchTag)); item_C103.长期未与服务器通讯报警时间 = Convert.ToByte(info.Par1); item_C103.燃气漏泄切断报警时间 = Convert.ToByte(info.Par2); item_C103.燃气流量过载切断报警时间 = Convert.ToByte(info.Par3); item_C103.异常大流量值 = MyDataConvert.TwoBCDStrToDecimal(info.Par4); item_C103.异常大流量切断报警时间 = Convert.ToByte(info.Par5); item_C103.异常微小流量切断报警时间 = Convert.ToByte(info.Par6); item_C103.持续流量切断报警时间 = Convert.ToByte(info.Par7); item_C103.长期未使用切断报警时间 = Convert.ToByte(info.Par8); //item_C103.长期未使用切断报警时间 = Convert.ToByte(info.Par7); Command cmd = new Command(); cmd.TaskID = task.TaskID; cmd.Identification = ((UInt16)item_C103.IdentityCode).ToString("X2"); cmd.ControlCode = (byte)ControlCode.CYWriteData;//设置参数 cmd.DataLength = Convert.ToByte(item_C103.Length); cmd.DataCommand = MyDataConvert.BytesToHexStr(item_C103.GetBytes()); cmd.Order = 3; CommandDA.Insert(cmd); } catch (Exception e) { result = e.Message; } return(result); }