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 활성화를 실행할 때 사용합니다.

  • 모니터링 스레드를 준비하거나 서비스에 자동으로 다시 연결할 때 가장 적합합니다.