TOnLogAlarmCB

이 콜백은 로봇 컨트롤러에서 알람이나 로그 이벤트가 발생할 때마다 호출됩니다.

경고, 오류, 시스템 메시지의 성격을 설명하는 알람 그룹, 레벨, 매개변수 같은 자세한 정보를 제공합니다.

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

정의 위치: DRFLEx.h

// typedef 정의(DRFL.h)
typedef void (*TOnLogAlarmCB)(LPLOG_ALARM);

// 등록 API(내부 + 래퍼)
DRFL_API void _set_on_log_alarm(LPROBOTCONTROL pCtrl, TOnLogAlarmCB pCallbackFunc);

// 로봇 알람 데이터 콜백 함수
void set_on_log_alarm(TOnLogAlarmCB pCallbackFunc)
{
    _set_on_log_alarm(_rbtCtrl, pCallbackFunc);
};

매개변수

매개변수 이름

자료형

기본값

설명

pLogAlarm

LOG_ALARM

알람 그룹, 레벨, 인덱스, 매개변수 정보를 담은 구조체의 포인터입니다.

반환값
없음

예제

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

// 알람과 로그 메시지를 처리하는 콜백 함수
void OnLogAlarmCB(LPLOG_ALARM pLogAlarm)
{
    if (!pLogAlarm) return;

    cout << "\n[ROBOT ALARM CALLBACK]" << endl;
    cout << "Group : " << pLogAlarm->_iGroup << " ("
         << ((pLogAlarm->_iGroup == LOG_GROUP_SYSTEMFMK) ? "System" : "Other") << ")" << endl;
    cout << "Level : " << pLogAlarm->_iLevel << endl;
    cout << "Index : " << pLogAlarm->_iIndex << endl;

    cout << "Parameters : ";
    for (int i = 0; i < 3; ++i)
        cout << pLogAlarm->_szParam[i] << (i < 2 ? ", " : "");
    cout << endl;

    // 필터링 예: 심각한 알람만 처리
    if (pLogAlarm->_iLevel == LOG_LEVEL_SYSINFO)
        cout << "[INFO] System message logged." << endl;
}

int main()
{
    CDRFLEx drfl;

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

    // 알람/로그 콜백 함수 등록
    drfl.set_on_log_alarm(OnLogAlarmCB);

    // 로그를 모니터링하도록 프로그램 실행 유지
    while (true)
        std::this_thread::sleep_for(std::chrono::seconds(1));

    drfl.close_connection();
    return 0;
}

참고

  • 시스템 로그나 알람이 발생하면 자동으로 호출됩니다.

  • LOG_ALARM 구조체는 알람 그룹, 레벨, 인덱스, 매개변수 같은 정보를 제공합니다.

  • 일반적인 용도:
    - 알람 이력 기록 또는 표시
    - 심각한 오류나 경고 감지
    - 사용자 정의 고장 복구 로직 구현

  • 알람 인덱스는 그룹 안에서만 고유합니다. 항상 (그룹, 인덱스) 쌍으로 비교하세요. 같은 인덱스라도 그룹이 다르면 의미가 다릅니다.

컨트롤러는 그룹과 인덱스로 각 알람을 식별합니다. DART Studio는 연결된 동안 받은 각 알람의 메시지를 표시하며, Doosan Robotics 서비스 포털의 알람 검색에서 모든 알람 코드의 설명을 확인할 수 있습니다.