| 
    upm
    1.1.0
    
   Sensor/Actuator repository for libmraa (v1.5.1) 
   | 
 

Go to the source code of this file.
Data Structures | |
| struct | ims_context | 
Functions | |
| ims_context * | ims_init (int16_t i2c_bus, int16_t i2c_address) | 
| void | ims_close (ims_context *dev) | 
| upm_result_t | ims_read (const ims_context *dev, IMS_RD_COMMAND cmd, uint16_t *rd_data) | 
| upm_result_t | ims_write (const ims_context *dev, IMS_WR_COMMAND cmd, uint8_t wr_data) | 
| upm_result_t | ims_get_version (const ims_context *dev, uint16_t *rd_data) | 
| upm_result_t | ims_get_moisture (const ims_context *dev, uint16_t *rd_data) | 
| upm_result_t | ims_get_light (const ims_context *dev, uint16_t *rd_data) | 
| upm_result_t | ims_get_temperature (const ims_context *dev, uint16_t *rd_data) | 
| upm_result_t | ims_reset (const ims_context *dev) | 
| upm_result_t | ims_reset_i2c_address (const ims_context *dev, uint8_t address_new) | 
| upm_result_t | ims_sleep (const ims_context *dev) | 
Macros | |
| #define | IMS_ADDRESS_DEFAULT 0x20 | 
Typedefs | |
| typedef enum _IMS_RD_COMMAND | IMS_RD_COMMAND | 
| ims_context* ims_init | ( | int16_t | i2c_bus, | 
| int16_t | i2c_address | ||
| ) | 
Initialize sensor
| i2c_bus | Target I2C bus | 
| i2c_address | Target I2C address (default is 0x20) | 
| void ims_close | ( | ims_context * | dev | ) | 
Sensor close method. Cleans up any memory held by this device
| sensor | context pointer | 
| upm_result_t ims_read | ( | const ims_context * | dev, | 
| IMS_RD_COMMAND | cmd, | ||
| uint16_t * | rd_data | ||
| ) | 
Read I2C Moisture Sensor registers
| dev | Sensor context pointer | 
| cmd | Read command | 
| rd_data | Data returned from sensor (1 or 2 bytes depending on cmd) | 

| upm_result_t ims_write | ( | const ims_context * | dev, | 
| IMS_WR_COMMAND | cmd, | ||
| uint8_t | wr_data | ||
| ) | 
Write I2C Moisture Sensor registers
| dev | Sensor context pointer | 
| cmd | Write command | 
| wr_data | Target data to write (only used for IMS_SET_ADDRESS) | 

| upm_result_t ims_get_version | ( | const ims_context * | dev, | 
| uint16_t * | rd_data | ||
| ) | 
Get sensor version
| dev | Sensor context pointer | 
| rd_data | Sensor version | 


| upm_result_t ims_get_moisture | ( | const ims_context * | dev, | 
| uint16_t * | rd_data | ||
| ) | 
Get moisture reading from sensor
| dev | Sensor context pointer | 
| rd_data | Unitless, relative capacitance value (used to determine moisture) | 


| upm_result_t ims_get_light | ( | const ims_context * | dev, | 
| uint16_t * | rd_data | ||
| ) | 
Get light reading from LED on device. The technical data for the I2C moisture sensor specifies a 3 second wait. Loop for 3 seconds checking the GET_BUSY register. IF the sensor is NOT ready after 3 seconds, assume there is NO light and return a max uint16_t (dark) value.
| dev | Sensor context pointer | 
| rd_data | Unitless, relative value for brightness dark (0xFFFF) —> light (0x0000) | 


| upm_result_t ims_get_temperature | ( | const ims_context * | dev, | 
| uint16_t * | rd_data | ||
| ) | 
Get temperature reading from device
| dev | Sensor context pointer | 
| rd_data | Temperature in degrees Celsius * 10 ie, 256 = 25.6 C | 


| upm_result_t ims_reset | ( | const ims_context * | dev | ) | 
Reset sensor
| dev | Sensor context pointer | 


| upm_result_t ims_reset_i2c_address | ( | const ims_context * | dev, | 
| uint8_t | address_new | ||
| ) | 
Set I2C address AND reset sensor
| dev | Sensor context pointer | 
| address_new | New I2C for device | 


| upm_result_t ims_sleep | ( | const ims_context * | dev | ) | 
Put device into low-power mode. Device wakes on any I2C command.
| dev | Sensor context pointer | 


 1.8.6