Wirepas SDK
wms_system.h
Go to the documentation of this file.
1 /* Copyright 2017 Wirepas Ltd. All Rights Reserved.
2  *
3  * See file LICENSE.txt for full license details.
4  *
5  */
6 
25 #ifndef APP_LIB_SYSTEM_H_
26 #define APP_LIB_SYSTEM_H_
27 
28 #include <stdlib.h>
29 #include <stdint.h>
30 #include <stdbool.h>
31 
32 #include "wms_app.h"
33 
35 #define APP_LIB_SYSTEM_NAME 0x77db1bd5
36 
37 
38 #define APP_LIB_SYSTEM_VERSION 0x202
39 
46 #define APP_LIB_SYSTEM_STOP_PERIODIC UINT32_MAX
47 
54 #define APP_LIB_SYSTEM_IRQ_PRIO_HI 0
55 #define APP_LIB_SYSTEM_IRQ_PRIO_LO 1
56 
64 typedef enum
65 {
107 
116 typedef enum
117 {
203 
210 typedef struct
211 {
213  uint32_t hardware_magic;
217 
232 typedef void (*app_lib_system_startup_cb_f)(void);
233 
247 typedef void (*app_lib_system_shutdown_cb_f)(void);
248 
272 typedef uint32_t (*app_lib_system_periodic_cb_f)(void);
273 
282 typedef void (*app_lib_system_irq_handler_f)(void);
283 
293 typedef app_res_e
295 
302 typedef app_res_e
305 
345 typedef app_res_e
347  uint32_t initial_delay_us,
348  uint32_t execution_time_us);
349 
364 
375 
399 
410 typedef app_res_e
412 
426 typedef app_res_e
428 
446 typedef app_res_e
447  (*app_lib_system_enable_fast_app_irq_f)(uint16_t irq_n, uint8_t priority);
448 
522 typedef app_res_e
524  (bool fast,
525  uint16_t irq_n,
526  uint8_t priority,
528 
543 typedef app_res_e
545 
554 typedef uint32_t
556 
570 typedef app_res_e
572  size_t info_num_bytes);
573 
577 typedef struct
578 {
591 
592 #endif /* APP_LIB_SYSTEM_H_ */
app_lib_system_radio_info_t
Radio information structure.
Definition: wms_system.h:210
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_22_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_22_RESERVED
Definition: wms_system.h:185
APP_LIB_SYSTEM_PROTOCOL_PROFILE_UNKNOWN
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_UNKNOWN
Definition: wms_system.h:119
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_3_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_3_RESERVED
Definition: wms_system.h:147
app_lib_system_startup_cb_f
void(* app_lib_system_startup_cb_f)(void)
Startup callback.
Definition: wms_system.h:232
APP_LIB_SYSTEM_HARDWARE_MAGIC_NRF54L
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_NRF54L
Definition: wms_system.h:105
app_lib_system_t
List of library functions.
Definition: wms_system.h:577
app_lib_system_enter_critical_section_f
void(* app_lib_system_enter_critical_section_f)(void)
Enter a critical section.
Definition: wms_system.h:363
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_27_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_27_RESERVED
Definition: wms_system.h:195
APP_LIB_SYSTEM_PROTOCOL_PROFILE_SUB_INDIA865
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_SUB_INDIA865
Definition: wms_system.h:135
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_14_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_14_RESERVED
Definition: wms_system.h:169
app_lib_system_disable_app_irq_f
app_res_e(* app_lib_system_disable_app_irq_f)(uint16_t irq_n)
Disable an app interrupt.
Definition: wms_system.h:427
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_TS_103_874_2_BAND_4
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_TS_103_874_2_BAND_4
Definition: wms_system.h:149
app_lib_system_shutdown_cb_f
void(* app_lib_system_shutdown_cb_f)(void)
Shutdown callback.
Definition: wms_system.h:247
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_16_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_16_RESERVED
Definition: wms_system.h:173
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_26_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_26_RESERVED
Definition: wms_system.h:193
app_res_e
app_res_e
Definition: wms_app.h:201
APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_9
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_9
Definition: wms_system.h:137
app_lib_system_t::clearPendingFastAppIrq
app_lib_system_clear_pending_fast_app_irq_f clearPendingFastAppIrq
Definition: wms_system.h:587
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_2_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_2_RESERVED
Definition: wms_system.h:145
APP_LIB_SYSTEM_HARDWARE_MAGIC_NRF52840
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_NRF52840
Definition: wms_system.h:79
APP_LIB_SYSTEM_HARDWARE_MAGIC_EFR32XG23
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_EFR32XG23
Definition: wms_system.h:99
app_lib_system_t::setStartupCb
app_lib_system_set_startup_cb_f setStartupCb
Definition: wms_system.h:579
wms_app.h
app_lib_system_radio_info_t::protocol_profile
uint32_t protocol_profile
Definition: wms_system.h:215
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_7_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_7_RESERVED
Definition: wms_system.h:155
APP_LIB_SYSTEM_HARDWARE_MAGIC_EFR32XG12
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_EFR32XG12
Definition: wms_system.h:77
APP_LIB_SYSTEM_HARDWARE_MAGIC_EFR32XG22
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_EFR32XG22
Definition: wms_system.h:89
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_20_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_20_RESERVED
Definition: wms_system.h:181
APP_LIB_SYSTEM_HARDWARE_RESERVED_5
@ APP_LIB_SYSTEM_HARDWARE_RESERVED_5
Definition: wms_system.h:91
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_11_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_11_RESERVED
Definition: wms_system.h:163
app_lib_system_get_bootloader_version_f
uint32_t(* app_lib_system_get_bootloader_version_f)(void)
Get bootloader version.
Definition: wms_system.h:555
app_lib_system_set_periodic_cb_f
app_res_e(* app_lib_system_set_periodic_cb_f)(app_lib_system_periodic_cb_f work_cb, uint32_t initial_delay_us, uint32_t execution_time_us)
Set the periodic callback.
Definition: wms_system.h:346
app_lib_system_set_startup_cb_f
app_res_e(* app_lib_system_set_startup_cb_f)(app_lib_system_startup_cb_f startup_cb)
Set a callback to be called when the system starts up.
Definition: wms_system.h:294
APP_LIB_SYSTEM_HARDWARE_MAGIC_EFR32XG21
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_EFR32XG21
Definition: wms_system.h:87
APP_LIB_SYSTEM_HARDWARE_MAGIC_NRF9160
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_NRF9160
Definition: wms_system.h:97
APP_LIB_SYSTEM_HARDWARE_MAGIC_BGM220PC22HNA
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_BGM220PC22HNA
Definition: wms_system.h:93
APP_LIB_SYSTEM_HARDWARE_MAGIC_EFR32XG12_512
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_EFR32XG12_512
Definition: wms_system.h:81
app_lib_system_get_radio_info_f
app_res_e(* app_lib_system_get_radio_info_f)(app_lib_system_radio_info_t *info_p, size_t info_num_bytes)
Return radio hardware and platform information.
Definition: wms_system.h:571
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_15_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_15_RESERVED
Definition: wms_system.h:171
app_lib_system_periodic_cb_f
uint32_t(* app_lib_system_periodic_cb_f)(void)
Periodic callback.
Definition: wms_system.h:272
app_lib_system_t::disableAppIrq
app_lib_system_disable_app_irq_f disableAppIrq
Definition: wms_system.h:586
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_6_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_6_RESERVED
Definition: wms_system.h:153
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_5_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_5_RESERVED
Definition: wms_system.h:151
app_lib_system_hardware_magic_e
app_lib_system_hardware_magic_e
Radio hardware magic number.
Definition: wms_system.h:64
APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_11
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_11
Definition: wms_system.h:141
APP_LIB_SYSTEM_HARDWARE_RESERVED_1
@ APP_LIB_SYSTEM_HARDWARE_RESERVED_1
Definition: wms_system.h:69
app_lib_system_t::enterCriticalSection
app_lib_system_enter_critical_section_f enterCriticalSection
Definition: wms_system.h:582
APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_5
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_5
Definition: wms_system.h:129
APP_LIB_SYSTEM_HARDWARE_MAGIC_UNKNOWN
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_UNKNOWN
Definition: wms_system.h:67
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_17_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_17_RESERVED
Definition: wms_system.h:175
app_lib_system_clear_pending_fast_app_irq_f
app_res_e(* app_lib_system_clear_pending_fast_app_irq_f)(uint16_t irq_n)
Clear fast interrupt flag from NVIC.
Definition: wms_system.h:544
APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_2
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_2
Definition: wms_system.h:123
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_30_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_30_RESERVED
Definition: wms_system.h:201
APP_LIB_SYSTEM_HARDWARE_RESERVED_2
@ APP_LIB_SYSTEM_HARDWARE_RESERVED_2
Definition: wms_system.h:71
app_lib_system_t::exitCriticalSection
app_lib_system_exit_critical_section_f exitCriticalSection
Definition: wms_system.h:583
app_lib_system_enable_app_irq_f
app_res_e(* app_lib_system_enable_app_irq_f)(uint16_t irq_n)
Enable an app interrupt.
Definition: wms_system.h:411
app_lib_system_disable_deep_sleep
app_res_e(* app_lib_system_disable_deep_sleep)(bool disable)
Disable/Enable deep sleep on stack.
Definition: wms_system.h:398
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_10_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_10_RESERVED
Definition: wms_system.h:161
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_TS_103_874_2_BAND_9
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_TS_103_874_2_BAND_9
Definition: wms_system.h:159
app_lib_system_enable_app_irq_with_handler_f
app_res_e(* app_lib_system_enable_app_irq_with_handler_f)(bool fast, uint16_t irq_n, uint8_t priority, app_lib_system_irq_handler_f handler)
Enable a platform-specific interrupt with given handler and priority.
Definition: wms_system.h:524
app_lib_system_t::disableDeepSleep
app_lib_system_disable_deep_sleep disableDeepSleep
Definition: wms_system.h:584
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_13_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_13_RESERVED
Definition: wms_system.h:167
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_18_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_18_RESERVED
Definition: wms_system.h:177
app_lib_system_t::enableAppIrq
app_lib_system_enable_app_irq_with_handler_f enableAppIrq
Definition: wms_system.h:585
APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_7
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_7
Definition: wms_system.h:133
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_21_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_21_RESERVED
Definition: wms_system.h:183
app_lib_system_t::getBootloaderVersion
app_lib_system_get_bootloader_version_f getBootloaderVersion
Definition: wms_system.h:588
APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_10
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_10
Definition: wms_system.h:139
APP_LIB_SYSTEM_PROTOCOL_PROFILE_ISM_24GHZ
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_ISM_24GHZ
Definition: wms_system.h:121
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_24_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_24_RESERVED
Definition: wms_system.h:189
app_lib_system_t::setShutdownCb
app_lib_system_set_shutdown_cb_f setShutdownCb
Definition: wms_system.h:580
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_29_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_29_RESERVED
Definition: wms_system.h:199
APP_LIB_SYSTEM_HARDWARE_MAGIC_EFR32XG24
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_EFR32XG24
Definition: wms_system.h:101
APP_LIB_SYSTEM_HARDWARE_MAGIC_BGM220SC22HNA
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_BGM220SC22HNA
Definition: wms_system.h:95
app_lib_system_set_shutdown_cb_f
app_res_e(* app_lib_system_set_shutdown_cb_f)(app_lib_system_shutdown_cb_f shutdown_cb)
Set a callback to be called just before the system shuts down.
Definition: wms_system.h:304
app_lib_system_protocol_profile_e
app_lib_system_protocol_profile_e
Protocol profiles.
Definition: wms_system.h:116
app_lib_system_radio_info_t::hardware_magic
uint32_t hardware_magic
Definition: wms_system.h:213
APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_6
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_6
Definition: wms_system.h:131
APP_LIB_SYSTEM_HARDWARE_MAGIC_NRF52832
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_NRF52832
Definition: wms_system.h:73
APP_LIB_SYSTEM_HARDWARE_MAGIC_NRF9120
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_NRF9120
Definition: wms_system.h:103
APP_LIB_SYSTEM_HARDWARE_RESERVED_4
@ APP_LIB_SYSTEM_HARDWARE_RESERVED_4
Definition: wms_system.h:75
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_8_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_8_RESERVED
Definition: wms_system.h:157
APP_LIB_SYSTEM_HARDWARE_MAGIC_NRF52833
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_NRF52833
Definition: wms_system.h:85
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_28_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_28_RESERVED
Definition: wms_system.h:197
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_12_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_12_RESERVED
Definition: wms_system.h:165
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_TS_103_874_2_BAND_1
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_TS_103_874_2_BAND_1
Definition: wms_system.h:143
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_19_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_19_RESERVED
Definition: wms_system.h:179
APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_3
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_3
Definition: wms_system.h:125
APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_4
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_4
Definition: wms_system.h:127
app_lib_system_exit_critical_section_f
void(* app_lib_system_exit_critical_section_f)(void)
Exit a critical section.
Definition: wms_system.h:374
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_25_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_25_RESERVED
Definition: wms_system.h:191
app_lib_system_enable_fast_app_irq_f
app_res_e(* app_lib_system_enable_fast_app_irq_f)(uint16_t irq_n, uint8_t priority)
Enable a fast app interrupt.
Definition: wms_system.h:447
app_lib_system_t::getRadioInfo
app_lib_system_get_radio_info_f getRadioInfo
Definition: wms_system.h:589
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_23_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_23_RESERVED
Definition: wms_system.h:187
app_lib_system_irq_handler_f
void(* app_lib_system_irq_handler_f)(void)
Interrupt handler callback.
Definition: wms_system.h:282
app_lib_system_t::setPeriodicCb
app_lib_system_set_periodic_cb_f setPeriodicCb
Definition: wms_system.h:581
APP_LIB_SYSTEM_HARDWARE_MAGIC_EFR32XG13
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_EFR32XG13
Definition: wms_system.h:83