A small library that's provide helpers for programmers
Diff: MySensor.h
- Revision:
- 2:6cc4c56940af
- Parent:
- 1:ee7a5f05513d
--- a/MySensor.h Tue Feb 17 11:55:34 2015 +0000 +++ b/MySensor.h Fri Mar 27 16:48:12 2015 +0000 @@ -5,25 +5,42 @@ #include "MyThread.h" #include "rtos.h" +#define SENSOR_NAME_NONE "SENSORNONE" +#define SENSOR_TYPE_NONE 0 +#define SENSOR_NAME_IMU "SENSORIMU" +#define SENSOR_TYPE_IMU 1 +#define SENSOR_NAME_CAN "SENSORCAN" +#define SENSOR_TYPE_CAN 2 +#define SENSOR_NAME_GPS "SENSORGPS" +#define SENSOR_TYPE_GPS 3 + +#define SENSOR_RESSZ_DEFAULT -1 + class MySensor:public MyThread { -private: +protected: uint8_t sensorType; - struct _results{ - char *start; - char *current; + typedef struct _dataResult{ + uint8_t *start; + uint8_t *current; uint16_t num; uint16_t max; - } results; - Mutex *resultsMutex; + bool dynamic; + } dataResult; + dataResult results; + Mutex resultsMutex; uint32_t idleTime; public: - MySensor(const char* sName, uint8_t t, uint32_t idle); + MySensor(const char* sName = SENSOR_NAME_NONE, uint8_t type = SENSOR_TYPE_NONE, uint32_t idle = 1000, uint32_t sz = DEFAULT_STACK_SIZE); virtual ~MySensor(); virtual const char *GetSensorName(); virtual uint8_t GetSensorType(); virtual void SetIdleTime(uint32_t it); virtual void Main(); + virtual void InitResults(int16_t size); + virtual void ReleaseResults(); + virtual void InitResultsStatic() = 0; virtual void Loop() = 0; + virtual void StoreLastImpact(void) = 0; virtual void Capture(char *data, uint16_t *len); };