Ejemplo n.º 1
0
        static void Loop()
        {
            UdpClient udpServer = new UdpClient(int.Parse(GlobalConfig.UdpPort));
            var       Validator = new RuleFactory(true);

            while (true)
            {
                var remoteEP = new IPEndPoint(IPAddress.Any, int.Parse(GlobalConfig.UdpPort));
                var data     = udpServer.Receive(ref remoteEP); // listen on port 8888

                var datastr = System.Text.Encoding.Default.GetString(data);
                Console.WriteLine("receive data from " + remoteEP.ToString());
                Console.WriteLine("data: " + datastr);
                var obj = JsonConvert.DeserializeObject <SensorData>(datastr);
                if (obj != null)
                {
                    obj.CreatedDate = DateTime.Now;
                    //call power bi api
                    //SendToPowerBI(sensorValue);
                    SendToInfluxDB(obj);

                    //check rule
                    var violated = Validator.ValidateRule(obj);
                    if (violated.Count > 0)
                    {
                        foreach (var vItem in violated)
                        {
                            Console.WriteLine($"--> alarm triggered [{vItem.CreatedDate}] : {vItem.Message}");
                        }
                    }
                    Thread.Sleep(2000);
                }
            }
        }