

























TAU G2中比一般的UML工具多了一些预定义的类,如BitString和OctetString。这些类是和ASN.1所对应的,主要为了方便处理PDU编码,这是针对通信协议软件开发设计的。一般我们喜欢使用BitString类,因为它更方便和直观。不过最近遇到一个小问题,就是如果使用BitString类,在处理比较长的PDU串时,有时无法传递到环境函数中。为了解决这个问题,一个解决办法就是采用OctetString类。
BitString类在内存中用一个字节存储一个比特位,而OctetString类使用一个字节存储8个比特位,从这点可以看出OctetString更节省内存,所以在和环境函数的通信中更为有利,所以在环境函数的信号参数定义中推荐使用OctetString。
在TAU G2中,要实现BitString和OctetString之间的转换也是非常容易的。
BitString b, p;
OctetString s;
b
= '010'b;在将BitString转换为OctetString时,如果BitString的长度不是8的倍数,TAU G2会在BitString后面补零。对于上面的例子,s将为'01000000'b。
在TAU G2生成的C代码中,BitString和OctetString实际上是一个东西,所以使用OctetString代替BitString之后,环境函数中的绝大多数代码不需要修改,只是要注意OctetString的Bits数组中的每个元素不再是0和1,而是0到255之间的一个数了。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。