- BOOLEAN类型
是两个值的集合:TRUE,FALSE。如:
RoundResult ::= BOOLEAN
ok RoundResult ::= TRUE
ko RoundResult ::= FALSE
该类型的UNIVERSAL Tag值为1。
- NULL类型
空类型,只有一个值NULL。作为一种结果,空类型是传输报告和响应的典型情况。如:
Ack ::= NULL
它经常在时间信息中使用,表示传送时间没有赋值如:
Clock ::= CHOICE
{
time UTCTime,
out-of-order NULL
}
当时钟电池没有电时,值为:
battery-down Clock ::= out-of-order:NULL
NULL也可以用来表示链表结束的空接点,如:
LinkedList ::= SEQUENCE
{
data Data,
next CHOICE
{
linked-list LinkedList,
end NULL
}
}
该类型的UNIVERSAL Tag值为5。
- INTEGER类型
整数可以是正数也可以是负数,取值范围在协议中没有界定。所以必须由编解码器提前确定好整数的范围,分配必要的内存空间来处理。可以通过描述中增加一个值声明来判断:
Interval ::= INTEGER(123456789..123456790)
在使用PER编解码规则时,会按照本地整数范围进行截断;相比之下BER编码规则中因为有明确的长度,所以不会出现截断的情况。
该类型的UNIVERSAL Tag值为2。