set_on_tp_popup

이 함수는 DRL에서 tp_popup 명령을 사용할 때 팝업 메시지를 확인하는 콜백 함수를 등록합니다. 이 이벤트가 발생할 때 원하는 코드를 자동으로 실행하는 데 사용하세요.

정의
DRFLEx.h, CDRFLEx 클래스의 public 섹션

void set_on_tp_popup(TOnTpPopupCB pCallbackFunc) {
    _set_on_tp_popup(_rbtCtrl, pCallbackFunc);
};

매개변수

매개변수 이름

자료형

기본값

설명

pCallbackFunc

TOnTpPopupCB

콜백 함수 정의를 참고하세요

반환값
없음

참고

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

예제

// TP 팝업 이벤트를 처리하는 콜백 함수
void OnTpPopup(LPMESSAGE_POPUP tPopup)
{
    printf("-------------------------------------------\n");
    printf("[TP POPUP DETECTED]\n");
    printf("Popup Message : %s\n", tPopup->_szText);
    printf("Message Level : %d\n", tPopup->_iLevel);
    printf("Button Type   : %d\n", tPopup->_iBtnType);
    printf("-------------------------------------------\n");

    // 예: 팝업 메시지나 레벨에 따라 처리
    if (strcmp(tPopup->_szText, "Confirm Start?") == 0)
    {
        printf("[Host] Sending RESUME response to controller...\n");
        drfl.tp_popup_response(POPUP_RESPONSE_RESUME);
    }
    else if (tPopup->_iLevel == MESSAGE_LEVEL_ALARM)   // 알람 레벨 팝업
    {
        printf("[Host] Alarm received from TP. Logging event...\n");
        // 로그 기록 또는 조치(예: 모션 감속)
    }
    else
    {
        printf("[Host] Display only popup - no action required.\n");
    }
}

// 팝업 콜백 함수 등록
drfl.set_on_tp_popup(OnTpPopup);

// 메인 프로그램 로직
printf("Waiting for popup events from Teach Pendant...\n");
while (true)
{
    // 연결을 유지하며 콜백 함수 확인
    this_thread::sleep_for(chrono::seconds(1));
}

등록한 콜백 함수는 DRL을 통해 티치펜던트(TP)에서 팝업 메시지가 발생하면 자동으로 실행됩니다. 이 콜백으로 팝업 내용, 메시지 수준, 버튼 유형을 확인하고, 필요하면 컨트롤러에 응답을 보낼 수 있습니다(POPUP_RESPONSE_RESUME 또는 POPUP_RESPONSE_STOP). 이를 통해 로봇 운전 중 TP에 표시되는 확인, 경고, 알림 같은 메시지를 상황에 맞게 처리할 수 있습니다.