diff options
author | Lorenz Meier <lm@inf.ethz.ch> | 2012-12-27 19:06:09 +0100 |
---|---|---|
committer | Lorenz Meier <lm@inf.ethz.ch> | 2012-12-27 19:06:09 +0100 |
commit | 45a4bcb6efc323ad9b8b434e9cd30dbe41ded29f (patch) | |
tree | ba7454ee955705166e23be23318ec9b18e318008 /apps/px4io/comms.c | |
parent | 7526dd46a2ace594cbbb2c6ad9e9fa53c67c5ca8 (diff) | |
parent | 5b92c517779500d79e6e5f5cff48336550ce5edb (diff) | |
download | px4-firmware-45a4bcb6efc323ad9b8b434e9cd30dbe41ded29f.tar.gz px4-firmware-45a4bcb6efc323ad9b8b434e9cd30dbe41ded29f.tar.bz2 px4-firmware-45a4bcb6efc323ad9b8b434e9cd30dbe41ded29f.zip |
Merged relay activation
Diffstat (limited to 'apps/px4io/comms.c')
-rw-r--r-- | apps/px4io/comms.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/apps/px4io/comms.c b/apps/px4io/comms.c index bfdad019d..2b8f95534 100644 --- a/apps/px4io/comms.c +++ b/apps/px4io/comms.c @@ -210,9 +210,25 @@ comms_handle_command(const void *buffer, size_t length) */ mixer_tick(); - /* XXX do relay changes here */ + /* handle relay state changes here */ for (unsigned i = 0; i < PX4IO_RELAY_CHANNELS; i++) { - system_state.relays[i] = cmd->relay_state[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); |