跳到主要内容
版本:1.2.0

C++ API Reference

本参考对应 latentos_sdk_cpp 1.2.0,只描述应用可使用的公开 C++ API。规范命名为:

  • 头文件:<latentos/sdk/...>
  • 命名空间:latentos::sdk
  • CMake package:latentos_sdk、latentos_sdk_<module>
  • CMake target:latentos::sdk、latentos::sdk_<module>

快速了解安装布局和调用方式,请先阅读 C++ SDK 指南。各模块页按同一结构组织:模块说明 → 头文件 / CMake → 方法表 → 数据类型 → 调用示例。

选择入口​

统一 Client​

完整模块交付提供 latentos::sdk::Client,适合希望用一个对象访问全部能力的应用。CMake 中链接聚合包:

find_package(latentos_sdk CONFIG REQUIRED)
target_link_libraries(my_app PRIVATE latentos::sdk)

构造时传入 SdkOptions(至少设置 Echo client YAML):

#include <latentos/sdk/client.h>

latentos::sdk::SdkOptions options;
options.client_config_path = "config/echo/mode/client.yaml";
latentos::sdk::Client client(std::move(options));

整机健康状态通过 core 中独立的 safety::SafetyStatusClient 使用;见 Safety Status。其他模块中,电源和相机方法为避免重名,使用更完整的方法名:

能力统一 Client 方法模块 Client 方法
PMU 状态SubscribePowerStatus / GetLatestPowerStatusSubscribeStatus / GetLatestStatus
PMU 事件SubscribePowerEvent / GetLatestPowerEventSubscribeEvent / GetLatestEvent
相机能力QueryCameraCapabilitiesQueryCapabilities
相机控件SetCameraControlSetControl
相机推流SendCameraStreamCommandSendStreamCommand
相机推流参数SetCameraStreamParamsSetStreamParams

模块 Client​

模块 Client 可按已安装模块单独使用。一个 core::Session 可共享给多个模块:

latentos::sdk::core::Session session(std::move(options));
latentos::sdk::motion::MotionClient motion(session);
latentos::sdk::power::PowerClient power(session);
模块类参考
Corecore::SessionCore
Safety Statussafety::SafetyStatusClientSafety Status
Motionmotion::MotionClientMotion
Powerpower::PowerClientPower
Telemetrytelemetry::TelemetryClientTelemetry
Cameracamera::CameraClientCamera
Low Levellow_level::LowLevelClientLow Level
导航与点云(Nav)nav::NavClient导航与点云(Nav)

通用约定​

  • 请求/回复接口会等待回复或超时;通过对应 Options 的 timeout_ms 调整超时。
  • ok 表示通信和回复解析是否成功,不等于目标端接受或完成操作。
  • Subscribe*() 启动订阅;GetLatest*() 只读取本地缓存,第一帧到达前返回空值。
  • ToString(enum_value) 可将公开枚举转为适合日志和界面展示的字符串。
  • Session 和模块 Client 应在订阅、回调及请求期间保持存活。

头文件索引​

内容头文件
统一 Client<latentos/sdk/client.h>
Core<latentos/sdk/core/options.h>、<latentos/sdk/core/session.h>
Safety Status<latentos/sdk/core/safety/safety_status_client.h>、types.h
Motion<latentos/sdk/motion/motion_client.h>、result.h、codes.h
Power<latentos/sdk/power/power_client.h> 及同目录数据类型头文件
Telemetry<latentos/sdk/telemetry/telemetry_client.h>、imu.h、gnss.h
Camera<latentos/sdk/camera/camera_client.h> 及同目录数据类型头文件
Low Level<latentos/sdk/low_level/low_level_client.h>、joint_state.h、joint_command.h
导航与点云(Nav)<latentos/sdk/nav/nav_client.h>

兼容说明​

自 1.1 起,规范名为 latentos::sdk / <latentos/sdk/...>;仍保留 1.0.x 的 high_level 旧名称供已有源码重新编译。API Reference 只展示规范名称,新工程不要继续使用 high_level。旧二进制程序不保证可直接替换为新版动态库。