无法在protobuffer中添加重复字段

Unable to add repeated field to protobuffer?

本文关键字:字段 添加 protobuffer      更新时间:2023-10-16

所以我试图添加一个重复字段的protobuff。然而,每当我使用make生成文件时,add_linkage都不接受任何参数,就好像它实际上无法读取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()不接受任何参数。repeated消息类型的add_x()方法返回一个指向消息的新空实例的指针。你需要做一些类似ModelVelResponse* resp = my_vodel_vel_v.add_linkage();的事情。然后,您可以根据需要对返回消息的字段进行分配。