C 使用';重复';内部';重复';以毫微秒为单位的数据

C 使用';重复';内部';重复';以毫微秒为单位的数据,c,protocol-buffers,nanopb,C,Protocol Buffers,Nanopb,当有多个嵌套的“重复”字段时,如何使用NanoPB正确编码数据 这是我的模式: message Report { message SensorData { required uint32 sensorid = 1; required uint32 sample = 2; } message DeviceData { required uint32 devid = 1; repeated SensorData sensor_data = 2;

当有多个嵌套的“重复”字段时,如何使用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;

}

我已经制作了一个工作版本,其中,
SensorData
字段嵌入在基于服务器的
DeviceData
消息中。这样,我只有一个重复的字段,一切正常。但是,通过这种方式,我必须为每个
sensorid
和每个“样本”重复“devid”字段,而不是只给它一次,然后循环遍历
SensorData
消息数组。然而,我正在努力用NanoPB对其进行编码,解码部分是用Python编写的。有人能给我举一个例子,在这种情况下如何正确地编码数据吗?

对我来说,最简单的方法是使用。之后,您可以像访问数组一样访问每个元素

report.dev_data[i].devid[j]=1234;
report.dev_data[i].传感器数据[j]=9876;

对我来说,最简单的方法是使用。之后,您可以像访问数组一样访问每个元素

report.dev_data[i].devid[j]=1234;
report.dev_data[i].传感器数据[j]=9876;