Vishay UV Sensor I2C library

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers VEML6075.h Source File

VEML6075.h

00001 /*
00002  * File description 
00003  *
00004  */
00005 
00006 #ifndef _VEML6075_H_
00007 #define _VEML6075_H_
00008 
00009 #include "mbed.h"
00010 
00011 /**
00012  * UVA and UVB Light Sensor with I2C Interface
00013  * I2C 7bit address: 0x10
00014  *
00015  */
00016 
00017 class VEML6075 
00018 {
00019 public:
00020  /**
00021  *  constructor
00022  *
00023  * @param sda SDA pin
00024  * @param scl SCL pin
00025  * @param addr address of the I2C peripheral
00026  */
00027  VEML6075(PinName sda, PinName scl, int addr) ;
00028  
00029  ~VEML6075() ;
00030 
00031  /*
00032   * some member functions here (yet to be written)
00033   */
00034 /**
00035  * get UVA 
00036  * @param none
00037  * @returns float UVA data
00038  */
00039 float getUVA(void) ;
00040 
00041 /**
00042  * get UVA_CIE 
00043  * @param none
00044  * @returns float UVA_CIE data
00045  */
00046 float getUVA_CIE(void) ; 
00047 
00048 /** 
00049  * get UVB
00050  * @param none
00051  * @returns float UVB data
00052  */
00053 float getUVB(void) ; 
00054 
00055 /**
00056  * get UVB_CIE
00057  * @param none
00058  * @returns float UVB_CIE data
00059  */
00060 float getUVB_CIE(void) ;
00061 
00062 /**
00063  * get UVConf
00064  * @param uint8_t *uvconf
00065  * @reurns none
00066  */
00067 void getUVConf(uint8_t *uvconf) ;
00068 
00069 /**
00070  * set UVConf
00071  * @param uint8_t uvconf
00072  * @returns none
00073  */
00074 void setUVConf(uint8_t uvconf) ;
00075 
00076 /**
00077  * get raw UVA data
00078  * @param uint16_t *uvadata
00079  * @returns none
00080  */
00081 void getUVAData(uint16_t *uvadata) ;
00082 
00083 /**
00084  * get raw UVB data
00085  * @param uint16_t *rvbdata
00086  * @returns none
00087  */
00088 void getUVBData(uint16_t *uvbdata) ;
00089 
00090 /**
00091  * get raw UVD data
00092  * @param uint16_t *uvddata 
00093  * @returns none
00094  *
00095  * @note UVD was defined in the sample device datasheet
00096  * @note but in the released device datasheet, it's gone
00097  * @note so if you are using production version device
00098  * @note make this function just return 0 to possible side effect.
00099  */
00100 void getUVDData(uint16_t *uvddata) ;
00101 
00102 /**
00103  * get UVCOMP1 data
00104  * @param *uint16_t *uvcomp1data
00105  * @returns none
00106  */
00107 void getUVCOMP1Data(uint16_t *uvcomp1data) ;
00108 
00109 /**
00110  * get UVCOMP2 data
00111  * @param *uint16_t *uvcomp2data
00112  * @returns none
00113  */
00114 void getUVCOMP2Data(uint16_t *uvcomp2data) ;
00115 
00116 /**
00117  * get UVI UV Index
00118  * @param none
00119  * @returns float UVI
00120  */
00121 float UVI(void) ;
00122 
00123 /**
00124  * get device ID
00125  * @param uint16_t *id device ID
00126  * @returns none
00127  */
00128 void getID(uint16_t *id) ;
00129 
00130 //  void cmdRead(uint8_t cmd, uint8_t *data, uint8_t numdata = 2) ;
00131 //  void cmdWrite(uint8_t cmd, uint8_t *data, uint8_t numdata = 2) ;
00132   
00133 private:
00134   I2C m_i2c;
00135   int m_addr;
00136   void readRegs(int addr, uint8_t * data, int len);
00137   void writeRegs(uint8_t * data, int len);
00138 } ;
00139 #endif /* _VEML6075_H_ */