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 
63 typedef enum
64 {
106 
115 typedef enum
116 {
202 
208 typedef struct
209 {
211  uint32_t hardware_magic;
215 
228 typedef void (*app_lib_system_startup_cb_f)(void);
229 
242 typedef void (*app_lib_system_shutdown_cb_f)(void);
243 
266 typedef uint32_t (*app_lib_system_periodic_cb_f)(void);
267 
276 typedef void (*app_lib_system_irq_handler_f)(void);
277 
287 typedef app_res_e
289 
296 typedef app_res_e
299 
339 typedef app_res_e
341  uint32_t initial_delay_us,
342  uint32_t execution_time_us);
343 
358 
368 
392 
403 typedef app_res_e
405 
419 typedef app_res_e
421 
439 typedef app_res_e
440  (*app_lib_system_enable_fast_app_irq_f)(uint16_t irq_n, uint8_t priority);
441 
515 typedef app_res_e
517  (bool fast,
518  uint16_t irq_n,
519  uint8_t priority,
521 
536 typedef app_res_e
538 
547 typedef uint32_t
549 
563 typedef app_res_e
565  size_t info_num_bytes);
566 
570 typedef struct
571 {
584 
585 #endif /* APP_LIB_SYSTEM_H_ */
app_lib_system_radio_info_t
Radio information structure.
Definition: wms_system.h:208
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_22_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_22_RESERVED
Definition: wms_system.h:184
APP_LIB_SYSTEM_PROTOCOL_PROFILE_UNKNOWN
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_UNKNOWN
Definition: wms_system.h:118
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_3_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_3_RESERVED
Definition: wms_system.h:146
app_lib_system_startup_cb_f
void(* app_lib_system_startup_cb_f)(void)
Startup callback.
Definition: wms_system.h:228
APP_LIB_SYSTEM_HARDWARE_MAGIC_NRF54L
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_NRF54L
Definition: wms_system.h:104
app_lib_system_t
List of library functions.
Definition: wms_system.h:570
app_lib_system_enter_critical_section_f
void(* app_lib_system_enter_critical_section_f)(void)
Enter a critical section.
Definition: wms_system.h:357
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_27_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_27_RESERVED
Definition: wms_system.h:194
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_14_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_14_RESERVED
Definition: wms_system.h:168
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:420
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:148
app_lib_system_shutdown_cb_f
void(* app_lib_system_shutdown_cb_f)(void)
Shutdown callback.
Definition: wms_system.h:242
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_16_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_16_RESERVED
Definition: wms_system.h:172
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_26_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_26_RESERVED
Definition: wms_system.h:192
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:136
app_lib_system_t::clearPendingFastAppIrq
app_lib_system_clear_pending_fast_app_irq_f clearPendingFastAppIrq
Definition: wms_system.h:580
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_2_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_2_RESERVED
Definition: wms_system.h:144
APP_LIB_SYSTEM_HARDWARE_MAGIC_NRF52840
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_NRF52840
Definition: wms_system.h:78
APP_LIB_SYSTEM_HARDWARE_MAGIC_EFR32XG23
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_EFR32XG23
Definition: wms_system.h:98
app_lib_system_t::setStartupCb
app_lib_system_set_startup_cb_f setStartupCb
Definition: wms_system.h:572
wms_app.h
app_lib_system_radio_info_t::protocol_profile
uint32_t protocol_profile
Definition: wms_system.h:213
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_7_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_7_RESERVED
Definition: wms_system.h:154
APP_LIB_SYSTEM_HARDWARE_MAGIC_EFR32XG12
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_EFR32XG12
Definition: wms_system.h:76
APP_LIB_SYSTEM_HARDWARE_MAGIC_EFR32XG22
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_EFR32XG22
Definition: wms_system.h:88
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_20_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_20_RESERVED
Definition: wms_system.h:180
APP_LIB_SYSTEM_HARDWARE_RESERVED_5
@ APP_LIB_SYSTEM_HARDWARE_RESERVED_5
Definition: wms_system.h:90
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_11_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_11_RESERVED
Definition: wms_system.h:162
app_lib_system_get_bootloader_version_f
uint32_t(* app_lib_system_get_bootloader_version_f)(void)
Get bootloader version.
Definition: wms_system.h:548
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:340
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:288
APP_LIB_SYSTEM_HARDWARE_MAGIC_EFR32XG21
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_EFR32XG21
Definition: wms_system.h:86
APP_LIB_SYSTEM_PROTOCOL_PROFILE_SUB_INDIA865W
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_SUB_INDIA865W
Definition: wms_system.h:134
APP_LIB_SYSTEM_HARDWARE_MAGIC_NRF9160
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_NRF9160
Definition: wms_system.h:96
APP_LIB_SYSTEM_HARDWARE_MAGIC_BGM220PC22HNA
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_BGM220PC22HNA
Definition: wms_system.h:92
APP_LIB_SYSTEM_HARDWARE_MAGIC_EFR32XG12_512
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_EFR32XG12_512
Definition: wms_system.h:80
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:564
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_15_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_15_RESERVED
Definition: wms_system.h:170
app_lib_system_periodic_cb_f
uint32_t(* app_lib_system_periodic_cb_f)(void)
Periodic callback.
Definition: wms_system.h:266
app_lib_system_t::disableAppIrq
app_lib_system_disable_app_irq_f disableAppIrq
Definition: wms_system.h:579
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_6_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_6_RESERVED
Definition: wms_system.h:152
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_5_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_5_RESERVED
Definition: wms_system.h:150
app_lib_system_hardware_magic_e
app_lib_system_hardware_magic_e
Radio hardware magic number.
Definition: wms_system.h:63
APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_11
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_11
Definition: wms_system.h:140
APP_LIB_SYSTEM_HARDWARE_RESERVED_1
@ APP_LIB_SYSTEM_HARDWARE_RESERVED_1
Definition: wms_system.h:68
app_lib_system_t::enterCriticalSection
app_lib_system_enter_critical_section_f enterCriticalSection
Definition: wms_system.h:575
APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_5
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_5
Definition: wms_system.h:128
APP_LIB_SYSTEM_HARDWARE_MAGIC_UNKNOWN
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_UNKNOWN
Definition: wms_system.h:66
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_17_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_17_RESERVED
Definition: wms_system.h:174
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:537
APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_2
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_2
Definition: wms_system.h:122
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_30_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_30_RESERVED
Definition: wms_system.h:200
APP_LIB_SYSTEM_HARDWARE_RESERVED_2
@ APP_LIB_SYSTEM_HARDWARE_RESERVED_2
Definition: wms_system.h:70
app_lib_system_t::exitCriticalSection
app_lib_system_exit_critical_section_f exitCriticalSection
Definition: wms_system.h:576
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:404
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:391
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_10_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_10_RESERVED
Definition: wms_system.h:160
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:158
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:517
app_lib_system_t::disableDeepSleep
app_lib_system_disable_deep_sleep disableDeepSleep
Definition: wms_system.h:577
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_13_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_13_RESERVED
Definition: wms_system.h:166
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_18_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_18_RESERVED
Definition: wms_system.h:176
app_lib_system_t::enableAppIrq
app_lib_system_enable_app_irq_with_handler_f enableAppIrq
Definition: wms_system.h:578
APP_LIB_SYSTEM_PROTOCOL_PROFILE_SUB_INDIA865NW
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_SUB_INDIA865NW
Definition: wms_system.h:130
APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_7
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_7
Definition: wms_system.h:132
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_21_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_21_RESERVED
Definition: wms_system.h:182
app_lib_system_t::getBootloaderVersion
app_lib_system_get_bootloader_version_f getBootloaderVersion
Definition: wms_system.h:581
APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_10
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_10
Definition: wms_system.h:138
APP_LIB_SYSTEM_PROTOCOL_PROFILE_ISM_24GHZ
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_ISM_24GHZ
Definition: wms_system.h:120
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_24_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_24_RESERVED
Definition: wms_system.h:188
app_lib_system_t::setShutdownCb
app_lib_system_set_shutdown_cb_f setShutdownCb
Definition: wms_system.h:573
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_29_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_29_RESERVED
Definition: wms_system.h:198
APP_LIB_SYSTEM_HARDWARE_MAGIC_EFR32XG24
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_EFR32XG24
Definition: wms_system.h:100
APP_LIB_SYSTEM_HARDWARE_MAGIC_BGM220SC22HNA
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_BGM220SC22HNA
Definition: wms_system.h:94
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:298
app_lib_system_protocol_profile_e
app_lib_system_protocol_profile_e
Protocol profiles.
Definition: wms_system.h:115
app_lib_system_radio_info_t::hardware_magic
uint32_t hardware_magic
Definition: wms_system.h:211
APP_LIB_SYSTEM_HARDWARE_MAGIC_NRF52832
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_NRF52832
Definition: wms_system.h:72
APP_LIB_SYSTEM_HARDWARE_MAGIC_NRF9120
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_NRF9120
Definition: wms_system.h:102
APP_LIB_SYSTEM_HARDWARE_RESERVED_4
@ APP_LIB_SYSTEM_HARDWARE_RESERVED_4
Definition: wms_system.h:74
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_8_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_8_RESERVED
Definition: wms_system.h:156
APP_LIB_SYSTEM_HARDWARE_MAGIC_NRF52833
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_NRF52833
Definition: wms_system.h:84
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_28_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_28_RESERVED
Definition: wms_system.h:196
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_12_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_12_RESERVED
Definition: wms_system.h:164
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:142
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_19_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_19_RESERVED
Definition: wms_system.h:178
APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_3
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_3
Definition: wms_system.h:124
APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_4
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_4
Definition: wms_system.h:126
app_lib_system_exit_critical_section_f
void(* app_lib_system_exit_critical_section_f)(void)
Exit a critical section.
Definition: wms_system.h:367
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_25_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_25_RESERVED
Definition: wms_system.h:190
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:440
app_lib_system_t::getRadioInfo
app_lib_system_get_radio_info_f getRadioInfo
Definition: wms_system.h:582
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_23_RESERVED
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_BAND_23_RESERVED
Definition: wms_system.h:186
app_lib_system_irq_handler_f
void(* app_lib_system_irq_handler_f)(void)
Interrupt handler callback.
Definition: wms_system.h:276
app_lib_system_t::setPeriodicCb
app_lib_system_set_periodic_cb_f setPeriodicCb
Definition: wms_system.h:574
APP_LIB_SYSTEM_HARDWARE_MAGIC_EFR32XG13
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_EFR32XG13
Definition: wms_system.h:82