コード例 #1
0
ファイル: DtuNodeTest.cs プロジェクト: icprog/FS-SMISCloud
        public void TestAddSensor()
        {
            DtuNode node = new DtuNode()
            {
                DtuCode     = "12345678",
                DtuId       = 2,
                Type        = DtuType.Gprs,
                Name        = "Test",
                DacInterval = 5
            };

            new Thread(t =>
            {
                uint i = 1;
                while (i < 100)
                {
                    var senopera = new SensorOperation
                    {
                        Sensor = new Sensor
                        {
                            SensorID  = i,
                            ModuleNo  = 2000 + 1,
                            ChannelNo = 1,
                            DtuID     = 2
                        },
                        Action = Operations.Add
                    };
                    node.AddSensorOperation(senopera);
                    i++;
                }
            }).Start();
            Thread.Sleep(10);
            new Thread(t =>
            {
                uint i = 5;
                while (i < 50)
                {
                    var senopera = new SensorOperation
                    {
                        OldSensorId = i,
                        Action      = Operations.Delete
                    };
                    node.AddSensorOperation(senopera);
                    i++;
                }
            }).Start();

            Thread.Sleep(100);
            var t2 = new Thread(t =>
            {
                node.UpDateSensor();
            });

            t2.Start();
            t2.Join();

            Console.WriteLine("dtunode's sensors count is {0}", node.Sensors.Count);
        }
コード例 #2
0
 private void UpdateSensorConfig(SensorOperation operation)
 {
     if (operation == null)
     {
         return;
     }
     if (operation.Action != Operations.ChangedDtu)
     {
         if (this.GetDtuNodeListener != null)
         {
             DtuNode node = this.GetDtuNodeListener(operation.Sensor.DtuID);
             if (node != null && operation.Sensor.SensorType != SensorType.Virtual)
             {
                 node.AddSensorOperation(operation);
             }
         }
     }
     else
     {
         try
         {
             this.SensorChangedDtu(operation);
         }
         catch (Exception ex)
         {
             this._log.ErrorFormat("sensor {0} changed Dtu error {1}", operation.Sensor.SensorID, ex.Message);
         }
     }
 }