Steve Martin / libdev_si7021
Committer:
ninensei
Date:
Tue Sep 12 17:17:03 2017 +0000
Revision:
0:9909c9c7d326
Initial driver release

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ninensei 0:9909c9c7d326 1 #include "mbed.h"
ninensei 0:9909c9c7d326 2
ninensei 0:9909c9c7d326 3 #ifndef SI7021_H
ninensei 0:9909c9c7d326 4 #define SI7021_H
ninensei 0:9909c9c7d326 5
ninensei 0:9909c9c7d326 6 typedef struct {
ninensei 0:9909c9c7d326 7 float temp_C;
ninensei 0:9909c9c7d326 8 float humidity_PR;
ninensei 0:9909c9c7d326 9 // int16_t temp;
ninensei 0:9909c9c7d326 10 // int16_t temp_norm;
ninensei 0:9909c9c7d326 11 // int16_t humidity;
ninensei 0:9909c9c7d326 12 // int16_t humidity_norm;
ninensei 0:9909c9c7d326 13 } si7021_measurements_t;
ninensei 0:9909c9c7d326 14
ninensei 0:9909c9c7d326 15 class SI7021 {
ninensei 0:9909c9c7d326 16 public:
ninensei 0:9909c9c7d326 17 /**
ninensei 0:9909c9c7d326 18 * Constructor
ninensei 0:9909c9c7d326 19 *
ninensei 0:9909c9c7d326 20 * @param i2c I2C class servicing the strip
ninensei 0:9909c9c7d326 21 */
ninensei 0:9909c9c7d326 22 SI7021(I2C * i2c) : _i2c(i2c) {}
ninensei 0:9909c9c7d326 23
ninensei 0:9909c9c7d326 24 /**
ninensei 0:9909c9c7d326 25 * Read temperature and humidity
ninensei 0:9909c9c7d326 26 *
ninensei 0:9909c9c7d326 27 * @param data points to struct to store measurements in. Stucture is
ninensei 0:9909c9c7d326 28 * valid only when function returns success indication.
ninensei 0:9909c9c7d326 29 *
ninensei 0:9909c9c7d326 30 * @returns true (success) or false (failure)
ninensei 0:9909c9c7d326 31 */
ninensei 0:9909c9c7d326 32 bool read(si7021_measurements_t * data);
ninensei 0:9909c9c7d326 33
ninensei 0:9909c9c7d326 34 protected:
ninensei 0:9909c9c7d326 35
ninensei 0:9909c9c7d326 36 /**
ninensei 0:9909c9c7d326 37 * I2C read/write helper function
ninensei 0:9909c9c7d326 38 *
ninensei 0:9909c9c7d326 39 * @param address is the register to read/write
ninensei 0:9909c9c7d326 40 * @param buff holds the data to write and recieves the data to read
ninensei 0:9909c9c7d326 41 * @param writeSize is the number of bytes to write to register
ninensei 0:9909c9c7d326 42 * @param readSize is the number of bytes to retrieve from device
ninensei 0:9909c9c7d326 43 *
ninensei 0:9909c9c7d326 44 * @returns true (success) or false (failure)
ninensei 0:9909c9c7d326 45 */
ninensei 0:9909c9c7d326 46 bool _i2c_transfer(int address, void * buff, size_t writeSize, size_t readSize);
ninensei 0:9909c9c7d326 47
ninensei 0:9909c9c7d326 48 /**
ninensei 0:9909c9c7d326 49 *
ninensei 0:9909c9c7d326 50 bool _validate(void)
ninensei 0:9909c9c7d326 51 */
ninensei 0:9909c9c7d326 52
ninensei 0:9909c9c7d326 53 I2C *_i2c;
ninensei 0:9909c9c7d326 54 };
ninensei 0:9909c9c7d326 55
ninensei 0:9909c9c7d326 56 #endif //SI7021_H