diff options
author | Julian Oes <julian@oes.ch> | 2013-08-14 10:53:47 +0200 |
---|---|---|
committer | Lorenz Meier <lm@inf.ethz.ch> | 2013-08-14 15:03:52 +0200 |
commit | 29d78367846ebf7834ecd87b2cf528573c3fcdd8 (patch) | |
tree | d1d576d444d2c9391fc66713a14323d5d8e50946 /src/drivers | |
parent | 3b10f8431def73222823c1c2abe1bb7422d851dc (diff) | |
download | px4-firmware-29d78367846ebf7834ecd87b2cf528573c3fcdd8.tar.gz px4-firmware-29d78367846ebf7834ecd87b2cf528573c3fcdd8.tar.bz2 px4-firmware-29d78367846ebf7834ecd87b2cf528573c3fcdd8.zip |
RGBled fixes: options and off after rgb working now
Diffstat (limited to 'src/drivers')
-rw-r--r-- | src/drivers/rgbled/rgbled.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/drivers/rgbled/rgbled.cpp b/src/drivers/rgbled/rgbled.cpp index 44aa922e6..236f138a7 100644 --- a/src/drivers/rgbled/rgbled.cpp +++ b/src/drivers/rgbled/rgbled.cpp @@ -195,8 +195,8 @@ RGBLED::setMode(enum ledModes new_mode) default: if (running) { running = false; - set_on(false); } + set_on(false); mode = LED_MODE_OFF; break; } @@ -443,7 +443,8 @@ rgbled_main(int argc, char *argv[]) int rgbledadr = ADDR; /* 7bit */ int ch; - while ((ch = getopt(argc, argv, "a:b:")) != EOF) { + /* jump over start/off/etc and look at options first */ + while ((ch = getopt(argc-1, &argv[1], "a:b:")) != EOF) { switch (ch) { case 'a': rgbledadr = strtol(optarg, NULL, 0); @@ -455,9 +456,8 @@ rgbled_main(int argc, char *argv[]) rgbled_usage(); } } - argc -= optind; - argv += optind; - const char *verb = argv[0]; + + const char *verb = argv[1]; if (!strcmp(verb, "start")) { if (g_rgbled != nullptr) @@ -523,13 +523,13 @@ rgbled_main(int argc, char *argv[]) if (fd == -1) { errx(1, "Unable to open " RGBLED_DEVICE_PATH); } - if (argc < 4) { + if (argc < 5) { errx(1, "Usage: rgbled rgb <red> <green> <blue>"); } struct RGBLEDSet v; - v.red = strtol(argv[1], NULL, 0); - v.green = strtol(argv[2], NULL, 0); - v.blue = strtol(argv[3], NULL, 0); + v.red = strtol(argv[2], NULL, 0); + v.green = strtol(argv[3], NULL, 0); + v.blue = strtol(argv[4], NULL, 0); int ret = ioctl(fd, RGBLED_SET, (unsigned long)&v); close(fd); exit(ret); |