start_rt_control

이 함수는 UDP로 실시간 제어(RT) 데이터 스트림을 시작합니다. 입출력 스키마를 설정하고 연결한 뒤 이 함수를 호출하면 PC와 컨트롤러가 실시간 데이터 프레임을 주고받기 시작합니다.

정의
DRFLEx.h, CDRFLEx 클래스의 public 섹션

bool start_rt_control() {
    return _start_rt_control(_rbtCtrlUDP);
};

매개변수
없음

반환값

값

설명

1

시작 요청을 보냈습니다.

0

시작 요청을 보내지 못했습니다.

참고

이 함수는 컨트롤러가 요청을 확인할 때까지 기다리지 않습니다. 연결되지 않았거나 버전을 설정하지 않은 상태는 여기서 감지되지 않으며, 컨트롤러는 시작을 거부해도 보고하지 않습니다. 시작되었는지 확인하려면 read_data_rt의 time_stamp가 0이 아니게 되고 계속 증가하는지 확인하세요.

참고

  • set_rt_control_input과 set_rt_control_output으로 설정한 대로 입력 스트리밍과 출력 스트리밍을 모두 시작합니다.

  • 반드시 connect_rt_control이 성공한 뒤에 호출해야 합니다.

  • 실시간 스트리밍은 UDP를 사용하며 TCP 기반 DRFL API와 독립적으로 동작합니다.

  • 컨트롤러가 RT 세션을 종료하면 set_on_rt_log_alarm 콜백으로 알람을 보고하고 RT 데이터 전송을 멈춥니다.

  • RT에는 연결 해제 알림이 없습니다. RT 링크가 끊겼는지 감지하려면 read_data_rt나 RT 콜백의 time_stamp가 계속 증가하는지 확인하세요.

예제

drfl.connect_rt_control("192.168.137.100", 12347);

std::string version = "v1.0";
float period = 0.001f;   // 1 msec = 1 kHz 주기
int lossCount = 4;

// RT 출력 설정 후 스트리밍 시작
drfl.set_rt_control_output(version, period, lossCount);

if (drfl.start_rt_control())
    printf("RT streaming started.\n");
else
    printf("Failed to start RT streaming.\n");

이 예제는 PC와 컨트롤러 사이의 실시간 데이터 교환을 활성화해, 애플리케이션이 1 kHz 갱신 주기로 RT 데이터 프레임을 읽고 쓸 수 있게 합니다.

팁

  • 스트림을 시작하기 전에 반드시 RT 입출력 버전을 설정해야 합니다.

  • 연결을 해제하기 전에 stop_rt_control로 스트리밍을 정지하세요.

  • 높은 갱신 주기(예: 0.001 s)에서는 스레드 스케줄링 우선순위를 높여야 할 수 있습니다.