From d3f9f419f18210294c4d89905385e025be07bcfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= Date: Mon, 4 Jun 2018 14:24:38 +0200 Subject: [PATCH] ms4525: add argc check and use px4_getopt --- .../ms4525/ms4525_airspeed.cpp | 33 ++++++++++++------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/src/drivers/differential_pressure/ms4525/ms4525_airspeed.cpp b/src/drivers/differential_pressure/ms4525/ms4525_airspeed.cpp index 3c087a6001..e944555f03 100644 --- a/src/drivers/differential_pressure/ms4525/ms4525_airspeed.cpp +++ b/src/drivers/differential_pressure/ms4525/ms4525_airspeed.cpp @@ -50,6 +50,7 @@ */ #include +#include #include @@ -493,38 +494,48 @@ ms4525_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: + meas_airspeed_usage(); + return 0; } } + if (myoptind >= argc) { + meas_airspeed_usage(); + return -1; + } + /* * Start/load the driver. */ - if (!strcmp(argv[1], "start")) { + if (!strcmp(argv[myoptind], "start")) { return meas_airspeed::start(i2c_bus); } /* * Stop the driver */ - if (!strcmp(argv[1], "stop")) { + if (!strcmp(argv[myoptind], "stop")) { return meas_airspeed::stop(); } /* * Reset the driver. */ - if (!strcmp(argv[1], "reset")) { + if (!strcmp(argv[myoptind], "reset")) { return meas_airspeed::reset(); } meas_airspeed_usage(); - - return PX4_OK; + return 0; }