diff options
author | px4dev <px4@purgatory.org> | 2013-01-06 00:40:17 -0800 |
---|---|---|
committer | px4dev <px4@purgatory.org> | 2013-01-06 00:40:17 -0800 |
commit | 9df2aaf3128a14c49d5f82e624174fc55ff3da0c (patch) | |
tree | b61605113eb7feb56465e9c03bc1f1b406d098fe /apps/px4io/comms.c | |
parent | dbb841b0dcad55e36d221fc83ac7bab283438a94 (diff) | |
parent | b3e16b48617ada1b72ba07fab2f9b3ef48cd5058 (diff) | |
download | px4-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.c | 21 |
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); } |