V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
petrichor08
V2EX  ›  程序员

有大佬了解 BACnet 协议吗?

  •  
  •   petrichor08 · 2022-04-20 10:05:09 +08:00 · 1604 次点击
    这是一个创建于 945 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如他的报文是什么样的,怎么解析什么?

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