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 |
알람 그룹, 레벨, 인덱스, 매개변수 정보를 담은 구조체의 포인터입니다. |
반환값
없음
예제
#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 서비스 포털의 알람 검색에서 모든 알람 코드의 설명을 확인할 수 있습니다.