2.1 상태 코드 및 공통 타입
Float32 / Float64
헤더 파일: include/common.h
| 이름 | 정의 |
|---|---|
Float32 | float |
Float64 | double |
STATUS_CODE
STATUS_CODE 는 SDK 공통 반환값입니다. 이 문서 페이지에는 자주 사용하는 상태 코드만 나열하며, 전체 열거형은 SDK 헤더 파일을 기준으로 합니다.
| 상태 코드 | 값 | 일반적인 시나리오 |
|---|---|---|
OK | 0 | 호출 성공 |
CONNECTION_TIMEOUT | -3 | 네트워크 연결 시간 초과 |
INVALID_IP_ADDRESS | -17 | Arm::Connect() / TopicPubSub::Connect() 에 잘못된 IP 입력 |
FAILED_TO_DOWNLOAD_SAME_NAME_FILE | -21 | 다운로드 시 대상 파일이 이미 존재하고 overwriting=false |
FILE_NOTEXIST | -25 | 컨트롤러 파일이 존재하지 않음 |
INVALID_PARAMETER | -27 | 입력 파라미터가 로컬 검증 규칙에 맞지 않음 |
NOT_FOUND | -28 | 대상 데이터를 찾을 수 없음 |
LOCAL_PROXY_UNSUPPORTED | -29 | 로컬 프록시 모드가 현재 입력 환경을 지원하지 않음 |
BUFFER_TOO_SMALL | -30 | C99 out 버퍼가 부족함 |
NOT_CONNECTED | -35 | 아직 연결되지 않았거나 연결이 끊어짐 |
SUB_PUB_RECEIVE_TIMEOUT | -37 | TopicPubSub::Receive() 가 제한 시간 내에 메시지를 받지 못함 |
CONTROLLER_ERROR | -254 | 컨트롤러가 오류를 반환 |
OTHER_ERR | -255 | 일반 실패 기본값 |
사용 권장 사항
- C++17 조회 인터페이스는 일반적으로
std::pair<T, STATUS_CODE>를 반환합니다. STATUS_CODE != OK인 경우 데이터 값을 계속 사용하지 마십시오.- 일부 인터페이스는 "실패 데이터 값 + 상태 코드"를 함께 반환합니다. 예:
ControllerInfo::GetSoftMode()실패 시SoftModeEnum::UNKNOWN반환ControllerInfo::GetOpMode()실패 시OpModeEnum::UNKNOWN반환TopicPubSub::Receive()시간 초과 시 빈Json::Value+SUB_PUB_RECEIVE_TIMEOUT반환
RobotType
헤더 파일: include/arm_api.h
| 열거형 | 값 | 설명 |
|---|---|---|
RobotType::UNKNOWN | 0 | 식별되지 않음 |
RobotType::COBOT | 1 | 협동 로봇 |
RobotType::PUMA | 2 | PUMA 로봇 |
RobotType::SCARA | 3 | SCARA 로봇 |
Arm::Connect() 성공 후 robotType 필드가 채워집니다. 식별 규칙:
- 모델에
GBT-C가 포함되면COBOT으로 식별됩니다. - 모델에
GBT-S가 포함되면SCARA로 식별됩니다. - 기타 식별된 모델은 기본적으로
PUMA로 분류됩니다.
실행 상태 열거형
| 헤더 파일 | 타입 |
|---|---|
include/ctrl_status_enum.h | CtrlStatusEnum |
include/robot_status_enum.h | RobotStatusEnum |
include/servo_status_enum.h | ServoStatusEnum |
include/soft_mode_enum.h | SoftModeEnum |
include/op_mode_enum.h | OpModeEnum |
이 열거형은 ControllerInfo 조회 인터페이스의 반환 타입이며, 컨트롤러가 반환한 상태 코드를 읽기 쉬운 상태로 변환하는 데 사용됩니다. 식별할 수 없는 값은 대응하는 UNKNOWN 항목으로 매핑됩니다.
CtrlStatusEnum
모션 컨트롤러의 실행 상태를 나타내며 ControllerInfo::GetCtrlStatus() 에 대응합니다.
| 열거형 | 값 | 설명 |
|---|---|---|
CtrlStatusEnum::CTRL_INIT | 0 | 모션 컨트롤러 초기화 |
CtrlStatusEnum::CTRL_ENGAGED | 1 | 모션 컨트롤러 활성화됨 |
CtrlStatusEnum::CTRL_ESTOP | 2 | 모션 컨트롤러 비상 정지 |
CtrlStatusEnum::CTRL_TERMINATED | 3 | 모션 컨트롤러 중지 |
CtrlStatusEnum::CTRL_ANY_TO_ESTOP | 101 | 중간 상태: 다른 상태에서 비상 정지로 전환 |
CtrlStatusEnum::CTRL_ESTOP_TO_ENGAGED | 102 | 중간 상태: 비상 정지에서 활성화로 전환 |
CtrlStatusEnum::CTRL_ESTOP_TO_TERMINATED | 103 | 중간 상태: 비상 정지에서 중지로 전환 |
CtrlStatusEnum::CTRL_UNKNOWN | -1 | 알 수 없는 상태 |
RobotStatusEnum
로봇 본체의 실행 상태를 나타내며 ControllerInfo::GetRobotStatus() 에 대응합니다.
| 열거형 | 값 | 설명 |
|---|---|---|
RobotStatusEnum::ROBOT_IDLE | 0 | 로봇 대기 |
RobotStatusEnum::ROBOT_RUNNING | 1 | 로봇 실행 중 |
RobotStatusEnum::ROBOT_TEACHING | 2 | 로봇 티칭 중 |
RobotStatusEnum::ROBOT_DRAG | 3 | 로봇 드래그 중 |
RobotStatusEnum::ROBOT_FORCE_DRAG | 4 | 로봇 강제 드래그 중 |
RobotStatusEnum::ROBOT_IDLE_TO_RUNNING | 101 | 중간 상태: 대기에서 실행으로 전환 |
RobotStatusEnum::ROBOT_IDLE_TO_TEACHING | 102 | 중간 상태: 대기에서 티칭으로 전환 |
RobotStatusEnum::ROBOT_RUNNING_TO_IDLE | 103 | 중간 상태: 실행에서 대기로 전환 |
RobotStatusEnum::ROBOT_TEACHING_TO_IDLE | 104 | 중간 상태: 티칭에서 대기로 전환 |
RobotStatusEnum::ROBOT_UNKNOWN | -1 | 알 수 없는 상태 |
ServoStatusEnum
서보 상태를 나타내며 ControllerInfo::GetServoStatus() 에 대응합니다.
| 열거형 | 값 | 설명 |
|---|---|---|
ServoStatusEnum::SERVO_IDLE | 1 | 서보 대기 |
ServoStatusEnum::SERVO_RUNNING | 2 | 서보 실행 중 |
ServoStatusEnum::SERVO_DISABLE | 3 | 서보 비활성 |
ServoStatusEnum::SERVO_WAIT_READY | 4 | 서보 준비 대기 |
ServoStatusEnum::SERVO_WAIT_DOWN | 5 | 서보 종료 대기 |
ServoStatusEnum::SERVO_INIT | 10 | 서보 초기화 |
ServoStatusEnum::SERVO_UNKNOWN | -1 | 알 수 없는 상태 |
SoftModeEnum
컨트롤러 soft_op_mode 를 나타내며 ControllerInfo::GetSoftMode() / ControllerInfo::SetSoftMode() 에 대응합니다.
| 열거형 | 값 | 설명 |
|---|---|---|
SoftModeEnum::UNKNOWN | 0 | 알 수 없는 모드 |
SoftModeEnum::AUTO | 1 | 자동 모드 |
SoftModeEnum::MANUAL_LIMIT | 2 | 수동 속도 제한 모드 |
SoftModeEnum::MANUAL | 3 | 수동 모드 |
OpModeEnum
컨트롤러 user_op_mode 를 나타내며 ControllerInfo::GetOpMode() / ControllerInfo::SetOpMode() 에 대응합니다.
| 열거형 | 값 | 설명 |
|---|---|---|
OpModeEnum::UNKNOWN | 0 | 알 수 없는 작업 모드 |
OpModeEnum::AUTO | 1 | 자동 작업 모드 |
OpModeEnum::MANUAL_LIMIT | 2 | 수동 속도 제한 작업 모드 |
OpModeEnum::MANUAL | 3 | 수동 작업 모드 |
LanguageType / RobotAlarm
헤더 파일: include/alarm_types.h
LanguageType
LanguageType 은 알람 조회가 반환할 언어를 선택하는 데 사용되며, 현재 AlarmClient::GetAllActiveAlarms() 에서 사용합니다. SDK는 열거형을 알람 서비스가 인식하는 언어 파라미터로 변환합니다. 중국어는 cn , 영어는 en 입니다.
| 열거형 값 | 값 | 설명 |
|---|---|---|
LanguageType::Chinese | 0 | 중국어 알람 설명 요청 |
LanguageType::English | 1 | 영어 알람 설명 요청 |
RobotAlarm
RobotAlarm 은 알람 상세 구조체입니다. AlarmClient::GetAllActiveAlarms() 는 std::vector<RobotAlarm> 을 반환하고, AlarmClient::GetTopAlarm() 은 단일 RobotAlarm 을 반환합니다. 현재 활성 알람이 없으면 반환 구조체의 문자열 필드는 일반적으로 비어 있습니다.
| 필드 | 의미 |
|---|---|
user_code | 사용자 측 알람 코드 |
inner_code | 컨트롤러 측 알람 코드 |
name | 알람 이름 |
reason | 원인 |
suggest | 권장 처리 방법 |
consequence | 영향 |
ext_desc | 확장 설명 |
SignalType / SignalValue
헤더 파일: include/signal_types.h
SignalType
SignalType 은 현재 SDK가 지원하는 IO 타입을 구분하는 데 사용됩니다. 디지털 신호, 그룹 신호, 원격 제어 신호, 손목 단 IO, 아날로그 신호를 포함하며, IoSignals 인터페이스가 "어떤 IO를 읽고 어떤 IO를 쓸지"를 통합 진입점으로 표현할 수 있게 합니다.
| 열거형 | 값 | 타입 | 설명 |
|---|---|---|---|
DI | 1 | 디지털 입력 | Digital Input |
DO | 2 | 디지털 출력 | Digital Output |
UI | 3 | 전용 입력 | User Input |
UO | 4 | 전용 출력 | User Output |
RI | 5 | 원격 입력 | Remote Input |
RO | 6 | 원격 출력 | Remote Output |
GI | 7 | 그룹 입력 | Group Input |
GO | 8 | 그룹 출력 | Group Output |
TAI | 9 | 손목 아날로그 입력 | Tool Analog Input |
TDI | 10 | 손목 디지털 입력 | Tool Digital Input |
TDO | 11 | 손목 디지털 출력 | Tool Digital Output |
AI | 12 | 아날로그 입력 | Analog Input |
AO | 13 | 아날로그 출력 | Analog Output |
SDK 사용 기준
IoSignals::Read()는 위의 모든SignalType을 지원합니다.IoSignals::Write(type, index, int32_t value)는DO,RO,GO,TDO만 지원합니다.IoSignals::Write(type, index, Float64 value)는AO만 지원합니다.IoSignals::MultiRead()/MultiWrite()는DO만 지원합니다.IoSignals포트 번호는 컨트롤러 측 번호를 그대로 사용합니다.
SignalValue
SignalValue 는 디지털 값을 쓸 때 직접 0 또는 1 을 전달하는 대신 사용할 수 있는 읽기 쉬운 상수입니다. 예를 들어 DO를 쓸 때 SignalValue::ON 은 설정, SignalValue::OFF 는 리셋을 의미합니다.
| 상수 | 값 | 설명 |
|---|---|---|
SignalValue::OFF | 0 | 꺼짐, 리셋 또는 낮은 레벨 |
SignalValue::ON | 1 | 켜짐, 설정 또는 높은 레벨 |