caffeine-sal 0.1.17
Header-only polymorphic middleware services layer for the Caffeine Framework
Loading...
Searching...
No Matches
Data Structures | Macros | Typedefs | Enumerations | Functions
cfn_sal_dev_magnetometer.h File Reference

Abstract Magnetometer Sensor service interface. More...

#include "cfn_sal.h"

Go to the source code of this file.

Data Structures

struct  cfn_sal_dev_magnetometer_data_t
 
struct  cfn_sal_dev_magnetometer_config_t
 
struct  cfn_sal_dev_magnetometer_api_s
 Magnetometer Sensor Virtual Method Table (VMT). More...
 

Macros

#define CFN_SAL_DEV_TYPE_MAGNETOMETER   CFN_SAL_TYPE('M', 'A', 'G')
 

Typedefs

typedef struct cfn_sal_dev_magnetometer_s cfn_sal_dev_magnetometer_t
 
typedef struct cfn_sal_dev_magnetometer_api_s cfn_sal_dev_magnetometer_api_t
 
typedef void(* cfn_sal_dev_magnetometer_callback_t) (cfn_sal_dev_magnetometer_t *driver, uint32_t event, uint32_t error, void *user_arg)
 

Enumerations

enum  cfn_sal_dev_magnetometer_range_t {
  CFN_SAL_DEV_MAGNETOMETER_RANGE_4G , CFN_SAL_DEV_MAGNETOMETER_RANGE_8G , CFN_SAL_DEV_MAGNETOMETER_RANGE_12G , CFN_SAL_DEV_MAGNETOMETER_RANGE_16G ,
  CFN_SAL_DEV_MAGNETOMETER_RANGE_MAX
}
 
enum  cfn_sal_dev_magnetometer_mode_t { CFN_SAL_DEV_MAGNETOMETER_MODE_POWER_DOWN , CFN_SAL_DEV_MAGNETOMETER_MODE_CONTINUOUS , CFN_SAL_DEV_MAGNETOMETER_MODE_ONE_SHOT }
 
enum  cfn_sal_dev_magnetometer_event_t { CFN_SAL_DEV_MAGNETOMETER_EVENT_NONE = 0 , CFN_SAL_DEV_MAGNETOMETER_EVENT_DATA_READY = CFN_HAL_BIT(0) }
 

Functions

 CFN_HAL_VMT_CHECK (struct cfn_sal_dev_magnetometer_api_s)
 
 CFN_SAL_CREATE_DRIVER_TYPE (sal_dev_magnetometer, cfn_sal_dev_magnetometer_config_t, cfn_sal_dev_magnetometer_api_t, cfn_sal_phy_t, cfn_sal_dev_magnetometer_callback_t)
 
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)
 
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)
 
cfn_hal_error_code_t cfn_sal_dev_magnetometer_destruct (cfn_sal_dev_magnetometer_t *driver)
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_magnetometer_init (cfn_sal_dev_magnetometer_t *driver)
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_magnetometer_deinit (cfn_sal_dev_magnetometer_t *driver)
 
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)
 
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)
 
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)
 

Detailed Description

Abstract Magnetometer Sensor service interface.

Macro Definition Documentation

◆ CFN_SAL_DEV_TYPE_MAGNETOMETER

#define CFN_SAL_DEV_TYPE_MAGNETOMETER   CFN_SAL_TYPE('M', 'A', 'G')

Typedef Documentation

◆ cfn_sal_dev_magnetometer_api_t

◆ cfn_sal_dev_magnetometer_callback_t

typedef void(* cfn_sal_dev_magnetometer_callback_t) (cfn_sal_dev_magnetometer_t *driver, uint32_t event, uint32_t error, void *user_arg)

◆ cfn_sal_dev_magnetometer_t

typedef struct cfn_sal_dev_magnetometer_s cfn_sal_dev_magnetometer_t

Enumeration Type Documentation

◆ cfn_sal_dev_magnetometer_event_t

Enumerator
CFN_SAL_DEV_MAGNETOMETER_EVENT_NONE 
CFN_SAL_DEV_MAGNETOMETER_EVENT_DATA_READY 

◆ cfn_sal_dev_magnetometer_mode_t

Enumerator
CFN_SAL_DEV_MAGNETOMETER_MODE_POWER_DOWN 
CFN_SAL_DEV_MAGNETOMETER_MODE_CONTINUOUS 
CFN_SAL_DEV_MAGNETOMETER_MODE_ONE_SHOT 

◆ cfn_sal_dev_magnetometer_range_t

Enumerator
CFN_SAL_DEV_MAGNETOMETER_RANGE_4G 

±4 Gauss

CFN_SAL_DEV_MAGNETOMETER_RANGE_8G 

±8 Gauss

CFN_SAL_DEV_MAGNETOMETER_RANGE_12G 

±12 Gauss

CFN_SAL_DEV_MAGNETOMETER_RANGE_16G 

±16 Gauss

CFN_SAL_DEV_MAGNETOMETER_RANGE_MAX 

Function Documentation

◆ CFN_HAL_VMT_CHECK()

CFN_HAL_VMT_CHECK ( struct cfn_sal_dev_magnetometer_api_s  )

◆ CFN_SAL_CREATE_DRIVER_TYPE()

CFN_SAL_CREATE_DRIVER_TYPE ( sal_dev_magnetometer  ,
cfn_sal_dev_magnetometer_config_t  ,
cfn_sal_dev_magnetometer_api_t  ,
cfn_sal_phy_t  ,
cfn_sal_dev_magnetometer_callback_t   
)

◆ cfn_sal_dev_magnetometer_construct()

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 
)

◆ cfn_sal_dev_magnetometer_deinit()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_magnetometer_deinit ( cfn_sal_dev_magnetometer_t driver)

◆ cfn_sal_dev_magnetometer_destruct()

cfn_hal_error_code_t cfn_sal_dev_magnetometer_destruct ( cfn_sal_dev_magnetometer_t driver)

◆ cfn_sal_dev_magnetometer_init()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_magnetometer_init ( cfn_sal_dev_magnetometer_t driver)

◆ cfn_sal_dev_magnetometer_populate()

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 
)

◆ cfn_sal_dev_magnetometer_read_xyz_ugauss()

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 
)

◆ cfn_sal_dev_magnetometer_set_mode()

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 
)

◆ cfn_sal_dev_magnetometer_set_range()

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 
)