1
Dependencies: mbed-dev-f303 FastPWM3
Diff: MA700Sensor/MA700Sensor.h
- Revision:
- 48:1b51771c3647
- Child:
- 52:d4d5e3414865
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MA700Sensor/MA700Sensor.h Fri Feb 07 11:31:37 2020 +0000 @@ -0,0 +1,88 @@ +#ifndef MA700SENSOR_H +#define MA700SENSOR_H +#include "structs.h" +class PositionSensor1 { +public: + virtual void Sample(float dt) = 0; + virtual float GetMechPosition() {return 0.0f;} + virtual float GetMechPositionFixed() {return 0.0f;} + virtual float GetElecPosition() {return 0.0f;} + virtual float GetMechVelocity() {return 0.0f;} + virtual float GetElecVelocity() {return 0.0f;} + virtual void ZeroPosition(void) = 0; + virtual int GetRawPosition(void) = 0; + virtual void SetElecOffset(float offset) = 0; + virtual int GetCPR(void) = 0; + virtual void WriteLUT(int new_lut[128]) = 0; + virtual int Gettest() {return 0;} + virtual int Gettest1() {return 0;} + virtual int Gettest2() {return 0;} + virtual void ReadLUT(void)=0; + //virtual void WriteRegister( ControllerStruct * controller)=0; +}; + + /* +class PositionSensorEncoder: public PositionSensor { +public: + PositionSensorEncoder(int CPR, float offset, int ppairs); + virtual void Sample(float dt); + virtual float GetMechPosition(); + virtual float GetElecPosition(); + virtual float GetMechVelocity(); + virtual float GetElecVelocity(); + virtual void ZeroPosition(void); + virtual void SetElecOffset(float offset); + virtual int GetRawPosition(void); + virtual int GetCPR(void); + virtual void WriteLUT(int new_lut[128]); +private: + InterruptIn *ZPulse; + DigitalIn *ZSense; + //DigitalOut *ZTest; + virtual void ZeroEncoderCount(void); + virtual void ZeroEncoderCountDown(void); + int _CPR, flag, rotations, _ppairs, raw; + //int state; + float _offset, MechPosition, MechOffset, dir, test_pos, oldVel, out_old, velVec[40]; + int offset_lut[128]; +}; +*/ + +class PositionSensorMA700: public PositionSensor1{ +public: + PositionSensorMA700(int CPR, float offset, int ppairs); + virtual void Sample(float dt); + virtual float GetMechPosition(); + virtual float GetMechPositionFixed(); + virtual float GetElecPosition(); + virtual float GetMechVelocity(); + virtual float GetElecVelocity(); + virtual int GetRawPosition(); + virtual void ZeroPosition(); + virtual void SetElecOffset(float offset); + virtual void SetMechOffset(float offset); + virtual int GetCPR(void); + virtual void WriteLUT(int new_lut[128]); + virtual int Gettest(); + virtual int Gettest1(); + virtual int Gettest2(); + virtual void WriteRegister( ControllerStruct * controller); + virtual void ReadLUT(void); +private: + float position, ElecPosition,JointOffset , ElecOffset, MechPosition, MechOffset, modPosition, oldModPosition, oldVel, velVec[40], MechVelocity, ElecVelocity, ElecVelocityFilt; + int raw, _CPR, rotations, old_counts, _ppairs; + SPI *spi; + DigitalOut *cs; + int readAngleCmd; + int BCT; + int ETXY; + int BCTREAD; + int ETXYREAD; + int _test; + int _test1; + int _test2; + int offset_lut[128]; + +}; + +#endif \ No newline at end of file