New version of quadcopter software written to OO principles

Dependencies:   mbed MODSERIAL filter mbed-rtos ConfigFile PID PPM FreeIMU_external_magnetometer TinyGPS

FlightController/FlightController.h

Committer:
joe4465
Date:
2015-03-04
Revision:
0:c6a85bb2a827
Child:
2:969dfa4f2436

File content as of revision 0:c6a85bb2a827:

#include "mbed.h"
#include "Global.h"
#include "rtos.h"
#include "Status.h"
#include "MotorMixer.h"
#include "PidWrapper.h"
#include "RateController.h"
#include "StabController.h"

#ifndef FlightController_H
#define FlightController_H

class FlightController               
{
  public:                  
    FlightController(); 
    ~FlightController();
    
    bool initialise(Status& status, Sensors& sensors, NavigationController& navigationController, PinName motor1, PinName motor2, PinName motor3, PinName motor4);
    PidWrapper::PidValues getyawRatePID();
    PidWrapper::PidValues getPitchRatePID();
    PidWrapper::PidValues getRollRatePID();
    PidWrapper::PidValues getyawStabPID();
    PidWrapper::PidValues getPitchStabPID();
    PidWrapper::PidValues getRollStabPID();
    MotorMixer::MotorPower getMotorPower();
    
  private:
    static void threadStarter(void const *p);
    void threadWorker();
    RtosTimer* _rtosTimer;
    Status _status;
    MotorMixer _motorMixer;
    RateController _rateController;
    StabController _stabController;
};

#endif