Example #1
0
        private IMessagePayload CreateBusMessage(KnxAddressBindingTypes bindingType, CemiFrame cemiFrame)
        {
            switch (bindingType)
            {
            case KnxAddressBindingTypes.Switch:
                bool onOff = (cemiFrame.Apdu & 1) == 1;
                return(new SwitchMessage(onOff));

            case KnxAddressBindingTypes.Temperature:
                return(new TemperatureMessage(Dpt9001.BytesToCelsius(new ArraySegment <byte>(cemiFrame.Data.Array, cemiFrame.Data.Offset, cemiFrame.Data.Count))));

                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(bindingType), bindingType, null);
            }
        }
Example #2
0
 public void AddSwitch(GroupAddress groupAddress, IMessageBusAddress address, KnxAddressBindingTypes knxAddressBindingType)
 {
     _mapping.Add(address, groupAddress);
     _bindingTypes = _bindingTypes.Add(groupAddress, knxAddressBindingType);
     _messageBus.AddMessageSink(address, this, this);
 }
Example #3
0
 public KnxAddressBinding(GroupAddress groupAddress, KnxAddressBindingTypes knxAddressBindingType)
 {
     GroupAddress          = groupAddress;
     KnxAddressBindingType = knxAddressBindingType;
 }