Ejemplo n.º 1
0
        private void GetCurrentGroupValueStatus()
        {
            //Request current status
            FreeAtHomeDevices.FaHDevice d = new FreeAtHomeDevices.FaHDevice();
            d.KnxAddress.knxAddress = 0;
            KNXmessage a = FAHGroupValueRead.CreateFAHGroupValueRead(d, knxGroupToMonitor, new byte[] { });

            kNXUart.SendKNXMessage(a);
        }
Ejemplo n.º 2
0
        private void KNXUart_OnKNXMessage(KNXNetworkLayerTemplate caller, KNXBaseTypes.KNXmessage Message, KNXNetworkLayerTemplate.KnxPacketEvents uartEvent)
        {
            if (Message.ControlField.RepeatFrame)
            {
                return;
            }

            if (Message.TargetAddress == knxGroupToMonitor)
            {
                FahPayloadInterpeter.TryToInterpret(ref Message);

                switch (Message.Payload.Apdu.apduType)
                {
                case KNXAdpu.ApduType.GroupValueWrite:
                    FAHGroupValueWrite fAHGroupValueWrite = new FAHGroupValueWrite(Message.Payload);
                    Console.Write("GroupMonitor: {0}; {1} ", Message.Timestamp.ToString(KNXHelpers.DateTimeFormat), Message.HeaderAsString);
                    data = fAHGroupValueWrite.MessageData;
                    OnGroupValueChange?.Invoke(this, data);
                    Message.Payload.ReadablePayloadPacket.PrintUnaccountedBytes(false);
                    break;

                case KNXAdpu.ApduType.GroupValueRead:
                    FAHGroupValueRead fAHGroupValueRead = new FAHGroupValueRead(Message.Payload);
                    Console.Write("GroupMonitor: {0}; {1} ", Message.Timestamp.ToString(KNXHelpers.DateTimeFormat), Message.HeaderAsString);
                    Message.Payload.ReadablePayloadPacket.PrintUnaccountedBytes(false);
                    break;

                case KNXAdpu.ApduType.GroupValueResponse:
                    FAHGroupValueResponse fAHGroupValueReponse = new FAHGroupValueResponse(Message.Payload);
                    Console.Write("GroupMonitor: {0}; {1} ", Message.Timestamp.ToString(KNXHelpers.DateTimeFormat), Message.HeaderAsString);
                    data = fAHGroupValueReponse.MessageData;
                    OnGroupValueChange?.Invoke(this, data);
                    Message.Payload.ReadablePayloadPacket.PrintUnaccountedBytes(false);
                    break;

                default:
                    Console.WriteLine("???" + Message.Payload.Apdu.apduType);
                    break;
                }
            }
        }