30 #include <mraa/gpio.h> 
   32 #define SI114X_I2C_BUS 0 
   33 #define SI114X_DEFAULT_I2C_ADDR 0x60 
   34 #define SI114X_HW_KEY 0x17 
   79     typedef enum { REG_PART_ID       = 0x00,
 
   83                    REG_IRQ_ENABLE    = 0x04,
 
   92                    REG_MEAS_RATE0    = 0x08,
 
   93                    REG_MEAS_RATE1    = 0x09,
 
  106                    REG_IRQ_STATUS    = 0x21,
 
  107                    REG_ALS_VIS_DATA0 = 0x22,
 
  108                    REG_ALS_VIS_DATA1 = 0x23,
 
  109                    REG_ALS_IR_DATA0  = 0x24,
 
  110                    REG_ALS_IR_DATA1  = 0x25,
 
  111                    REG_PS1_DATA0     = 0x26,
 
  112                    REG_PS1_DATA1     = 0x27,
 
  113                    REG_PS2_DATA0     = 0x28,
 
  114                    REG_PS2_DATA1     = 0x29,
 
  115                    REG_PS3_DATA0     = 0x2a,
 
  116                    REG_PS3_DATA1     = 0x2b,
 
  117                    REG_AUX_UVINDEX0  = 0x2c,
 
  118                    REG_AUX_UVINDEX1  = 0x2d,
 
  119                    REG_PARAM_READ    = 0x2e,
 
  121                    REG_CHIP_STAT     = 0x30,
 
  123                    REG_ANA_IN_KEY0   = 0x3b,
 
  124                    REG_ANA_IN_KEY1   = 0x3c,
 
  125                    REG_ANA_IN_KEY2   = 0x3d,
 
  126                    REG_ANA_IN_KEY3   = 0x3e
 
  132     typedef enum { PARAM_I2C_ADDDR         = 0x00,
 
  134                    PARAM_PSLED12_SEL       = 0x02,
 
  135                    PARAM_PSLED3_SEL        = 0x03,
 
  137                    PARAM_PS_ENCODING       = 0x05,
 
  138                    PARAM_ALS_ENCODING      = 0x06,
 
  139                    PARAM_PS1_ADCMUX        = 0x07,
 
  140                    PARAM_PS2_ADCMUX        = 0x08,
 
  141                    PARAM_PS3_ADCMUX        = 0x09,
 
  142                    PARAM_PS_ADC_COUNT      = 0x0a,
 
  143                    PARAM_PS_ADC_GAIN       = 0x0b,
 
  144                    PARAM_PS_ADC_MISC       = 0x0c,
 
  146                    PARAM_ALS_IR_ADCMUX     = 0x0e,
 
  147                    PARAM_AUX_ADCMUX        = 0x0f,
 
  148                    PARAM_ALS_VIS_ADC_COUNT = 0x10,
 
  149                    PARAM_ALS_VIS_ADC_GAIN  = 0x11,
 
  150                    PARAM_ALS_VIS_ADC_MISC  = 0x12,
 
  152                    PARAM_LED_REC           = 0x1c,
 
  153                    PARAM_ALS_IR_ADC_COUNT  = 0x1d,
 
  154                    PARAM_ALS_IR_ADX_GAIN   = 0x1e,
 
  155                    PARAM_ALS_IR_ADC_MISC   = 0x1f
 
  161     typedef enum { CMD_NOOP          = 0x00, 
 
  167                    CMD_ALS_FORCE     = 0x06,
 
  168                    CMD_PSALS_FORCE   = 0x07,
 
  171                    CMD_ALS_PAUSE     = 0x0a,
 
  172                    CMD_PSALS_PAUSE   = 0x0b,
 
  176                    CMD_PSALS_AUTO    = 0x0f,
 
  178                    CMD_PARAM_QUERY   = 0x80, 
 
  186     typedef enum { CHLIST_EN_PS1     = 0x01, 
 
  187                    CHLIST_EN_PS2     = 0x02,
 
  188                    CHLIST_EN_PS3     = 0x04,
 
  190                    CHLIST_EN_ALS_VIS = 0x10, 
 
  191                    CHLIST_EN_ALS_IR  = 0x20,
 
  192                    CHLIST_EN_AUX     = 0x40, 
 
  199     typedef enum { ERR_NONE          = 0x00, 
 
  201                    ERR_INVALID_SET   = 0x80, 
 
  202                    ERR_PS1_ADC_OVER  = 0x88, 
 
  203                    ERR_PS2_ADC_OVER  = 0x89,
 
  204                    ERR_PS3_ADC_OVER  = 0x8a,
 
  205                    ERR_ALS_VIS_ADC_OVER  = 0x8c,
 
  206                    ERR_ALS_IR_ADC_OVER   = 0x8d,
 
  207                    ERR_AUX_ADC_OVER  = 0x8e
 
  214     typedef enum { IRQEN_ALS_IE      = 0x01,
 
  226     SI114X(
int bus, uint8_t address = SI114X_DEFAULT_I2C_ADDR);
 
  240     bool writeByte(uint8_t reg, uint8_t byte);
 
  314     mraa_i2c_context m_i2c;
 
SI114X_REG_T
Definition: si114x.h:79
 
bool writeByte(uint8_t reg, uint8_t byte)
Definition: si114x.cxx:78
 
float getUVIndex()
Definition: si114x.h:311
 
SI114X_CHLIST_BITS_T
Definition: si114x.h:186
 
uint16_t readWord(uint8_t reg)
Definition: si114x.cxx:97
 
void setUVCalibration(uint8_t uvcoeff0, uint8_t uvcoeff1, uint8_t uvcoeff2, uint8_t uvcoeff3)
Definition: si114x.cxx:102
 
void reset()
Definition: si114x.cxx:133
 
API for the SI1145 UV Light Sensor. 
Definition: si114x.h:73
 
void writeParam(SI114X_PARAM_T param, uint8_t value)
Definition: si114x.cxx:112
 
SI114X_IRQEN_BITS_T
Definition: si114x.h:214
 
~SI114X()
Definition: si114x.cxx:73
 
SI114X_PARAM_T
Definition: si114x.h:132
 
uint8_t readByte(uint8_t reg)
Definition: si114x.cxx:92
 
uint8_t readParam(SI114X_PARAM_T param)
Definition: si114x.cxx:125
 
SI114X(int bus, uint8_t address=SI114X_DEFAULT_I2C_ADDR)
Definition: si114x.cxx:39
 
SI114X_ERR_T
Definition: si114x.h:199
 
void initialize()
Definition: si114x.cxx:159
 
SI114X_CMD_T
Definition: si114x.h:161
 
void update()
Definition: si114x.cxx:182