【发布时间】:2021-09-16 11:12:45
【问题描述】:
我有一个 asn 架构文件,但在表示两种类型的数据时遇到了问题
-
id TIDTID::= OCTET STRING (SIZE(4))
如何设置id 的值?如果是INTEGER,我们直接设置id = 10为例。
-
objects List其中List::= SEQUENCE (SIZE(1..256)) OF Data,
Data::= SEQUENCE { cl1 objData1, cl2 objData2 }
,
objData1::= SEQUENCE {
cl3 objData3,
cl4 objData4,
}
我的问题是,当我引用与objects 相对应的结构中创建的变量时,我该怎么做?例如在更简单的情况下,refPos Position3D 与
Position ::= SEQUENCE {
lat Latitude,
Long Longitude
}
lat 和 long 可以通过 refPos.lat 和 refPos.Long 访问。但是因为data 是一个List,它是一个大小为256 的序列,并且这256 个项目中的每一个都将有一个objData1 和objData2。是否涉及索引?因此访问列表中第一项的latitude 是作为objects[1].cl1.cl3.lat 完成的?
【问题讨论】:
-
How do I set the value of id?这不是 C++,你可以随意设置它,在你选择使用的任何抽象中。If it was type INTEGER, we directly set id = 10C++ 中没有INTEGER。如果是 C++ 并且是int,那么您可以使用id = 10。但同样的方式,如果它是 c++ 并且如果它是std::string,那么你会是id = "stri"。我不清楚你在问什么。 -
when I am referencing the variables inside the struct created corresponding to objects, how do I do that?你“参考”在什么地方?在英语中,你可以说你的意思是一个对象列表。在 C++ 中,你必须先用 C++ 编写它......the lat and long can be accessed by refPos.lat and refPos.Long用什么语言?Position ::=不是 C++,你不能在 C++ 中访问它。 -
@KamilCuk 我使用 asn 工具生成与 schema 对应的 c++ 头文件和源文件。然后我使用这些文件使用 c++ 创建一个数据包,并且 epacket 将拥有
packet->id、packet->objects等成员。 -
the asn tool什么 asn 工具?请参阅它生成的“asn 工具”文档和源代码。 -
所以检查
the correspding c files看看具体的工具生成了什么。