// private AdapterInterface _interfaceRemoteControl; public MockBulbDevice(MockLightingServiceHandler handler) : base(handler.Name, "MockDevices Inc", "Mock Bulb", "1", handler.Id, "") { base.LightingServiceHandler = handler; Icon = new AdapterIcon(new System.Uri("ms-appx:///Icons/Light.png")); _interfaceOnOff = InterfaceCreators.CreateOnOffStatus(handler.LampState_OnOff); _interfaceOff = InterfaceCreators.CreateOffControl(()=> { handler.LampState_OnOff = false; }); _interfaceOn = InterfaceCreators.CreateOnControl(() => { handler.LampState_OnOff = true; }); _interfaceColor = InterfaceCreators.CreateColor(0d, 0d, (hue) => { handler.LampState_Hue = (UInt32)(hue / 360 * (UInt32.MaxValue - 1)); }, (saturation) => { handler.LampState_Saturation = (UInt32)(saturation * (UInt32.MaxValue - 1)); }); _interfaceBrightness = InterfaceCreators.CreateBrightness(0d, (brightness) => { handler.LampState_Brightness = (UInt32)(brightness * (UInt32.MaxValue - 1)); }); AdapterBusObject abo = new AdapterBusObject("org/alljoyn/SmartSpaces/Operation"); abo.Interfaces.Add(_interfaceOnOff); abo.Interfaces.Add(_interfaceOn); abo.Interfaces.Add(_interfaceOff); if (handler.LampDetails_Color) abo.Interfaces.Add(_interfaceColor); if (handler.LampDetails_Dimmable) abo.Interfaces.Add(_interfaceBrightness); base.CreateEmitSignalChangedSignal(); this.BusObjects.Add(abo); handler.PropertyChanged += Handler_PropertyChanged; handler.LampStateChanged += Handler_LampStateChanged; }
public HueBridgeDevice(Q42.HueApi.HueClient client, HueBridgeDescription desc, Adapter bridge) : base("PhilipsHue", desc.Manufacturer, desc.ModelName, "", desc.SerialNumber, $"{desc.FriendlyName}\n{desc.ModelDescription} ({desc.ModelNumber})") { _client = client; _description = desc; _bridge = bridge; _enableJoinMethod = new AdapterMethod("Link", "Puts the adapter into join mode", 0); _enableJoinMethod.InvokeAction = Link; _enableJoinMethod.OutputParams.Add(new AdapterValue("Result", "") { Data = "" }); Methods.Add(_enableJoinMethod); //var UpdateMethod = new AdapterMethod("Update", "Looks for any removed or added lights", 0); //UpdateMethod.InvokeAction = UpdateDeviceList; //Methods.Add(UpdateMethod); //Check if bridge is already linked and registered bool isLinked = false; var container = ApplicationData.Current.LocalSettings.CreateContainer("RegisteredHueBridges", ApplicationDataCreateDisposition.Always); if (container.Values.ContainsKey(desc.SerialNumber)) { var key = container.Values[desc.SerialNumber] as string; if (key != null) { (client as Q42.HueApi.LocalHueClient)?.Initialize(key); isLinked = true; UpdateDeviceList(); } } _isLinkedProperty = new AdapterProperty("Link", "com.dotMorten.PhilipsHueDSB.PhilipsHue"); _isLinkedProperty.Attributes.Add(new AdapterAttribute("IsLinked", isLinked, E_ACCESS_TYPE.ACCESS_READ) { COVBehavior = SignalBehavior.Always }); this.Properties.Add(_isLinkedProperty); if (desc.ModelName.EndsWith(" 2012")) //V1 bridge { Icon = new AdapterIcon("ms-appx:///AdapterLib/Icons/HueBridge1.png"); } else if (desc.ModelName.EndsWith(" 2015")) //V2 bridge { Icon = new AdapterIcon("ms-appx:///AdapterLib/Icons/HueBridge2.png"); } else //Fallback - use uri from descriptor { Icon = new AdapterIcon(desc.IconUri.OriginalString); } // change of value signal CreateSignals(); }
public MockCurrentHumidityDevice(string name, string id, double currentHumidity) : base(name, "MockDevices Inc", "Mock Humidity", "1", id, "") { Icon = new AdapterIcon(new System.Uri("ms-appx:///Icons/Humidity.png")); _iface = AllJoynSimulatorApp.Devices.InterfaceCreators.CreateHumidity(currentHumidity); BusObjects.Add(new AdapterBusObject("org.alljoyn.SmartSpaces.Environment")); BusObjects[0].Interfaces.Add(_iface); CreateEmitSignalChangedSignal(); _currentValue = currentHumidity; }
public HueLampDevice(bool isFake) : base(BULB_NAME, VENDOR_NAME, MODEL, VERSION, SERIAL_NUMBER, DESCRIPTION) { this.adapterIcon = new AdapterIcon(); if (isFake) { this.lsf = new FakeLightingService(); ((FakeLightingService)this.lsf).OnOffChanged += HueLampDevice_OnOffChanged; } else { this.lsf = new LightingService(); } }
public MockOnOffSwitchDevice(string name, string id, bool isOn, Windows.UI.Core.CoreDispatcher dispatcher) : base(name, "MockDevices Inc", "Mock Switch", "1", id, "") { this.dispatcher = dispatcher; Icon = new AdapterIcon(new System.Uri("ms-appx:///Icons/Switch.png")); _interfaceOnOff = CreateOnOffInterface(isOn); _interfaceOn = CreateOnInterface(isOn); _interfaceOff = CreateOffInterface(!isOn); _interfaceRemoteControl = CreateRemoteControllabilityInterface(true); AdapterBusObject abo = new AdapterBusObject("org/alljoyn/SmartSpaces/Operation/Switch"); abo.Interfaces.Add(_interfaceOnOff); abo.Interfaces.Add(_interfaceOn); abo.Interfaces.Add(_interfaceOff); abo.Interfaces.Add(_interfaceRemoteControl); this.BusObjects.Add(abo); CreateEmitSignalChangedSignal(); _onOff = isOn; }
public HueBridgeDevice(Q42.HueApi.HueClient client, HueBridgeDescription desc, Adapter bridge) : base("PhilipsHue", desc.Manufacturer, desc.ModelName, "", desc.SerialNumber, $"{desc.FriendlyName}\n{desc.ModelDescription} ({desc.ModelNumber})") { _client = client; _description = desc; _bridge = bridge; _enableJoinMethod = new AdapterMethod("Link", "Puts the adapter into join mode", 0); _enableJoinMethod.InvokeAction = Link; _enableJoinMethod.OutputParams.Add(new AdapterValue("Result", "") { Data = "" }); Methods.Add(_enableJoinMethod); //var UpdateMethod = new AdapterMethod("Update", "Looks for any removed or added lights", 0); //UpdateMethod.InvokeAction = UpdateDeviceList; //Methods.Add(UpdateMethod); //Check if bridge is already linked and registered bool isLinked = false; var container = ApplicationData.Current.LocalSettings.CreateContainer("RegisteredHueBridges", ApplicationDataCreateDisposition.Always); if(container.Values.ContainsKey(desc.SerialNumber)) { var key = container.Values[desc.SerialNumber] as string; if (key != null) { (client as Q42.HueApi.LocalHueClient)?.Initialize(key); isLinked = true; UpdateDeviceList(); } } else { Link(); } _isLinkedProperty = new AdapterProperty("Link", "com.dotMorten.PhilipsHueDSB.PhilipsHue"); _isLinkedProperty.Attributes.Add(new AdapterAttribute("IsLinked", isLinked, E_ACCESS_TYPE.ACCESS_READ) { COVBehavior = SignalBehavior.Always }); this.Properties.Add(_isLinkedProperty); //if (desc.IconUri != null) // Icon = new AdapterIcon(desc.IconUri.OriginalString); Icon = new AdapterIcon("ms-appx:///AdapterLib/Icons/PhilipsHueIcon.png"); // change of value signal CreateSignals(); }