private static void Provider_ServiceJoined(DeviceProviders.IProvider sender, DeviceProviders.ServiceJoinedEventArgs args) { var device = args.Service; if (device.ImplementsInterface("org.allseen.LSF.LampState")) { device.JoinSession(); var light = new LightingDevice(device); light.Initialize(); lock (lockLights) _Lights.Add(light.DeviceId, light); System.Diagnostics.Debug.WriteLine($"Light found: {light.DeviceId} {light.DeviceName}"); LampFound?.Invoke(null, light); light.LampStateChanged += Light_LampStateChanged; } }
private static void Provider_ServiceDropped(DeviceProviders.IProvider sender, DeviceProviders.ServiceDroppedEventArgs args) { var id = args.Service.AboutData.DeviceId; LightingDevice device = null; lock (lockLights) { if (_Lights.ContainsKey(id)) { device = _Lights[id]; device.LampStateChanged -= Light_LampStateChanged; _Lights.Remove(id); } } if(device != null) { System.Diagnostics.Debug.WriteLine($"Light lost: {device.DeviceId} {device.DeviceName}"); LampLost?.Invoke(null, device); } }
public AllJoynNotificationReceiver(DeviceProviders.AllJoynProvider provider = null) { DeviceProviders.AllJoynProvider Config = provider ?? new AllJoynProvider(); Config.ServiceJoined += Config_ServiceJoined; Config.Start(); }