示例#1
0
        /*以后这个Consumer可能作为独立模块,所以把所有内容都内聚在这个cs文件中*/
        public FsMessage GetOverRangeWarningMessage(Sensor sensor, string warningContent)
        {
            var msg = new RequestWarningReceivedMessage
            {
                Id             = Guid.NewGuid(),
                StructId       = (int)sensor.StructId,
                DeviceTypeId   = 2,
                DeviceId       = (int)sensor.SensorID,
                WarningTypeId  = ((int)Errors.ERR_OUT_RANGE).ToString(),
                WarningTime    = DateTime.Now,
                DateTime       = DateTime.Now,
                WarningContent = string.Format("传感器:{0}-产品型号:{1}:{2}", sensor.Name, sensor.ProductCode, warningContent)
            };
            var warningmsg = new FsMessage
            {
                Header = new FsMessageHeader
                {
                    A = "PUT",
                    R = "/warning/sensor",
                    U = Guid.NewGuid(),
                    T = Guid.NewGuid(),
                    D = _warningAppName,
                    M = "Warning"
                },
                Body = JsonConvert.SerializeObject(msg)
            };

            return(warningmsg);
        }
示例#2
0
        public void TestJsonTORequestWarningReceivedMessage()
        {
            var time = DateTime.Now;
            var msg  = new RequestWarningReceivedMessage
            {
                Id             = Guid.NewGuid(),
                WarningTypeId  = "105",
                StructId       = 20,
                DeviceTypeId   = 2,
                DeviceId       = 150,
                WarningContent = "传感器设备产生告警",
                WarningTime    = time,
                DateTime       = time
            };
            var fsmsg = new FsMessage {
                Body = JObject.FromObject(msg)
            };
            var msg2 = JsonConvert.DeserializeObject <RequestWarningReceivedMessage>(fsmsg.Body.ToString());

            Assert.AreEqual(msg.Id, msg2.Id);
            Assert.AreEqual(msg.WarningTypeId, msg2.WarningTypeId);
            Assert.AreEqual(msg.StructId, msg2.StructId);
            Assert.AreEqual(msg.DeviceTypeId, msg2.DeviceTypeId);
            Assert.AreEqual(msg.DeviceId, msg2.DeviceId);
            Assert.AreEqual(msg.WarningContent, msg2.WarningContent);
            Assert.AreEqual(msg.WarningTime, msg2.WarningTime);
            Assert.AreEqual(msg.DateTime, msg2.DateTime);
        }
示例#3
0
        /// <summary>
        /// 发送传感器阈值告警
        /// </summary>
        /// <param name="sensorId">传感器编号</param>
        /// <param name="structId"></param>
        /// <param name="thresholdAlarm"></param>
        public static void SendWarning(int sensorId, int structId, ThresholdAlarm thresholdAlarm)
        {
            var msg = new RequestWarningReceivedMessage
            {
                Id             = Guid.NewGuid(),
                StructId       = structId,
                DeviceTypeId   = DEVICETYPEID,
                DeviceId       = sensorId,
                WarningTypeId  = GetWarningTypeId(thresholdAlarm.AlarmDetails.Min(d => d.ThresholdLevel)),
                WarningTime    = DateTime.Now,
                WarningContent =
                    thresholdAlarm.ToString(),
                DateTime = DateTime.Now
            };

            var warningMsg = new FsMessage
            {
                Header = new FsMessageHeader
                {
                    A = "PUT",
                    R = "/warning/sensor",
                    U = Guid.NewGuid(),
                    T = Guid.NewGuid(),
                    D = WarningAppName,
                    M = "Warning"
                },
                Body = JsonConvert.SerializeObject(msg)
            };

            Service.Push(warningMsg.Header.D, warningMsg);
        }
示例#4
0
        public static int SaveWarningMsg(RequestWarningReceivedMessage msg, int warningstatus, int dealflag)
        {
            string sqlstr =
                string.Format(
                    "insert into T_WARNING_SENSOR (WarningTypeId, StructId, DeviceTypeId, DeviceId, Content, Time,WarningStatus,DealFlag) values ('{0}',{1},{2},{3},'{4}','{5}',{6},{7})",
                    msg.WarningTypeId, msg.StructId, msg.DeviceTypeId, msg.DeviceId, msg.WarningContent,
                    msg.WarningTime.ToString("yyyy-MM-dd HH:mm:ss.fff"), warningstatus, dealflag);

            return(DbHelperSQL.ExecuteSql(sqlstr));
        }
示例#5
0
        public FsMessage GetSensorMsg(SensorAcqResult result)
        {
            try
            {
                result.Sensor = DbAccessor.DbConfigAccessor.GetSensorInfo(result.Sensor.SensorID);
            }
            catch (Exception e)
            {
            }
            if (result.ErrorCode == (int)Errors.SUCCESS || result.ErrorCode == (int)Errors.ERR_DEFAULT ||
                result.ErrorCode == (int)Errors.ERR_COMPILED || result.ErrorCode == (int)Errors.ERR_CREATE_CMD)
            {
                this._log.WarnFormat("[ StructId:{2},SID:{3} -Location:{4}] error code :{0}, msg :{1}",
                                     (Errors)result.ErrorCode, EnumHelper.GetDescription((Errors)result.ErrorCode),
                                     result.Sensor.StructId, result.Sensor.SensorID, result.Sensor.Name);
                return(null);
            }

            var msg = new RequestWarningReceivedMessage
            {
                Id             = Guid.NewGuid(),
                StructId       = (int)result.Sensor.StructId,
                DeviceTypeId   = SENSORDEVICETYPEID,
                DeviceId       = (int)result.Sensor.SensorID,
                WarningTypeId  = result.ErrorCode.ToString(),
                WarningTime    = DateTime.Now,
                DateTime       = DateTime.Now,
                WarningContent = EnumHelper.GetDescription((Errors)result.ErrorCode) //string.Format(result.Response == null ? "采集超时" : result.ErrorMsg)
            };
            var warningmsg = new FsMessage
            {
                Header = new FsMessageHeader
                {
                    A = "PUT",
                    R = "/warning/sensor",
                    U = Guid.NewGuid(),
                    T = Guid.NewGuid(),
                    D = _warningAppName,
                    M = "Warning"
                },
                Body = JsonConvert.SerializeObject(msg)
            };

            return(warningmsg);
        }