tp_get_user_input_response (수동 모드)

이 절에서는 수동(교시) 작업에서 tp_get_user_input_response를 사용하는 방법을 설명합니다. 이 함수는 티치펜던트(TP)가 보낸 사용자 입력 요청에 대한 응답으로 사용자가 입력한 텍스트나 숫자를 로봇 컨트롤러로 보냅니다. 보통 set_on_tp_get_user_input과 짝을 이루어 입력–응답 주기를 완성합니다.

일반적인 사용법

  • 작업자가 TP에 입력한 텍스트나 숫자 값을 돌려보냅니다.

  • 테스트나 반자동 워크플로에서 호스트 애플리케이션이 TP 입력 요청에 자동으로 응답합니다.

  • 작업자가 데이터(예: 부품 ID, 오프셋, 허용 오차)를 입력해야 하는 대화형 교시나 캘리브레이션 작업에 사용합니다.

  • 외부 PC 기반 로직이 사용자 입력을 컨트롤러로 보내기 전에 검증하거나 대체할 수 있게 합니다.

참고

  • 256바이트보다 긴 입력 문자열은 256바이트로 잘립니다.

예제: 사용자 입력 응답 자동으로 보내기

// TP 사용자 입력 이벤트용 콜백 함수
void OnTpGetUserInput(LPMESSAGE_INPUT tInput)
{
    printf("-------------------------------------------\n");
    printf("[TP USER INPUT REQUESTED]\n");
    printf("Prompt : %s\n", tInput->_szText);
    printf("Input Type : %d\n", tInput->_iType);
    printf("-------------------------------------------\n");

    // 예 1: 테스트용으로 부품 ID를 자동 반환
    if (strstr(tInput->_szText, "Enter part ID") != nullptr)
    {
        drfl.tp_get_user_input_response("Part-001");
        printf("[Host] Sent TP input response: Part-001\n");
    }
    // 예 2: 숫자 오프셋을 자동 반환
    else if (strstr(tInput->_szText, "Enter offset") != nullptr)
    {
        drfl.tp_get_user_input_response("25.5");
        printf("[Host] Sent numeric offset: 25.5\n");
    }
    else
    {
        printf("[Host] Waiting for manual input on TP...\n");
    }
}

// 사전 조건:
// - drfl.open_connection("192.168.137.100"); 호출 완료
// - 컨트롤러가 수동(교시) 모드인 상태
drfl.set_on_tp_get_user_input(OnTpGetUserInput);
printf("[Teach] TP user input callback registered.\n");

// 입력 이벤트를 처리하도록 프로세스 실행 유지
while (true)
    this_thread::sleep_for(chrono::seconds(1));

이 예제에서 프로그램은 티치펜던트의 사용자 입력 요청을 수신합니다. 콜백은 요청 내용에 따라 tp_get_user_input_response로 알맞은 응답(예: 부품 ID나 숫자 오프셋)을 컨트롤러에 자동으로 보냅니다. 이렇게 하면 테스트나 반복 교시 워크플로에서 입력을 반자동으로 처리할 수 있습니다.

팁

  • 사용자가 입력한 데이터는 컨트롤러로 보내기 전에 반드시 검증하고 정제해야 합니다.

  • 반자동 교시에서는 이미 아는 값을 미리 채우고, 알 수 없는 매개변수만 작업자에게 물어볼 수 있습니다.

  • 여러 단계로 이루어진 대화 상자(예: 확인 → 입력 → 확인)에는 tp_popup_response와 함께 사용하세요.

  • 이 함수는 DRL 명령의 요청 유형에 따라 텍스트 입력과 숫자 입력에 모두 사용할 수 있습니다.