From 61b4b2df886872a819a088b3cb7bcbefe9317a82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= Date: Mon, 4 Jun 2018 14:03:44 +0200 Subject: [PATCH] ets_airspeed: add argc check and use px4_getopt --- .../ets/ets_airspeed.cpp | 33 ++++++++++++------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/src/drivers/differential_pressure/ets/ets_airspeed.cpp b/src/drivers/differential_pressure/ets/ets_airspeed.cpp index 3f05c60026..ca070b9fa6 100644 --- a/src/drivers/differential_pressure/ets/ets_airspeed.cpp +++ b/src/drivers/differential_pressure/ets/ets_airspeed.cpp @@ -46,6 +46,7 @@ #include #include #include +#include #include #include @@ -357,38 +358,48 @@ ets_airspeed_main(int argc, char *argv[]) { int i2c_bus = PX4_I2C_BUS_DEFAULT; - int i; + int myoptind = 1; + int ch; + const char *myoptarg = nullptr; - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-b") == 0 || strcmp(argv[i], "--bus") == 0) { - if (argc > i + 1) { - i2c_bus = atoi(argv[i + 1]); - } + while ((ch = px4_getopt(argc, argv, "b:", &myoptind, &myoptarg)) != EOF) { + switch (ch) { + case 'b': + i2c_bus = atoi(myoptarg); + break; + + default: + ets_airspeed_usage(); + return 0; } } + if (myoptind >= argc) { + ets_airspeed_usage(); + return -1; + } + /* * Start/load the driver. */ - if (!strcmp(argv[1], "start")) { + if (!strcmp(argv[myoptind], "start")) { return ets_airspeed::start(i2c_bus); } /* * Stop the driver */ - if (!strcmp(argv[1], "stop")) { + if (!strcmp(argv[myoptind], "stop")) { return ets_airspeed::stop(); } /* * Reset the driver. */ - if (!strcmp(argv[1], "reset")) { + if (!strcmp(argv[myoptind], "reset")) { return ets_airspeed::reset(); } ets_airspeed_usage(); - - return PX4_OK; + return 0; }