6#ifndef CAFFEINE_SAL_DEV_HUMIDITY_H
7#define CAFFEINE_SAL_DEV_HUMIDITY_H
19#define CFN_SAL_DEV_TYPE_HUMIDITY CFN_SAL_TYPE('H', 'U', 'M')
99 uint32_t peripheral_id,
107 CFN_HAL_POPULATE_DRIVER(
123 return CFN_HAL_ERROR_BAD_PARAM;
125 driver->base.vmt = (
const struct cfn_hal_api_base_s *) driver->api;
133 return CFN_HAL_ERROR_BAD_PARAM;
143 return CFN_HAL_ERROR_BAD_PARAM;
145 driver->config = config;
152 if (!driver || !config || !driver->config)
154 return CFN_HAL_ERROR_BAD_PARAM;
156 *config = *(driver->config);
157 return CFN_HAL_ERROR_OK;
166 return CFN_HAL_ERROR_BAD_PARAM;
168 driver->cb = callback;
169 driver->cb_user_arg = user_arg;
170 return cfn_hal_base_callback_register(
175 cfn_hal_power_state_t state)
179 return CFN_HAL_ERROR_BAD_PARAM;
189 return CFN_HAL_ERROR_BAD_PARAM;
199 return CFN_HAL_ERROR_BAD_PARAM;
208 return CFN_HAL_ERROR_BAD_PARAM;
218 return CFN_HAL_ERROR_BAD_PARAM;
228 return CFN_HAL_ERROR_BAD_PARAM;
237 return CFN_HAL_ERROR_BAD_PARAM;
246 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
253 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
260 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
266 uint32_t *status_flags)
268 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
275 uint32_t duration_ms)
277 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
284 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
291 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
300 if (driver->api->handle_interrupt)
302 driver->api->handle_interrupt(driver);
Core definitions and macros for Caffeine SAL.
#define CFN_SAL_CREATE_DRIVER_TYPE(prefix, config_type, api_type, phy_type, cb_type)
Definition cfn_sal.h:38
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_humidity_event_enable(cfn_sal_dev_humidity_t *driver, uint32_t event_mask)
Definition cfn_sal_dev_humidity.h:184
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_humidity_event_disable(cfn_sal_dev_humidity_t *driver, uint32_t event_mask)
Definition cfn_sal_dev_humidity.h:194
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_humidity_get_status(cfn_sal_dev_humidity_t *driver, uint32_t *status_flags)
Definition cfn_sal_dev_humidity.h:265
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_humidity_error_enable(cfn_sal_dev_humidity_t *driver, uint32_t error_mask)
Definition cfn_sal_dev_humidity.h:213
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_humidity_deinit(cfn_sal_dev_humidity_t *driver)
Definition cfn_sal_dev_humidity.h:129
cfn_hal_error_code_t cfn_sal_dev_humidity_construct(cfn_sal_dev_humidity_t *driver, const cfn_sal_dev_humidity_config_t *config, const cfn_sal_phy_t *phy, void *dependency, cfn_sal_dev_humidity_callback_t callback, void *user_arg)
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_humidity_get_id(cfn_sal_dev_humidity_t *driver, uint32_t *id_out)
Definition cfn_sal_dev_humidity.h:289
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_humidity_event_get(cfn_sal_dev_humidity_t *driver, uint32_t *event_mask)
Definition cfn_sal_dev_humidity.h:204
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_humidity_callback_register(cfn_sal_dev_humidity_t *driver, cfn_sal_dev_humidity_callback_t callback, void *user_arg)
Definition cfn_sal_dev_humidity.h:160
cfn_sal_dev_humidity_mode_t
Definition cfn_sal_dev_humidity.h:24
@ CFN_SAL_DEV_HUMIDITY_MODE_CONTINUOUS
Definition cfn_sal_dev_humidity.h:25
@ CFN_SAL_DEV_HUMIDITY_MODE_ONE_SHOT
Definition cfn_sal_dev_humidity.h:26
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_humidity_error_get(cfn_sal_dev_humidity_t *driver, uint32_t *error_mask)
Definition cfn_sal_dev_humidity.h:233
CFN_HAL_INLINE void cfn_sal_dev_humidity_populate(cfn_sal_dev_humidity_t *driver, uint32_t peripheral_id, void *dependency, const cfn_sal_dev_humidity_api_t *api, const cfn_sal_phy_t *phy, const cfn_sal_dev_humidity_config_t *config, cfn_sal_dev_humidity_callback_t callback, void *user_arg)
Definition cfn_sal_dev_humidity.h:98
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_humidity_enable_heater(cfn_sal_dev_humidity_t *driver, uint32_t power_mw, uint32_t duration_ms)
Definition cfn_sal_dev_humidity.h:273
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_humidity_config_set(cfn_sal_dev_humidity_t *driver, const cfn_sal_dev_humidity_config_t *config)
Definition cfn_sal_dev_humidity.h:138
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_humidity_start_conversion(cfn_sal_dev_humidity_t *driver)
Definition cfn_sal_dev_humidity.h:258
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_humidity_soft_reset(cfn_sal_dev_humidity_t *driver)
Definition cfn_sal_dev_humidity.h:282
struct cfn_sal_dev_humidity_s cfn_sal_dev_humidity_t
Definition cfn_sal_dev_humidity.h:57
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_humidity_error_disable(cfn_sal_dev_humidity_t *driver, uint32_t error_mask)
Definition cfn_sal_dev_humidity.h:223
CFN_HAL_VMT_CHECK(struct cfn_sal_dev_humidity_api_s)
CFN_HAL_INLINE void cfn_sal_dev_humidity_handle_interrupt(cfn_sal_dev_humidity_t *driver)
Definition cfn_sal_dev_humidity.h:296
cfn_sal_dev_humidity_event_t
Definition cfn_sal_dev_humidity.h:30
@ CFN_SAL_DEV_HUMIDITY_EVENT_DATA_READY
Definition cfn_sal_dev_humidity.h:32
@ CFN_SAL_DEV_HUMIDITY_EVENT_NONE
Definition cfn_sal_dev_humidity.h:31
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_humidity_power_state_set(cfn_sal_dev_humidity_t *driver, cfn_hal_power_state_t state)
Definition cfn_sal_dev_humidity.h:174
cfn_sal_dev_humidity_oversampling_t
Definition cfn_sal_dev_humidity.h:36
@ CFN_SAL_DEV_HUMIDITY_OVERSAMPLING_2X
Definition cfn_sal_dev_humidity.h:39
@ CFN_SAL_DEV_HUMIDITY_OVERSAMPLING_16X
Definition cfn_sal_dev_humidity.h:42
@ CFN_SAL_DEV_HUMIDITY_OVERSAMPLING_4X
Definition cfn_sal_dev_humidity.h:40
@ CFN_SAL_DEV_HUMIDITY_OVERSAMPLING_1X
Definition cfn_sal_dev_humidity.h:38
@ CFN_SAL_DEV_HUMIDITY_OVERSAMPLING_8X
Definition cfn_sal_dev_humidity.h:41
@ CFN_SAL_DEV_HUMIDITY_OVERSAMPLING_NONE
Definition cfn_sal_dev_humidity.h:37
cfn_hal_error_code_t cfn_sal_dev_humidity_destruct(cfn_sal_dev_humidity_t *driver)
#define CFN_SAL_DEV_TYPE_HUMIDITY
Definition cfn_sal_dev_humidity.h:19
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_humidity_read_rh(cfn_sal_dev_humidity_t *driver, float *hum_out)
Definition cfn_sal_dev_humidity.h:244
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_humidity_init(cfn_sal_dev_humidity_t *driver)
Definition cfn_sal_dev_humidity.h:119
void(* cfn_sal_dev_humidity_callback_t)(cfn_sal_dev_humidity_t *driver, uint32_t event, uint32_t error, void *user_arg)
Definition cfn_sal_dev_humidity.h:60
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_humidity_config_get(cfn_sal_dev_humidity_t *driver, cfn_sal_dev_humidity_config_t *config)
Definition cfn_sal_dev_humidity.h:149
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_humidity_read_raw(cfn_sal_dev_humidity_t *driver, int32_t *raw_out)
Definition cfn_sal_dev_humidity.h:251
Humidity Sensor Virtual Method Table (VMT).
Definition cfn_sal_dev_humidity.h:69
cfn_hal_error_code_t(* enable_heater)(cfn_sal_dev_humidity_t *driver, uint32_t power_mw, uint32_t duration_ms)
Definition cfn_sal_dev_humidity.h:81
cfn_hal_error_code_t(* read_relative_humidity)(cfn_sal_dev_humidity_t *driver, float *hum_out)
Definition cfn_sal_dev_humidity.h:73
void(* handle_interrupt)(cfn_sal_dev_humidity_t *driver)
Definition cfn_sal_dev_humidity.h:85
cfn_hal_error_code_t(* get_id)(cfn_sal_dev_humidity_t *driver, uint32_t *id_out)
Definition cfn_sal_dev_humidity.h:83
cfn_hal_error_code_t(* soft_reset)(cfn_sal_dev_humidity_t *driver)
Definition cfn_sal_dev_humidity.h:82
cfn_hal_error_code_t(* get_status)(cfn_sal_dev_humidity_t *driver, uint32_t *status_flags)
Definition cfn_sal_dev_humidity.h:78
cfn_hal_error_code_t(* read_raw)(cfn_sal_dev_humidity_t *driver, int32_t *raw_out)
Definition cfn_sal_dev_humidity.h:74
cfn_hal_api_base_t base
Definition cfn_sal_dev_humidity.h:70
cfn_hal_error_code_t(* start_conversion)(cfn_sal_dev_humidity_t *driver)
Definition cfn_sal_dev_humidity.h:77
Definition cfn_sal_dev_humidity.h:48
cfn_sal_dev_humidity_mode_t mode
Definition cfn_sal_dev_humidity.h:49
int32_t high_threshold
Definition cfn_sal_dev_humidity.h:52
void * custom
Definition cfn_sal_dev_humidity.h:54
cfn_sal_dev_humidity_oversampling_t oversampling
Definition cfn_sal_dev_humidity.h:50
uint32_t sampling_rate_hz
Definition cfn_sal_dev_humidity.h:51
int32_t low_threshold
Definition cfn_sal_dev_humidity.h:53
Generic physical mapping for services.
Definition cfn_sal_types.h:26