이전 버전(1.33.4)의 문서를 보고 있습니다. 이 버전은 계속 지원됩니다.
최신 버전 정보는 1.33.5에서 확인하세요.
최신 버전 정보는 1.33.5에서 확인하세요.
set_on_monitoring_state
이 함수는 로봇 컨트롤러의 운전 상태 변화를 자동으로 감지하는 콜백을 등록합니다. 로봇 상태가 바뀔 때 특정 동작을 자동으로 실행할 때 유용합니다.
정의
DRFLEx.h, CDRFLEx 클래스의 public 섹션
void set_on_monitoring_state(TOnMonitoringStateCB pCallbackFunc) {
_set_on_monitoring_state(_rbtCtrl, pCallbackFunc);
};
매개변수
매개변수 이름 |
자료형 |
기본값 |
설명 |
|---|---|---|---|
pCallbackFunc |
로봇 상태 모니터링을 위해 등록할 콜백 함수 포인터 |
반환값
없음
예제
std::atomic<bool> g_bNeedServoOn(false);
void OnMonitoringStateCB(const ROBOT_STATE eState)
{
switch ((unsigned char)eState)
{
case STATE_SAFE_OFF:
// 메인 루프에 서보 온 요청
g_bNeedServoOn = true;
break;
default:
break;
}
}
drfl.set_on_monitoring_state(OnMonitoringStateCB);
// 메인 루프: 콜백 함수 밖에서 set_robot_control 호출
while (true) {
if (g_bNeedServoOn) {
g_bNeedServoOn = false;
drfl.set_robot_control(CONTROL_SERVO_ON);
}
std::this_thread::sleep_for(std::chrono::milliseconds(100));
}
이 예제는 컨트롤러가 SAFE OFF 상태가 되면 플래그를 설정하는 상태 모니터링 콜백을 등록합니다. 그러면 메인 루프가 로봇 서보를 켭니다. set_robot_control은 콜백 밖에서 호출하세요. 콜백 함수 규칙을 참고하세요.