A small library that's provide helpers for programmers

Dependents:   PYRN

MySensor.h

Committer:
clemounet
Date:
2015-04-14
Revision:
4:eef83534b19e
Parent:
2:6cc4c56940af

File content as of revision 4:eef83534b19e:


#ifndef MYSENSOR_H
#define MYSENSOR_H

#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 {
protected:
    uint8_t sensorType;
    typedef struct _dataResult{
        uint8_t *start;
        uint8_t *current;
        uint16_t num;
        uint16_t max;
        bool dynamic;
    } dataResult;
    dataResult results;
    Mutex resultsMutex;
    uint32_t idleTime;
public:
    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);
};

#endif