syntax = "proto3"; package cmvr.config; // 示例/测试 AGV 后端配置。 message MyAgvConfig { // 设备 id。为空时通常由外层 AGVDeviceConfig.id 补齐。 string id = 1; // AGV 控制器 IP 地址或主机名。 string ip = 2; // AGV 控制器端口号。 int32 port = 3; } // 仙工 SEER Robokit AGV 后端配置。 message SeerRobokitAgvConfig { // 设备 id。为空时通常由外层 AGVDeviceConfig.id 补齐。 string id = 1; // SEER Robokit 控制器 IP 地址。 string ip = 2; // 是否启用该后端配置。当前设备是否创建仍以设备管理器配置为准。 bool enable = 3; // 状态查询端口,默认 19204。 int32 port_status = 4; // 控制命令端口,默认 19205。 int32 port_control = 5; // 导航任务端口,默认 19206。 int32 port_nav = 6; // 地图/配置文件端口,默认 19207。 int32 port_config = 7; // 其他功能端口,默认 19210,例如扫图开始/停止。 int32 port_other = 8; // 状态推送端口,默认 19301。 int32 port_push = 9; // 连接超时时间,单位:毫秒。0 表示使用适配器默认值。 int32 connect_timeout_ms = 10; // 接收超时时间,单位:毫秒。0 表示使用适配器默认值。 int32 recv_timeout_ms = 11; // 是否启用机器人状态实时推送。 bool enable_state_push = 12; // 状态推送间隔,单位:毫秒。0 表示不修改控制器默认间隔。 int32 state_push_interval_ms = 13; // 状态推送中显式包含的字段列表。该字段不能与 state_push_excluded_fields 同时配置。 repeated string state_push_included_fields = 14; // 状态推送中排除的字段列表。该字段不能与 state_push_included_fields 同时配置。 repeated string state_push_excluded_fields = 15; // 是否启用地图后台更新线程。启用后适配器会周期性抓取并解析地图,供 gRPC 地图流直接读取。 bool enable_map_update = 16; // 地图后台更新间隔,单位:毫秒。0 表示使用适配器默认值。 int32 map_update_interval_ms = 17; // 统一地图更新缓存条数。0 表示使用适配器默认值;缓存满后会丢弃最旧更新。 uint32 map_update_history_size = 18; // 抢占 SEER Robokit 控制权时上报的稳定昵称。为空时适配器使用 "cmvr-es:"。 string control_nick_name = 19; } // 单个 AGV 设备配置。 message AGVDeviceConfig { // 设备 id。必须与设备管理器中的 AGV 设备 id 对应。 string id = 1; // 具体 AGV 后端配置。同一设备只能选择一个后端。 oneof backend { // 示例/测试 AGV 后端。 MyAgvConfig my_agv = 10; // 仙工 SEER Robokit AGV 后端。 SeerRobokitAgvConfig seer_robokit_agv = 11; } } // AGV 设备配置集合。 message AGVConfig { // AGV 设备列表。 repeated AGVDeviceConfig agvs = 1; } // AGV 配置文件根节点。 message AGVRootConfig { // AGV 配置集合。 AGVConfig agv = 1; }