首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Nanopb中使用“重复”内部的“重复”数据

在Nanopb中使用“重复”内部的“重复”数据
EN

Stack Overflow用户
提问于 2019-07-05 17:55:35
回答 1查看 182关注 0票数 1

当有多个嵌套的“重复”字段时,如何用NanoPB正确编码数据?

这是我的方案:

代码语言:javascript
复制
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语言编写的。谁能给我举个例子,在这种情况下如何正确地编码数据?

EN

回答 1

Stack Overflow用户

发布于 2020-02-17 04:53:08

对我来说,最简单的方法是使用nanopb options file静态定义数组的大小。之后,您可以像访问数组一样访问每个元素。

代码语言:javascript
复制
report.dev_data[i].devid[j] = 1234;
report.dev_data[i].sensor_data[j] = 9876;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56900735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档