Download presentation
Presentation is loading. Please wait.
1
Wireless Networks Lab – Application Queue API 2007/10/17
2
Environment When you build up your environment in Lab1 BoardAPI FontalBSP FontalButton, FontalLED HardwareAPI Stack – 802.15.4 MAC Application Queue API Service Access Point – AppApi.h Access functions and structures used by the application to interact with the Jennic 802.15.4 stack
3
Application API u32AppApiInit Communication from the MAC up to the application or network layer Callback routines implemented by the upper layer Registered with the MAC A general interrupt handler can be registered during the initialization of the application API
4
MLME/MCPS to NWK
5
MAC/NWK layer interface
6
Application Queue API The Application Queue API handles interrupts coming from The MAC sub-layer of the IEEE 802.15.4 stack The integrated peripherals of the wireless microcontroller The API implements a queue for each of three types of interrupt MCPS (MAC Data Services) interrupts coming from the stack MLME (MAC Management Services) interrupts coming from the stack Hardware interrupts coming from the hardware drivers
7
Application Queue API The Application Queue API allows callbacks to be defined by the application As with the normal IEEE 802.15.4 Stack API
8
u32AppQApiInit Init the Application Queue API, as well as the underlying 802.15.4 Stack API The function creates there queues MLME indications and confirmations MCPS indications and confirmations Integrated Peripherals API indications The function refers to callback functions for the three queues
9
Polling Queue MLME PUBLIC MAC_MlmeDcfmInd_s *psAppQApiReadMlmeInd(void); PUBLIC void vAppQApiReturnMlmeIndBuffer(MAC_MlmeDcfm Ind_s *psBuffer); Return MLME buffer previously passed MCPS PUBLIC MAC_McpsDcfmInd_s *psAppQApiReadMcpsInd(void); PUBLIC void vAppQApiReturnMcpsIndBuffer(MAC_McpsDcfmI nd_s *psBuffer); Return MCPS buffer previously passed
10
Polling Queue typedef struct { uint32 u32DeviceId; uint32 u32ItemBitmap; } AppQApiHwInd_s; Allows the application to return a hardware event buffer previously passed up to the application from the Integrated Peripherals API Once returned, the buffer can be re-used to store and pass another message
11
Lab3 sample code PRIVATE void InitSystem(void) { u32AHI_Init(); u32AppQApiInit(NULL, NULL, vTickTimerISR); led_init(); led_on(LED0); led_on(LED1); vAHI_TickTimerConfigure(E_AHI_TICK_TIMER_RESTAR T); vAHI_TickTimerWrite(0); vAHI_TickTimerInterval((16*1000*1000) / 2); vAHI_TickTimerIntEnable(TRUE); }
12
Lab3 sample code PUBLIC void AppColdStart(void) { InitSystem(); while (TRUE); } PRIVATE void vTickTimerISR(void) { led_toggle(LED0); }
13
Lab Using the Application Queue API to achieve the requirement of Lab2’s bonus part Bonus Let the CPU really sleep if the Tick Timer timeout Not only turn of the LEDs Using WakeTimer to wake up CPU Integrated Peripherals API You can only get this bonus before 9:45PM
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.