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_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에 현재 시스템 모드 표시
- 시스템 전환 기록
- 시스템 유형에 맞게 제어 로직 자동 조정