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 0x201
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 {
105 
114 typedef enum
115 {
149 
156 typedef struct
157 {
159  uint32_t hardware_magic;
163 
178 typedef void (*app_lib_system_startup_cb_f)(void);
179 
193 typedef void (*app_lib_system_shutdown_cb_f)(void);
194 
218 typedef uint32_t (*app_lib_system_periodic_cb_f)(void);
219 
228 typedef void (*app_lib_system_irq_handler_f)(void);
229 
239 typedef app_res_e
241 
248 typedef app_res_e
251 
291 typedef app_res_e
293  uint32_t initial_delay_us,
294  uint32_t execution_time_us);
295 
310 
321 
345 
352 typedef app_res_e
355 
366 typedef app_res_e
368 
382 typedef app_res_e
384 
402 typedef app_res_e
403  (*app_lib_system_enable_fast_app_irq_f)(uint8_t irq_n, uint8_t priority);
404 
478 typedef app_res_e
480  (bool fast,
481  uint8_t irq_n,
482  uint8_t priority,
484 
499 typedef app_res_e
501 
510 typedef uint32_t
512 
526 typedef app_res_e
528  size_t info_num_bytes);
529 
533 typedef struct
534 {
547 
548 #endif /* APP_LIB_SYSTEM_H_ */
app_lib_system_radio_info_t
Radio information structure.
Definition: wms_system.h:156
APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_14
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_14
Definition: wms_system.h:145
APP_LIB_SYSTEM_PROTOCOL_PROFILE_UNKNOWN
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_UNKNOWN
Definition: wms_system.h:117
app_lib_system_startup_cb_f
void(* app_lib_system_startup_cb_f)(void)
Startup callback.
Definition: wms_system.h:178
app_lib_system_t
List of library functions.
Definition: wms_system.h:533
app_lib_system_register_app_irq_table_f
app_res_e(* app_lib_system_register_app_irq_table_f)(app_lib_system_irq_handler_f *table_p)
Register an interrupt handler table for the app.
Definition: wms_system.h:354
app_lib_system_enter_critical_section_f
void(* app_lib_system_enter_critical_section_f)(void)
Enter a critical section.
Definition: wms_system.h:309
APP_LIB_SYSTEM_PROTOCOL_PROFILE_SUB_INDIA865
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_SUB_INDIA865
Definition: wms_system.h:133
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:383
app_lib_system_shutdown_cb_f
void(* app_lib_system_shutdown_cb_f)(void)
Shutdown callback.
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:135
app_lib_system_t::clearPendingFastAppIrq
app_lib_system_clear_pending_fast_app_irq_f clearPendingFastAppIrq
Definition: wms_system.h:543
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:535
wms_app.h
app_lib_system_radio_info_t::protocol_profile
uint32_t protocol_profile
Definition: wms_system.h:161
app_lib_system_enable_fast_app_irq_f
app_res_e(* app_lib_system_enable_fast_app_irq_f)(uint8_t irq_n, uint8_t priority)
Enable a fast app interrupt.
Definition: wms_system.h:403
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_HARDWARE_RESERVED_5
@ APP_LIB_SYSTEM_HARDWARE_RESERVED_5
Definition: wms_system.h:91
app_lib_system_get_bootloader_version_f
uint32_t(* app_lib_system_get_bootloader_version_f)(void)
Get bootloader version.
Definition: wms_system.h:511
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:292
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:240
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_PROTOCOL_PROFILE_RESERVED_15
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_15
Definition: wms_system.h:147
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:527
app_lib_system_periodic_cb_f
uint32_t(* app_lib_system_periodic_cb_f)(void)
Periodic callback.
Definition: wms_system.h:218
app_lib_system_t::disableAppIrq
app_lib_system_disable_app_irq_f disableAppIrq
Definition: wms_system.h:542
app_lib_system_hardware_magic_e
app_lib_system_hardware_magic_e
Radio hardware magic number.
Definition: wms_system.h:64
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:538
APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_5
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_5
Definition: wms_system.h:127
APP_LIB_SYSTEM_HARDWARE_MAGIC_UNKNOWN
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_UNKNOWN
Definition: wms_system.h:67
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:500
APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_2
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_2
Definition: wms_system.h:121
APP_LIB_SYSTEM_PROTOCOL_PROFILE_SUB_AUS915
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_SUB_AUS915
Definition: wms_system.h:139
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:539
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:344
app_lib_system_t::disableDeepSleep
app_lib_system_disable_deep_sleep disableDeepSleep
Definition: wms_system.h:540
app_lib_system_t::enableAppIrq
app_lib_system_enable_app_irq_with_handler_f enableAppIrq
Definition: wms_system.h:541
APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_7
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_7
Definition: wms_system.h:131
app_lib_system_t::getBootloaderVersion
app_lib_system_get_bootloader_version_f getBootloaderVersion
Definition: wms_system.h:544
APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_10
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_10
Definition: wms_system.h:137
APP_LIB_SYSTEM_PROTOCOL_PROFILE_ISM_24GHZ
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_ISM_24GHZ
Definition: wms_system.h:119
app_lib_system_t::setShutdownCb
app_lib_system_set_shutdown_cb_f setShutdownCb
Definition: wms_system.h:536
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:250
app_lib_system_protocol_profile_e
app_lib_system_protocol_profile_e
Protocol profiles.
Definition: wms_system.h:114
app_lib_system_radio_info_t::hardware_magic
uint32_t hardware_magic
Definition: wms_system.h:159
APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_6
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_6
Definition: wms_system.h:129
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_HARDWARE_MAGIC_NRF52833
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_NRF52833
Definition: wms_system.h:85
APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_13
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_13
Definition: wms_system.h:143
APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_3
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_3
Definition: wms_system.h:123
APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_4
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_4
Definition: wms_system.h:125
app_lib_system_exit_critical_section_f
void(* app_lib_system_exit_critical_section_f)(void)
Exit a critical section.
Definition: wms_system.h:320
app_lib_system_enable_app_irq_with_handler_f
app_res_e(* app_lib_system_enable_app_irq_with_handler_f)(bool fast, uint8_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:480
app_lib_system_t::getRadioInfo
app_lib_system_get_radio_info_f getRadioInfo
Definition: wms_system.h:545
APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_TS_103_874_2
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_DECT_TS_103_874_2
Definition: wms_system.h:141
app_lib_system_irq_handler_f
void(* app_lib_system_irq_handler_f)(void)
Interrupt handler callback.
Definition: wms_system.h:228
app_lib_system_enable_app_irq_f
app_res_e(* app_lib_system_enable_app_irq_f)(uint8_t irq_n)
Enable an app interrupt.
Definition: wms_system.h:367
app_lib_system_t::setPeriodicCb
app_lib_system_set_periodic_cb_f setPeriodicCb
Definition: wms_system.h:537
APP_LIB_SYSTEM_HARDWARE_MAGIC_EFR32XG13
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_EFR32XG13
Definition: wms_system.h:83