Subversion Repositories FlightCtrl

Rev

Rev 2099 | Rev 2108 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

#include <stdlib.h>
#include "commands.h"
#include "controlMixer.h"
#include "flight.h"
#include "eeprom.h"
#include "attitude.h"
#include "output.h"
#include "rc.h"

#ifdef USE_MK3MAG
// TODO: Kick that all outa here!
uint8_t compassCalState = 0;
#endif

void commands_handleCommands(void) {
        /*
         * Get the current command (start/stop motors, calibrate), if any.
         */

        uint8_t command = controlMixer_getCommand();
        uint8_t repeated = controlMixer_isCommandRepeated();
        uint8_t argument = controlMixer_getArgument();

        // TODO! Mode change gadget of some kind.
        if (!isMotorRunning) {
                if (command == COMMAND_GYROCAL && !repeated) {
                        // Gyro calinbration, with or without selecting a new parameter-set.
                        paramSet_readFromEEProm(1);
                        analog_calibrateGyros();
                        attitude_setNeutral();
                        controlMixer_setNeutral();
                        beepNumber(1);
                } else if (command == COMMAND_CHMOD && !repeated) {
                        configuration_setFlightParameters(argument);
                }
        } // end !MOTOR_RUN condition.
}