6#ifndef CAFFEINE_SAL_UTL_AT_PARSER_H
7#define CAFFEINE_SAL_UTL_AT_PARSER_H
19#define CFN_SAL_UTL_TYPE_AT_PARSER CFN_SAL_TYPE('A', 'T', 'P')
56 const char *expected_resp,
70 const char *urc_string,
88 uint32_t peripheral_id,
93 cfn_hal_callback_t callback,
96 CFN_HAL_POPULATE_DRIVER(
104 cfn_hal_callback_t callback,
112 return CFN_HAL_ERROR_BAD_PARAM;
114 driver->base.vmt = (
const struct cfn_hal_api_base_s *) driver->api;
122 return CFN_HAL_ERROR_BAD_PARAM;
132 return CFN_HAL_ERROR_BAD_PARAM;
134 driver->config = config;
141 if (!driver || !config || !driver->config)
143 return CFN_HAL_ERROR_BAD_PARAM;
145 *config = *(driver->config);
146 return CFN_HAL_ERROR_OK;
150 cfn_hal_callback_t callback,
155 return CFN_HAL_ERROR_BAD_PARAM;
157 driver->cb = callback;
158 driver->cb_user_arg = user_arg;
163 cfn_hal_power_state_t state)
167 return CFN_HAL_ERROR_BAD_PARAM;
177 return CFN_HAL_ERROR_BAD_PARAM;
187 return CFN_HAL_ERROR_BAD_PARAM;
193 uint32_t *event_mask)
197 return CFN_HAL_ERROR_BAD_PARAM;
207 return CFN_HAL_ERROR_BAD_PARAM;
217 return CFN_HAL_ERROR_BAD_PARAM;
223 uint32_t *error_mask)
227 return CFN_HAL_ERROR_BAD_PARAM;
236 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
245 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
255 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
256 CFN_HAL_CHECK_AND_CALL_FUNC_VARG(
266 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
274 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
281 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
288 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
295 const char *expected_resp,
298 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
299 CFN_HAL_CHECK_AND_CALL_FUNC_VARG(
305 const char *urc_string,
308 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
309 CFN_HAL_CHECK_AND_CALL_FUNC_VARG(
317 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_INLINE cfn_hal_error_code_t cfn_sal_utl_at_parser_deinit(cfn_sal_utl_at_parser_t *driver)
Definition cfn_sal_utl_at_parser.h:118
CFN_HAL_VMT_CHECK(struct cfn_sal_utl_at_parser_api_s)
CFN_HAL_INLINE void cfn_sal_utl_at_parser_populate(cfn_sal_utl_at_parser_t *driver, uint32_t peripheral_id, void *dependency, const cfn_sal_utl_at_parser_api_t *api, const cfn_sal_phy_t *phy, const cfn_sal_utl_at_parser_config_t *config, cfn_hal_callback_t callback, void *user_arg)
Definition cfn_sal_utl_at_parser.h:87
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_at_parser_error_get(cfn_sal_utl_at_parser_t *driver, uint32_t *error_mask)
Definition cfn_sal_utl_at_parser.h:222
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_at_parser_read_response(cfn_sal_utl_at_parser_t *driver, char *buffer, size_t max_len, uint32_t timeout_ms)
Definition cfn_sal_utl_at_parser.h:250
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_at_parser_register_urc(cfn_sal_utl_at_parser_t *driver, const char *prefix, cfn_sal_utl_at_parser_urc_callback_t cb, void *user_arg)
Definition cfn_sal_utl_at_parser.h:261
cfn_hal_error_code_t cfn_sal_utl_at_parser_construct(cfn_sal_utl_at_parser_t *driver, const cfn_sal_utl_at_parser_config_t *config, const cfn_sal_phy_t *phy, void *dependency, cfn_hal_callback_t callback, void *user_arg)
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_at_parser_error_disable(cfn_sal_utl_at_parser_t *driver, uint32_t error_mask)
Definition cfn_sal_utl_at_parser.h:212
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_at_parser_event_get(cfn_sal_utl_at_parser_t *driver, uint32_t *event_mask)
Definition cfn_sal_utl_at_parser.h:192
#define CFN_SAL_UTL_TYPE_AT_PARSER
Definition cfn_sal_utl_at_parser.h:19
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_at_parser_config_set(cfn_sal_utl_at_parser_t *driver, const cfn_sal_utl_at_parser_config_t *config)
Definition cfn_sal_utl_at_parser.h:127
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_at_parser_config_get(cfn_sal_utl_at_parser_t *driver, cfn_sal_utl_at_parser_config_t *config)
Definition cfn_sal_utl_at_parser.h:138
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_at_parser_send_command_wait_resp(cfn_sal_utl_at_parser_t *driver, const char *cmd, const char *expected_resp, uint32_t timeout_ms)
Definition cfn_sal_utl_at_parser.h:293
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_at_parser_register_urc_simple(cfn_sal_utl_at_parser_t *driver, const char *urc_string, void *callback)
Definition cfn_sal_utl_at_parser.h:304
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_at_parser_unregister_urc(cfn_sal_utl_at_parser_t *driver, const char *prefix)
Definition cfn_sal_utl_at_parser.h:271
cfn_hal_error_code_t cfn_sal_utl_at_parser_destruct(cfn_sal_utl_at_parser_t *driver)
struct cfn_sal_utl_at_parser_s cfn_sal_utl_at_parser_t
Definition cfn_sal_utl_at_parser.h:38
void(* cfn_sal_utl_at_parser_urc_callback_t)(cfn_sal_utl_at_parser_t *driver, const char *urc_line, void *user_arg)
Definition cfn_sal_utl_at_parser.h:41
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_at_parser_set_timeout(cfn_sal_utl_at_parser_t *driver, uint32_t timeout_ms)
Definition cfn_sal_utl_at_parser.h:314
cfn_sal_utl_at_parser_event_t
Definition cfn_sal_utl_at_parser.h:24
@ CFN_SAL_UTL_AT_PARSER_EVENT_NONE
Definition cfn_sal_utl_at_parser.h:25
@ CFN_SAL_UTL_AT_PARSER_EVENT_URC_RECEIVED
Definition cfn_sal_utl_at_parser.h:26
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_at_parser_send_command(cfn_sal_utl_at_parser_t *driver, const char *cmd)
Definition cfn_sal_utl_at_parser.h:234
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_at_parser_error_enable(cfn_sal_utl_at_parser_t *driver, uint32_t error_mask)
Definition cfn_sal_utl_at_parser.h:202
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_at_parser_event_disable(cfn_sal_utl_at_parser_t *driver, uint32_t event_mask)
Definition cfn_sal_utl_at_parser.h:182
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_at_parser_callback_register(cfn_sal_utl_at_parser_t *driver, cfn_hal_callback_t callback, void *user_arg)
Definition cfn_sal_utl_at_parser.h:149
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_at_parser_send_data(cfn_sal_utl_at_parser_t *driver, const uint8_t *data, size_t len)
Definition cfn_sal_utl_at_parser.h:241
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_at_parser_flush_rx(cfn_sal_utl_at_parser_t *driver)
Definition cfn_sal_utl_at_parser.h:286
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_at_parser_event_enable(cfn_sal_utl_at_parser_t *driver, uint32_t event_mask)
Definition cfn_sal_utl_at_parser.h:172
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_at_parser_init(cfn_sal_utl_at_parser_t *driver)
Definition cfn_sal_utl_at_parser.h:108
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_at_parser_set_echo(cfn_sal_utl_at_parser_t *driver, bool enabled)
Definition cfn_sal_utl_at_parser.h:279
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_at_parser_power_state_set(cfn_sal_utl_at_parser_t *driver, cfn_hal_power_state_t state)
Definition cfn_sal_utl_at_parser.h:162
Generic physical mapping for services.
Definition cfn_sal_types.h:26
AT Parser Virtual Method Table (VMT).
Definition cfn_sal_utl_at_parser.h:49
cfn_hal_error_code_t(* unregister_urc)(cfn_sal_utl_at_parser_t *driver, const char *prefix)
Definition cfn_sal_utl_at_parser.h:72
cfn_hal_error_code_t(* flush_rx)(cfn_sal_utl_at_parser_t *driver)
Definition cfn_sal_utl_at_parser.h:76
cfn_hal_error_code_t(* send_command_wait_resp)(cfn_sal_utl_at_parser_t *driver, const char *cmd, const char *expected_resp, uint32_t timeout_ms)
Definition cfn_sal_utl_at_parser.h:54
cfn_hal_error_code_t(* set_timeout)(cfn_sal_utl_at_parser_t *driver, uint32_t timeout_ms)
Definition cfn_sal_utl_at_parser.h:77
cfn_hal_error_code_t(* send_data)(cfn_sal_utl_at_parser_t *driver, const uint8_t *data, size_t len)
Definition cfn_sal_utl_at_parser.h:58
cfn_hal_error_code_t(* set_echo)(cfn_sal_utl_at_parser_t *driver, bool enabled)
Definition cfn_sal_utl_at_parser.h:75
cfn_hal_api_base_t base
Definition cfn_sal_utl_at_parser.h:50
cfn_hal_error_code_t(* read_response)(cfn_sal_utl_at_parser_t *driver, char *buffer, size_t max_len, uint32_t timeout_ms)
Definition cfn_sal_utl_at_parser.h:59
cfn_hal_error_code_t(* register_urc_simple)(cfn_sal_utl_at_parser_t *driver, const char *urc_string, void *callback)
Definition cfn_sal_utl_at_parser.h:69
cfn_hal_error_code_t(* send_command)(cfn_sal_utl_at_parser_t *driver, const char *cmd)
Definition cfn_sal_utl_at_parser.h:53
cfn_hal_error_code_t(* register_urc)(cfn_sal_utl_at_parser_t *driver, const char *prefix, cfn_sal_utl_at_parser_urc_callback_t cb, void *user_arg)
Definition cfn_sal_utl_at_parser.h:65
Definition cfn_sal_utl_at_parser.h:32
const char * line_terminator
Definition cfn_sal_utl_at_parser.h:33
void * custom
Definition cfn_sal_utl_at_parser.h:35
uint32_t default_timeout_ms
Definition cfn_sal_utl_at_parser.h:34