N K
/
GaNtroller
a fork of priustroller
Fork of priustroller_current by
sensors.h
- Committer:
- bwang
- Date:
- 2015-03-01
- Revision:
- 1:1f58bdcf2956
File content as of revision 1:1f58bdcf2956:
#ifndef __SENSORS_H #define __SENSORS_H #include "includes.h" class CurrentSensor { public: virtual float GetCurrent() {return 0.0f;} virtual void Zero() {} }; class VoltageSensor { public: virtual float GetVoltage() {return 0.0f;} virtual void Zero(){} }; class PositionSensor { public: virtual float GetPosition() {return 0.0f;} }; class TempSensor { public: virtual float GetTemp() {return 0.0f;} }; class AnalogCurrentSensor: public CurrentSensor { public: AnalogCurrentSensor(PinName pin, float volts_per_amp); virtual void Zero(); virtual float GetCurrent(); private: float _zero_level, _volts_per_amp; AnalogIn *_in; }; class AnalogVoltageSensor: public VoltageSensor { public: AnalogVoltageSensor(PinName pin, float scale); virtual void Zero(); virtual float GetVoltage(); private: float _zero_level, _scale; AnalogIn *_in; }; class AnalogHallPositionSensor: public PositionSensor { public: AnalogHallPositionSensor(PinName pin_a, PinName pin_b, float cal1_a, float cal2_a, float cal1_b, float cal2_b, float offset); virtual float GetPosition(); private: float _cal1_a, _cal2_a; float _cal1_b, _cal2_b; float _offset; AnalogIn *_in_a, *_in_b; }; class NtcTempSensor: public TempSensor { public: NtcTempSensor(PinName pin, float r_25, float ntc_b, float r_divider); virtual float GetTemp(); private: float _ntc_a, _ntc_b, _r_divider; AnalogIn *_in; }; class Throttle { public: Throttle(PinName pin, float min, float max); float GetThrottle(); private: float _min, _max; VoltageSensor *_in; }; #endif