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); } }
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."); } }
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); } }