이전 버전(1.33.4)의 문서를 보고 있습니다. 이 버전은 계속 지원됩니다.
최신 버전 정보는 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

MONITORING_DATA_EX

조인트, 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)보다 길면 그 사이의 샘플은 전달되지 않습니다. 모든 샘플을 받는다고 가정하지 마세요(예: 적분이나 미분).