Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        /// <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);
        }