Skip to content

2.1 상태 코드 및 공통 타입

Float32 / Float64

헤더 파일: include/common.h

이름정의
Float32float
Float64double

STATUS_CODE

STATUS_CODE 는 SDK 공통 반환값입니다. 이 문서 페이지에는 자주 사용하는 상태 코드만 나열하며, 전체 열거형은 SDK 헤더 파일을 기준으로 합니다.

상태 코드일반적인 시나리오
OK0호출 성공
CONNECTION_TIMEOUT-3네트워크 연결 시간 초과
INVALID_IP_ADDRESS-17Arm::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-30C99 out 버퍼가 부족함
NOT_CONNECTED-35아직 연결되지 않았거나 연결이 끊어짐
SUB_PUB_RECEIVE_TIMEOUT-37TopicPubSub::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::UNKNOWN0식별되지 않음
RobotType::COBOT1협동 로봇
RobotType::PUMA2PUMA 로봇
RobotType::SCARA3SCARA 로봇

Arm::Connect() 성공 후 robotType 필드가 채워집니다. 식별 규칙:

  • 모델에 GBT-C 가 포함되면 COBOT 으로 식별됩니다.
  • 모델에 GBT-S 가 포함되면 SCARA 로 식별됩니다.
  • 기타 식별된 모델은 기본적으로 PUMA 로 분류됩니다.

실행 상태 열거형

헤더 파일타입
include/ctrl_status_enum.hCtrlStatusEnum
include/robot_status_enum.hRobotStatusEnum
include/servo_status_enum.hServoStatusEnum
include/soft_mode_enum.hSoftModeEnum
include/op_mode_enum.hOpModeEnum

이 열거형은 ControllerInfo 조회 인터페이스의 반환 타입이며, 컨트롤러가 반환한 상태 코드를 읽기 쉬운 상태로 변환하는 데 사용됩니다. 식별할 수 없는 값은 대응하는 UNKNOWN 항목으로 매핑됩니다.

CtrlStatusEnum

모션 컨트롤러의 실행 상태를 나타내며 ControllerInfo::GetCtrlStatus() 에 대응합니다.

열거형설명
CtrlStatusEnum::CTRL_INIT0모션 컨트롤러 초기화
CtrlStatusEnum::CTRL_ENGAGED1모션 컨트롤러 활성화됨
CtrlStatusEnum::CTRL_ESTOP2모션 컨트롤러 비상 정지
CtrlStatusEnum::CTRL_TERMINATED3모션 컨트롤러 중지
CtrlStatusEnum::CTRL_ANY_TO_ESTOP101중간 상태: 다른 상태에서 비상 정지로 전환
CtrlStatusEnum::CTRL_ESTOP_TO_ENGAGED102중간 상태: 비상 정지에서 활성화로 전환
CtrlStatusEnum::CTRL_ESTOP_TO_TERMINATED103중간 상태: 비상 정지에서 중지로 전환
CtrlStatusEnum::CTRL_UNKNOWN-1알 수 없는 상태

RobotStatusEnum

로봇 본체의 실행 상태를 나타내며 ControllerInfo::GetRobotStatus() 에 대응합니다.

열거형설명
RobotStatusEnum::ROBOT_IDLE0로봇 대기
RobotStatusEnum::ROBOT_RUNNING1로봇 실행 중
RobotStatusEnum::ROBOT_TEACHING2로봇 티칭 중
RobotStatusEnum::ROBOT_DRAG3로봇 드래그 중
RobotStatusEnum::ROBOT_FORCE_DRAG4로봇 강제 드래그 중
RobotStatusEnum::ROBOT_IDLE_TO_RUNNING101중간 상태: 대기에서 실행으로 전환
RobotStatusEnum::ROBOT_IDLE_TO_TEACHING102중간 상태: 대기에서 티칭으로 전환
RobotStatusEnum::ROBOT_RUNNING_TO_IDLE103중간 상태: 실행에서 대기로 전환
RobotStatusEnum::ROBOT_TEACHING_TO_IDLE104중간 상태: 티칭에서 대기로 전환
RobotStatusEnum::ROBOT_UNKNOWN-1알 수 없는 상태

ServoStatusEnum

서보 상태를 나타내며 ControllerInfo::GetServoStatus() 에 대응합니다.

열거형설명
ServoStatusEnum::SERVO_IDLE1서보 대기
ServoStatusEnum::SERVO_RUNNING2서보 실행 중
ServoStatusEnum::SERVO_DISABLE3서보 비활성
ServoStatusEnum::SERVO_WAIT_READY4서보 준비 대기
ServoStatusEnum::SERVO_WAIT_DOWN5서보 종료 대기
ServoStatusEnum::SERVO_INIT10서보 초기화
ServoStatusEnum::SERVO_UNKNOWN-1알 수 없는 상태

SoftModeEnum

컨트롤러 soft_op_mode 를 나타내며 ControllerInfo::GetSoftMode() / ControllerInfo::SetSoftMode() 에 대응합니다.

열거형설명
SoftModeEnum::UNKNOWN0알 수 없는 모드
SoftModeEnum::AUTO1자동 모드
SoftModeEnum::MANUAL_LIMIT2수동 속도 제한 모드
SoftModeEnum::MANUAL3수동 모드

OpModeEnum

컨트롤러 user_op_mode 를 나타내며 ControllerInfo::GetOpMode() / ControllerInfo::SetOpMode() 에 대응합니다.

열거형설명
OpModeEnum::UNKNOWN0알 수 없는 작업 모드
OpModeEnum::AUTO1자동 작업 모드
OpModeEnum::MANUAL_LIMIT2수동 속도 제한 작업 모드
OpModeEnum::MANUAL3수동 작업 모드

LanguageType / RobotAlarm

헤더 파일: include/alarm_types.h

LanguageType

LanguageType 은 알람 조회가 반환할 언어를 선택하는 데 사용되며, 현재 AlarmClient::GetAllActiveAlarms() 에서 사용합니다. SDK는 열거형을 알람 서비스가 인식하는 언어 파라미터로 변환합니다. 중국어는 cn , 영어는 en 입니다.

열거형 값설명
LanguageType::Chinese0중국어 알람 설명 요청
LanguageType::English1영어 알람 설명 요청

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를 쓸지"를 통합 진입점으로 표현할 수 있게 합니다.

열거형타입설명
DI1디지털 입력Digital Input
DO2디지털 출력Digital Output
UI3전용 입력User Input
UO4전용 출력User Output
RI5원격 입력Remote Input
RO6원격 출력Remote Output
GI7그룹 입력Group Input
GO8그룹 출력Group Output
TAI9손목 아날로그 입력Tool Analog Input
TDI10손목 디지털 입력Tool Digital Input
TDO11손목 디지털 출력Tool Digital Output
AI12아날로그 입력Analog Input
AO13아날로그 출력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::OFF0꺼짐, 리셋 또는 낮은 레벨
SignalValue::ON1켜짐, 설정 또는 높은 레벨