최신 버전 정보는 1.33.5에서 확인하세요.
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)에서는 스레드 스케줄링 우선순위를 높여야 할 수 있습니다.