BACnet 工具 VTS的用法 总结

本文档提供了关于BACnet Visual Test Shell (VTS)的详细使用指导,包括下载地址、配置步骤及如何通过Python脚本进行设备属性读取等关键操作。涉及错误处理与调试技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 下载地址

https://sourceforge.net/projects/vts/files/
https://sourceforge.net/projects/vts/
https://github.com/JoelBender/bacpypes/issues

使用VTS分析bacnet协议的ReadProperty(一)
https://blog.youkuaiyun.com/u010604007/article/details/50946171

https://gitter.im/JoelBender/bacpypes/archives/2017/02/22

涉及到的地址:
http://bacnet.sourceforge.net/
visual test shell for Win32, used for Visually testing a BACnet implementation. It also includes a detailed network sniffer for BACnet messages, and the ability to send any BACnet services. The source code is in the public domain.

2 BACNET之VTS的配置过程

https://blog.youkuaiyun.com/qingtian506/article/details/18705809

3

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

:~/bacnet/bacpypes/samples$ python ReadProperty.py

read 20021:22 device:2200 objectName
ERROR:main.ReadPropertyConsoleCmd:exception: ValueError(‘need more than 3 values to unpack’,)
Traceback (most recent call last):
File “ReadProperty.py”, line 103, in do_read
addr, obj_type, obj_inst, prop_id = args[:4]
ValueError: need more than 3 values to unpack
read 20021:22 device 2200 objectName
abccccc-- 20021:22
obj-type- device
pduSource = <Address 20021:22>
pduExpectingReply = 0
pduNetworkPriority = 0
apduType = 7
apduSrv = False
apduInvokeID = 1
apduAbortRejectReason = 65
pduData = x’’

在这里插入图片描述

1

read 192.168.0.100:47808 device 0 objectName
abccccc-- 192.168.0.100:47808
obj-type- device
TD
在这里插入图片描述

https://github.com/JoelBender/bacpypes/issues

read 192.168.0.100:47808 analogInput 0 presentValue
abccccc-- 192.168.0.100:47808
obj-type- analogInput
55.0

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码补充:

grep -r “analogInput”

samples/ReadProperty.py.history:read 192.168.0.100:47808 analogInput 0 presentValue
build/lib.linux-x86_64-2.7/bacpypes/primitivedata.py: , ‘analogInput’:0
build/lib.linux-x86_64-2.7/bacpypes/object.py: objectType = ‘analogInput’
build/lib.linux-x86_64-2.7/bacpypes/basetypes.py: { ‘analogInput’:0
.svn/pristine/34/3469aebfe1ccdda48b679e8ba33e71f1368f62ab.svn-base: { ‘analogInput’:0
.svn/pristine/84/848f2afb78bf15fd801835938ad0cb5e5941b9f4.svn-base: objectType = ‘analogInput’
.svn/pristine/76/76ce898590ef1829c16a75fcc0af39938f6abf7d.svn-base: , ‘analogInput’:0
bacpypes/primitivedata.py: , ‘analogInput’:0
bacpypes/object.py: objectType = ‘analogInput’
bacpypes/basetypes.py: { ‘analogInput’:0

看一下文件:
bacpypes/basetypes.py:

class ObjectTypesSupported(BitString):
    bitNames = \
        { 'analogInput':0
        , 'analogOutput':1
        , 'analogValue':2
        , 'binaryInput':3
        , 'binaryOutput':4
        , 'binaryValue':5
        , 'calendar':6
        , 'command':7
        , 'device':8
        , 'eventEnrollment':9
        , 'file':10
        , 'group':11
        , 'loop':12
        , 'multiStateInput':13
        , 'multiStateOutput':14
        , 'notificationClass':15
        , 'program':16
        , 'schedule':17
        , 'averaging':18
        , 'multiStateValue':19
        , 'trendLog':20
        , 'lifeSafetyPoint':21
        , 'lifeSafetyZone':22
        , 'accumulator':23
        , 'pulseConverter':24
        , 'eventLog':25
        , 'globalGroup':26
        , 'trendLogMultiple':27
        , 'loadControl':28
        , 'structuredView':29
        , 'accessDoor':30
        , 'accessCredential':32
        , 'accessPoint':33
        , 'accessRights':34
        , 'accessUser':35
        , 'accessZone':36
        , 'credentialDataInput':37
        , 'networkSecurity':38

111

cpp@cpp-virtual-machine:~/bacnet/bacpypes/samples$ python ReadProperty.py

read 192.168.0.100:47808 device 0 objectName
abccccc-- 192.168.0.100:47808
obj-type- device
TD
read 192.168.0.100:47808 device 0 objectList
abccccc-- 192.168.0.100:47808
obj-type- device
[(‘analogInput’, 0), (‘device’, 0)]

在这里插入图片描述
(稍后补充)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值