A small library that's provide helpers for programmers

Dependents:   PYRN

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);
 };