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_queryC99 SDK를 통한 모든 AlarmClient 인터페이스
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.*