caffeine-sal 0.1.17
Header-only polymorphic middleware services layer for the Caffeine Framework
Loading...
Searching...
No Matches
cfn_sal_dev_gsm.h
Go to the documentation of this file.
1
6#ifndef CAFFEINE_SAL_DEV_GSM_H
7#define CAFFEINE_SAL_DEV_GSM_H
8
9#ifdef __cplusplus
10extern "C"
11{
12#endif
13
14/* Includes ---------------------------------------------------------*/
15#include "cfn_sal.h"
16
17/* Defines ----------------------------------------------------------*/
18
19#define CFN_SAL_DEV_TYPE_GSM CFN_SAL_TYPE('G', 'S', 'M')
20
21/* Types Enums ------------------------------------------------------*/
22
32
42
43/* Types Structs ----------------------------------------------------*/
44
45typedef struct
46{
47 const char *apn;
48 const char *sim_pin;
49 void *custom;
51
52typedef struct cfn_sal_dev_gsm_s cfn_sal_dev_gsm_t;
54
55typedef void (*cfn_sal_dev_gsm_callback_t)(cfn_sal_dev_gsm_t *driver, uint32_t event, uint32_t error, void *user_arg);
56
61{
62 cfn_hal_api_base_t base;
63
64 /* Power & Control */
65 cfn_hal_error_code_t (*power_on)(cfn_sal_dev_gsm_t *driver);
66 cfn_hal_error_code_t (*power_off)(cfn_sal_dev_gsm_t *driver);
67 cfn_hal_error_code_t (*reset)(cfn_sal_dev_gsm_t *driver);
68
69 /* Network Info */
70 cfn_hal_error_code_t (*get_signal_quality)(cfn_sal_dev_gsm_t *driver, int32_t *rssi_dbm);
71 cfn_hal_error_code_t (*get_signal_quality_csq)(cfn_sal_dev_gsm_t *driver, uint8_t *csq_out);
72 cfn_hal_error_code_t (*get_network_status)(cfn_sal_dev_gsm_t *driver, cfn_sal_dev_gsm_net_status_t *status);
73 cfn_hal_error_code_t (*get_operator)(cfn_sal_dev_gsm_t *driver, char *operator_out, size_t max_len);
74
75 /* Identification */
76 cfn_hal_error_code_t (*get_imei)(cfn_sal_dev_gsm_t *driver, char *imei_out, size_t max_len);
77 cfn_hal_error_code_t (*get_imsi)(cfn_sal_dev_gsm_t *driver, char *imsi_out, size_t max_len);
78 cfn_hal_error_code_t (*get_iccid)(cfn_sal_dev_gsm_t *driver, char *iccid_out, size_t max_len);
79
80 /* SMS */
81 cfn_hal_error_code_t (*send_sms)(cfn_sal_dev_gsm_t *driver, const char *number, const char *text);
82 cfn_hal_error_code_t (*read_sms)(
83 cfn_sal_dev_gsm_t *driver, uint16_t index, char *number_out, char *message_out, size_t max_len);
84
85 /* Voice Calls */
86 cfn_hal_error_code_t (*dial)(cfn_sal_dev_gsm_t *driver, const char *number);
87 cfn_hal_error_code_t (*answer)(cfn_sal_dev_gsm_t *driver);
88 cfn_hal_error_code_t (*hangup)(cfn_sal_dev_gsm_t *driver);
89
90 /* Data / IP (Simplified) */
91 cfn_hal_error_code_t (*http_get)(cfn_sal_dev_gsm_t *driver, const char *url, uint8_t *response, size_t *len);
92 cfn_hal_error_code_t (*mqtt_publish)(cfn_sal_dev_gsm_t *driver,
93 const char *topic,
94 const uint8_t *payload,
95 size_t len);
96};
97
99
102
103/* Functions inline ------------------------------------------------- */
104
105CFN_HAL_INLINE void cfn_sal_dev_gsm_populate(cfn_sal_dev_gsm_t *driver,
106 uint32_t peripheral_id,
107 void *dependency,
108 const cfn_sal_dev_gsm_api_t *api,
109 const cfn_sal_phy_t *phy,
110 const cfn_sal_dev_gsm_config_t *config,
112 void *user_arg)
113{
114 CFN_HAL_POPULATE_DRIVER(
115 driver, CFN_SAL_DEV_TYPE_GSM, peripheral_id, NULL, dependency, api, phy, config, callback, user_arg);
116}
117
118cfn_hal_error_code_t cfn_sal_dev_gsm_construct(cfn_sal_dev_gsm_t *driver,
119 const cfn_sal_dev_gsm_config_t *config,
120 const cfn_sal_phy_t *phy,
121 void *dependency,
123 void *user_arg);
124cfn_hal_error_code_t cfn_sal_dev_gsm_destruct(cfn_sal_dev_gsm_t *driver);
125
126CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_init(cfn_sal_dev_gsm_t *driver)
127{
128 if (!driver)
129 {
130 return CFN_HAL_ERROR_BAD_PARAM;
131 }
132 driver->base.vmt = (const struct cfn_hal_api_base_s *) driver->api;
133 return cfn_hal_base_init(&driver->base, CFN_SAL_DEV_TYPE_GSM);
134}
135
136CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_deinit(cfn_sal_dev_gsm_t *driver)
137{
138 if (!driver)
139 {
140 return CFN_HAL_ERROR_BAD_PARAM;
141 }
142 return cfn_hal_base_deinit(&driver->base, CFN_SAL_DEV_TYPE_GSM);
143}
144
145CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_config_set(cfn_sal_dev_gsm_t *driver,
146 const cfn_sal_dev_gsm_config_t *config)
147{
148 if (!driver)
149 {
150 return CFN_HAL_ERROR_BAD_PARAM;
151 }
152 driver->config = config;
153 return cfn_hal_base_config_set(&driver->base, CFN_SAL_DEV_TYPE_GSM, (const void *) config);
154}
155
156CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_config_get(cfn_sal_dev_gsm_t *driver,
158{
159 if (!driver || !config || !driver->config)
160 {
161 return CFN_HAL_ERROR_BAD_PARAM;
162 }
163 *config = *(driver->config);
164 return CFN_HAL_ERROR_OK;
165}
166
167CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_callback_register(cfn_sal_dev_gsm_t *driver,
169 void *user_arg)
170{
171 if (!driver)
172 {
173 return CFN_HAL_ERROR_BAD_PARAM;
174 }
175 driver->cb = callback;
176 driver->cb_user_arg = user_arg;
177 return cfn_hal_base_callback_register(&driver->base, CFN_SAL_DEV_TYPE_GSM, (cfn_hal_callback_t) callback, user_arg);
178}
179
180CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_power_state_set(cfn_sal_dev_gsm_t *driver,
181 cfn_hal_power_state_t state)
182{
183 if (!driver)
184 {
185 return CFN_HAL_ERROR_BAD_PARAM;
186 }
187 return cfn_hal_power_state_set(&driver->base, CFN_SAL_DEV_TYPE_GSM, state);
188}
189
190CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_event_enable(cfn_sal_dev_gsm_t *driver, uint32_t event_mask)
191{
192 if (!driver)
193 {
194 return CFN_HAL_ERROR_BAD_PARAM;
195 }
196 return cfn_hal_base_event_enable(&driver->base, CFN_SAL_DEV_TYPE_GSM, event_mask);
197}
198
199CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_event_disable(cfn_sal_dev_gsm_t *driver, uint32_t event_mask)
200{
201 if (!driver)
202 {
203 return CFN_HAL_ERROR_BAD_PARAM;
204 }
205 return cfn_hal_base_event_disable(&driver->base, CFN_SAL_DEV_TYPE_GSM, event_mask);
206}
207
208CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_event_get(cfn_sal_dev_gsm_t *driver, uint32_t *event_mask)
209{
210 if (!driver)
211 {
212 return CFN_HAL_ERROR_BAD_PARAM;
213 }
214 return cfn_hal_base_event_get(&driver->base, CFN_SAL_DEV_TYPE_GSM, event_mask);
215}
216
217CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_error_enable(cfn_sal_dev_gsm_t *driver, uint32_t error_mask)
218{
219 if (!driver)
220 {
221 return CFN_HAL_ERROR_BAD_PARAM;
222 }
223 return cfn_hal_base_error_enable(&driver->base, CFN_SAL_DEV_TYPE_GSM, error_mask);
224}
225
226CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_error_disable(cfn_sal_dev_gsm_t *driver, uint32_t error_mask)
227{
228 if (!driver)
229 {
230 return CFN_HAL_ERROR_BAD_PARAM;
231 }
232 return cfn_hal_base_error_disable(&driver->base, CFN_SAL_DEV_TYPE_GSM, error_mask);
233}
234
235CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_error_get(cfn_sal_dev_gsm_t *driver, uint32_t *error_mask)
236{
237 if (!driver)
238 {
239 return CFN_HAL_ERROR_BAD_PARAM;
240 }
241 return cfn_hal_base_error_get(&driver->base, CFN_SAL_DEV_TYPE_GSM, error_mask);
242}
243
244/* Service Specific Functions --------------------------------------- */
245
246CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_power_on(cfn_sal_dev_gsm_t *driver)
247{
248 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
249 CFN_HAL_CHECK_AND_CALL_FUNC(CFN_SAL_DEV_TYPE_GSM, power_on, driver, error);
250 return error;
251}
252
253CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_power_off(cfn_sal_dev_gsm_t *driver)
254{
255 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
256 CFN_HAL_CHECK_AND_CALL_FUNC(CFN_SAL_DEV_TYPE_GSM, power_off, driver, error);
257 return error;
258}
259
260CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_reset(cfn_sal_dev_gsm_t *driver)
261{
262 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
263 CFN_HAL_CHECK_AND_CALL_FUNC(CFN_SAL_DEV_TYPE_GSM, reset, driver, error);
264 return error;
265}
266
267CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_get_signal_quality(cfn_sal_dev_gsm_t *driver, int32_t *rssi_dbm)
268{
269 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
270 CFN_HAL_CHECK_AND_CALL_FUNC_VARG(CFN_SAL_DEV_TYPE_GSM, get_signal_quality, driver, error, rssi_dbm);
271 return error;
272}
273
274CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_get_network_status(cfn_sal_dev_gsm_t *driver,
276{
277 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
278 CFN_HAL_CHECK_AND_CALL_FUNC_VARG(CFN_SAL_DEV_TYPE_GSM, get_network_status, driver, error, status);
279 return error;
280}
281
282CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_send_sms(cfn_sal_dev_gsm_t *driver,
283 const char *number,
284 const char *text)
285{
286 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
287 CFN_HAL_CHECK_AND_CALL_FUNC_VARG(CFN_SAL_DEV_TYPE_GSM, send_sms, driver, error, number, text);
288 return error;
289}
290
291CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_http_get(cfn_sal_dev_gsm_t *driver,
292 const char *url,
293 uint8_t *response,
294 size_t *len)
295{
296 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
297 CFN_HAL_CHECK_AND_CALL_FUNC_VARG(CFN_SAL_DEV_TYPE_GSM, http_get, driver, error, url, response, len);
298 return error;
299}
300
301CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_mqtt_publish(cfn_sal_dev_gsm_t *driver,
302 const char *topic,
303 const uint8_t *payload,
304 size_t len)
305{
306 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
307 CFN_HAL_CHECK_AND_CALL_FUNC_VARG(CFN_SAL_DEV_TYPE_GSM, mqtt_publish, driver, error, topic, payload, len);
308 return error;
309}
310
311CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_get_imei(cfn_sal_dev_gsm_t *driver, char *imei_out, size_t max_len)
312{
313 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
314 CFN_HAL_CHECK_AND_CALL_FUNC_VARG(CFN_SAL_DEV_TYPE_GSM, get_imei, driver, error, imei_out, max_len);
315 return error;
316}
317
318CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_get_imsi(cfn_sal_dev_gsm_t *driver, char *imsi_out, size_t max_len)
319{
320 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
321 CFN_HAL_CHECK_AND_CALL_FUNC_VARG(CFN_SAL_DEV_TYPE_GSM, get_imsi, driver, error, imsi_out, max_len);
322 return error;
323}
324
325CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_get_iccid(cfn_sal_dev_gsm_t *driver,
326 char *iccid_out,
327 size_t max_len)
328{
329 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
330 CFN_HAL_CHECK_AND_CALL_FUNC_VARG(CFN_SAL_DEV_TYPE_GSM, get_iccid, driver, error, iccid_out, max_len);
331 return error;
332}
333
334CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_get_operator(cfn_sal_dev_gsm_t *driver,
335 char *operator_out,
336 size_t max_len)
337{
338 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
339 CFN_HAL_CHECK_AND_CALL_FUNC_VARG(CFN_SAL_DEV_TYPE_GSM, get_operator, driver, error, operator_out, max_len);
340 return error;
341}
342
343CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_get_signal_quality_csq(cfn_sal_dev_gsm_t *driver, uint8_t *csq_out)
344{
345 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
346 CFN_HAL_CHECK_AND_CALL_FUNC_VARG(CFN_SAL_DEV_TYPE_GSM, get_signal_quality_csq, driver, error, csq_out);
347 return error;
348}
349
350CFN_HAL_INLINE cfn_hal_error_code_t
351cfn_sal_dev_gsm_read_sms(cfn_sal_dev_gsm_t *driver, uint16_t index, char *number_out, char *message_out, size_t max_len)
352{
353 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
354 CFN_HAL_CHECK_AND_CALL_FUNC_VARG(
355 CFN_SAL_DEV_TYPE_GSM, read_sms, driver, error, index, number_out, message_out, max_len);
356 return error;
357}
358
359CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_dial(cfn_sal_dev_gsm_t *driver, const char *number)
360{
361 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
362 CFN_HAL_CHECK_AND_CALL_FUNC_VARG(CFN_SAL_DEV_TYPE_GSM, dial, driver, error, number);
363 return error;
364}
365
366CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_answer(cfn_sal_dev_gsm_t *driver)
367{
368 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
369 CFN_HAL_CHECK_AND_CALL_FUNC(CFN_SAL_DEV_TYPE_GSM, answer, driver, error);
370 return error;
371}
372
373CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_hangup(cfn_sal_dev_gsm_t *driver)
374{
375 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
376 CFN_HAL_CHECK_AND_CALL_FUNC(CFN_SAL_DEV_TYPE_GSM, hangup, driver, error);
377 return error;
378}
379
380#ifdef __cplusplus
381}
382#endif
383
384#endif /* CAFFEINE_SAL_DEV_GSM_H */
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_gsm_power_on(cfn_sal_dev_gsm_t *driver)
Definition cfn_sal_dev_gsm.h:246
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_get_signal_quality_csq(cfn_sal_dev_gsm_t *driver, uint8_t *csq_out)
Definition cfn_sal_dev_gsm.h:343
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_error_enable(cfn_sal_dev_gsm_t *driver, uint32_t error_mask)
Definition cfn_sal_dev_gsm.h:217
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_error_get(cfn_sal_dev_gsm_t *driver, uint32_t *error_mask)
Definition cfn_sal_dev_gsm.h:235
cfn_sal_dev_gsm_net_status_t
Definition cfn_sal_dev_gsm.h:34
@ CFN_SAL_DEV_GSM_NET_UNKNOWN
Definition cfn_sal_dev_gsm.h:39
@ CFN_SAL_DEV_GSM_NET_REGISTERED_ROAMING
Definition cfn_sal_dev_gsm.h:40
@ CFN_SAL_DEV_GSM_NET_NOT_REGISTERED
Definition cfn_sal_dev_gsm.h:35
@ CFN_SAL_DEV_GSM_NET_SEARCHING
Definition cfn_sal_dev_gsm.h:37
@ CFN_SAL_DEV_GSM_NET_REGISTERED_HOME
Definition cfn_sal_dev_gsm.h:36
@ CFN_SAL_DEV_GSM_NET_REGISTRATION_DENIED
Definition cfn_sal_dev_gsm.h:38
cfn_hal_error_code_t cfn_sal_dev_gsm_destruct(cfn_sal_dev_gsm_t *driver)
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_get_network_status(cfn_sal_dev_gsm_t *driver, cfn_sal_dev_gsm_net_status_t *status)
Definition cfn_sal_dev_gsm.h:274
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_get_imsi(cfn_sal_dev_gsm_t *driver, char *imsi_out, size_t max_len)
Definition cfn_sal_dev_gsm.h:318
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_answer(cfn_sal_dev_gsm_t *driver)
Definition cfn_sal_dev_gsm.h:366
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_config_set(cfn_sal_dev_gsm_t *driver, const cfn_sal_dev_gsm_config_t *config)
Definition cfn_sal_dev_gsm.h:145
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_callback_register(cfn_sal_dev_gsm_t *driver, cfn_sal_dev_gsm_callback_t callback, void *user_arg)
Definition cfn_sal_dev_gsm.h:167
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_event_get(cfn_sal_dev_gsm_t *driver, uint32_t *event_mask)
Definition cfn_sal_dev_gsm.h:208
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_power_off(cfn_sal_dev_gsm_t *driver)
Definition cfn_sal_dev_gsm.h:253
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_get_signal_quality(cfn_sal_dev_gsm_t *driver, int32_t *rssi_dbm)
Definition cfn_sal_dev_gsm.h:267
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_hangup(cfn_sal_dev_gsm_t *driver)
Definition cfn_sal_dev_gsm.h:373
void(* cfn_sal_dev_gsm_callback_t)(cfn_sal_dev_gsm_t *driver, uint32_t event, uint32_t error, void *user_arg)
Definition cfn_sal_dev_gsm.h:55
#define CFN_SAL_DEV_TYPE_GSM
Definition cfn_sal_dev_gsm.h:19
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_get_imei(cfn_sal_dev_gsm_t *driver, char *imei_out, size_t max_len)
Definition cfn_sal_dev_gsm.h:311
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_init(cfn_sal_dev_gsm_t *driver)
Definition cfn_sal_dev_gsm.h:126
CFN_HAL_VMT_CHECK(struct cfn_sal_dev_gsm_api_s)
struct cfn_sal_dev_gsm_s cfn_sal_dev_gsm_t
Definition cfn_sal_dev_gsm.h:52
cfn_sal_dev_gsm_event_t
Definition cfn_sal_dev_gsm.h:24
@ CFN_SAL_DEV_GSM_EVENT_SMS_RECEIVED
Definition cfn_sal_dev_gsm.h:28
@ CFN_SAL_DEV_GSM_EVENT_NONE
Definition cfn_sal_dev_gsm.h:25
@ CFN_SAL_DEV_GSM_EVENT_MQTT_CONNECTED
Definition cfn_sal_dev_gsm.h:30
@ CFN_SAL_DEV_GSM_EVENT_POWERED_ON
Definition cfn_sal_dev_gsm.h:26
@ CFN_SAL_DEV_GSM_EVENT_CALL_INCOMING
Definition cfn_sal_dev_gsm.h:29
@ CFN_SAL_DEV_GSM_EVENT_NETWORK_REGISTERED
Definition cfn_sal_dev_gsm.h:27
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_power_state_set(cfn_sal_dev_gsm_t *driver, cfn_hal_power_state_t state)
Definition cfn_sal_dev_gsm.h:180
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_send_sms(cfn_sal_dev_gsm_t *driver, const char *number, const char *text)
Definition cfn_sal_dev_gsm.h:282
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_dial(cfn_sal_dev_gsm_t *driver, const char *number)
Definition cfn_sal_dev_gsm.h:359
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_mqtt_publish(cfn_sal_dev_gsm_t *driver, const char *topic, const uint8_t *payload, size_t len)
Definition cfn_sal_dev_gsm.h:301
CFN_HAL_INLINE void cfn_sal_dev_gsm_populate(cfn_sal_dev_gsm_t *driver, uint32_t peripheral_id, void *dependency, const cfn_sal_dev_gsm_api_t *api, const cfn_sal_phy_t *phy, const cfn_sal_dev_gsm_config_t *config, cfn_sal_dev_gsm_callback_t callback, void *user_arg)
Definition cfn_sal_dev_gsm.h:105
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_get_operator(cfn_sal_dev_gsm_t *driver, char *operator_out, size_t max_len)
Definition cfn_sal_dev_gsm.h:334
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_deinit(cfn_sal_dev_gsm_t *driver)
Definition cfn_sal_dev_gsm.h:136
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_http_get(cfn_sal_dev_gsm_t *driver, const char *url, uint8_t *response, size_t *len)
Definition cfn_sal_dev_gsm.h:291
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_read_sms(cfn_sal_dev_gsm_t *driver, uint16_t index, char *number_out, char *message_out, size_t max_len)
Definition cfn_sal_dev_gsm.h:351
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_event_disable(cfn_sal_dev_gsm_t *driver, uint32_t event_mask)
Definition cfn_sal_dev_gsm.h:199
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_get_iccid(cfn_sal_dev_gsm_t *driver, char *iccid_out, size_t max_len)
Definition cfn_sal_dev_gsm.h:325
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_error_disable(cfn_sal_dev_gsm_t *driver, uint32_t error_mask)
Definition cfn_sal_dev_gsm.h:226
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_config_get(cfn_sal_dev_gsm_t *driver, cfn_sal_dev_gsm_config_t *config)
Definition cfn_sal_dev_gsm.h:156
cfn_hal_error_code_t cfn_sal_dev_gsm_construct(cfn_sal_dev_gsm_t *driver, const cfn_sal_dev_gsm_config_t *config, const cfn_sal_phy_t *phy, void *dependency, cfn_sal_dev_gsm_callback_t callback, void *user_arg)
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_event_enable(cfn_sal_dev_gsm_t *driver, uint32_t event_mask)
Definition cfn_sal_dev_gsm.h:190
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_gsm_reset(cfn_sal_dev_gsm_t *driver)
Definition cfn_sal_dev_gsm.h:260
GSM Virtual Method Table (VMT).
Definition cfn_sal_dev_gsm.h:61
cfn_hal_error_code_t(* http_get)(cfn_sal_dev_gsm_t *driver, const char *url, uint8_t *response, size_t *len)
Definition cfn_sal_dev_gsm.h:91
cfn_hal_error_code_t(* hangup)(cfn_sal_dev_gsm_t *driver)
Definition cfn_sal_dev_gsm.h:88
cfn_hal_error_code_t(* power_on)(cfn_sal_dev_gsm_t *driver)
Definition cfn_sal_dev_gsm.h:65
cfn_hal_error_code_t(* get_operator)(cfn_sal_dev_gsm_t *driver, char *operator_out, size_t max_len)
Definition cfn_sal_dev_gsm.h:73
cfn_hal_error_code_t(* get_imei)(cfn_sal_dev_gsm_t *driver, char *imei_out, size_t max_len)
Definition cfn_sal_dev_gsm.h:76
cfn_hal_error_code_t(* get_signal_quality_csq)(cfn_sal_dev_gsm_t *driver, uint8_t *csq_out)
Definition cfn_sal_dev_gsm.h:71
cfn_hal_error_code_t(* get_iccid)(cfn_sal_dev_gsm_t *driver, char *iccid_out, size_t max_len)
Definition cfn_sal_dev_gsm.h:78
cfn_hal_error_code_t(* mqtt_publish)(cfn_sal_dev_gsm_t *driver, const char *topic, const uint8_t *payload, size_t len)
Definition cfn_sal_dev_gsm.h:92
cfn_hal_error_code_t(* dial)(cfn_sal_dev_gsm_t *driver, const char *number)
Definition cfn_sal_dev_gsm.h:86
cfn_hal_error_code_t(* get_signal_quality)(cfn_sal_dev_gsm_t *driver, int32_t *rssi_dbm)
Definition cfn_sal_dev_gsm.h:70
cfn_hal_error_code_t(* power_off)(cfn_sal_dev_gsm_t *driver)
Definition cfn_sal_dev_gsm.h:66
cfn_hal_error_code_t(* get_imsi)(cfn_sal_dev_gsm_t *driver, char *imsi_out, size_t max_len)
Definition cfn_sal_dev_gsm.h:77
cfn_hal_error_code_t(* answer)(cfn_sal_dev_gsm_t *driver)
Definition cfn_sal_dev_gsm.h:87
cfn_hal_error_code_t(* send_sms)(cfn_sal_dev_gsm_t *driver, const char *number, const char *text)
Definition cfn_sal_dev_gsm.h:81
cfn_hal_error_code_t(* get_network_status)(cfn_sal_dev_gsm_t *driver, cfn_sal_dev_gsm_net_status_t *status)
Definition cfn_sal_dev_gsm.h:72
cfn_hal_error_code_t(* reset)(cfn_sal_dev_gsm_t *driver)
Definition cfn_sal_dev_gsm.h:67
cfn_hal_error_code_t(* read_sms)(cfn_sal_dev_gsm_t *driver, uint16_t index, char *number_out, char *message_out, size_t max_len)
Definition cfn_sal_dev_gsm.h:82
cfn_hal_api_base_t base
Definition cfn_sal_dev_gsm.h:62
Definition cfn_sal_dev_gsm.h:46
void * custom
Definition cfn_sal_dev_gsm.h:49
const char * apn
Definition cfn_sal_dev_gsm.h:47
const char * sim_pin
Definition cfn_sal_dev_gsm.h:48
Generic physical mapping for services.
Definition cfn_sal_types.h:26