比如他的报文是什么样的,怎么解析什么?
1 smallfount 2022-04-20 10:06:51 +08:00 BACnet, 那个主要用来做智能建筑啥的东西? 我们这是用来读电表水表读数的。。。 |
2 thinkershare 2022-04-20 10:26:13 +08:00 @petrichor08 一部不需要管协议的事情, 找一个你使用的语言的库, 然后将你自己的客户端接入 BACnet 网络, 然后就可以读写其它设备的属性(value 是一个特殊属性), WhoIs 命令发出去喊一声就知道网络有那些设备了. 除非你需要编写解析协议的库, 否则并不需要知道具体报的格式, 如果想要知道报文格式, 直接去看 BACnet 官方协议, 这个协议存在历史非常悠久了. 商业大楼的楼宇控制一般会使用这个协议, 或者 OPC 协议. |
3 petrichor08 OP @thinkershare 感谢,我确实需要解析协议 |
4 thinkershare 2022-04-20 10:38:53 +08:00 @petrichor08 自己编写协议库非常麻烦, 除非你需要长期维护一个底层库, 否则建议直接去看你对应语言的第三方开源库, 从哪里开始研究比较靠谱, 主要是要处理的通讯边界条件太多, 要编写的靠谱非常困难. 我之前也尝试过自己写, 然后发现个人精力有限, 最终还是选择了研究第三方库. C#有很多靠谱的 BACnet 库, 其它语言也应该有. 我主要是一直在尝试订阅模式, 在一些项目中发现 UDP 会击穿整个网络的交换机, 后来很多项目对延迟要求不太高(超过 5s),就直接使用了轮询! |
5 lmshl 2022-04-20 11:42:39 +08:00 多年前刚入行智能家居的时候有所耳闻,用来做建筑自动化的协议,不过现在没人用了吧 |
![]() | 6 elechi 2022-04-20 14:29:54 +08:00 想详细了解看协议文档,代码 github 找 |