private void KNXUart_OnKNXEvent(KNXNetworkLayerTemplate caller, KNXNetworkLayerTemplate.KnxPacketEvents uartEvent) { if (uartEvent == KNXNetworkLayerTemplate.KnxPacketEvents.DeviceOnline) { GetCurrentGroupValueStatus(); } }
public FaHGroupMonitor(KNXNetworkLayerTemplate kNXUart, KNXAddress GroupToMonitor) { knxGroupToMonitor = GroupToMonitor; this.kNXUart = kNXUart; this.kNXUart.OnKNXMessage += KNXUart_OnKNXMessage; this.kNXUart.OnKNXEvent += KNXUart_OnKNXEvent; GetCurrentGroupValueStatus(); }
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; } }
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; } } }
private void Form1_Load(object sender, EventArgs e) { /* * KNXUartConnection rkNXUart = new KNXUartConnection(AppSettings.Default.ComPort) * { * AllowWrite = true * }; * if (!rkNXUart.ResetAndInit()) * { * throw new Exception("Cannot init"); * } * kNXUart = rkNXUart; */ TCPknxClient tCPknxClient = new TCPknxClient("172.16.16.20", 9998); kNXUart = tCPknxClient; fahABB7001 = new FaHVirtualDevice(kNXUart, "ABB700C00001"); fahABB7001.ConsolePrintMessages = true; //fahABB7002 = new FaHVirtualDevice(kNXUart, "ABB700C00002"); fah0xf80x83 = new FaHGroupMonitor(kNXUart, new KNXAddress(0xf8, 0x83)); fah0x940x20 = new FaHGroupMonitor(kNXUart, new KNXAddress(0x94, 0x20)); fah0xE00x31 = new FaHGroupMonitor(kNXUart, new KNXAddress(0xE0, 0x31)); //fah0x550x13 = new FaHGroupMonitor(kNXUart, new KNXAddress(21779)); fah0xf80x83.OnGroupValueChange += Group_OnGroupValueChange; fah0x940x20.OnGroupValueChange += Group_OnGroupValueChange; fah0xE00x31.OnGroupValueChange += Group_OnGroupValueChange; fahABB7001.OnActorChange += Switch_OnActorChange; //fahABB7002.OnActorChange += Switch_OnActorChange; fahABB7001.StartFaHDevice(); //fahABB7002.StartFaHDevice(); }
private void KNXUart_OnKNXEvent(KNXNetworkLayerTemplate caller, KNXNetworkLayerTemplate.KnxPacketEvents uartEvent) { this.EventLog.WriteEntry("KNX Service Event: " + uartEvent.ToString()); }
private void KNXUart_OnKNXMessage(KNXNetworkLayerTemplate caller, KNXBaseTypes.KNXmessage Message, KNXNetworkLayerTemplate.KnxPacketEvents uartEvent) { Console.WriteLine("KNXLineData"); tCPknxServer.SendKNXMessage(Message.toByteArray()); }
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); } }
private static void KNXUart_OnKNXEvent(KNXNetworkLayerTemplate caller, KNXNetworkLayerTemplate.KnxPacketEvents uartEvent) { Console.WriteLine("[" + uartEvent + "]"); }