6#ifndef CAFFEINE_SAL_DEV_MAGNETOMETER_H
7#define CAFFEINE_SAL_DEV_MAGNETOMETER_H
19#define CFN_SAL_DEV_TYPE_MAGNETOMETER CFN_SAL_TYPE('M', 'A', 'G')
101 uint32_t peripheral_id,
109 CFN_HAL_POPULATE_DRIVER(
125 return CFN_HAL_ERROR_BAD_PARAM;
127 driver->base.vmt = (
const struct cfn_hal_api_base_s *) driver->api;
135 return CFN_HAL_ERROR_BAD_PARAM;
143 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
151 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
159 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
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_VMT_CHECK(struct cfn_sal_dev_magnetometer_api_s)
cfn_sal_dev_magnetometer_mode_t
Definition cfn_sal_dev_magnetometer.h:34
@ CFN_SAL_DEV_MAGNETOMETER_MODE_ONE_SHOT
Definition cfn_sal_dev_magnetometer.h:37
@ CFN_SAL_DEV_MAGNETOMETER_MODE_CONTINUOUS
Definition cfn_sal_dev_magnetometer.h:36
@ CFN_SAL_DEV_MAGNETOMETER_MODE_POWER_DOWN
Definition cfn_sal_dev_magnetometer.h:35
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_magnetometer_read_xyz_ugauss(cfn_sal_dev_magnetometer_t *driver, cfn_sal_dev_magnetometer_data_t *data_out)
Definition cfn_sal_dev_magnetometer.h:140
cfn_sal_dev_magnetometer_event_t
Definition cfn_sal_dev_magnetometer.h:41
@ CFN_SAL_DEV_MAGNETOMETER_EVENT_NONE
Definition cfn_sal_dev_magnetometer.h:42
@ CFN_SAL_DEV_MAGNETOMETER_EVENT_DATA_READY
Definition cfn_sal_dev_magnetometer.h:43
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_magnetometer_deinit(cfn_sal_dev_magnetometer_t *driver)
Definition cfn_sal_dev_magnetometer.h:131
void(* cfn_sal_dev_magnetometer_callback_t)(cfn_sal_dev_magnetometer_t *driver, uint32_t event, uint32_t error, void *user_arg)
Definition cfn_sal_dev_magnetometer.h:64
cfn_sal_dev_magnetometer_range_t
Definition cfn_sal_dev_magnetometer.h:24
@ CFN_SAL_DEV_MAGNETOMETER_RANGE_12G
Definition cfn_sal_dev_magnetometer.h:27
@ CFN_SAL_DEV_MAGNETOMETER_RANGE_MAX
Definition cfn_sal_dev_magnetometer.h:30
@ CFN_SAL_DEV_MAGNETOMETER_RANGE_16G
Definition cfn_sal_dev_magnetometer.h:28
@ CFN_SAL_DEV_MAGNETOMETER_RANGE_8G
Definition cfn_sal_dev_magnetometer.h:26
@ CFN_SAL_DEV_MAGNETOMETER_RANGE_4G
Definition cfn_sal_dev_magnetometer.h:25
#define CFN_SAL_DEV_TYPE_MAGNETOMETER
Definition cfn_sal_dev_magnetometer.h:19
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_magnetometer_set_mode(cfn_sal_dev_magnetometer_t *driver, cfn_sal_dev_magnetometer_mode_t mode)
Definition cfn_sal_dev_magnetometer.h:156
cfn_hal_error_code_t cfn_sal_dev_magnetometer_construct(cfn_sal_dev_magnetometer_t *driver, const cfn_sal_dev_magnetometer_config_t *config, const cfn_sal_phy_t *phy, void *dependency, cfn_sal_dev_magnetometer_callback_t callback, void *user_arg)
struct cfn_sal_dev_magnetometer_s cfn_sal_dev_magnetometer_t
Definition cfn_sal_dev_magnetometer.h:61
CFN_HAL_INLINE void cfn_sal_dev_magnetometer_populate(cfn_sal_dev_magnetometer_t *driver, uint32_t peripheral_id, void *dependency, const cfn_sal_dev_magnetometer_api_t *api, const cfn_sal_phy_t *phy, const cfn_sal_dev_magnetometer_config_t *config, cfn_sal_dev_magnetometer_callback_t callback, void *user_arg)
Definition cfn_sal_dev_magnetometer.h:100
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_magnetometer_set_range(cfn_sal_dev_magnetometer_t *driver, cfn_sal_dev_magnetometer_range_t range)
Definition cfn_sal_dev_magnetometer.h:148
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_magnetometer_init(cfn_sal_dev_magnetometer_t *driver)
Definition cfn_sal_dev_magnetometer.h:121
cfn_hal_error_code_t cfn_sal_dev_magnetometer_destruct(cfn_sal_dev_magnetometer_t *driver)
Magnetometer Sensor Virtual Method Table (VMT).
Definition cfn_sal_dev_magnetometer.h:73
cfn_hal_error_code_t(* get_range)(cfn_sal_dev_magnetometer_t *driver, cfn_sal_dev_magnetometer_range_t *range_out)
Definition cfn_sal_dev_magnetometer.h:83
cfn_hal_error_code_t(* soft_reset)(cfn_sal_dev_magnetometer_t *driver)
Definition cfn_sal_dev_magnetometer.h:86
cfn_hal_error_code_t(* set_datarate)(cfn_sal_dev_magnetometer_t *driver, uint32_t hz)
Definition cfn_sal_dev_magnetometer.h:85
cfn_hal_api_base_t base
Definition cfn_sal_dev_magnetometer.h:74
cfn_hal_error_code_t(* set_mode)(cfn_sal_dev_magnetometer_t *driver, cfn_sal_dev_magnetometer_mode_t mode)
Definition cfn_sal_dev_magnetometer.h:84
cfn_hal_error_code_t(* read_xyz_raw)(cfn_sal_dev_magnetometer_t *driver, int16_t *x, int16_t *y, int16_t *z)
Definition cfn_sal_dev_magnetometer.h:79
cfn_hal_error_code_t(* read_xyz_ugauss)(cfn_sal_dev_magnetometer_t *driver, cfn_sal_dev_magnetometer_data_t *data_out)
Definition cfn_sal_dev_magnetometer.h:77
cfn_hal_error_code_t(* set_range)(cfn_sal_dev_magnetometer_t *driver, cfn_sal_dev_magnetometer_range_t range)
Definition cfn_sal_dev_magnetometer.h:82
cfn_hal_error_code_t(* get_status)(cfn_sal_dev_magnetometer_t *driver, uint32_t *status_flags)
Definition cfn_sal_dev_magnetometer.h:87
Definition cfn_sal_dev_magnetometer.h:56
uint32_t sampling_rate_hz
Definition cfn_sal_dev_magnetometer.h:57
void * custom
Definition cfn_sal_dev_magnetometer.h:58
Definition cfn_sal_dev_magnetometer.h:49
int32_t y_ugauss
Definition cfn_sal_dev_magnetometer.h:51
int32_t x_ugauss
Definition cfn_sal_dev_magnetometer.h:50
int32_t z_ugauss
Definition cfn_sal_dev_magnetometer.h:52
Generic physical mapping for services.
Definition cfn_sal_types.h:26