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 {
101 
110 typedef enum
111 {
137 
144 typedef struct
145 {
147  uint32_t hardware_magic;
151 
166 typedef void (*app_lib_system_startup_cb_f)(void);
167 
181 typedef void (*app_lib_system_shutdown_cb_f)(void);
182 
206 typedef uint32_t (*app_lib_system_periodic_cb_f)(void);
207 
216 typedef void (*app_lib_system_irq_handler_f)(void);
217 
227 typedef app_res_e
229 
236 typedef app_res_e
239 
279 typedef app_res_e
281  uint32_t initial_delay_us,
282  uint32_t execution_time_us);
283 
298 
309 
333 
340 typedef app_res_e
343 
354 typedef app_res_e
356 
370 typedef app_res_e
372 
390 typedef app_res_e
391  (*app_lib_system_enable_fast_app_irq_f)(uint8_t irq_n, uint8_t priority);
392 
466 typedef app_res_e
468  (bool fast,
469  uint8_t irq_n,
470  uint8_t priority,
472 
487 typedef app_res_e
489 
498 typedef uint32_t
500 
514 typedef app_res_e
516  size_t info_num_bytes);
517 
521 typedef struct
522 {
535 
536 #endif /* APP_LIB_SYSTEM_H_ */
app_lib_system_radio_info_t
Radio information structure.
Definition: wms_system.h:144
APP_LIB_SYSTEM_PROTOCOL_PROFILE_UNKNOWN
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_UNKNOWN
Definition: wms_system.h:113
app_lib_system_startup_cb_f
void(* app_lib_system_startup_cb_f)(void)
Startup callback.
Definition: wms_system.h:166
app_lib_system_t
List of library functions.
Definition: wms_system.h:521
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:342
app_lib_system_enter_critical_section_f
void(* app_lib_system_enter_critical_section_f)(void)
Enter a critical section.
Definition: wms_system.h:297
app_lib_system_shutdown_cb_f
void(* app_lib_system_shutdown_cb_f)(void)
Shutdown callback.
Definition: wms_system.h:181
app_lib_system_disable_app_irq_f
app_res_e(* app_lib_system_disable_app_irq_f)(uint8_t irq_n)
Disable an app interrupt.
Definition: wms_system.h:371
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:131
app_lib_system_t::clearPendingFastAppIrq
app_lib_system_clear_pending_fast_app_irq_f clearPendingFastAppIrq
Definition: wms_system.h:531
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:523
wms_app.h
app_lib_system_radio_info_t::protocol_profile
uint32_t protocol_profile
Definition: wms_system.h:149
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:391
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:499
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:280
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:228
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:515
app_lib_system_periodic_cb_f
uint32_t(* app_lib_system_periodic_cb_f)(void)
Periodic callback.
Definition: wms_system.h:206
app_lib_system_t::disableAppIrq
app_lib_system_disable_app_irq_f disableAppIrq
Definition: wms_system.h:530
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:135
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:526
APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_5
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_5
Definition: wms_system.h:123
APP_LIB_SYSTEM_HARDWARE_MAGIC_UNKNOWN
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_UNKNOWN
Definition: wms_system.h:67
APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_2
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_2
Definition: wms_system.h:117
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:527
APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_8
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_8
Definition: wms_system.h:129
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:332
APP_LIB_SYSTEM_HARDWARE_RESERVED_8
@ APP_LIB_SYSTEM_HARDWARE_RESERVED_8
Definition: wms_system.h:83
app_lib_system_t::disableDeepSleep
app_lib_system_disable_deep_sleep disableDeepSleep
Definition: wms_system.h:528
app_lib_system_t::enableAppIrq
app_lib_system_enable_app_irq_with_handler_f enableAppIrq
Definition: wms_system.h:529
APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_7
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_7
Definition: wms_system.h:127
app_lib_system_t::getBootloaderVersion
app_lib_system_get_bootloader_version_f getBootloaderVersion
Definition: wms_system.h:532
APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_10
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_10
Definition: wms_system.h:133
APP_LIB_SYSTEM_PROTOCOL_PROFILE_ISM_24GHZ
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_ISM_24GHZ
Definition: wms_system.h:115
app_lib_system_t::setShutdownCb
app_lib_system_set_shutdown_cb_f setShutdownCb
Definition: wms_system.h:524
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:238
app_lib_system_protocol_profile_e
app_lib_system_protocol_profile_e
Protocol profiles.
Definition: wms_system.h:110
app_lib_system_radio_info_t::hardware_magic
uint32_t hardware_magic
Definition: wms_system.h:147
APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_6
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_6
Definition: wms_system.h:125
APP_LIB_SYSTEM_HARDWARE_MAGIC_NRF52832
@ APP_LIB_SYSTEM_HARDWARE_MAGIC_NRF52832
Definition: wms_system.h:73
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_3
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_3
Definition: wms_system.h:119
APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_4
@ APP_LIB_SYSTEM_PROTOCOL_PROFILE_RESERVED_4
Definition: wms_system.h:121
app_lib_system_exit_critical_section_f
void(* app_lib_system_exit_critical_section_f)(void)
Exit a critical section.
Definition: wms_system.h:308
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:468
app_lib_system_clear_pending_fast_app_irq_f
app_res_e(* app_lib_system_clear_pending_fast_app_irq_f)(uint8_t irq_n)
Clear fast interrupt flag from NVIC.
Definition: wms_system.h:488
app_lib_system_t::getRadioInfo
app_lib_system_get_radio_info_f getRadioInfo
Definition: wms_system.h:533
app_lib_system_irq_handler_f
void(* app_lib_system_irq_handler_f)(void)
Interrupt handler callback.
Definition: wms_system.h:216
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:355
app_lib_system_t::setPeriodicCb
app_lib_system_set_periodic_cb_f setPeriodicCb
Definition: wms_system.h:525