比如他的报文是什么样的,怎么解析什么?
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 找
|