state_led_reset (자동 모드)
이 절에서는 자동 운전 중에 state_led_reset을 사용하는 방법을 설명합니다. 이 함수는 상태 LED를 컨트롤러가 정의한 기본 규칙으로 되돌립니다. 주로 set_state_led_color로 LED 색상을 바꾼 후, 시스템 상태를 나타내는 기본 동작으로 돌아가야 할 때 사용합니다.
자동 모드에서만, 컨트롤러 v3.4 이상에서 사용할 수 있습니다. 다른 모드이거나 이전 버전 컨트롤러이면 false를 반환합니다. 모드는 get_robot_mode가 반환하는 값으로 확인합니다.
일반적인 사용법
사용자 지정 표시(예: 색상 변경)가 끝난 후 LED 동작을 되돌립니다.
LED 제어를 로봇 컨트롤러의 내부 규칙으로 되돌립니다.
사용자 지정 LED 표시를 끝낼 때 사용합니다.
예제
LED 함수는 다른 모드에서 거부되므로, 예제에서는 LED 함수를 호출하기 전에 제어권(Control Authority)을 얻고 자동 모드로 설정합니다.
#include <atomic>
#include <chrono>
#include <cstdio>
#include <thread>
std::atomic<bool> g_bHasControlAuthority(false);
void OnMonitoringAccessControlCB(const MONITORING_ACCESS_CONTROL eAccess)
{
if (eAccess == MONITORING_ACCESS_CONTROL_GRANT)
g_bHasControlAuthority = true;
}
drfl.set_on_monitoring_access_control(OnMonitoringAccessControlCB);
if (!drfl.open_connection("192.168.137.100")) return 1;
drfl.manage_access_control(MANAGE_ACCESS_CONTROL_FORCE_REQUEST);
while (!g_bHasControlAuthority)
std::this_thread::sleep_for(std::chrono::milliseconds(100));
// 자동 모드가 아니면 LED 함수가 거부됩니다
if (!drfl.set_robot_mode(ROBOT_MODE_AUTONOMOUS)) return 1;
if (drfl.state_led_reset())
printf("[LED] LED state reset to default controller rule.\n");
else
printf("[ERROR] Failed to reset LED state.\n");
이 함수를 호출하면 LED가 컨트롤러가 관리하는 모드로 돌아가며, set_state_led_color로 적용한 색상 설정이 모두 해제됩니다.
참고
true를 반환해도 LED가 바뀌었다는 뜻은 아닙니다.
팁
set_state_led_color를 사용한 후 이 함수를 호출해 기본 LED 동작으로 되돌리세요.
set_state_led_off와 함께 사용하면 켜짐/꺼짐 전환을 명확하게 표시할 수 있습니다.