示例#1
0
 private void KNXUart_OnKNXEvent(KNXNetworkLayerTemplate caller, KNXNetworkLayerTemplate.KnxPacketEvents uartEvent)
 {
     if (uartEvent == KNXNetworkLayerTemplate.KnxPacketEvents.DeviceOnline)
     {
         GetCurrentGroupValueStatus();
     }
 }
示例#2
0
 private void KNXUart_OnKNXEvent(KNXNetworkLayerTemplate caller, KNXNetworkLayerTemplate.KnxPacketEvents uartEvent)
 {
     this.EventLog.WriteEntry("KNX Service Event: " + uartEvent.ToString());
 }
示例#3
0
 private void KNXUart_OnKNXMessage(KNXNetworkLayerTemplate caller, KNXBaseTypes.KNXmessage Message, KNXNetworkLayerTemplate.KnxPacketEvents uartEvent)
 {
     Console.WriteLine("KNXLineData");
     tCPknxServer.SendKNXMessage(Message.toByteArray());
 }
示例#4
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;
                }
            }
        }
示例#5
0
        private static void KNXUart_OnKNXMessage(KNXNetworkLayerTemplate caller, KNXBaseTypes.KNXmessage Message, KNXNetworkLayerTemplate.KnxPacketEvents uartEvent)
        {
            if (Message.ControlField.RepeatFrame)
            {
                //Repeatframe
                return;
            }
            if (Message.SourceAddress == SysApEmulator.KnxAddress)
            {
                //Self
                return;
            }

            switch (devLearnState)
            {
            case DeviceLearningState.deviceDiscovery:
                if (Message.Payload.Apdu.apduType == KNXAdpu.ApduType.DeviceDescriptorResponse)
                {
                    Message.Payload.ReadablePayloadPacket = new FAHDeviceDescriptorResponse(Message.Payload);
                    bool more;
                    ((FAHDeviceDescriptorResponse)Message.Payload.ReadablePayloadPacket).SaveToDevice(ref deviceToLearn, out more);
                    devLearnState = DeviceLearningState.deviceDiscoveryResponse;
                    return;
                }
                break;

            case DeviceLearningState.deviceReadSettings:
                if (Message.SourceAddress == deviceToLearn.KnxAddress)
                {
                    if (Message.ControlField.RepeatFrame)
                    {
                        //For now ignore
                        return;
                    }
                    knxMsgtoProcess = Message;
                }
                break;

            default:
                Console.Write(string.Format("{0} ", Message.HeaderAsString));
                Message.Payload.ReadablePayloadPacket.PrintUnaccountedBytes();
                break;
            }
        }
示例#6
0
        private static void KNXUart_OnKNXMessage(KNXNetworkLayerTemplate caller, KNXBaseTypes.KNXmessage Message, KNXNetworkLayerTemplate.KnxPacketEvents uartEvent)
        {
            stdOut.WriteOut(Message);
            try
            {
                FahPayloadInterpeter.TryToInterpret(ref Message);

                if (Message.Payload.Apdu.apduType == KNXAdpu.ApduType.FunctionPropertyStateResponse)
                {
                    Message.Payload.ReadablePayloadPacket = ((FAHFunctionPropertyStateResponse)Message.Payload.ReadablePayloadPacket).ProcessPayload(lastRequestedPropertyControl, ByteDataParm);

                    if (((FAHFunctionPropertyStateResponse)Message.Payload.ReadablePayloadPacket).resultCode != KNXHelpers.knxPropertyReturnValues.CommandNotSupported)
                    {
                        /*
                         * bool more;
                         * if (!((FAHFunctionPropertyStateResponse)Message.Payload.ReadablePayloadPacket).SaveToDevice(ref fahDevToLearn, out more))
                         * {
                         *  Console.BackgroundColor = ConsoleColor.Red;
                         *  Console.Write("Not saved: ");
                         *  Console.BackgroundColor = ConsoleColor.Black;
                         * }*/
                    }
                }
                else if (Message.Payload.Apdu.apduType == KNXAdpu.ApduType.FunctionPropertyCommand)
                {
                    ((FAHFunctionPropertyCommand)Message.Payload.ReadablePayloadPacket).GetPropertyControlForReply(ref ByteDataParm, ref lastRequestedPropertyControl);
                }

                string ret = string.Format("{0}; {1} ", Message.Timestamp.ToString(KNXHelpers.DateTimeFormat), Message.HeaderAsString);
                Console.Write(ret);
                Message.Payload.ReadablePayloadPacket.PrintUnaccountedBytes(false);

                switch (Message.Payload.Apdu.apduType)
                {
                case KNXAdpu.ApduType.IndividualAddressSerialNumberWrite:
                    var fasnw = Message.Payload.ReadablePayloadPacket as FAHIndividualAddressSerialNumberWrite;

                    /*
                     * bool more;
                     * fasnw.SaveToDevice(ref fahDevToReturn, out more);
                     */
                    //Succes
                    return;

                case KNXAdpu.ApduType.DeviceDescriptorRead:
                    //LastCreatedMsg = FAHDeviceDescriptorResponse.CreateResponse(fahDevToReturn, Message.SourceAddress);
                    return;

                case KNXAdpu.ApduType.GroupValueWrite:
                    return;

                case KNXAdpu.ApduType.FunctionPropertyCommand:
                    var fpc = Message.Payload.ReadablePayloadPacket as FAHFunctionPropertyCommand;

                    /*KNXmessage k = fpc.ProcessAndCreateResponse(fahDevToReturn);
                     * if (k != null)
                     * {
                     *  LastCreatedMsg = k;
                     * }*/
                    break;

                case KNXAdpu.ApduType.DeviceDescriptorResponse:
                    FAHDeviceDescriptorResponse fAHDeviceDescriptorResponse = Message.Payload.ReadablePayloadPacket as FAHDeviceDescriptorResponse;

                    /*bool mi;
                     * fAHDeviceDescriptorResponse.SaveToDevice(ref fahDevToLearn, out mi);
                     *
                     * var z = fAHDeviceDescriptorResponse.FahDeviceAddress;
                     * if (fAHDeviceDescriptorResponse.FahDeviceAddress == fahDevToReturn.FaHAddress)
                     * {
                     *  if (LastCreatedMsg.ToHexString() != Message.ToHexString())
                     *  {
                     *      Console.BackgroundColor = ConsoleColor.Blue;
                     *      Console.WriteLine("Gen: {0}", LastCreatedMsg.ToHexString());
                     *      Console.BackgroundColor = ConsoleColor.Red;
                     *      Console.WriteLine("Err: {0}", Message.ToHexString());
                     *  }
                     *  Console.BackgroundColor = ConsoleColor.Black;
                     *  Console.WriteLine("------------------------------------------------------------------------------------------------------------------------------------");
                     *  LastCreatedMsg = new KNXmessage(knxControlField.KnxPacketType.KNX_PacketShort);
                     *
                     * }
                     */
                    break;

                default:
                    /*if (LastCreatedMsg.ToHexString() != Message.ToHexString())
                     * {
                     *  Console.BackgroundColor = ConsoleColor.Blue;
                     *  Console.WriteLine("Gen: {0}", LastCreatedMsg.ToHexString());
                     *  Console.BackgroundColor = ConsoleColor.Red;
                     *  Console.WriteLine("Err: {0}", Message.ToHexString());
                     * }*/
                    Console.BackgroundColor = ConsoleColor.Black;
                    Console.WriteLine("------------------------------------------------------------------------------------------------------------------------------------");
                    LastCreatedMsg = new KNXmessage(knxControlField.KnxPacketType.KNX_PacketShort);
                    break;
                }
            }
            catch (Exception e)
            {
                Console.Write("Error parsing: " + e);
            }
        }
示例#7
0
 private static void KNXUart_OnKNXEvent(KNXNetworkLayerTemplate caller, KNXNetworkLayerTemplate.KnxPacketEvents uartEvent)
 {
     Console.WriteLine("[" + uartEvent + "]");
 }