Program Listing for File TBHController.hpp

Return to documentation for file (src/LouLib/Controllers/TBHController.hpp)

#ifndef LOULIB_TBHCONTROLLER_HPP
#define LOULIB_TBHCONTROLLER_HPP

#include "../Units/Time.hpp"

namespace LouLib {
    namespace Controllers {

        class TBHController {
        private:
            double k;
            double setpoint;
            double maxOutput;
            double minOutput;
            double deltaTime;
            double output;
            double tbh;
            double prevError;

        public:
            explicit TBHController(double _k);

            void setSetpoint(double _setpoint);

            void setOutputRange(double _minOutput, double _maxOutput);

            void setDeltaTime(Units::Time _deltaTime);

            double getOutput();

            void update(double measurement);

        };

    } // LouLib
} // Controllers

#endif //LOULIB_TBHCONTROLLER_HPP