运行BACnet Proxy
和MasterDriver
代理时,我收到以下错误消息:
master_driver.driver 错误:无法抓取设备名称:RuntimeError('设备通信中止:segmentationNotSupported')
谁能帮我解决这个错误?
BACnet 对消息的大小有大小限制。根据 BACnet 规范,消息大小有几个不同的有效值。如果设备想要发送超过任一设备支持大小的消息,它可以将消息分割成更小的片段。两个设备都必须支持分段才能工作,否则您会看到您看到的错误。
此错误的原因是被抓取的设备不支持分段,并且驱动程序一次抓取的点数(默认情况下,所有点)创建的消息太大而无法避免分段发送或接收。
BACnet 驱动程序目前支持手动分段以克服此设备限制,而不会减少驱动程序中配置的点数。您可以在 BACnet 设备配置的 driver_config 部分设置 max_per_request 设置。该设置是针对每个设备的,因此您必须在每个受影响的设备中包含 max_per_request。典型值为 20。如果错误仍然存在,请尝试较低的值。
BACnet 驱动程序的计划未来增强功能是自动检测这种情况并自动设置理想的 max_per_request 值。
编辑
我还应该提到 max_per_request 参数是在 VOLTTRON 3.0 之后添加的。您需要运行 3.5RC1 或开发分支。