Vishay VEML6040 Color RGB sensor I2C driver library
Dependents: test_VEML6040 testSensor
Diff: VEML6040.cpp
- Revision:
- 4:f5b142e3fe79
- Parent:
- 2:239c3561d21a
- Child:
- 5:a4dcc19d057e
diff -r c6614597c135 -r f5b142e3fe79 VEML6040.cpp --- a/VEML6040.cpp Fri May 19 04:24:33 2017 +0000 +++ b/VEML6040.cpp Mon Jun 05 02:02:20 2017 +0000 @@ -96,32 +96,40 @@ } -void VEML6040::getRData(uint16_t *rdata) +int VEML6040::getRData(uint16_t *rdata) { uint8_t data[2] ; - readRegs(REG_R_Data, data, 2) ; + int result ; + result = readRegs(REG_R_Data, data, 2) ; *rdata = (data[1]<<8) | data[0] ; + return( result ) ; } -void VEML6040::getGData(uint16_t *gdata) +int VEML6040::getGData(uint16_t *gdata) { uint8_t data[2] ; - readRegs(REG_G_Data, data, 2) ; + int result ; + result = readRegs(REG_G_Data, data, 2) ; *gdata = (data[1]<<8) | data[0] ; + return( result ) ; } -void VEML6040::getBData(uint16_t *bdata) +int VEML6040::getBData(uint16_t *bdata) { uint8_t data[2] ; - readRegs(REG_B_Data, data, 2) ; + int result ; + result = readRegs(REG_B_Data, data, 2) ; *bdata = (data[1]<<8) | data[0] ; + return( result ) ; } -void VEML6040::getWData(uint16_t *wdata) +int VEML6040::getWData(uint16_t *wdata) { uint8_t data[2] ; - readRegs(REG_W_Data, data, 2) ; + int result ; + result = readRegs(REG_W_Data, data, 2) ; *wdata = (data[1]<<8) | data[0] ; + return( result ) ; } // usage @@ -252,12 +260,18 @@ return( value ) ; } -void VEML6040::readRegs(int addr, uint8_t * data, int len) { +int VEML6040::readRegs(int addr, uint8_t * data, int len) { char t[1] = {addr}; - m_i2c.write(m_addr, t, 1, true); - m_i2c.read(m_addr, (char *)data, len); + int result ; + result = m_i2c.write(m_addr, t, 1, true); + if (result == 0) { // wirte success + result = m_i2c.read(m_addr, (char *)data, len); + } + return(result) ; } -void VEML6040::writeRegs(uint8_t * data, int len) { - m_i2c.write(m_addr, (char *)data, len); +int VEML6040::writeRegs(uint8_t * data, int len) { + int result ; + result = m_i2c.write(m_addr, (char *)data, len); + return(result) ; } \ No newline at end of file