C# 中的 KNXnetIP 实现

Can*_*nha 5 c# knx

我正在用 C# 开发一个应用程序来控制我的 KNX 家庭系统。因此,我使用了ETS3Demo软件,并且使用wireshark软件可以“看到”ETS3发送到KNX/IP接口的IP数据报。

我已经成功地完成了“Connection_Request”、“ConnectionState_Request”和“Disconnect_Request”,即我发送了请求数据报并且 KNX/IP 接口做出了响应。

唯一让我头疼的请求是“Tunnelling_Request”。我发送信息的方式与发送前一个数据报的方式完全相同,但这个似乎不起作用。

我“逐字节”发送数据报,如以下代码所示:

byte[] byteToSend1 = { 06, 16, 04, 32, 00, 21, 04 };

string communicationChannel = ComunicationChannelNum.Text;
byte bytesnew = Convert.ToByte(communicationChannel);

byte[] byteToSend2 = { 00, 00, 17, 00, 188, 224, 00, 00, 09, 01, 01, 00, 129 };

writer.WriteBytes(byteToSend1);
writer.WriteByte(bytesnew);
writer.WriteBytes(byteToSend2);
Run Code Online (Sandbox Code Playgroud)

我已经将与源地址和组地址对应的字节更改为“int”变量,但仍然不起作用。

有人可以给我一个建议或者我可能做错的事情吗?

谢谢

小智 0

我正在使用 knx 来打开/关闭灯,我使用链接发送隧道请求。