Inheritance: BridgeRT.IAdapterIcon
        // 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;
        }
Example #2
0
        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;
 }
Example #4
0
 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();
        }