예제 #1
0
        private void DevicesOnDeviceAdded(object sender, InsteonDeviceEventArgs data)
        {
            logger.Debug("Device added.");

            var dataManager = new InsteonDataManager(false);
            var found       = dataManager.GetByAddress(data.Device.Address.ToString());

            if (found != null)
            {
                // update
                found.Category    = data.Device.Identity.DevCat;
                found.SubCategory = data.Device.Identity.SubCat;
                found.Firmware    = data.Device.Identity.FirmwareVersion;
                found.ProductKey  = data.Device.Identity.ProductKey?.StringKey();
                dataManager.Update(found);
            }
            else
            {
                // insert
                dataManager.Add(new InsteonDeviceModel()
                {
                    Address     = data.Device.Address.ToString(),
                    Category    = data.Device.Identity.DevCat,
                    SubCategory = data.Device.Identity.SubCat,
                    Firmware    = data.Device.Identity.FirmwareVersion,
                    ProductKey  = data.Device.Identity.ProductKey?.StringKey()
                });
            }
        }
예제 #2
0
        public void UpdateDeviceTest()
        {
            var manager = new InsteonDataManager(true);
            var device  = new InsteonDeviceModel()
            {
                Address     = "34.55.66",
                Category    = 0x01,
                SubCategory = 0x02,
                DisplayName = "Test Device",
                Firmware    = 0x45
            };

            var id = manager.Add(device);

            id.Should().Be(1);

            device.Id = 1;

            var d = manager.GetByAddress(device.Address);

            d.Should().NotBeNull();
            d.Address.Should().Be(device.Address);
            d.Category.Should().Be(device.Category);

            device.Category = 0x04;
            manager.Update(device);

            device.Category.Should().Be(0x04);
            d = manager.GetByAddress(device.Address);
            d.Address.Should().Be(device.Address);
            d.Category.Should().Be(device.Category);
        }