aboutsummaryrefslogtreecommitdiff
path: root/src/drivers/rgbled
diff options
context:
space:
mode:
authorJulian Oes <julian@oes.ch>2013-08-14 10:53:47 +0200
committerLorenz Meier <lm@inf.ethz.ch>2013-08-14 15:03:52 +0200
commit29d78367846ebf7834ecd87b2cf528573c3fcdd8 (patch)
treed1d576d444d2c9391fc66713a14323d5d8e50946 /src/drivers/rgbled
parent3b10f8431def73222823c1c2abe1bb7422d851dc (diff)
downloadpx4-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/rgbled')
-rw-r--r--src/drivers/rgbled/rgbled.cpp18
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);