6#ifndef CAFFEINE_SAL_DEV_PRESSURE_H
7#define CAFFEINE_SAL_DEV_PRESSURE_H
19#define CFN_SAL_DEV_TYPE_PRESSURE CFN_SAL_TYPE('B', 'A', 'R')
106 uint32_t peripheral_id,
114 CFN_HAL_POPULATE_DRIVER(
130 return CFN_HAL_ERROR_BAD_PARAM;
132 driver->base.vmt = (
const struct cfn_hal_api_base_s *) driver->api;
140 return CFN_HAL_ERROR_BAD_PARAM;
150 return CFN_HAL_ERROR_BAD_PARAM;
152 driver->config = config;
159 if (!driver || !config || !driver->config)
161 return CFN_HAL_ERROR_BAD_PARAM;
163 *config = *(driver->config);
164 return CFN_HAL_ERROR_OK;
173 return CFN_HAL_ERROR_BAD_PARAM;
175 driver->cb = callback;
176 driver->cb_user_arg = user_arg;
177 return cfn_hal_base_callback_register(
182 cfn_hal_power_state_t state)
186 return CFN_HAL_ERROR_BAD_PARAM;
196 return CFN_HAL_ERROR_BAD_PARAM;
206 return CFN_HAL_ERROR_BAD_PARAM;
215 return CFN_HAL_ERROR_BAD_PARAM;
225 return CFN_HAL_ERROR_BAD_PARAM;
235 return CFN_HAL_ERROR_BAD_PARAM;
244 return CFN_HAL_ERROR_BAD_PARAM;
253 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
260 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
269 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
276 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
281 uint32_t *status_flags)
283 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
290 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
299 if (driver->api->handle_interrupt)
301 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_pressure_get_id(cfn_sal_dev_pressure_t *driver, uint32_t *id_out)
Definition cfn_sal_dev_pressure.h:288
#define CFN_SAL_DEV_TYPE_PRESSURE
Definition cfn_sal_dev_pressure.h:19
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_pressure_deinit(cfn_sal_dev_pressure_t *driver)
Definition cfn_sal_dev_pressure.h:136
cfn_sal_dev_pressure_filter_t
Definition cfn_sal_dev_pressure.h:46
@ CFN_SAL_DEV_PRESSURE_FILTER_COEFF_16
Definition cfn_sal_dev_pressure.h:51
@ CFN_SAL_DEV_PRESSURE_FILTER_NONE
Definition cfn_sal_dev_pressure.h:47
@ CFN_SAL_DEV_PRESSURE_FILTER_COEFF_8
Definition cfn_sal_dev_pressure.h:50
@ CFN_SAL_DEV_PRESSURE_FILTER_COEFF_2
Definition cfn_sal_dev_pressure.h:48
@ CFN_SAL_DEV_PRESSURE_FILTER_COEFF_4
Definition cfn_sal_dev_pressure.h:49
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_pressure_event_get(cfn_sal_dev_pressure_t *driver, uint32_t *event_mask)
Definition cfn_sal_dev_pressure.h:211
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_pressure_get_status(cfn_sal_dev_pressure_t *driver, uint32_t *status_flags)
Definition cfn_sal_dev_pressure.h:280
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_pressure_config_set(cfn_sal_dev_pressure_t *driver, const cfn_sal_dev_pressure_config_t *config)
Definition cfn_sal_dev_pressure.h:145
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_pressure_event_enable(cfn_sal_dev_pressure_t *driver, uint32_t event_mask)
Definition cfn_sal_dev_pressure.h:191
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_pressure_error_disable(cfn_sal_dev_pressure_t *driver, uint32_t error_mask)
Definition cfn_sal_dev_pressure.h:230
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_pressure_error_enable(cfn_sal_dev_pressure_t *driver, uint32_t error_mask)
Definition cfn_sal_dev_pressure.h:220
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_pressure_event_disable(cfn_sal_dev_pressure_t *driver, uint32_t event_mask)
Definition cfn_sal_dev_pressure.h:201
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_pressure_start_conversion(cfn_sal_dev_pressure_t *driver)
Definition cfn_sal_dev_pressure.h:274
cfn_sal_dev_pressure_event_t
Definition cfn_sal_dev_pressure.h:30
@ CFN_SAL_DEV_PRESSURE_EVENT_DATA_READY
Definition cfn_sal_dev_pressure.h:32
@ CFN_SAL_DEV_PRESSURE_EVENT_NONE
Definition cfn_sal_dev_pressure.h:31
void(* cfn_sal_dev_pressure_callback_t)(cfn_sal_dev_pressure_t *driver, uint32_t event, uint32_t error, void *user_arg)
Definition cfn_sal_dev_pressure.h:68
CFN_HAL_INLINE void cfn_sal_dev_pressure_populate(cfn_sal_dev_pressure_t *driver, uint32_t peripheral_id, void *dependency, const cfn_sal_dev_pressure_api_t *api, const cfn_sal_phy_t *phy, const cfn_sal_dev_pressure_config_t *config, cfn_sal_dev_pressure_callback_t callback, void *user_arg)
Definition cfn_sal_dev_pressure.h:105
cfn_hal_error_code_t cfn_sal_dev_pressure_construct(cfn_sal_dev_pressure_t *driver, const cfn_sal_dev_pressure_config_t *config, const cfn_sal_phy_t *phy, void *dependency, cfn_sal_dev_pressure_callback_t callback, void *user_arg)
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_pressure_callback_register(cfn_sal_dev_pressure_t *driver, cfn_sal_dev_pressure_callback_t callback, void *user_arg)
Definition cfn_sal_dev_pressure.h:167
CFN_HAL_INLINE void cfn_sal_dev_pressure_handle_interrupt(cfn_sal_dev_pressure_t *driver)
Definition cfn_sal_dev_pressure.h:295
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_pressure_read_hpa(cfn_sal_dev_pressure_t *driver, float *hpa_out)
Definition cfn_sal_dev_pressure.h:251
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_pressure_read_raw(cfn_sal_dev_pressure_t *driver, int32_t *raw_out)
Definition cfn_sal_dev_pressure.h:258
CFN_HAL_VMT_CHECK(struct cfn_sal_dev_pressure_api_s)
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_pressure_config_get(cfn_sal_dev_pressure_t *driver, cfn_sal_dev_pressure_config_t *config)
Definition cfn_sal_dev_pressure.h:156
cfn_hal_error_code_t cfn_sal_dev_pressure_destruct(cfn_sal_dev_pressure_t *driver)
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_pressure_init(cfn_sal_dev_pressure_t *driver)
Definition cfn_sal_dev_pressure.h:126
struct cfn_sal_dev_pressure_s cfn_sal_dev_pressure_t
Definition cfn_sal_dev_pressure.h:65
cfn_sal_dev_pressure_oversampling_t
Definition cfn_sal_dev_pressure.h:36
@ CFN_SAL_DEV_PRESSURE_OVERSAMPLING_2X
Definition cfn_sal_dev_pressure.h:39
@ CFN_SAL_DEV_PRESSURE_OVERSAMPLING_NONE
Definition cfn_sal_dev_pressure.h:37
@ CFN_SAL_DEV_PRESSURE_OVERSAMPLING_1X
Definition cfn_sal_dev_pressure.h:38
@ CFN_SAL_DEV_PRESSURE_OVERSAMPLING_4X
Definition cfn_sal_dev_pressure.h:40
@ CFN_SAL_DEV_PRESSURE_OVERSAMPLING_8X
Definition cfn_sal_dev_pressure.h:41
@ CFN_SAL_DEV_PRESSURE_OVERSAMPLING_16X
Definition cfn_sal_dev_pressure.h:42
cfn_sal_dev_pressure_mode_t
Definition cfn_sal_dev_pressure.h:24
@ CFN_SAL_DEV_PRESSURE_MODE_CONTINUOUS
Definition cfn_sal_dev_pressure.h:25
@ CFN_SAL_DEV_PRESSURE_MODE_ONE_SHOT
Definition cfn_sal_dev_pressure.h:26
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_pressure_error_get(cfn_sal_dev_pressure_t *driver, uint32_t *error_mask)
Definition cfn_sal_dev_pressure.h:240
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_pressure_get_altitude(cfn_sal_dev_pressure_t *driver, float sea_level_hpa, float *alt_out)
Definition cfn_sal_dev_pressure.h:265
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_pressure_power_state_set(cfn_sal_dev_pressure_t *driver, cfn_hal_power_state_t state)
Definition cfn_sal_dev_pressure.h:181
Pressure Sensor Virtual Method Table (VMT).
Definition cfn_sal_dev_pressure.h:77
cfn_hal_error_code_t(* get_altitude_m)(cfn_sal_dev_pressure_t *driver, float sea_level_hpa, float *alt_out)
Definition cfn_sal_dev_pressure.h:85
cfn_hal_error_code_t(* get_status)(cfn_sal_dev_pressure_t *driver, uint32_t *status_flags)
Definition cfn_sal_dev_pressure.h:89
cfn_hal_error_code_t(* get_id)(cfn_sal_dev_pressure_t *driver, uint32_t *id_out)
Definition cfn_sal_dev_pressure.h:91
cfn_hal_api_base_t base
Definition cfn_sal_dev_pressure.h:78
cfn_hal_error_code_t(* read_raw)(cfn_sal_dev_pressure_t *driver, int32_t *raw_out)
Definition cfn_sal_dev_pressure.h:82
cfn_hal_error_code_t(* read_hpa)(cfn_sal_dev_pressure_t *driver, float *hpa_out)
Definition cfn_sal_dev_pressure.h:81
void(* handle_interrupt)(cfn_sal_dev_pressure_t *driver)
Definition cfn_sal_dev_pressure.h:92
cfn_hal_error_code_t(* start_conversion)(cfn_sal_dev_pressure_t *driver)
Definition cfn_sal_dev_pressure.h:88
Definition cfn_sal_dev_pressure.h:57
void * custom
Definition cfn_sal_dev_pressure.h:62
cfn_sal_dev_pressure_mode_t mode
Definition cfn_sal_dev_pressure.h:58
cfn_sal_dev_pressure_oversampling_t oversampling
Definition cfn_sal_dev_pressure.h:59
uint32_t sampling_rate_hz
Definition cfn_sal_dev_pressure.h:61
cfn_sal_dev_pressure_filter_t filter
Definition cfn_sal_dev_pressure.h:60
Generic physical mapping for services.
Definition cfn_sal_types.h:26