5.1 예제 및 회귀
개요
예제는 언어별로 그룹화되어 있습니다.
example/cpp17example/c99example/cpp11
예제는 기본적으로 "연결 -> 인터페이스 모듈 호출 -> 연결 해제/핸들 파괴" 폐루프를 보여 주며, 외부 연동 측의 최소 연동 템플릿으로 사용하기에 적합합니다.
권장 순서
권장 실행 순서는 다음과 같습니다.
- 먼저
build/build.ps1을 실행해 SDK 출력을 생성합니다. C++17 패키지에는 컴파일 시 필요한 jsoncpp 의존성include/json/및lib/jsoncpp.lib가 추가로 포함됩니다. C99 패키지는 이 두 파일이 필요하지 않지만, 두 패키지의runtime/에는jsoncpp.dll이 포함됩니다. - 그다음
test/build/build.ps1을 실행해unit + module + system회귀가 통과하는지 확인합니다. - 마지막으로 필요에 따라 구체적인 예제 하위 프로젝트를 빌드하고 실행합니다.
빌드 진입점
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_disconnect | Arm 연결, 상태 확인, 연결 해제 |
example/cpp17/arm_reconnect | Arm 연결 해제 후 재연결 |
example/cpp17/info_get_controller_version | ControllerInfo 컨트롤러 버전 가져오기 |
example/cpp17/info_state_modes | ControllerInfo 서보/소프트 모드/작업 모드 조회 및 쓰기 |
example/cpp17/alarm_query | Arm Alarm 활성 알람 및 최상위 알람 |
example/cpp17/motion_basic | MotionControl OVC, 소프트 리밋, UDP 피드백 파라미터 |
example/cpp17/motion_pose | MotionControl 포즈 가져오기 및 관절/직교 좌표 변환 |
example/cpp17/motion_drag | MotionControl 드래그 상태 조회 및 쓰기 |
example/cpp17/motion_payload | MotionControl.payload 현재 페이로드, 식별 상태, 쓰기 |
example/cpp17/program_execution | Arm Program 실행 중인 프로그램 조회 |
example/cpp17/program_pose | ProgramPose 변환 |
example/cpp17/bas_script_execution | BasScript 구성 및 실행 |
example/cpp17/signals_basic | Arm Signals 단일 지점 및 배치 읽기 |
example/cpp17/registers_basic | Arm Registers R/SR/MR 읽기 |
example/cpp17/trajectory_basic | TrajectoryManager 레코드 목록 및 플래너 파라미터 |
example/cpp17/file_manager_basic | Arm FileManager 검색 및 존재 여부 확인 |
example/cpp17/modbus_basic | ModbusClient 파라미터, 슬레이브 세션, 코일 읽기 |
example/cpp17/sub_pub_basic | TopicPubSub 연결, 구독, 수신, 연결 해제 |
example/cpp17/jogging_basic | Arm Jogging 스텝, 연속 조그, 다축 조그 |
example/cpp17/extension_basic | Arm Extension 목록, 상세 정보, 서비스 호출, 전환 |
example/cpp17/coordinate_system_basic | CoordinateSystemManager 목록 조회 및 좌표 계산 |
C99
| 디렉터리 | 커버 기능 |
|---|---|
example/c99/arm_connect_disconnect | ArmHandle 생성, 연결, 연결 해제, 파괴 |
example/c99/info_basic | Arm Info 버전, 모델, 상태, 모드 쓰기 |
example/c99/alarm_query | Arm Alarm 활성 알람 및 최상위 알람 |
example/c99/motion_basic | Arm Motion OVC, 소프트 리밋, 포즈 변환 |
example/c99/program_execution | Arm Program 실행 중인 프로그램 조회 |
example/c99/bas_script_execution | BasScript 빌더 핸들, 스크립트 텍스트 생성 및 제어 실행 |
example/c99/registers_basic | RegisterBank R/SR/MR 읽기 |
example/c99/signals_basic | Signals 단일 지점 및 배치 읽기 |
example/c99/trajectory_basic | TrajectoryManager 플래너 파라미터 및 레코드 목록 |
example/c99/file_manager_basic | ControllerFileManager 검색 및 존재 여부 확인 |
example/c99/coordinate_system_basic | CoordinateSystemManager 조회 및 계산 |
example/c99/modbus_basic | ModbusClient 파라미터, 슬레이브 핸들, 레지스터/코일 읽기 |
example/c99/jogging_basic | JoggingControl 스텝, 연속 조그, 다축 조그 |
example/c99/extension_basic | ExtensionClient 목록, 상세 정보, 서비스 호출, 전환 |
example/c99/sub_pub_basic | TopicPubSub 연결, 전송, 구독, 수신 |
C++11
| 디렉터리 | 커버 기능 |
|---|---|
example/cpp11/alarm_query | C99 SDK를 통한 모든 AlarmClient 인터페이스 |
example/cpp11/c99_connect_get_version | C++11에서 C99 SDK로 Create -> Connect -> GetControllerVersion -> Disconnect -> Destroy 최소 폐루프 완료 |
동작형 예제 주의 사항
다음 예제는 모션, 쓰기, 확장 전환 또는 주변 장치 접근을 포함합니다. 실행 전에 장치 상태와 주변 안전을 확인하십시오.
example/cpp17/info_state_modesexample/cpp17/motion_basicexample/cpp17/motion_dragexample/cpp17/motion_payloadexample/cpp17/bas_script_executionexample/cpp17/jogging_basicexample/cpp17/extension_basicexample/c99/info_basicexample/c99/modbus_basicexample/c99/jogging_basicexample/c99/extension_basicexample/c99/bas_script_execution
문서 매핑
| 문서 | 대응 예제 |
|---|---|
| 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.7 IoSignals | example/cpp17/signals_basic 、 example/c99/signals_basic |
| 3.8 RegisterBank | example/cpp17/registers_basic 、 example/c99/registers_basic |
| 3.9 TrajectoryManager | example/cpp17/trajectory_basic 、 example/c99/trajectory_basic |
| 3.10 ControllerFileManager | example/cpp17/file_manager_basic 、 example/c99/file_manager_basic |
| 3.11 JoggingControl | example/cpp17/jogging_basic 、 example/c99/jogging_basic |
| 3.12 ExtensionClient | example/cpp17/extension_basic 、 example/c99/extension_basic |
| 3.13 TopicPubSub | example/cpp17/sub_pub_basic 、 example/c99/sub_pub_basic |
| 3.14 ModbusClient | example/cpp17/modbus_basic 、 example/c99/modbus_basic |
| 3.15 CoordinateSystemManager | example/cpp17/coordinate_system_basic 、 example/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.ps1E2E 포맷 스모크
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.*