当有多个嵌套的“重复”字段时,如何用NanoPB正确编码数据?
这是我的方案:
message Report {
message SensorData {
required uint32 sensorid = 1;
required uint32 sample = 2;
}
message DeviceData {
required uint32 devid = 1;
repeated SensorData sensor_data = 2;
}
required uint32 reportnum = 1;
repeated DeviceData dev_data = 2;
}我已经基于NanoPB源代码中的server.c示例制作了一个工作版本,其中SensorData字段嵌入到DeviceData消息中。这样,我只有一个重复的字段,一切工作正常。然而,通过这种方式,我必须为每个sensorid和每个“样本”重复“devid”字段,而不是只给它一次,然后循环遍历一组SensorData消息。然而,我很难用NanoPB来编码,解码部分是用Python语言编写的。谁能给我举个例子,在这种情况下如何正确地编码数据?
发布于 2020-02-17 04:53:08
对我来说,最简单的方法是使用nanopb options file静态定义数组的大小。之后,您可以像访问数组一样访问每个元素。
report.dev_data[i].devid[j] = 1234;
report.dev_data[i].sensor_data[j] = 9876;https://stackoverflow.com/questions/56900735
复制相似问题