robot

Dependencies:   FastPWM3 mbed

ThrottleMapper/ThrottleMapper.h

Committer:
bwang
Date:
2017-04-06
Revision:
92:a9dac72d8cac
Parent:
73:d44bc3a46942
Child:
110:c66f359b6932

File content as of revision 92:a9dac72d8cac:

#ifndef __THROTTLE_MAPPER_H
#define __THROTTLE_MAPPER_H

class ThrottleMapper {
public:
    virtual float map(float throttle, float w) = 0;
};

class NullThrottleMapper : public ThrottleMapper {
public:
    virtual float map(float throttle, float w) {return throttle;}
};

class DrivingThrottleMapper : public ThrottleMapper {
public:
    virtual float map(float throttle, float w);
private:
    float getMaxTqpctPlus(float w);
    float getMaxTqpctMinus(float w);
    float getZeroTqThrottle(float w);
};

class LimitingThrottleMapper : public ThrottleMapper {
public:
    LimitingThrottleMapper(float wmax);
    virtual float map(float throttle, float w);
private:
    float __wmax, __wlim;
};

class ConstantThrottleMapper : public ThrottleMapper {
public:
    ConstantThrottleMapper(float out) {__out = out;}
    virtual float map(float throttle, float w) {if (throttle > 0.01f) return __out; return 0.0f;}
private:
    float __out;
};
#endif