我正在尝试剖析数据包,它封装了另一个类似于数据包的结构,称为"标记".结构看起来像这样
+---------+
|Ether |
+---------+
|IP | a tag
+---------+
|UDP | +------------+
+---------+ |tagNumber |
|BVLC | +------------+
+---------+ |tagClass |
|NPDU | +------------+
+---------+ +-+ |LVT field |
|APDU | | +------------+
| +------+--+ | | |
| |Tag 1 | <------+ | data |
| +---------+ | |
| |Tag 2 | +------------+
| +---------+
| |Tag n |
+------------+
Run Code Online (Sandbox Code Playgroud)
为此,我创建了一个派生自现有的类PacketListField
,如下所示:
class TagListField(PacketListField):
def __init__(self):
PacketListField.__init__(
self,
"tags",
[],
guessBACNetTagClass,
Run Code Online (Sandbox Code Playgroud)
引用guessBACNetTagClass
的函数返回解析标记所需的正确类.
BACNetTagClasses = …
Run Code Online (Sandbox Code Playgroud) 我有一项任务是通过BACnet TCP/IP从Trane Tracer summitBCU通信和读取BACnet对象列表及其属性.但是,我不知道从BCU获取BACnet对象列表的BACnet服务.每个人都可以教我如何做到这一点!