Как правильно кодировать данные с помощью 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
на основе примера server.c из источника NanoPB. Таким образом, у меня есть только одно повторное поле, и все работает отлично. Однако таким образом я должен повторить поле «devid» для каждого sensorid
и каждого «сэмпла», вместо того, чтобы дать его только один раз, а затем перебрать массив SensorData
сообщений. Однако я изо всех сил пытаюсь закодировать это с NanoPB, часть декодирования находится на Python. Может кто-нибудь дать мне пример, как правильно кодировать данные в этом случае?