C#中的KNXnetIP实现

我正在用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);

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

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

谢谢

最佳答案 对于任何来这里寻找线程的人:

您可以随时使用可以免费下载的KNX协会Falc​​on库,并允许执行所有操作(运行时和管理).它需要您理解KNX协议,并且不是有史以来最漂亮和更清洁的库,但是有效.

这里:https://my.knx.org/en/downloads/falcon

注意:可能需要您注册,但这是免费的. [我不能在此分享,因为它会违反许可协议.谢谢Bummi先生!]

点赞