文件名称:信息对象类信息对象和信息对象集合-树莓派使用手册4
文件大小:3.41MB
文件格式:PDF
更新时间:2024-07-21 09:32:41
ASN.1 ASN.1编码规则
2.13 信息对象类、信息对象和信息对象集合 在 ASN.1 中,信息对象类用于正式描述哪些类型和值单独不能表达的属性,这些属 性通常被翻译作为类型和值之间的语法链接。在协议描述中,可以先不考虑这些限 制性属性,以后再通过信息对象类添加。虽然信息对象不会被编码,但是 ASN.1 编译器在生成编解码器时却是要用到它的。 2.13.1 基本语法 Default Syntax 信息对象类用关键字 Class,名字以大写字母开头。其成员域以“&”开头,名字是 小写字母或者大写字母开头。符号“&”使得信息对象类的域和 SEQUENCE 和 SET 的成员有明显的区别。因此,如果一个名字是以“&”开头,则一定是一个信息对 象类的域。域名字的后面可以是一个类型或者其它类或者本类中其它域,而且可以 用 OPTIONAL、DEFAULT 或者 UNIQUE 标识。和 SEQUENCE、SET 不同的是, 类中域不仅可以是值,也可以是一个类型,值集合,信息对象或者信息对象集合, 因此 OPTIONAL 和 DEFAULT 的含义更为广泛。如: FUNCTION ::= CLASS { &ArgumentType , &ResultType DEFAULT NULL, &Errors ERROR OPTIONAL, &code INTEGER UNIQUE } 对应的一个信息对象(表示两个数相加的操作)为: addition-of-2-integers FUNCTION ::= { &ArgumentType SEQUENCE { a INTEGER, b INTEGER }, &ResultType INTEGER, -- empty error list by default &code 1 } 关于域的名字是大写还是小写字母,请看下表: