Example #1
0
        private void DevicesChanged(object sender, BindableCollectionEventArgs2 <Device> e)
        {
            try
            {
                logger.Info("DevicesChanged");
                Device device   = e.ChangedObject;
                int    deviceID = e.ChangedObject.ID;
                switch (e.Action)
                {
                case NS.Shared.Common.ChangeAction.Add:
                    AddOrUpdateDevice(device);
                    break;

                case NS.Shared.Common.ChangeAction.Remove:
                    RemoveDevice(deviceID);
                    break;

                case NS.Shared.Common.ChangeAction.ItemChanged:
                    AddOrUpdateDevice(device);
                    break;

                case NS.Shared.Common.ChangeAction.MuchChanges:
                    ReLoadDeviceList();
                    break;

                default:
                    break;
                }
            }
            catch (Exception ex)
            {
                logger.Log(LogLevel.Error, ex);
            }
        }
Example #2
0
        private void AddOrUpdateDevice(Device device)
        {
            if (device != null)
            {
                int deviceID = device.ID;
                int radioID  = device.RadioID;

                logger.Info($"AddOrUpdate deviceinfo for device with deviceID {deviceID} and radioID {radioID}");
                // Add device
                devices.AddOrUpdate(deviceID, new DeviceInfo(device), (did, oldInfo) =>
                {
                    logger.Info($"Updating deviceinfo for device with deviceID {deviceID} and radioID {radioID}");
                    oldInfo.UpdateDevice(device);
                    return(oldInfo);
                });

                // Add settings
                if (radios.TryAdd(radioID, new Radio(radioID, defaultGpsMode, defaultRequestInterval)))
                {
                    logger.Info($"Created standard settings for Radio with radioID {radioID}");
                }
            }
            else
            {
                logger.Warn("Can't add null device.");
            }
        }
Example #3
0
        private void DeviceStateChanged(object sender, DeviceStateChangedEventArgs e)
        {
            try
            {
                logger.Info("DeviceStateChanged");

                foreach (var radio in e.Infos)
                {
                    int deviceID = radio.DeviceId;
                    if (GetDeviceInfoByDeviceID(deviceID, out DeviceInfo deviceInfo))
                    {
                        logger.Info($"DeviceStateChanged [{deviceInfo.RadioID}]: {radio.State.ToString()}");
                        Device device = deviceInfo?.Device;
                        if (device != null)
                        {
                            ciaBataController.PostDeviceLifeSign(device.RadioID, device.Name, (radio.State & DeviceState.Active) == DeviceState.Active);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Log(LogLevel.Error, ex);
            }
        }