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 명령의 요청 유형에 따라 텍스트 입력과 숫자 입력에 모두 사용할 수 있습니다.