您需要的是对ASN.1的介绍以及您正在使用的工具的介绍。对于前者,您可以从这里开始: http://www.obj-sys.com/resources/links_asn1_info.php 。我无法帮助你。
为了帮助您找到方向,一个非常简短的总结: ASN.1是抽象语法表示法。它是用于描述摘要中消息语法的表示法。 “在摘要中”意味着,例如,使用符号,您将指定一个整数在序列中跟随另一个整数,但是您没有指定这些整数在传输中实际表示的方式(例如,将使用多少位?) 。当您将它与一组编码规则(例如BER,PER;编码规则标准化 - 您不编写它们)组合时,抽象符号将变得具体。编码规则与抽象语法相结合,完全指定了传输的内容。
代码生成工具的功能在概念上很简单。他们读取ASN.1描述并使用您喜欢的编程语言生成数据结构,这些编程语言对来自ASN.1的消息进行建模,以及可以根据您选择的编码规则对这些数据结构进行编码/解码相应消息的函数。作为程序员,您填充数据结构,调用编码方法,并接收根据您选择的规则编码的ASN.1消息(例如BER)。
您真正需要的是Ashrae 135-2012(或更高版本)标准的副本。 (不幸的是非自由 - 虽然勘误和addentum是免费的)。
ASN1只描述了一些编码规则,但这并不是因为我的电子邮件是用base64编码的,如果你读了base64就可以阅读电子邮件。您还需要了解其他标头,上下文,规则和语义。
Ashrae 135标准中的编码,类型,枚举和服务代码完全详细。这种信息确实需要理解和“读取”BACnet数据包。
使用Wireshark查看和打开一些捕获的数据包,确实也有帮助,以便了解如何列出和发送信息,具体取决于各种消息上下文。
您也可以选择BACnet通信协议的免费或非免费C或Java或C#(或其他)实现,并使用它。