我正在用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关联的Falcon库,该库可以免费下载,并可以执行所有操作(运行时和管理)。它要求您了解KNX协议,尽管它不是最漂亮,更简洁的库,但是可以工作。
在这里:https://my.knx.org/en/downloads/falcon
注意:可能需要您注册,但这是免费的。 [我不能在这里分享它,因为它会违反许可协议。谢谢邦米先生!]