aboutsummaryrefslogtreecommitdiff
path: root/apps/px4io/comms.c
diff options
context:
space:
mode:
authorpx4dev <px4@purgatory.org>2013-01-06 00:40:17 -0800
committerpx4dev <px4@purgatory.org>2013-01-06 00:40:17 -0800
commit9df2aaf3128a14c49d5f82e624174fc55ff3da0c (patch)
treeb61605113eb7feb56465e9c03bc1f1b406d098fe /apps/px4io/comms.c
parentdbb841b0dcad55e36d221fc83ac7bab283438a94 (diff)
parentb3e16b48617ada1b72ba07fab2f9b3ef48cd5058 (diff)
downloadpx4-firmware-9df2aaf3128a14c49d5f82e624174fc55ff3da0c.tar.gz
px4-firmware-9df2aaf3128a14c49d5f82e624174fc55ff3da0c.tar.bz2
px4-firmware-9df2aaf3128a14c49d5f82e624174fc55ff3da0c.zip
Merge branch 'master' into #111-px4io-integrated-mixing
Fix a botched merge for #106 at the same time.
Diffstat (limited to 'apps/px4io/comms.c')
-rw-r--r--apps/px4io/comms.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/apps/px4io/comms.c b/apps/px4io/comms.c
index 843d0978a..183634742 100644
--- a/apps/px4io/comms.c
+++ b/apps/px4io/comms.c
@@ -191,9 +191,26 @@ comms_handle_command(const void *buffer, size_t length)
// if (!system_state.arm_ok && system_state.armed)
// system_state.armed = false;
- /* XXX do relay changes here */
- for (unsigned i = 0; i < PX4IO_RELAY_CHANNELS; i++)
+ /* handle relay state changes here */
+ for (unsigned i = 0; i < PX4IO_RELAY_CHANNELS; i++) {
+ if (system_state.relays[i] != cmd->relay_state[i]) {
+ switch (i) {
+ case 0:
+ POWER_ACC1(cmd->relay_state[i]);
+ break;
+ case 1:
+ POWER_ACC2(cmd->relay_state[i]);
+ break;
+ case 2:
+ POWER_RELAY1(cmd->relay_state[i]);
+ break;
+ case 3:
+ POWER_RELAY2(cmd->relay_state[i]);
+ break;
+ }
+ }
system_state.relays[i] = cmd->relay_state[i];
+ }
irqrestore(flags);
}