diff --git a/src/drivers/uavcan/uavcan_main.cpp b/src/drivers/uavcan/uavcan_main.cpp index 6fcfd4faf9..303946a7a2 100644 --- a/src/drivers/uavcan/uavcan_main.cpp +++ b/src/drivers/uavcan/uavcan_main.cpp @@ -1254,9 +1254,11 @@ UavcanNode::get_next_dirty_node_id(uint8_t base) */ static void print_usage() { - PX4_INFO("usage: \n" - "\tuavcan {start|status|stop|shrink|update}\n" - "\t param [set|get|list|save] |reset "); + PX4_INFO_RAW("usage: \n" + "\tuavcan {start|status|stop|shrink|update}\n" + "\t param [set|get|list|save] |reset " + "\t reset " + ); } extern "C" __EXPORT int uavcan_main(int argc, char *argv[]) @@ -1317,6 +1319,17 @@ extern "C" __EXPORT int uavcan_main(int argc, char *argv[]) ::exit(0); } + if (!std::strcmp(argv[1], "reset")) { + int node_arg = 2; + + if (argc < node_arg + 1) { + errx(1, "Node id required"); + } + + int nodeid = atoi(argv[node_arg]); + return inst->reset_node(nodeid); + } + /* * Parameter setting commands * @@ -1326,9 +1339,9 @@ extern "C" __EXPORT int uavcan_main(int argc, char *argv[]) * uavcan param set * */ - int node_arg = !std::strcmp(argv[1], "reset") ? 2 : 3; + if (!std::strcmp(argv[1], "param")) { + int node_arg = 3; - if (!std::strcmp(argv[1], "param") || node_arg == 2) { if (argc < node_arg + 1) { errx(1, "Node id required"); } @@ -1339,11 +1352,7 @@ extern "C" __EXPORT int uavcan_main(int argc, char *argv[]) errx(1, "Invalid Node id"); } - if (node_arg == 2) { - - return inst->reset_node(nodeid); - - } else if (!std::strcmp(argv[2], "list")) { + if (!std::strcmp(argv[2], "list")) { return inst->list_params(nodeid);