이전 버전(1.33.4)의 문서를 보고 있습니다. 이 버전은 계속 지원됩니다.
최신 버전 정보는 1.33.5에서 확인하세요.

tp_popup_response (수동 모드)

이 절에서는 수동(교시) 작업에서 tp_popup_response를 사용하는 방법을 설명합니다. 이 함수는 DRL 프로그램이 띄운 팝업에 응답(POPUP_RESPONSE_RESUME 또는 POPUP_RESPONSE_STOP)을 보내며, 그에 따라 프로그램이 재개되거나 정지합니다.

이 함수를 사용하면 호스트 애플리케이션이 작업자 확인 요청을 원격으로 승인하거나 거부할 수 있습니다.

일반적인 사용법

  • 특정 교시 워크플로에서 팝업 확인 요청을 자동으로 승인하거나 취소합니다.

  • TP 확인 요청을 외부 UI나 안전 검증 시스템과 통합합니다.

  • set_on_tp_popup과 함께 사용해 팝업을 양방향으로 처리합니다.

  • 사용자 정의 팝업 정책을 구현합니다(예: 안전한 작업은 자동 승인하고, 위험도가 높은 작업은 수동 확인 요구).

참고

  • TP 팝업 콜백(set_on_tp_popup)이 호출된 뒤에만 호출할 수 있습니다.

예제: 사용자 정의 로직에 따라 팝업 응답 보내기

// 팝업 콜백 함수: TP에 팝업이 나타나면 호출
void OnTpPopup(LPMESSAGE_POPUP tPopup)
{
    printf("-------------------------------------------\n");
    printf("[TP POPUP RECEIVED]\n");
    printf("Message : %s\n", tPopup->_szText);
    printf("Level   : %d\n", tPopup->_iLevel);
    printf("Button Type : %d\n", tPopup->_iBtnType);
    printf("-------------------------------------------\n");

    // 예 1: 정보 팝업이면 자동 승인
    if (tPopup->_iLevel == MESSAGE_LEVEL_INFO && strstr(tPopup->_szText, "Continue") != nullptr)
    {
        drfl.tp_popup_response(POPUP_RESPONSE_RESUME);
        printf("[Host] RESUME sent to controller.\n");
    }
    // 예 2: 알람 팝업이 나타나면 정지
    else if (tPopup->_iLevel == MESSAGE_LEVEL_ALARM)
    {
        drfl.tp_popup_response(POPUP_RESPONSE_STOP);
        printf("[Host] Alarm detected. Sent STOP response.\n");
    }
    else
    {
        printf("[Host] Waiting for manual confirmation on TP.\n");
    }
}

// 사전 조건:
// - drfl.open_connection("192.168.137.100"); 호출 완료
// - 컨트롤러가 수동(교시) 모드인 상태
drfl.set_on_tp_popup(OnTpPopup);
printf("[Teach] Popup callback active. Ready to respond automatically.\n");

// TP 팝업 이벤트를 수신하도록 프로그램 실행 유지
while (true)
    std::this_thread::sleep_for(std::chrono::seconds(1));

이 예제에서 호스트 PC는 티치펜던트(TP)의 팝업 이벤트를 수신하고 팝업 레벨이나 내용에 따라 자동으로 응답합니다. 예를 들어 정보 팝업에는 POPUP_RESPONSE_RESUME으로, 알람 팝업에는 POPUP_RESPONSE_STOP으로 응답합니다. 이렇게 하면 안전에 중요한 상호 작용은 그대로 존중하면서 호스트가 응답 처리를 자동화할 수 있습니다.

팁

  • 자동 응답을 보내기 전에 반드시 팝업의 메시지 레벨을 확인해야 합니다.

  • 중요한 작업(예: 툴 교체, 안전 무시)은 TP에서 수동으로 확인하도록 하세요.

  • DRL 프로그램을 원격으로 테스트할 때 이 함수로 작업자 확인 흐름을 시뮬레이션할 수 있습니다.

  • set_on_tp_get_user_input과 함께 사용하면 대화 상자 기반의 수동 모드 자동화를 통합해 구성할 수 있습니다.