Skip to content

5.1 Examples and Regression

Overview

The current repository's example/ has been restructured to "one example per independent sub-project":

  1. example/cpp17/<example_dir>/
  2. example/c99/<example_dir>/
  3. example/cpp11/<example_dir>/

Each sub-project independently provides:

  1. CMakeLists.txt
  2. build/build.ps1
  3. src/
  4. Directly runnable main

Examples default to demonstrating "connect -> call facade -> disconnect/destroy handle" closed loop, suitable as minimal integration templates for external integrators.

Recommended execution order:

  1. First execute build/build.ps1 to generate the Release SDK delivery package; the C++17 package additionally includes the jsoncpp compile-time dependencies include/json/ and lib/jsoncpp.lib . The C99 package does not need those two files, but both packages include jsoncpp.dll under runtime/ .
  2. Then execute test/build/build.ps1 to confirm unit + module + system regression passes.
  3. Finally build and run specific example sub-projects as needed.

Build Entry Points

SDK Build

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

Test Regression

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

Example Build

The example/ root directory no longer provides a unified runner, nor language-level master project build entry. Must directly execute build/build.ps1 under specific example directory.

Representative commands:

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

Running Method

The public examples in this repository now hard-code controller_ip and teach_panel_ip in source rather than accepting them from the command line. To switch devices, edit the addresses in the example source and rerun the matching 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

Example Coverage

C++17

DirectoryCovered Capabilities
example/cpp17/arm_connect_disconnect/Arm connect, state confirm, disconnect
example/cpp17/arm_reconnect/Arm reconnect after disconnect
example/cpp17/info_get_controller_version/ControllerInfo get controller version
example/cpp17/info_state_modes/ControllerInfo query servo/soft mode/operation mode and write back
example/cpp17/alarm_query/Arm Alarm active alarms and top-level alarms
example/cpp17/motion_basic/MotionControl OVC, soft limits, UDP feedback parameters
example/cpp17/motion_pose/MotionControl pose get and joint/Cartesian conversion
example/cpp17/motion_drag/MotionControl drag state query and write back
example/cpp17/motion_payload/MotionControl.payload current payload, identification state, write back
example/cpp17/program_execution/Arm Program running program query
example/cpp17/program_pose/ProgramPose conversion
example/cpp17/bas_script_execution/BasScript construction and execution
example/cpp17/signals_basic/Arm Signals single and batch read
example/cpp17/registers_basic/Arm Registers R/SR/MR read
example/cpp17/trajectory_basic/TrajectoryManager record list and planner parameters
example/cpp17/file_manager_basic/Arm FileManager search and existence check
example/cpp17/modbus_basic/ModbusClient parameters, slave session, coil read
example/cpp17/sub_pub_basic/TopicPubSub connect, subscribe, receive, disconnect
example/cpp17/jogging_basic/Arm Jogging step, continuous jogging, multi-axis jogging
example/cpp17/extension_basic/Arm Extension list, details, service call, toggle
example/cpp17/coordinate_system_basic/CoordinateSystemManager list query and coordinate calculation

C99

DirectoryCovered Capabilities
example/c99/arm_connect_disconnect/ArmHandle create, connect, disconnect, destroy
example/c99/info_basic/ControllerInfo version, model, state, mode write back
example/c99/alarm_query/AlarmClient active alarms and top-level alarms
example/c99/motion_basic/MotionControl OVC, soft limits, pose conversion
example/c99/program_execution/ProgramManager running program query
example/c99/registers_basic/RegisterBank R/SR/MR read
example/c99/signals_basic/Signals single and batch read
example/c99/trajectory_basic/TrajectoryManager planner parameters and record list
example/c99/file_manager_basic/ControllerFileManager search and existence check
example/c99/coordinate_system_basic/CoordinateSystemManager query and calculation
example/c99/modbus_basic/ModbusClient parameters, slave handle, register/coil read
example/c99/jogging_basic/JoggingControl step, continuous jogging, multi-axis jogging
example/c99/extension_basic/ExtensionClient list, details, service call, toggle
example/c99/sub_pub_basic/TopicPubSub connect, send, subscribe, receive

C++11

DirectoryCovered Capabilities
example/cpp11/alarm_query/Arm Alarm full interface set via the C99 SDK
example/cpp11/c99_connect_get_version/C++11 completes Create -> Connect -> GetControllerVersion -> Disconnect -> Destroy minimal closed loop via C99 SDK

Action-Type Example Notes

The following examples contain motion, write-back, plugin toggle, or peripheral access. Confirm device state and surrounding safety before running:

  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/

Documentation Mapping

DocumentCorresponding Examples
3.1 Armexample/cpp17/arm_connect_disconnect/ , example/cpp17/arm_reconnect/ , example/cpp17/sub_pub_basic/
3.2 Infoexample/cpp17/info_get_controller_version/ , example/cpp17/info_state_modes/ , example/c99/info_basic/ , example/mingw_c99/gcc_capi_info_read/
3.3 Alarmexample/cpp17/alarm_query/ , example/c99/alarm_query/
3.4 Motionexample/cpp17/motion_basic/ , example/cpp17/motion_pose/ , example/cpp17/motion_drag/ , example/cpp17/motion_payload/ , example/c99/motion_basic/
3.5 Programexample/cpp17/program_execution/ , example/cpp17/program_pose/ , example/c99/program_execution/
3.6 BasScriptexample/cpp17/bas_script_execution/ , example/c99/bas_script_execution/
3.7 Signalsexample/cpp17/signals_basic/ , example/c99/signals_basic/
3.8 Registersexample/cpp17/registers_basic/ , example/c99/registers_basic/
3.9 Trajectoryexample/cpp17/trajectory_basic/ , example/c99/trajectory_basic/
3.10 FileManagerexample/cpp17/file_manager_basic/ , example/c99/file_manager_basic/
3.11 Joggingexample/cpp17/jogging_basic/ , example/c99/jogging_basic/
3.12 Extensionexample/cpp17/extension_basic/ , example/c99/extension_basic/
3.13 SubPubexample/cpp17/sub_pub_basic/ , example/c99/sub_pub_basic/
3.14 Modbusexample/cpp17/modbus_basic/ , example/c99/modbus_basic/
3.15 CoordinateSystemexample/cpp17/coordinate_system_basic/ , example/c99/coordinate_system_basic/

Current Regression Commands

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 Format Smoke

The formal E2E target is test/output/bin/E2ETest.exe ; confirm real device addresses in test/E2E_test/config.json before running it. The signal read/write format smoke cases use relaxed format checks and do not require every field value to match exactly:

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