이전 버전(1.33.4)의 문서를 보고 있습니다. 이 버전은 계속 지원됩니다.
최신 버전 정보는 1.33.5에서 확인하세요.

TOnTpGetUserInputCB

이 콜백은 DRL 프로그램이 tp_get_user_input으로 사용자 입력을 요청할 때 호출됩니다. 애플리케이션은 입력 안내를 표시하고 tp_get_user_input_response로 응답합니다.

콜백 함수 규칙을 참고하세요.

정의 위치: DRFLEx.h

// typedef 정의(DRFLEx.h)
typedef void (*TOnTpGetUserInputCB)(LPMESSAGE_INPUT);

// 등록 API(내부 + 래퍼)
DRFL_API void _set_on_tp_get_user_input(LPROBOTCONTROL pCtrl, TOnTpGetUserInputCB pCallbackFunc);

// 사용자 입력 메시지 처리기
void set_on_tp_get_user_input(TOnTpGetUserInputCB pCallbackFunc)
{
    _set_on_tp_get_user_input(_rbtCtrl, pCallbackFunc);
};

매개변수

매개변수 이름

자료형

기본값

설명

tInput

MESSAGE_INPUT

입력 요청의 포인터입니다. _szText는 입력 안내 문구이고 _iType은 기대하는 형식(0: int, 1: float, 2: string, 3: bool)입니다.

반환값
없음

예제

#include "DRFLEx.h"
#include <iostream>
#include <thread>
#include <chrono>
using namespace DRAFramework;
using namespace std;

// DRL 프로그램이 사용자 입력을 요청하면 호출되는 콜백 함수
void OnTpGetUserInputCB(LPMESSAGE_INPUT tInput)
{
    if (!tInput) return;

    cout << "[TP USER INPUT]" << endl;
    cout << "Prompt : " << tInput->_szText << endl;
    cout << "Type   : " << static_cast<int>(tInput->_iType) << endl;

    // tp_get_user_input_response()로 응답 전송
}

int main()
{
    CDRFLEx drfl;

    // 로봇 컨트롤러에 연결
    if (!drfl.open_connection("192.168.137.100")) {
        cout << "Failed to connect to controller." << endl;
        return -1;
    }

    // TP 사용자 입력 콜백 함수 등록
    drfl.set_on_tp_get_user_input(OnTpGetUserInputCB);

    // TP 사용자 입력을 모니터링하도록 실행 유지
    while (true)
        std::this_thread::sleep_for(std::chrono::seconds(1));

    drfl.close_connection();
    return 0;
}

참고

  • DRL 프로그램이 tp_get_user_input을 호출하면 이 콜백이 실행됩니다. 콜백은 응답이 아니라 요청을 받습니다.

  • MESSAGE_INPUT 구조체에는 입력 안내 문구(_szText)와 기대하는 입력 형식(_iType)이 들어 있습니다.

  • 일반적인 사용 사례: DRL 프로그램 실행 중 작업자 입력 안내, 수동 확인, 매개변수 입력.