test
Dependents: FM_integration_copy
Fork of MPL3115A2 by
Revision 3:7c7c1ea6fc33, committed 2014-04-02
- Comitter:
- sophtware
- Date:
- Wed Apr 02 12:59:44 2014 +0000
- Parent:
- 2:2ebc9c0d4a54
- Child:
- 4:a9ee44b59212
- Commit message:
- Updated documentation.
Changed in this revision
--- a/Altitude.h Wed Apr 02 12:22:45 2014 +0000 +++ b/Altitude.h Wed Apr 02 12:59:44 2014 +0000 @@ -14,8 +14,8 @@ #include "mbed.h" -//! Casting truncates, therefore negative numbers become positive. -//! This will only cast properly in the range -128 to 127. +//! Casting a float to a char truncates, therefore negative numbers become positive. +//! This will properly cast a float in the range -128 to 127 to a char. #define float_to_char(x) (((x)<0)?(-(char)(x)):((char)(x))) //! Altitude provides a wrapper around altitude data coming from the sensor. The class handles
--- a/MPL3115A2.h Wed Apr 02 12:22:45 2014 +0000 +++ b/MPL3115A2.h Wed Apr 02 12:59:44 2014 +0000 @@ -105,19 +105,32 @@ { public: //! Constructs an MPL3115A2 object and associates an I2C and optional Serial debug object. + //! @param *i2c The I2C object to use for the sensor. + //! @param *pc An optional serial debug connection object. MPL3115A2(I2C *i2c, Serial *pc = NULL); - //! Call from main to initialize the sensor, defaulting to Altitude mode. + //! Initializes the sensor, defaulting to Altitude mode. This should be called before using + //! the sensor for the first time. void init(); - //! Returns the fixed device ID number (usually equal to 0xC4). + //! Queries the value from the WHO_AM_I register (usually equal to 0xC4). + //! @return The fixed device ID from the sensor. char whoAmI() { return i2cRead(WHO_AM_I); } - //! Returns the passed in altitude object with altitude data. + //! Reads Altitude data from the sensor and returns it in the Altitude object passed in. If + //! no data could be read, the Altitude object is left as is. + //! @param a A pointer to an Altitude object that will receive the sensor data. + //! @returns The Altitude pointer that was passed in. Altitude* readAltitude(Altitude* a); - //! Returns the passed in pressure object with barometric pressure data. + //! Reads Pressure data from the sensor and returns it in the Pressure object passed in. If + //! no data could be read, the Pressure object is left as is. + //! @param a A pointer to a Pressure object that will receive the sensor data. + //! @returns The Pressure pointer that was passed in. Pressure* readPressure(Pressure* p); - //! Returns the passed in temperature object with temperature data. + //! Reads Temperature data from the sensor and returns it in the Temperature object passed in. If + //! no data could be read, the Temperature object is left as is. + //! @param a A pointer to an Temperature object that will receive the sensor data. + //! @returns The Temperature pointer that was passed in. Temperature* readTemperature(Temperature* t); // Use these methods to set the sensor's offsets to increase its accuracy. You can generally @@ -126,6 +139,7 @@ // pressure from the web for your area is generally not close enough to help with calibration. // You may need to play with the setting to achieve good accuracy. I found the offset steps // were not 100% accurate to the datasheet and had to adjust accordingly. + //! Returns the altitude offset stored in the sensor. char offsetAltitude() { return i2cRead(OFF_H); } //! Sets the altitude offset stored in the sensor. The allowed offset range is from -128 to 127 meters.
--- a/Pressure.h Wed Apr 02 12:22:45 2014 +0000 +++ b/Pressure.h Wed Apr 02 12:59:44 2014 +0000 @@ -14,11 +14,17 @@ #include "mbed.h" +//! Pressure provides a wrapper around barometric data coming from the sensor. The class handles +//! working with compressed data from the sensor and provides convenient functions for retreiving +//! the data in various units (with room to add more if needed). class Pressure { public: + //! The size of the compressed data buffer from the sensor. Used in an I2C read. static const int size = 3; + + //! The units we support converting the sensor data to. enum unitsType { PASCALS, PSI, INHG, MMHG }; Pressure(); @@ -26,15 +32,19 @@ Pressure(const char* compressed); Pressure(const char msb, const char csb, const char lsb); + //! Allows using the object directly in an I2C read operation. operator char*(void) { return _compressed; } + //! Same as calling pressure with PASCALS as the parameter. operator float(void) { return _pressure; } float pressure(unitsType units = PASCALS); + //! Call to decompress the sensor data after an I2C read. void setPressure(); void setPressure(const char* compressed); void setPressure(const char msb, const char csb, const char lsb); void setPressure(float a, unitsType units = PASCALS); + //! Returns the pressure as a string in the units specified, defaulting to PASCAL if none specified. const char* print(unitsType units = PASCALS); private:
--- a/Temperature.h Wed Apr 02 12:22:45 2014 +0000 +++ b/Temperature.h Wed Apr 02 12:59:44 2014 +0000 @@ -14,11 +14,17 @@ #include "mbed.h" +//! Temperature provides a wrapper around temperature data coming from the sensor. The class handles +//! working with compressed data from the sensor and provides convenient functions for retreiving +//! the data in various units (with room to add more if needed). class Temperature { public: + //! The size of the compressed data buffer from the sensor. Used in an I2C read. static const int size = 2; + + //! The units we support converting the sensor data to. enum unitsType { CELSIUS, FAHRENHEIT, KELVIN }; Temperature(); @@ -26,15 +32,19 @@ Temperature(const char* compressed); Temperature(const char msb, const char lsb); + //! Allows using the object directly in an I2C read operation. operator char*(void) { return _compressed; } + //! Same as calling temperature with FAHRENHEIT as the parameter. operator float(void) { return _temperature; } float temperature(unitsType units = FAHRENHEIT); + //! Call to decompress the sensor data after an I2C read. void setTemperature(); void setTemperature(const char* compressed); void setTemperature(const char msb, const char lsb); void setTemperature(float a, unitsType units = FAHRENHEIT); + //! Returns the temperature as a string in the units specified, defaulting to FAHRENHEIT if none specified. const char* print(unitsType units = FAHRENHEIT); private: