5.1 Examples and Regression
Overview
The current repository's example/ has been restructured to "one example per independent sub-project":
example/cpp17/<example_dir>/example/c99/<example_dir>/example/cpp11/<example_dir>/
Each sub-project independently provides:
CMakeLists.txtbuild/build.ps1src/- Directly runnable
main
Examples default to demonstrating "connect -> call facade -> disconnect/destroy handle" closed loop, suitable as minimal integration templates for external integrators.
Recommended Sequence
Recommended execution order:
- First execute
build/build.ps1to generate the Release SDK delivery package; the C++17 package additionally includes the jsoncpp compile-time dependenciesinclude/json/andlib/jsoncpp.lib. The C99 package does not need those two files, but both packages includejsoncpp.dllunderruntime/. - Then execute
test/build/build.ps1to confirmunit + module + systemregression passes. - Finally build and run specific example sub-projects as needed.
Build Entry Points
SDK Build
powershell -ExecutionPolicy Bypass -File build/build.ps1Test Regression
powershell -ExecutionPolicy Bypass -File test/build/build.ps1Example 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 -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.ps1Running 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 .
.\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.ps1Example Coverage
C++17
| Directory | Covered 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
| Directory | Covered 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
| Directory | Covered 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:
example/cpp17/info_state_modes/example/cpp17/motion_basic/example/cpp17/motion_drag/example/cpp17/motion_payload/example/cpp17/bas_script_execution/example/cpp17/jogging_basic/example/cpp17/extension_basic/example/c99/info_basic/example/c99/modbus_basic/example/c99/jogging_basic/example/c99/extension_basic/
Documentation Mapping
| Document | Corresponding Examples |
|---|---|
| 3.1 Arm | example/cpp17/arm_connect_disconnect/ , example/cpp17/arm_reconnect/ , example/cpp17/sub_pub_basic/ |
| 3.2 Info | example/cpp17/info_get_controller_version/ , example/cpp17/info_state_modes/ , example/c99/info_basic/ , example/mingw_c99/gcc_capi_info_read/ |
| 3.3 Alarm | example/cpp17/alarm_query/ , example/c99/alarm_query/ |
| 3.4 Motion | example/cpp17/motion_basic/ , example/cpp17/motion_pose/ , example/cpp17/motion_drag/ , example/cpp17/motion_payload/ , example/c99/motion_basic/ |
| 3.5 Program | example/cpp17/program_execution/ , example/cpp17/program_pose/ , example/c99/program_execution/ |
| 3.6 BasScript | example/cpp17/bas_script_execution/ , example/c99/bas_script_execution/ |
| 3.7 Signals | example/cpp17/signals_basic/ , example/c99/signals_basic/ |
| 3.8 Registers | example/cpp17/registers_basic/ , example/c99/registers_basic/ |
| 3.9 Trajectory | example/cpp17/trajectory_basic/ , example/c99/trajectory_basic/ |
| 3.10 FileManager | example/cpp17/file_manager_basic/ , example/c99/file_manager_basic/ |
| 3.11 Jogging | example/cpp17/jogging_basic/ , example/c99/jogging_basic/ |
| 3.12 Extension | example/cpp17/extension_basic/ , example/c99/extension_basic/ |
| 3.13 SubPub | example/cpp17/sub_pub_basic/ , example/c99/sub_pub_basic/ |
| 3.14 Modbus | example/cpp17/modbus_basic/ , example/c99/modbus_basic/ |
| 3.15 CoordinateSystem | example/cpp17/coordinate_system_basic/ , example/c99/coordinate_system_basic/ |
Current Regression Commands
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.ps1E2E 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 -ExecutionPolicy Bypass -File test/build/build.ps1 e2e
.\test\output\bin\E2ETest.exe --gtest_filter=E2EArmSignalTest.*