C 使用';重复';内部';重复';以毫微秒为单位的数据
当有多个嵌套的“重复”字段时,如何使用NanoPB正确编码数据 这是我的模式: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;
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;