most functionality to splashdwon, find neutral and start mission. short timeouts still in code for testing, will adjust to go directly to sit_idle after splashdown

Dependencies:   mbed MODSERIAL FATFileSystem

OuterLoop/OuterLoop.hpp

Committer:
danstrider
Date:
2017-10-23
Revision:
10:085ab7328054
Child:
11:3b241ecb75ed

File content as of revision 10:085ab7328054:

#ifndef OUTERLOOP_HPP
#define OUTERLOOP_HPP
 
#include "mbed.h"
#include "PidController.hpp"
#include "PosVelFilter.hpp"
 
// This class is an outer loop controller with its own instance of a position velocity filter.
 
class OuterLoop {
public:
    OuterLoop(float interval, int sensor);
    
    // functions for setting up
    void init();
    void update();
    void start();
    void stop();
    
    // setting and getting variables
    void setCommand(float cmd);
    float getOutput();
    
    float getPosition();
    float getVelocity();
    
    void setControllerP(float P);
    float getControllerP();
    
    void setControllerI(float I);
    float getControllerI();
    
    void setControllerD(float D);
    float getControllerD();
    
    void setTravelLimit(float limit);
    float getTravelLimit();
    
    void setFilterFrequency(float frequency);
    float getFilterFrequency;
        
    void setDeadband(float deadband);
    bool toggleDeadband(bool toggle);
    
protected:
    PosVelFilter _filter;
    PIDController _pid;
    Ticker _pulse;
    
    void refreshPVState();
    
    float _SetPoint;
    float _sensorVal;

    // position and velocity in raw units
    float _position;
    float _velocity;

    // setup parameters
    float _Pgain;
    float _Igain;
    float _Dgain;
    float _dt;
    float _filterFrequency;
    float _deadband;
    char _sensor;
};
 
#endif