ti bisogna il phaserunner

Dependencies:   mbed PID mbed-rtos

Peripherien/Regler.h

Committer:
EpicG10
Date:
2019-05-16
Revision:
7:15e6fc689368
Child:
8:1655d27152e6

File content as of revision 7:15e6fc689368:

/**
 * Steuert die 4 Phaserunner
 */

#ifndef PA_REGLER_H
#define PA_REGLER_H

#include "Phaserunner.h"
#include "Encoder.h"

class Regler{
private:
    //Alle Phaserunner
    Phaserunner& vorderrad;
    Phaserunner& hinterrad;
    Phaserunner& linkspedal;
    Phaserunner& rechtspedal;
    
    //Encoder
    Encoder&     encoder;

    //Drehmomentverhältnis
    uint8_t torqueRatio;

    //Verhältnis des Gegenmomentes
    uint8_t recupRatio;
    
    //Zeitliche Berechnung der Werte
    void ReglerCalculate();
    
    // Ticker
    Ticker ticker;
    
    const static float PI = 3.14159265;


public:
    /**
     * Erstellt einen Regler für alle Phaserunner
     * @param vorderrad
     * @param hinterrad
     * @param linkspedal
     * @param rechtspedal
     * @param encoder
     */
    Regler(Phaserunner& vorderrad, Phaserunner& hinterrad, Phaserunner& linkspedal, Phaserunner& rechtspedal, Encoder& encoder);

    /**
     * Regelt die Phaserunner auf eine bestimmte Geschwindigkeit.
     * @param speed Geschwindigkeit in km/h
     */
    void setSpeed(uint8_t speed);

    /**
     * Setzt das Drehmomentverhältnis zwischen Vorderrad und Hinterrad.
     * @param torqueRatio: Drehmoment des Hinterrades in %. Das Drehmoment auf dem Vorderrad ist dann 100% - torqueRatio.
     */
    void setTorqueProportion(uint8_t torqueRatio);

    /**
     * Setzt das Verhältnis des Gegenmomentes zwischen Vorderrad und Hinterrad.
     * @param torqueRatio: Gegenmoment des Hinterrades in %. Das Gegenmoment auf dem Vorderrad ist dann 100% - torqueRatio.
     */
    void setRecuperationProportion(uint8_t recupRatio);

    /**
     * Setzt das Drehmoment auf beide Phaserunner.
     * @param torque Drehmoment in Prozent
     */
    void setTorqueMotors(uint8_t torque);

    /**
     * Setzt das Drehmoment auf beide Phaserunner.
     * @param torque Drehmoment in Prozent
     */
    void setTorquePedals(uint8_t torque);

    /**
     * Setzt die Rekuperation der Motoren
     * @param recuperation
     */
    void setRecuperationMotors(uint8_t recuperation);

    /**
     * Setzt die Rekuperation der Pedale
     * @param recuperation
     */
    void setRecuperationPedals(uint8_t recuperation);
};

#endif //PA_REGLER_H