diff options
Diffstat (limited to 'src/modules/uavcan/uavcan_main.cpp')
-rw-r--r-- | src/modules/uavcan/uavcan_main.cpp | 46 |
1 files changed, 38 insertions, 8 deletions
diff --git a/src/modules/uavcan/uavcan_main.cpp b/src/modules/uavcan/uavcan_main.cpp index b93a95f96..58d53ef2e 100644 --- a/src/modules/uavcan/uavcan_main.cpp +++ b/src/modules/uavcan/uavcan_main.cpp @@ -514,9 +514,17 @@ UavcanNode::teardown() int UavcanNode::arm_actuators(bool arm) { - _is_armed = arm; - _esc_controller.arm_all_escs(arm); - return OK; + _is_armed = arm; + _esc_controller.arm_all_escs(arm); + return OK; +} + +int +UavcanNode::leds(int r, int g, int b, int hz) +{ + + _esc_controller.leds(r, g, b, hz); + return OK; } void @@ -684,7 +692,7 @@ UavcanNode::print_info() static void print_usage() { warnx("usage: \n" - "\tuavcan {start|status|stop|arm|disarm}"); + "\tuavcan {start|status|stop|arm|disarm|led r g b hz}"); } extern "C" __EXPORT int uavcan_main(int argc, char *argv[]); @@ -731,10 +739,32 @@ int uavcan_main(int argc, char *argv[]) ::exit(0); } - if (!std::strcmp(argv[1], "arm")) { - inst->arm_actuators(true); - ::exit(0); - } + if (!std::strcmp(argv[1], "arm")) { + inst->arm_actuators(true); + ::exit(0); + } + + if (!std::strcmp(argv[1], "led")) { + + int r = 255; + int g = 255; + int b = 255; + int hz = 2; + if (argc > 2) { + r = atol(argv[2]); + } + if (argc > 3) { + g = atol(argv[3]); + } + if (argc > 4) { + b = atol(argv[4]); + } + if (argc > 5) { + hz = atol(argv[5]); + } + inst->leds(r, g, b, hz); + ::exit(0); + } if (!std::strcmp(argv[1], "disarm")) { inst->arm_actuators(false); |