BACnet协议详解——应用层说明二

写在前面

又拖更了,对不起各位看官老爷了。实在是年后事情多,加上家属出差,只能先忙一忙其它的事情了。

3 BACnet APDU的传输

3.1 需确认的请求报文传输

客户端在发送需确认的请求报文之后,客户端将启动计时器。在收到关于需确认的请求报文的差错APDU、拒绝APDU、中止APDU、简单确认APDU或复杂确认APDU,则停止计时,并通知客户应用程序。如果计时器的时间超过了客户设备对象中的APDU超时(也就是device object里面的APDU_TimeOut属性,在客户端启动BACnet之前,该值必须被初始化进行设置),则重新发送该报文,同时计时器重新计时。所有需确认的请求报文的超时发送次数达到客户端设备对象的APDU重发次数(也就是客户端的device object里面的Number_Of_APDU_Retries属性,此属性也需要在启动BACnet之前进行设置),此时该报文将被丢弃,并通知客户端的应用程序。红字里面的两个属性值也需要在一些调试工具中需要进行设置,比如yabe,读到这里,就知道为什么要设置这些值以及这些值代表的是什么意思了。
数据的传输流程如下所示
在这里插入图片描述

3.2 分段的需确认请求报文的传输

分段的请求报文与没有分段请求报文的区别在于:

  • 最大的区别不用说,就是分段,分段请求报文需要发多次才能完成一个请求报文的传输

  • 分段的请求报文会用第一包数据中在客户端(也就是发送请求的设备)和服务端(也就是回复请求的设备)之间对每包数据传输大小(1~127)进行一个协商,也就是会存在这样一次对话:

    • 客户端在第一包数据中会说:我一包能传这么多数据,你能行不?
    • 服务端会在第一包数据的回复中说:
      • (一种回复)我是男人,当然行,我能收的比你多,但你就能传那么多数据,就按你能传的最多的来吧!(也就是服务端你在man,在能收,也不能告诉客户端发送超过它最大发送值的值
      • (另一种回
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值