set_on_monitoring_state

이 함수는 로봇 컨트롤러의 운전 상태 변화를 자동으로 감지하는 콜백을 등록합니다. 로봇 상태가 바뀔 때 특정 동작을 자동으로 실행할 때 유용합니다.

정의
DRFLEx.h, CDRFLEx 클래스의 public 섹션

void set_on_monitoring_state(TOnMonitoringStateCB pCallbackFunc) {
    _set_on_monitoring_state(_rbtCtrl, pCallbackFunc);
};

매개변수

매개변수 이름

자료형

기본값

설명

pCallbackFunc

TOnMonitoringStateCB

로봇 상태 모니터링을 위해 등록할 콜백 함수 포인터

반환값
없음

예제

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은 콜백 밖에서 호출하세요. 콜백 함수 규칙을 참고하세요.