示例#1
0
        public Task SetState(AdapterPowerState powerState, AdapterColor color, params IHardwareParameter[] hardwareParameters)
        {
            if (!SupportsColor && color != null)
            {
                throw new InvalidOperationException("Color is not supported by adapter.");
            }

            var r = 0;
            var g = 0;
            var b = 0;

            if (powerState == AdapterPowerState.On && color == null)
            {
                r = 1023;
                g = 1023;
                b = 1023;
            }
            else if (powerState == AdapterPowerState.On && color != null)
            {
                r = color.Red;
                g = color.Green;
                b = color.Blue;
            }

            var topic = OutpostTopicBuilder.BuildCommandTopic(_deviceName, "RGB/Set");
            var json  = new JObject
            {
                ["r"] = r,
                ["g"] = g,
                ["b"] = b
            };

            _deviceMessageBroker.Publish(topic, json, MqttQosLevel.AtMostOnce);
            return(Task.FromResult(0));
        }
示例#2
0
        public Task SetState(AdapterPowerState powerState, AdapterColor color, params IHardwareParameter[] hardwareParameters)
        {
            var r = 0;
            var g = 0;
            var b = 0;

            if (powerState == AdapterPowerState.On && color != null)
            {
                r = color.Red;
                g = color.Green;
                b = color.Blue;
            }

            if (powerState == AdapterPowerState.On && color == null)
            {
                r = 1023;
                g = 1023;
                b = 1023;
            }

            var value = new JObject
            {
                ["r"] = r,
                ["g"] = g,
                ["b"] = b
            };

            _messageBroker.Publish(_topic, value, MqttQosLevel.AtMostOnce, true);
            return(Task.CompletedTask);
        }
示例#3
0
        public void SetState(AdapterPowerState powerState, AdapterColor color, params IHardwareParameter[] hardwareParameters)
        {
            if (!SupportsColor && color != null)
            {
                throw new InvalidOperationException("Color is not supported by adapter.");
            }

            var r = 0;
            var g = 0;
            var b = 0;

            if (powerState == AdapterPowerState.On && color == null)
            {
                r = 1023;
                g = 1023;
                b = 1023;
            }
            else if (powerState == AdapterPowerState.On && color != null)
            {
                r = color.Red;
                g = color.Green;
                b = color.Blue;
            }

            _deviceMessageBroker.Publish($"HA4IoT/Device/{_deviceName}/Command/RGB/Set", Encoding.UTF8.GetBytes(r + "," + g + "," + b), MqttQosLevel.AtMostOnce);
        }
示例#4
0
        public void SetState(AdapterPowerState powerState, AdapterColor color, params IHardwareParameter[] hardwareParameters)
        {
            if (color != null)
            {
                throw new InvalidOperationException("Color is not supported.");
            }

            SetState(powerState, hardwareParameters);
        }
示例#5
0
 public async void SetState(AdapterPowerState powerState, AdapterColor color, params IHardwareParameter[] hardwareParameters)
 {
     await _checkBox.Dispatcher.RunAsync(
         CoreDispatcherPriority.Normal,
         () =>
     {
         _checkBox.IsChecked = powerState == AdapterPowerState.On;
     });
 }
示例#6
0
 public void SetState(AdapterPowerState powerState, AdapterColor color, params IHardwareParameter[] hardwareParameters)
 {
     if (powerState == AdapterPowerState.On)
     {
         TurnOnCalledCount++;
     }
     else if (powerState == AdapterPowerState.Off)
     {
         TurnOffCalledCount++;
     }
 }
        public Task SetState(AdapterPowerState powerState, AdapterColor color, params IHardwareParameter[] hardwareParameters)
        {
            if (color != null)
            {
                throw new InvalidOperationException("Color is not supported.");
            }

            SetState(powerState, hardwareParameters);

            return(Task.FromResult(0));
        }
示例#8
0
 public void SetState(AdapterPowerState powerState, params IHardwareParameter[] parameters)
 {
     if (powerState == AdapterPowerState.On)
     {
         _knxController.SendDigitalJoinOn(_identifier);
     }
     else
     {
         _knxController.SendDigitalJoinOff(_identifier);
     }
 }
 public void SetState(AdapterPowerState powerState, params IHardwareParameter[] parameters)
 {
     if (powerState == AdapterPowerState.On)
     {
         TurnOnCalledCount++;
     }
     if (powerState == AdapterPowerState.Off)
     {
         TurnOffCalledCount++;
     }
 }
示例#10
0
        public Task SetState(AdapterPowerState powerState, AdapterColor color, params IHardwareParameter[] hardwareParameters)
        {
            if (powerState == AdapterPowerState.On)
            {
                TurnOnCalledCount++;
            }
            else if (powerState == AdapterPowerState.Off)
            {
                TurnOffCalledCount++;
            }

            return(Task.FromResult(0));
        }
示例#11
0
        public Task SetState(AdapterPowerState powerState, params IHardwareParameter[] parameters)
        {
            if (powerState == AdapterPowerState.On)
            {
                _knxController.SendDigitalJoinOn(_identifier);
            }
            else
            {
                _knxController.SendDigitalJoinOff(_identifier);
            }

            return(Task.FromResult(0));
        }
示例#12
0
        public void SetState(AdapterPowerState powerState, params IHardwareParameter[] parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException(nameof(parameters));
            }

            var commit = !parameters.Any(p => p is IsPartOfPartialUpdateParameter);

            lock (_output)
            {
                _output.Write(powerState == AdapterPowerState.On ? BinaryState.High : BinaryState.Low, commit ? WriteBinaryStateMode.Commit : WriteBinaryStateMode.NoCommit);
            }
        }
示例#13
0
 public void SetState(AdapterPowerState powerState, params IHardwareParameter[] parameters)
 {
     _deviceMessageBrokerService.Publish(_topic, powerState == AdapterPowerState.On ? "ON" : "OFF", MqttQosLevel.ExactlyOnce);
 }
示例#14
0
 public Task SetState(AdapterPowerState powerState, params IHardwareParameter[] parameters)
 {
     _deviceMessageBrokerService.Publish(_topic, powerState == AdapterPowerState.On ? "ON" : "OFF", MqttQosLevel.ExactlyOnce);
     return(Task.FromResult(0));
 }
示例#15
0
 public Task SetState(AdapterPowerState powerState, params IHardwareParameter[] parameters)
 {
     return(SetState(powerState, null, parameters));
 }
示例#16
0
 public Task SetState(AdapterPowerState powerState, params IHardwareParameter[] parameters)
 {
     _deviceMessageBrokerService.Publish(_topic, powerState == AdapterPowerState.On ? "ON" : "OFF", MqttQosLevel.AtMostOnce, true);
     return(Task.CompletedTask);
 }
 public Task SetState(AdapterPowerState powerState, params IHardwareParameter[] parameters)
 {
     _deviceMessageBrokerService.Publish(_topic, Encoding.UTF8.GetBytes(powerState.ToString()), MqttQosLevel.AtMostOnce, true);
     return(Task.FromResult(0));
 }
示例#18
0
 public void SetState(AdapterPowerState powerState, params IHardwareParameter[] parameters)
 {
     SetState(powerState, null, parameters);
 }