Llibrary for the WiGo MPL3115A2, I2C Precision Altimeter sensor. This is a temp fork

Dependents:   sensor AerCloud_MutliTech_Socket_Modem_Example Freescale_Multi-Sensor_Shield 2lemetry_Sensor_Example ... more

Fork of MPL3115A2 by clemente di caprio

Revision:
2:a2fcfb7ff611
Parent:
1:30a04f651efe
Child:
3:a2f1752add9a
--- a/MPL3115A2.h	Thu May 23 12:42:45 2013 +0000
+++ b/MPL3115A2.h	Wed May 29 05:57:15 2013 +0000
@@ -55,101 +55,120 @@
 class MPL3115A2
 {
 public:
-/**
-* MPL3115A2 constructor
-*
-* @param sda SDA pin
-* @param sdl SCL pin
-* @param addr addr of the I2C peripheral
-*/
-MPL3115A2(PinName sda, PinName scl, int addr);
-
-/**
-* Get the value of the WHO_AM_I register
-*
-* @returns DEVICE_ID value == 0xC4
-*/
-uint8_t getDeviceID();
-
-/**
-* Return the STATUS register value
-*
-* @returns STATUS register value
-*/
-unsigned char getStatus( void);
-
-/**
-* Get the altimeter value
-*
-* @returns altimeter value as float
-*/
-float getAltimeter( void);
-
-/**
-* Get the pressure value
-*
-* @returns pressure value as float
-*/
-float getPressure( void);
+    /**
+    * MPL3115A2 constructor
+    *
+    * @param sda SDA pin
+    * @param sdl SCL pin
+    * @param addr addr of the I2C peripheral
+    */
+    MPL3115A2(PinName sda, PinName scl, int addr);
+    
+    /**
+    * Get the value of the WHO_AM_I register
+    *
+    * @returns DEVICE_ID value == 0xC4
+    */
+    uint8_t getDeviceID();
+    
+    /**
+    * Return the STATUS register value
+    *
+    * @returns STATUS register value
+    */
+    unsigned char getStatus( void);
+    
+    /**
+    * Get the altimeter value
+    *
+    * @returns altimeter value as float
+    */
+    float getAltimeter( void);
+    
+    /**
+    * Get the pressure value
+    *
+    * @returns pressure value as float
+    */
+    float getPressure( void);
+    
+    /**
+    * Get the temperature value
+    *
+    * @returns temperature value as float
+    */
+    float getTemperature( void);
+    
+    /**
+    * Set the Altimeter Mode
+    *
+    * @returns none
+    */
+    void Altimeter_Mode( void);
+    
+    /**
+    * Set the Barometric Mode
+    *
+    * @returns none
+    */
+    void Barometric_Mode( void);
+    
+    /**
+    * Get the altimeter, pressure and temperature values
+    *
+    * @param array of float f[3]
+    * @returns none
+    */
+    void getAllData( float *f);
+    
+    /** 
+    * Return if there are date available
+    * 
+    * @return 1 for data available, 0 for no data available
+    */
+    unsigned int isDataAvailable( void);
+    
+    /** 
+    * Set the oversampling rate value
+    *
+    * @param oversampling values. See MPL3115A2.h
+    * @return none
+    */
+    void Oversample_Ratio( unsigned int ratio);
 
-/**
-* Get the temperature value
-*
-* @returns temperature value as float
-*/
-float getTemperature( void);
-
-/**
-* Set the Altimeter Mode
-*
-* @returns none
-*/
-void Altimeter_Mode( void);
-
-/**
-* Set the Barometric Mode
-*
-* @returns none
-*/
-void Barometric_Mode( void);
-
-/**
-* Get the altimeter, pressure and temperature values
-*
-* @param array of float f[3]
-* @returns none
-*/
-void getAllData( float *f);
-
-/** Return is there are date available
-* 
-* @return 1 for data available, 0 for no data available
-*/
-unsigned int isDataAvailable( void);
-
-/** Set the oversampling rate value
-*
-* @param oversampling values. See MPL3115A2.h
-* @return none
-*/
-void Oversample_Ratio( unsigned int ratio);
+    /**
+    * Configure the sensor to streaming data using Interrupt
+    *
+    * @param user functin callback, oversampling values. See MPL3115A2.h
+    * @return none
+    */
+    void DataReady( void(*fptr)(void), unsigned char OS);
+    
+    /**
+    * Soft Reset
+    *
+    * @param none
+    * @return none
+    */    
+    void Reset( void);
 
 private:
-  I2C m_i2c;
-  int m_addr;
-  unsigned char MPL3115A2_mode;
-  unsigned char MPL3115A2_oversampling;
-  
-  /** Set the device in active mode
-  */
-  void Active( void);
-
-  /** Set the device in standby mode
-  */
-  void Standby( void);
-  
-  void readRegs(int addr, uint8_t * data, int len);
-  void writeRegs(uint8_t * data, int len);
+    I2C m_i2c;
+    int m_addr;
+    unsigned char MPL3115A2_mode;
+    unsigned char MPL3115A2_oversampling;
+    void DataReady_IRQ( void);
+    
+    /** Set the device in active mode
+    */
+    void Active( void);
+    
+    /** Set the device in standby mode
+    */
+    void Standby( void);
+    
+    void readRegs(int addr, uint8_t * data, int len);
+    void writeRegs(uint8_t * data, int len);
 
 };