Skip to content

5.1 示例与回归

概览

示例按语言分组:

  1. example/cpp17
  2. example/c99
  3. example/cpp11

示例默认按 “连接 -> 调用接口模块 -> 断开连接 / 销毁句柄” 的闭环演示, 适合作为外部接入方的最小接入模板。

推荐顺序

推荐执行顺序:

  1. 先执行 build/build.ps1 ,生成 SDK 输出;C++17 发布包会额外携带编译期 jsoncpp 依赖 include/json/lib/jsoncpp.lib ,C99 发布包不需要这两个文件,但两个包的 runtime/ 都会携带 jsoncpp.dll
  2. 再执行 test/build/build.ps1 ,确认 unit + module + system 回归通过。
  3. 最后按需构建并运行具体示例子工程。

构建入口

SDK 构建

powershell
powershell -ExecutionPolicy Bypass -File build/build.ps1

测试回归

powershell
powershell -ExecutionPolicy Bypass -File test/build/build.ps1

示例构建

代表命令:

powershell
powershell -ExecutionPolicy Bypass -File example/cpp17/info_get_controller_version/build/build.ps1
powershell -ExecutionPolicy Bypass -File example/c99/info_basic/build/build.ps1
powershell -ExecutionPolicy Bypass -File example/cpp11/c99_connect_get_version/build/build.ps1

运行方式

运行前确认示例中的设备地址,然后执行对应的构建脚本。

powershell
.\example\cpp17\info_get_controller_version\build\build.ps1
.\example\c99\info_basic\build\build.ps1
.\example\c99\gcc_capi_info_read\build\build.ps1
.\example\cpp11\c99_connect_get_version\build\build.ps1

示例覆盖

C++17

目录覆盖能力
example/cpp17/arm_connect_disconnectArm 连接、状态确认、断开
example/cpp17/arm_reconnectArm 断开后重连
example/cpp17/info_get_controller_versionControllerInfo 获取控制器版本
example/cpp17/info_state_modesControllerInfo 查询伺服 / 软模式 / 操作模式并写回
example/cpp17/alarm_queryArm Alarm 活跃报警与顶层报警
example/cpp17/motion_basicMotionControl OVC、软限位、UDP 反馈参数
example/cpp17/motion_poseMotionControl 位姿获取与关节 / 笛卡尔转换
example/cpp17/motion_dragMotionControl 拖动状态查询与写回
example/cpp17/motion_payloadMotionControl.payload 当前负载、识别状态、写回
example/cpp17/program_executionArm Program 运行中程序查询
example/cpp17/program_poseProgramPose 转换
example/cpp17/bas_script_executionBasScript 构造与执行
example/cpp17/signals_basicArm Signals 单点与批量读取
example/cpp17/registers_basicArm Registers R/SR/MR 读取
example/cpp17/trajectory_basicTrajectoryManager 记录列表与规划参数
example/cpp17/file_manager_basicArm FileManager 搜索与存在性检查
example/cpp17/modbus_basicModbusClient 参数、从站会话、线圈读取
example/cpp17/sub_pub_basicTopicPubSub 连接、订阅、接收、断开
example/cpp17/jogging_basicArm Jogging 步进、连续点动、多轴点动
example/cpp17/extension_basicArm Extension 列表、详情、服务调用、切换
example/cpp17/coordinate_system_basicCoordinateSystemManager 列表查询与坐标计算

C99

目录覆盖能力
example/c99/arm_connect_disconnectArmHandle 创建、连接、断开、销毁
example/c99/info_basicArm Info 版本、型号、状态、模式写回
example/c99/alarm_queryArm Alarm 活跃报警与顶层报警
example/c99/motion_basicArm Motion OVC、软限位、位姿转换
example/c99/program_executionArm Program 运行中程序查询
example/c99/bas_script_executionBasScript 构造器句柄、脚本文本生成与受控执行
example/c99/registers_basicRegisterBank R/SR/MR 读取
example/c99/signals_basicSignals 单点与批量读取
example/c99/trajectory_basicTrajectoryManager 规划参数与记录列表
example/c99/file_manager_basicControllerFileManager 搜索与存在性检查
example/c99/coordinate_system_basicCoordinateSystemManager 查询与计算
example/c99/modbus_basicModbusClient 参数、从站句柄、寄存器 / 线圈读取
example/c99/jogging_basicJoggingControl 步进、连续点动、多轴点动
example/c99/extension_basicExtensionClient 列表、详情、服务调用、切换
example/c99/sub_pub_basicTopicPubSub 连接、发送、订阅、接收

C++11

目录覆盖能力
example/cpp11/alarm_queryArm Alarm 全部接口(通过 C99 SDK)
example/cpp11/c99_connect_get_versionC++11 通过 C99 SDK 完成 Create -> Connect -> GetControllerVersion -> Disconnect -> Destroy 最小闭环

动作型示例提示

以下示例包含运动、写回、插件切换或外设访问,运行前请确认设备状态和周边安全:

  1. example/cpp17/info_state_modes
  2. example/cpp17/motion_basic
  3. example/cpp17/motion_drag
  4. example/cpp17/motion_payload
  5. example/cpp17/bas_script_execution
  6. example/cpp17/jogging_basic
  7. example/cpp17/extension_basic
  8. example/c99/info_basic
  9. example/c99/modbus_basic
  10. example/c99/jogging_basic
  11. example/c99/extension_basic
  12. example/c99/bas_script_execution

文档映射

文档对应示例
3.1 Armexample/cpp17/arm_connect_disconnectexample/cpp17/arm_reconnectexample/cpp17/sub_pub_basic
3.2 Infoexample/cpp17/info_get_controller_versionexample/cpp17/info_state_modesexample/c99/info_basicexample/mingw_c99/gcc_capi_info_read
3.3 Alarmexample/cpp17/alarm_queryexample/c99/alarm_query
3.4 Motionexample/cpp17/motion_basicexample/cpp17/motion_poseexample/cpp17/motion_dragexample/cpp17/motion_payloadexample/c99/motion_basic
3.5 Programexample/cpp17/program_executionexample/cpp17/program_poseexample/c99/program_execution
3.7 IoSignalsexample/cpp17/signals_basicexample/c99/signals_basic
3.8 RegisterBankexample/cpp17/registers_basicexample/c99/registers_basic
3.9 TrajectoryManagerexample/cpp17/trajectory_basicexample/c99/trajectory_basic
3.10 ControllerFileManagerexample/cpp17/file_manager_basicexample/c99/file_manager_basic
3.11 JoggingControlexample/cpp17/jogging_basicexample/c99/jogging_basic
3.12 ExtensionClientexample/cpp17/extension_basicexample/c99/extension_basic
3.13 TopicPubSubexample/cpp17/sub_pub_basicexample/c99/sub_pub_basic
3.14 ModbusClientexample/cpp17/modbus_basicexample/c99/modbus_basic
3.15 CoordinateSystemManagerexample/cpp17/coordinate_system_basicexample/c99/coordinate_system_basic

回归命令

powershell
powershell -ExecutionPolicy Bypass -File test/build/build.ps1 unit
powershell -ExecutionPolicy Bypass -File test/build/build.ps1 module
powershell -ExecutionPolicy Bypass -File test/build/build.ps1 system
powershell -ExecutionPolicy Bypass -File example/cpp17/info_get_controller_version/build/build.ps1
powershell -ExecutionPolicy Bypass -File example/c99/info_basic/build/build.ps1
powershell -ExecutionPolicy Bypass -File example/mingw_c99/gcc_capi_info_read/build/build.ps1
powershell -ExecutionPolicy Bypass -File example/cpp11/c99_connect_get_version/build/build.ps1

E2E 格式冒烟

E2E 正式目标为 test/output/bin/E2ETest.exe ,运行前需要确认 test/E2E_test/config.json 中的真实设备地址。 信号读写格式冒烟用例使用宽松格式校验,不要求现场值完整一致:

powershell
powershell -ExecutionPolicy Bypass -File test/build/build.ps1 e2e
.\test\output\bin\E2ETest.exe --gtest_filter=E2EArmSignalTest.*