drl_stop
이 함수는 로봇 컨트롤러에서 실행 중인 DRL 프로그램(태스크)을 정지합니다. 현재 실행 중인 구간의 모션을 정지합니다. drl_stop이 true를 반환하면 로봇은 수동 모드가 됩니다. 다음 drl_start 전에 set_robot_mode(ROBOT_MODE_AUTONOMOUS)를 호출하세요. 실행 중이거나 일시 정지된 DRL 프로그램이 없거나 컨트롤러가 정지를 거부하면 drl_stop은 false를 반환하고 모드는 바뀌지 않습니다. 프로그램이 정지한 후에도 수동 모드가 확인되지 않거나 로봇이 오류 상태이면 drl_stop은 false를 반환합니다. false가 반환되면 get_program_state()와 get_robot_mode()를 확인하세요.
정의
DRFLEx.h, CDRFLEx 클래스의 public 섹션
bool drl_stop(unsigned char eStopType = 0) {
return _drl_stop(_rbtCtrl, eStopType);
};
매개변수
매개변수 이름 |
자료형 |
기본값 |
설명 |
|---|---|---|---|
eStopType |
unsigned char |
0 |
프로그램의 모션은 항상 급정지(Quick Stop)로 멈춥니다. 0과 1은 프로그램을 정상 강제 종료로 끝내고, 2는 오류 정지로 끝냅니다. |
반환값
값 |
유형 |
설명 |
|---|---|---|
0 |
int |
오류 |
1 |
int |
성공 |
예제
DRL_PROGRAM_STATE eProgramState = drfl.get_program_state();
if ((eProgramState == DRL_PROGRAM_STATE_PLAY) ||
(eProgramState == DRL_PROGRAM_STATE_HOLD)) {
// DRL 프로그램 정지
drfl.drl_stop(STOP_TYPE_QUICK);
}
이 예제는 get_program_state()로 현재 DRL 프로그램 실행 상태를 확인합니다. 상태가 PLAY 또는 HOLD이면 drl_stop(STOP_TYPE_QUICK)으로 프로그램을 정지하며, 프로그램은 정상 강제 종료로 끝납니다.