aboutsummaryrefslogtreecommitdiff
path: root/apps/drivers/hil/hil.cpp
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2012-11-10 17:07:17 +0100
committerLorenz Meier <lm@inf.ethz.ch>2012-11-10 17:07:17 +0100
commitb43f692d3a5e999895f6781a4df79f7179ac273c (patch)
treebcf52b90bb95da0ecfe8eb8753d1799694269adc /apps/drivers/hil/hil.cpp
parent84a0261278d4015d2638043d116a6e591d1867f7 (diff)
downloadpx4-firmware-b43f692d3a5e999895f6781a4df79f7179ac273c.tar.gz
px4-firmware-b43f692d3a5e999895f6781a4df79f7179ac273c.tar.bz2
px4-firmware-b43f692d3a5e999895f6781a4df79f7179ac273c.zip
Correctly handling 8+ outputs, currently only first 8 supported
Diffstat (limited to 'apps/drivers/hil/hil.cpp')
-rw-r--r--apps/drivers/hil/hil.cpp25
1 files changed, 24 insertions, 1 deletions
diff --git a/apps/drivers/hil/hil.cpp b/apps/drivers/hil/hil.cpp
index eb080ffc4..dd5463d4e 100644
--- a/apps/drivers/hil/hil.cpp
+++ b/apps/drivers/hil/hil.cpp
@@ -335,7 +335,30 @@ HIL::task_main()
fds[1].fd = _t_armed;
fds[1].events = POLLIN;
- unsigned num_outputs = (_mode == MODE_2PWM) ? 2 : 4;
+ unsigned num_outputs;
+
+ /* select the number of virtual outputs */
+ switch (_mode) {
+ case MODE_2PWM:
+ num_outputs = 2;
+ break;
+
+ case MODE_4PWM:
+ num_outputs = 4;
+ break;
+
+ case MODE_8PWM:
+ case MODE_12PWM:
+ case MODE_16PWM:
+ // XXX only support the lower 8 - trivial to extend
+ num_outputs = 8;
+ break;
+
+ case MODE_NONE:
+ default:
+ num_outputs = 0;
+ break;
+ }
log("starting");