TOnMonitoringRobotSystemCB

이 콜백은 로봇 컨트롤러의 로봇 운용 시스템이 바뀔 때 실행됩니다. 실제 로봇 시스템 모드와 가상 로봇 시스템 모드 사이의 전환을 모니터링할 수 있습니다.

콜백 함수 규칙을 참고하세요.

정의 위치: DRFLEx.h

// typedef 정의(DRFLEx.h)
typedef void (*TOnMonitoringRobotSystemCB)(const ROBOT_SYSTEM);

// 내부 정의
DRFL_API void _set_on_monitoring_robot_system(LPROBOTCONTROL pCtrl, TOnMonitoringRobotSystemCB pCallbackFunc);

// 사용자 호출용 래퍼
void set_on_monitoring_robot_system(TOnMonitoringRobotSystemCB pCallbackFunc)
{
    _set_on_monitoring_robot_system(_rbtCtrl, pCallbackFunc);
};

매개변수

매개변수 이름

자료형

기본값

설명

eRobotSystem

ROBOT_SYSTEM

현재 로봇 운용 시스템(ROBOT_SYSTEM_REAL 또는 ROBOT_SYSTEM_VIRTUAL)을 나타냅니다.

반환값
없음

예제

#include "DRFLEx.h"
#include <iostream>
#include <thread>
#include <chrono>
using namespace DRAFramework;
using namespace std;

// 로봇 운용 시스템이 바뀌면 실행되는 콜백 함수
void OnMonitoringRobotSystemCB(const ROBOT_SYSTEM eSystem)
{
    cout << "[ROBOT SYSTEM STATE UPDATED]" << endl;

    switch (eSystem)
    {
        case ROBOT_SYSTEM_REAL:
            cout << "Robot system: REAL ROBOT — connected to physical hardware." << endl;
            break;

        case ROBOT_SYSTEM_VIRTUAL:
            cout << "Robot system: VIRTUAL ROBOT — operating in virtual mode." << endl;
            break;

        default:
            cout << "Robot system: UNKNOWN (" << (int)eSystem << ")" << endl;
            break;
    }
}

int main()
{
    CDRFLEx drfl;

    // 로봇 컨트롤러에 연결
    if (!drfl.open_connection("192.168.137.100")) {
        cout << "Failed to connect to controller." << endl;
        return -1;
    }

    // 로봇 시스템 모니터링 콜백 함수 등록
    drfl.set_on_monitoring_robot_system(OnMonitoringRobotSystemCB);

    // 모니터링 루프 실행 유지
    while (true)
        std::this_thread::sleep_for(std::chrono::seconds(1));

    drfl.close_connection();
    return 0;
}

참고

  • 컨트롤러가 다음 시스템 사이에서 전환될 때 호출됩니다.
    - 실제 로봇(ROBOT_SYSTEM_REAL)
    - 가상 로봇(ROBOT_SYSTEM_VIRTUAL)

  • 일반적인 용도:
    - UI에 현재 시스템 모드 표시
    - 시스템 전환 기록
    - 시스템 유형에 맞게 제어 로직 자동 조정