Так что я пытаюсь добавить повторяющееся поле в protobuff. Тем не менее, всякий раз, когда я сгенерирую файл с помощью make, add_linkage не принимает никаких аргументов, как будто он на самом деле не умеет читать тип, который, как предполагается, связывает (это еще один protobuffer.) Что я делаю неправильно в файле protobuffer?Невозможно добавить повторяющееся поле в протобаффер?
package model_velocity.msgs;
import "vector3d.proto";
message ModelVelResponse
{
required string name = 1;
required gazebo.msgs.Vector3d angularVel = 2;
required gazebo.msgs.Vector3d linearVel = 3;
}
message ModelVel_V{
repeated ModelVelResponse linkage = 1;
}
Нужно ли мне что-то делать? Мне нужно вызвать другую функцию для повторения сообщения? Любая помощь будет оценена по достоинству.
Тогда как бы я его еще раз назначил? Просто используйте add_linkage как эффективный конструктор? – Skylion
Каждый раз, когда вы вызываете 'add_linkage()', он добавляет новое сообщение «MedelVelResponse» к вашему сообщению и возвращает указатель на него, так что да, вы можете думать о нем как о конструкторе (хотя этот шаблон обычно называется фабрикой) , –
Я вижу, даже если он компилируется сейчас, я получаю сообщение об ошибке, когда я использую его что-то вроде неинициализированного значения. – Skylion