최신 버전 정보는 1.33.5에서 확인하세요.
set_on_tp_get_user_input (수동 모드)
이 절에서는 수동(교시) 작업에서 set_on_tp_get_user_input을 사용하는 방법을 설명합니다. 이 함수는 티치펜던트(TP)가 DRL 명령이나 수동 UI 조작으로 사용자 입력을 요청할 때 호출되는 콜백 함수를 등록합니다.
콜백은 안내 문구(_szText)와 기대하는 입력 유형(_iType)을 받습니다. 호스트는 tp_get_user_input_response로 응답합니다.
일반적인 사용법
작업자에게 입력(예: “부품 ID 입력”, “오프셋 값 입력”)을 요청하고 콜백 안에서 결과를 처리합니다.
사람의 확인이나 숫자 입력이 필요한 대화형 교시 대화 상자를 통합합니다.
추적성을 위해 수동 교시 중 작업자가 입력한 데이터를 저장하고 기록합니다.
tp_get_user_input_response와 함께 사용해 입력한 값을 컨트롤러로 돌려보냅니다.
참고
콜백은 DRL 명령이 TP를 통해 사용자 입력을 요청할 때마다 호출됩니다.
콜백 함수 규칙을 참고하세요.
응답을 컨트롤러로 전달하려면 반드시 tp_get_user_input_response를 호출해야 합니다.
예제: 티치펜던트의 사용자 입력을 받아 응답하기
// 1) TP 사용자 입력용 콜백 함수 정의
void OnTpGetUserInput(LPMESSAGE_INPUT tInput)
{
printf("-------------------------------------------\n");
printf("[TP USER INPUT REQUESTED]\n");
printf("Prompt Message : %s\n", tInput->_szText);
printf("Data Type : %d\n", tInput->_iType);
printf("-------------------------------------------\n");
// 예: 프롬프트 내용에 따라 자동으로 응답
if (strstr(tInput->_szText, "Enter part ID") != nullptr)
{
drfl.tp_get_user_input_response("Part-A123");
printf("[Host] Auto-filled Part ID: Part-A123\n");
}
else if (strstr(tInput->_szText, "offset") != nullptr)
{
drfl.tp_get_user_input_response("15.5");
printf("[Host] Sent numeric offset value: 15.5\n");
}
else
{
printf("[Host] Waiting for operator to enter input manually 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) std::this_thread::sleep_for(std::chrono::seconds(1));
이 예제에서 호스트 프로그램은 TP가 띄운 사용자 입력 요청에 자동으로 반응합니다. 콜백은 요청 내용에 따라 미리 정한 응답(예: 부품 ID나 숫자 오프셋)을 보내거나, 작업자가 직접 입력할 때까지 기다립니다. 이 패턴은 부품별 매개변수나 캘리브레이션 값을 TP로 입력하는 대화형 또는 반자동 교시 시퀀스에 가장 적합합니다.
팁
접근 거리나 작업 임계값 조정 같은 대화형 매개변수 튜닝에 이 콜백을 사용하세요.
TP는 tp_get_user_input_response가 전송될 때까지 프로그램 실행을 자동으로 일시 정지합니다.
set_on_tp_popup과 함께 사용하면 대화 상자 기반의 교시 워크플로 전체를 구성할 수 있습니다.
여러 단계로 입력받을 때는 콜백을 차례로 이어 요청과 응답을 연결하면 안내형 교시 루틴처럼 구성할 수 있습니다.