Example #1
0
            public void DoWork()
            {
                int index = 0;

                //while (true)
                while (index < LoopSize)
                {
                    //FsMessage msg = newMessage(string.Format("T1 msg {0},To Somone, from alarm.", index));
                    FsMessage msg = newMessage(string.Format("你好 {0},To Somone, from alarm.", index));
                    bus.Publish(Topic, msg.ToJson());
                    index++;
                }
            }
Example #2
0
 private void SensorChangedHandler(FsMessage msg, EtService service)
 {
     //string r = msg.Header.R;
     try
     {
         var senopera = ObjectDeserializeHelper.Json2SensorOperation(msg.Body.ToString());
         service.Dtm.UpdateSensorConfig(senopera);
     }
     catch (Exception ex)
     {
         _log.ErrorFormat("Update sensor info error :{0}", ex.Message);
     }
 }
Example #3
0
        private void ColInfoConfigChanged(FsMessage msg, DacService service)
        {
            string r = msg.Header.R;

            if (r.Contains("dtu"))
            {
                this.DtuChangedHandler(msg, service);
            }
            if (r.Contains("sensor"))
            {
                this.SensorChangedHandler(msg, service);
            }
        }
Example #4
0
 public void OnMessageReceived(string buff)
 {
     try
     {
         FsMessage msg = FsMessage.FromJson(buff);
         Log.InfoFormat("pull({0})", buff);
         _msgHelper.DealMsg(msg, this);
     }
     catch (Exception ce)
     {
         Log.ErrorFormat("err {0}!", ce.Message);
     }
 }
Example #5
0
        /// <summary>
        /// 即时采集
        /// </summary>
        /// <param name="msg"></param>
        /// <param name="service"></param>
        private void InstantCol(FsMessage msg, EtService service)
        {
            string tid = msg.Header.U.ToString();
            uint   dtu = msg.BodyValue <uint>("dtu");

            uint[] sensors    = msg.BodyValues <uint>("sensors");
            var    sensorList = new List <uint>(sensors);
            int    taskId     = service.Dtm.ArrangeInstantTask(tid, dtu, sensorList, null);

            msg.Body = JObject.FromObject(new { tid = taskId });
            _log.DebugFormat("Resp.OnMessageReceived: {0}-{1}, dtu = {2}, sensors={3},resp={4}", msg.Header.S, msg.Header.R, dtu, sensors.Length, msg.Body);
            service.Push(msg.Header.S, msg);
        }
Example #6
0
 public FsMessage DataStatusMsg(SensorAcqResult result)
 {
     try
     {
         result.Sensor = DbAccessor.DbConfigAccessor.GetSensorInfo(result.Sensor.SensorID);
     }
     catch (Exception e)
     {
     }
     if (!this._sensorDataStatuses.ContainsKey((int)result.Sensor.SensorID))
     {
         this._sensorDataStatuses.TryAdd((int)result.Sensor.SensorID, new SensorDataStatus
         {
             SensorId = (int)result.Sensor.SensorID,
             StructId = (int)result.Sensor.StructId,
             Time     = result.AcqTime
         });
     }
     this._sensorDataStatuses[(int)result.Sensor.SensorID].GetSensorColResult(result);
     if (!this._sensorDataStatuses[(int)result.Sensor.SensorID].IsContinuum || this._sensorDataStatuses[(int)result.Sensor.SensorID].IsRequireWarning)
     {
         SensorDataStatus dataStatus = this._sensorDataStatuses[(int)result.Sensor.SensorID];
         var msg = new DataContinuWarningMsg
         {
             Id             = Guid.NewGuid(),
             StructId       = dataStatus.StructId,
             DeviceTypeId   = SENSORDEVICETYPEID,
             DeviceId       = dataStatus.SensorId,
             WarningTypeId  = dataStatus.IsContinuum ?((int)Errors.SUCCESS).ToString():((int)Errors.ERR_DATA_BREACH).ToString(),
             WarningTime    = dataStatus.Time,
             DateTime       = DateTime.Now,
             WarningContent = string.Format(dataStatus.IsContinuum ? "数据恢复" : EnumHelper.GetDescription(Errors.ERR_DATA_BREACH)),
             DataStatus     = dataStatus.IsContinuum
         };
         var warningmsg = new FsMessage
         {
             Header = new FsMessageHeader
             {
                 A = "PUT",
                 R = "/warning/datacontinu",
                 U = Guid.NewGuid(),
                 T = Guid.NewGuid(),
                 D = _warningAppName,
                 M = "Warning"
             },
             Body = JsonConvert.SerializeObject(msg)
         };
         return(warningmsg);
     }
     return(null);
 }
Example #7
0
 public void OnMessageReceived(string buff)
 {
     try
     {
         FsMessage msg = FsMessage.FromJson(buff);
         // real-time DAC: // body:{"dtu":1,"sensors":[17,20]}
         Log.InfoFormat("pull({0})", buff);
         _msgHelper.DealMsg(msg, this);
     }
     catch (Exception ce)
     {
         Log.ErrorFormat("err {0}!", ce.Message);
     }
 }
Example #8
0
 public static void SendToAgg(FsMessage msg)
 {
     if (_instance != null && msg != null)
     {
         try
         {
             _instance.Push("agg", msg);
         }
         catch (Exception ex)
         {
             log.ErrorFormat("Send to agg msg falied : msg: {0},error:{1}", msg.ToJson(), ex);
         }
     }
 }
Example #9
0
        private string GetSensorStatus(FsMessage msg, EtService service)
        {
            SensorIds obj = JsonConvert.DeserializeObject <SensorIds>(msg.Body.ToString());

            if (obj == null || obj.sensorIds == null || obj.sensorIds.Length == 0)
            {
                msg.Body =
                    JsonConvert.SerializeObject(new[] { new { sensorId = 0, dacStatus = "N/A" } });
                return(msg.ToJson());
            }
            Senstatus[] statuses = service.GetSensorDacStatus(obj.sensorIds, obj.structId);
            msg.Body = JsonConvert.SerializeObject(statuses);
            return(msg.ToJson());
        }
Example #10
0
 public void Push(FsMessage msg)
 {
     if (msg != null)
     {
         msg.Header.S = MyName;
         Log.DebugFormat("push msg {0}", msg.ToJson());
         try
         {
             Push(msg.Header.D, msg);
         }
         catch (Exception ex)
         {
             Log.ErrorFormat("push msg failed : msg {0}, error: {1}", msg.ToJson(), ex);
         }
     }
 }
Example #11
0
        static FsMessage newMessage(string body)
        {
            Guid      token = Guid.NewGuid();
            Guid      msgId = Guid.NewGuid();
            FsMessage msg   = new FsMessage();

            msg.Header   = new FsMessageHeader();
            msg.Header.A = "GET";
            msg.Header.D = "LOG";
            msg.Header.L = 20;
            msg.Header.R = "log";
            msg.Header.S = "中文";
            msg.Header.T = token;
            msg.Header.U = msgId;
            msg.Body     = body;
            return(msg);
        }
        public static FsMessage GetAggConfigChangedMsg()
        {
            var msg = new FsMessage
            {
                Header = new FsMessageHeader
                {
                    A = "PUT",
                    R = "/agg/config/",
                    U = Guid.NewGuid(),
                    T = Guid.NewGuid(),
                    D = "agg",
                    M = "config"
                },
            };

            return(msg);
        }
Example #13
0
        public void TestJson()
        {
            var msg = newMessage(new
            {
                structId = 3
            });

            string str = msg.ToJson();

            msg = FsMessage.FromJson(str);



            var i = msg.BodyValue <uint>("structId");

            Console.WriteLine(i);
        }
Example #14
0
        private void ColInfoConfigChanged(FsMessage msg, EtService service)
        {
            string r = msg.Header.R;

            if (r.Contains("dtu"))
            {
                DtuChangedHandler(msg, service);
            }
            if (r.Contains("sensor"))
            {
                SensorChangedHandler(msg, service);
            }
            if (r.EndsWith("sengroup"))
            {
                SensorGroupChangedHandler(service);
            }
        }
Example #15
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);
        }
        public static FsMessage GetSensorConfigChangedMsg(SensorOperation senopera)
        {
            var msg = new FsMessage
            {
                Header = new FsMessageHeader
                {
                    A = "PUT",
                    R = "/et/config/sensor/",
                    U = Guid.NewGuid(),
                    T = Guid.NewGuid(),
                    D = "et",
                    M = "config"
                },
                Body = JsonConvert.SerializeObject(senopera)
            };

            return(msg);
        }
        public static FsMessage GetSensorGroupMessage()
        {
            var msg = new FsMessage
            {
                Header = new FsMessageHeader
                {
                    A = "PUT",
                    R = "/et/config/sengroup",
                    U = Guid.NewGuid(),
                    T = Guid.NewGuid(),
                    D = "et",
                    M = "config"
                },
                Body = JsonConvert.SerializeObject(null)
            };

            return(msg);
        }
Example #18
0
 private void OnMessageReceived(string buff)
 {
     try
     {
         FsMessage msg = FsMessage.FromJson(buff);
         if (msg == null)
         {
             log.Error("pull.OnMessageReceived, msg is NULL!");
             return;
         }
         string sender     = msg.Header.S;
         var    warningmsg = msg.Body.ToString();
         warningmm.AddWarningMsg(sender, msg.Header.R, warningmsg);
     }
     catch (Exception ex)
     {
         log.ErrorFormat("Error {0}:", ex.Message);
     }
 }
Example #19
0
 public void OnMessageReceived(string buff)
 {
     try
     {
         FsMessage msg = FsMessage.FromJson(buff);
         // real-time DAC: // body:{"dtu":1,"sensors":[17,20]}
         Log.InfoFormat("pull({0})", buff);
         if (msg != null && msg.Header.R == @"/agg/config/")
         {
             jobManage.StopWork();
             List <BaseAggConfig> configs = BaseAggConfig.Create(SeclureCloudDbHelper.Instance().Accessor.GetConfig());
             jobManage.ReStart(configs);
         }
     }
     catch (Exception ce)
     {
         Log.ErrorFormat("err {0}!", ce.Message);
     }
 }
Example #20
0
 /// <summary>
 /// DTU状态变更告警
 /// </summary>
 /// <param name="msg"></param>
 private void DTUConnectionStatusChangedHandler(DTUConnectionStatusChangedMsg msg)
 {
     try
     {
         FsMessage fsmsg = _warningHelper.GetDtuStatusMsg(msg);
         if (fsmsg != null)
         {
             Push(fsmsg);
         }
         if (!msg.IsOnline)
         {
             etDataStatus.ClearOffLineSensorStatus(msg.DTUID);
         }
     }
     catch (Exception ex)
     {
         Log.ErrorFormat("DTU状态变更告警推送失败 : {0}", ex.Message);
     }
 }
Example #21
0
        public string DealMsg(string buff, NGEtService service)
        {
            FsMessage msg = FsMessage.FromJson(buff);

            //if (String.Compare(msg.Header.R, "/et/status/structs/abnormalsensorCount", StringComparison.OrdinalIgnoreCase) == 0)
            //{
            //    return GetAbnormalSensorCount(msg, service);
            //}
            //if (String.Compare(msg.Header.R, "/et/status/sensors",
            //        StringComparison.OrdinalIgnoreCase) == 0)
            //{
            //    return GetSensorStatus(msg, service);
            //}
            //if (String.Compare(msg.Header.R, "/et/status/struct/allSensors",
            //    StringComparison.OrdinalIgnoreCase) == 0)
            //{
            //    return GetAllSensors(msg, service);
            //}
            msg.Body = string.Empty;
            return(msg.ToJson());
        }
Example #22
0
        public void TestFsMessageToJson()
        {
            Guid      token = Guid.NewGuid();
            Guid      msgId = Guid.NewGuid();
            FsMessage msg   = new FsMessage();

            msg.Header   = new FsMessageHeader();
            msg.Header.A = "GET";
            msg.Header.D = "LOG";
            msg.Header.L = 20;
            msg.Header.R = "log/all";
            msg.Header.S = "中文";
            msg.Header.T = token;
            msg.Header.U = msgId;
            msg.Body     = new { name = "Hello", intv = 1, data = "2012-2-2", av = new[] { 1, 2, 3, 4.2 }, bv = true };

            string json = msg.ToJson();

            //  {"Body":{"Data":null},"Header":{"A":"GET","D":"LOG","L":20,"R":"log\/all","S":"Tester","T":"69623642-264c-4260-a7b4-bea916b8cf0c","U":"661f43ca-7d52-418a-8f46-12854a25561d"}}


            Console.WriteLine("json = {0}", json);
            Assert.IsNotNull(json);

            FsMessage msg2 = FsMessage.FromJson(json);

            Assert.AreEqual(msg.Header.T, msg2.Header.T);

            Assert.AreEqual(JsonConvert.SerializeObject(msg2.Body), JsonConvert.SerializeObject(msg.Body));

            JObject body = (JObject)msg2.Body;
            int     iv1  = msg2.BodyValue <int>("intv");

            double[] sensors = msg2.BodyValues <double>("av");
            Assert.AreEqual(1, iv1);
            Assert.AreEqual(4, sensors.Length);
            Assert.AreEqual(4.2, sensors[3]);
            Assert.AreEqual(true, msg2.BodyValue <bool>("bv"));
            Assert.AreEqual("Hello", msg2.BodyValue <string>("name"));
        }
Example #23
0
        public object GetSensorRealtimeRequest(int dtu, string sensors)
        {
            log.DebugFormat("Instant DAC: DTU={0}, sensors={1}", dtu, sensors);
            Guid      guid = Guid.NewGuid();
            FsMessage msg  = new FsMessage();

            msg.Header.U = guid;
            msg.Header.R = "/et/dtu/instant/dac"; //request url.
            msg.Header.S = "WebClient";
            msg.Header.M = "GET";
            msg.Header.T = Guid.NewGuid();
            msg.Body     = new
            {
                dtu     = dtu,
                sensors = ToIntArray(sensors),
            };
            WebClientService.SendToET(msg);

            using (var entity = new SecureCloud_Entities())
            {
                var strGuid = guid.ToString();
                var query   = from ti in entity.T_TASK_INSTANT
                              where ti.MSG_ID == strGuid
                              select new
                {
                    msgid = ti.MSG_ID
                };
                var result = true;
                var list   = query.ToList();
                if (list.Count == 0)
                {
                    result = false;
                }
                var json = new JObject(
                    new JProperty("msgid", guid),
                    new JProperty("result", result));
                return(json);
            }
        }
Example #24
0
        public object GetDtuRestartRequest(int dtuId)
        {
            var guid = Guid.NewGuid();
            var msg  = new FsMessage
            {
                Header =
                {
                    S = "WebClient",
                    A = "GET",
                    R = "/et/dtu/instant/at-restart",
                    U = guid,
                    T = Guid.NewGuid()
                },
                Body = new { dtuId }
            };

            WebClientService.SendToET(msg); // 向ET Push DTU重启消息

            using (var entity = new SecureCloud_Entities())
            {
                var strGuid = guid.ToString();
                var query   = from ti in entity.T_TASK_INSTANT
                              where ti.MSG_ID == strGuid
                              select new
                {
                    msgid = ti.MSG_ID
                };
                var result = true;
                var list   = query.ToList();
                if (list.Count == 0)
                {
                    result = false;
                }
                var json = new JObject(
                    new JProperty("msgid", guid),
                    new JProperty("result", result));
                return(json);
            }
        }
Example #25
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)
            };

            try
            {
                Service.Push(warningMsg.Header.D, warningMsg);
            }
            catch (Exception ex)
            {
                Log.ErrorFormat("push msg failed ,msg : {0}, error : {1}", warningMsg.ToJson(), ex);
            }
        }
Example #26
0
 private string GetAbnormalSensorCount(FsMessage msg, EtService service)
 {
     try
     {
         StructureIds obj = JsonConvert.DeserializeObject <StructureIds>(msg.Body.ToString());
         if (obj == null || obj.structIds == null || obj.structIds.Length == 0)
         {
             msg.Body =
                 JsonConvert.SerializeObject(new[]
                                             { new { structId = 0, abnormalSensorCount = -1 } });
             return(msg.ToJson());
         }
         AbnormalCount[] counts  = service.GetAbnormalSensorCount(obj.structIds);
         string          msgbody = JsonConvert.SerializeObject(counts);
         msg.Body = msgbody;
         return(msg.ToJson());
     }
     catch (Exception ex)
     {
         _log.ErrorFormat("GetAbnormalSensorCount error: {0}", ex.Message);
         return(string.Empty);
     }
 }
Example #27
0
 private void OnResponsedFromET(string buffer)
 {
     try
     {
         FsMessage msg = FsMessage.FromJson(buffer);
         log.DebugFormat("response({0})", buffer);
         if (msg == null)
         {
             log.Error("response.OnResponsedFromET, msg is NULL!");
             return;
         }
         string url = msg.Header.R;
         if (url == "/et/status/structs/abnormalSensorCount") // 从ET Response 结构物下异常传感器个数
         {
             // 获取消息: 结构物下异常传感器个数
             GetMessageFromET(msg);
         }
     }
     catch (Exception ex)
     {
         log.ErrorFormat("error: {0}", ex.Message);
     }
 }
Example #28
0
 private static void OnPulledFromET(string buffer)
 {
     try
     {
         FsMessage msg = FsMessage.FromJson(buffer);
         log.DebugFormat("pull({0})", buffer);
         if (msg == null)
         {
             log.Error("pull.OnPulledFromET, msg is NULL!");
             return;
         }
         string url = msg.Header.R;
         if (url == "/et/dtu/instant/at") // DTU远程配置
         {
             // 获取DTU远程配置消息
             GetMessageFromET(msg);
         }
     }
     catch (Exception ex)
     {
         log.ErrorFormat("error: {0}", ex.Message);
     }
 }
Example #29
0
        private static void SendAggConfigChangedMsg()
        {
            FsMessage msg = ConfigChangedMsgHelper.GetAggConfigChangedMsg();

            WebClientService.SendToAgg(msg);
        }
Example #30
0
 public static FsMessage GetMessageFromET(FsMessage msg)
 {
     return(msg);
 }