이전 버전(1.33.4)의 문서를 보고 있습니다. 이 버전은 계속 지원됩니다.
최신 버전 정보는 1.33.5에서 확인하세요.
최신 버전 정보는 1.33.5에서 확인하세요.
TOnMonitoringDataExCB
로봇 컨트롤러의 확장 운용 데이터를 제공하는 모니터링 콜백의 확장 버전입니다. 조인트, 작업 공간, I/O 상태에 관한 자세한 정보가 들어 있습니다.
TOnMonitoringDataCB와 비슷하게 동작하지만, 고급 모니터링이나 진단 애플리케이션을 위해 MONITORING_DATA_EX 구조체에 필드가 더 있습니다.
콜백 함수 규칙을 참고하세요.
정의 위치: DRFLEx.h
// typedef 정의(DRFLEx.h)
typedef void (*TOnMonitoringDataExCB)(const LPMONITORING_DATA_EX);
// 등록 API(내부 + 래퍼)
DRFL_API void _set_on_monitoring_data_ex(LPROBOTCONTROL pCtrl, TOnMonitoringDataExCB pCallbackFunc);
void set_on_monitoring_data_ex(TOnMonitoringDataExCB pCallbackFunc)
{
_set_on_monitoring_data_ex(_rbtCtrl, pCallbackFunc);
};
매개변수
매개변수 이름 |
자료형 |
기본값 |
설명 |
|---|---|---|---|
pData |
조인트, TCP, 토크, I/O 정보를 담은 확장 모니터링 데이터 구조체의 포인터입니다. |
반환값
없음
예제
#include "DRFLEx.h"
#include <iostream>
#include <thread>
#include <chrono>
using namespace DRAFramework;
using namespace std;
// 실시간 로봇 데이터용 확장 모니터링 콜백 함수
void OnMonitoringDataExCB(const LPMONITORING_DATA_EX pData)
{
cout << "[MONITOR-EX] Joint position (deg): ";
for (int i = 0; i < 6; ++i)
{
cout << pData->_tCtrl._tJoint._fActualPos[i];
if (i < 5) cout << ", ";
}
cout << endl;
// TCP 포즈(X, Y, Z, Rx, Ry, Rz)
cout << "[MONITOR-EX] TCP pose: ";
for (int i = 0; i < 6; ++i)
{
cout << pData->_tCtrl._tTask._fActualPos[0][i]; // 행 0 = 툴, 행 1 = 플랜지
if (i < 5) cout << ", ";
}
cout << endl;
// 플랜지 디지털 입력 상태 표시
cout << "[MONITOR-EX] Flange digital input[0]: "
<< static_cast<int>(pData->_tMisc._iActualDI[0]) << endl;
}
int main()
{
CDRFLEx drfl;
// 로봇 컨트롤러에 연결
if (!drfl.open_connection("192.168.137.100")) {
cout << "Failed to connect to controller." << endl;
return -1;
}
// 연결 후 확장 모니터링 데이터(버전 1) 선택
drfl.setup_monitoring_version(1);
// 확장 모니터링 콜백 함수 등록
drfl.set_on_monitoring_data_ex(OnMonitoringDataExCB);
// 갱신을 계속 수신하도록 실행 유지
while (true)
{
std::this_thread::sleep_for(std::chrono::seconds(1));
}
drfl.close_connection();
return 0;
}
참고
조인트 토크, TCP 포즈, I/O 상태, 추가 센서 피드백을 포함한 확장 모니터링 데이터를 제공합니다.
데이터 로깅, 디지털 트윈 시각화, 로봇 진단 같은 고급 애플리케이션에 권장합니다.
콜백은 호출될 때마다 가장 최근 데이터를 받습니다. 콜백 실행 시간이 데이터 주기(DRCF 3.5 이전 100 ms, DRCF 3.5부터 20 ms)보다 길면 그 사이의 샘플은 전달되지 않습니다. 모든 샘플을 받는다고 가정하지 마세요(예: 적분이나 미분).