Test program for SPS30

Dependencies:   SPS30-sensor

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers sensor_driver.h Source File

sensor_driver.h

00001 
00002 #ifndef SENSOR_DRIVER_H
00003 #define SENSOR_DRIVER_H
00004 
00005 #include <string>
00006 #include <vector>
00007 #include "mbed.h"
00008 
00009 /* Serial Communication Pins */
00010 #define SDA1        PB_9
00011 #define SCL1        PB_6
00012 #define SDA2        PF_0
00013 #define SCL2        PF_1
00014 #define SDA3        PF_15
00015 #define SCL3        PF_14
00016 
00017 /** SensorDriver Abstract class.
00018  *  @brief  Contains common methods and members of the various sensors
00019  *
00020  *  Example:
00021  *  @code{.cpp}
00022  *  #include "mbed.h"
00023  *  #include "sensor_driver.h"
00024  *
00025  *  int main() 
00026  *  {
00027  *      
00028  *  }
00029  *  @endcode
00030  */
00031  
00032 extern Serial pc; /// for testing
00033 
00034 typedef vector< pair <string, string> > datalist_t;
00035 
00036 class SensorDriver 
00037 {
00038     public:
00039         /// Public exposed methods
00040         virtual void InitSensor() = 0;      /// Initialise Sensor
00041         virtual int PollSensor() = 0;       /// Poll Sensor 
00042 
00043         std::string sensor_serial;    /// Sensor ID string
00044         datalist_t sensor_data;       /// Sensor Data Vector
00045         
00046         enum SensorStatus
00047         {
00048             SENSOR_DCN,
00049             SENSOR_CN,
00050             SENSOR_DATAERR,
00051             SENSOR_DATAOOR,
00052             SENSOR_DATAOK,
00053         };
00054 
00055     protected:
00056         /// For use within the specific sensor class
00057         std::string ConvertSerialNumber(uint8_t sn_arr[]);    /// Convert uint8_t array of Serial ASCII to string
00058         std::string ConvertDataToString(float data);        /// Convert float data to string
00059         
00060         int ValidateData(float data, float data_min, float data_max);       /// Validate data with defined limits
00061         void SendSensorEmTrace(int err, std::string trace_string = "");     /// Send Warning Trace to Event Manager
00062 
00063 };
00064 #endif  // SENSOR_DRIVER_H