Presentation is loading. Please wait.

Presentation is loading. Please wait.

Wireless Networks Lab – Application Queue API 2007/10/17.

Similar presentations


Presentation on theme: "Wireless Networks Lab – Application Queue API 2007/10/17."— Presentation transcript:

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


Download ppt "Wireless Networks Lab – Application Queue API 2007/10/17."

Similar presentations


Ads by Google