set_on_tp_initializing_completed (수동 모드)
이 절에서는 수동(교시) 작업에서 set_on_tp_initializing_completed를 사용하는 방법을 설명합니다.
이 함수는 티치펜던트(TP)가 초기화를 마치고 사용자 조작을 받을 준비가 되면 한 번 호출되는 콜백 함수를 등록합니다. 보통 TP가 완전히 부팅되어 컨트롤러와 통신이 연결된 뒤 UI 요소를 활성화하거나 모니터링 스레드를 시작할 때 사용합니다.
일반적인 사용법
TP가 부팅을 마치고 교시 작업을 할 준비가 되었는지 감지합니다.
초기화 후 사용자 정의 UI 패널이나 로그 시스템을 자동으로 활성화합니다.
수동 제어 준비가 되었음을 알리는 메시지를 표시하거나 기록합니다.
TP와 호스트 PC의 시작 절차를 동기화합니다.
참고
이 콜백은 등록 후 STATE_NOT_READY나 STATE_INITIALIZING이 아닌 로봇 상태를 처음 받을 때 한 번 호출되고, 그 뒤 등록이 해제됩니다. 컨트롤러는 연결이 열릴 때와 로봇 상태가 바뀔 때마다 로봇 상태를 보고합니다. 이 콜백은 open_connection 전에 등록하세요. 그러면 컨트롤러가 이미 초기화된 경우 연결 중에 호출됩니다. 유휴 상태의 컨트롤러에 연결한 후 등록한 콜백은 다음 상태 변화 때 호출됩니다. open_connection을 호출할 때마다 다시 등록하세요.
콜백 함수 규칙을 참고하세요.
예제: TP 시작 후 교시 환경 초기화하기
#include <chrono>
#include <thread>
// TP 초기화가 끝나면 실행되는 콜백 함수
void OnTpInitCompleted()
{
printf("-------------------------------------------\n");
printf("[TP INITIALIZATION COMPLETED]\n");
printf("Teach Pendant is now ready for user interaction.\n");
printf("-------------------------------------------\n");
}
drfl.set_on_tp_initializing_completed(OnTpInitCompleted);
drfl.open_connection("192.168.137.100");
printf("[Teach] Waiting for TP initialization...\n");
// 초기화 완료를 감지하도록 실행 유지
while (true)
this_thread::sleep_for(chrono::seconds(1));
이 콜백을 등록하면 티치펜던트(TP)가 초기화 시퀀스를 마쳤을 때 콜백이 자동으로 한 번 실행됩니다. 이를 이용해 호스트가 교시 관련 프로세스를 시작하거나 준비 완료를 알릴 수 있습니다(예: TP가 준비되면 준비 완료 메시지 기록).
팁
TP 시작 직후 시스템 점검이나 UI 활성화를 실행할 때 사용합니다.
모니터링 스레드를 준비하거나 서비스에 자동으로 다시 연결할 때 가장 적합합니다.