172 lines
5.8 KiB
C
172 lines
5.8 KiB
C
|
|
/**************************************************************************************************
|
|||
|
|
Filename: OSAL_SimpleBLEPeripheral.c
|
|||
|
|
Revised: $Date: 2010-08-01 14:02:20 -0700 (Sun, 01 Aug 2010) $
|
|||
|
|
Revision: $Revision: 23255 $
|
|||
|
|
|
|||
|
|
Description: This file contains function that allows user setup tasks
|
|||
|
|
|
|||
|
|
|
|||
|
|
Copyright 2010 - 2011 Texas Instruments Incorporated. All rights reserved.
|
|||
|
|
|
|||
|
|
IMPORTANT: Your use of this Software is limited to those specific rights
|
|||
|
|
granted under the terms of a software license agreement between the user
|
|||
|
|
who downloaded the software, his/her employer (which must be your employer)
|
|||
|
|
and Texas Instruments Incorporated (the "License"). You may not use this
|
|||
|
|
Software unless you agree to abide by the terms of the License. The License
|
|||
|
|
limits your use, and you acknowledge, that the Software may not be modified,
|
|||
|
|
copied or distributed unless embedded on a Texas Instruments microcontroller
|
|||
|
|
or used solely and exclusively in conjunction with a Texas Instruments radio
|
|||
|
|
frequency transceiver, which is integrated into your product. Other than for
|
|||
|
|
the foregoing purpose, you may not use, reproduce, copy, prepare derivative
|
|||
|
|
works of, modify, distribute, perform, display or sell this Software and/or
|
|||
|
|
its documentation for any purpose.
|
|||
|
|
|
|||
|
|
YOU FURTHER ACKNOWLEDGE AND AGREE THAT THE SOFTWARE AND DOCUMENTATION ARE
|
|||
|
|
PROVIDED <EFBFBD>AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
|
|||
|
|
INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY, TITLE,
|
|||
|
|
NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL
|
|||
|
|
TEXAS INSTRUMENTS OR ITS LICENSORS BE LIABLE OR OBLIGATED UNDER CONTRACT,
|
|||
|
|
NEGLIGENCE, STRICT LIABILITY, CONTRIBUTION, BREACH OF WARRANTY, OR OTHER
|
|||
|
|
LEGAL EQUITABLE THEORY ANY DIRECT OR INDIRECT DAMAGES OR EXPENSES
|
|||
|
|
INCLUDING BUT NOT LIMITED TO ANY INCIDENTAL, SPECIAL, INDIRECT, PUNITIVE
|
|||
|
|
OR CONSEQUENTIAL DAMAGES, LOST PROFITS OR LOST DATA, COST OF PROCUREMENT
|
|||
|
|
OF SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
|
|||
|
|
(INCLUDING BUT NOT LIMITED TO ANY DEFENSE THEREOF), OR OTHER SIMILAR COSTS.
|
|||
|
|
|
|||
|
|
Should you have any questions regarding your right to use this Software,
|
|||
|
|
contact Texas Instruments Incorporated at www.TI.com.
|
|||
|
|
**************************************************************************************************/
|
|||
|
|
|
|||
|
|
/**************************************************************************************************
|
|||
|
|
* INCLUDES
|
|||
|
|
**************************************************************************************************/
|
|||
|
|
#include "hal_types.h"
|
|||
|
|
#include "OSAL.h"
|
|||
|
|
#include "OSAL_Tasks.h"
|
|||
|
|
|
|||
|
|
/* HAL */
|
|||
|
|
#include "hal_drivers.h"
|
|||
|
|
|
|||
|
|
/* LL */
|
|||
|
|
#include "ll.h"
|
|||
|
|
|
|||
|
|
/* HCI */
|
|||
|
|
#include "hci_tl.h"
|
|||
|
|
|
|||
|
|
#if defined ( OSAL_CBTIMER_NUM_TASKS )
|
|||
|
|
#include "osal_cbTimer.h"
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
/* L2CAP */
|
|||
|
|
#include "l2cap.h"
|
|||
|
|
|
|||
|
|
/* gap */
|
|||
|
|
#include "gap.h"
|
|||
|
|
#include "gapgattserver.h"
|
|||
|
|
#include "gapbondmgr.h"
|
|||
|
|
|
|||
|
|
/* GATT */
|
|||
|
|
#include "gatt.h"
|
|||
|
|
|
|||
|
|
#include "gattservapp.h"
|
|||
|
|
|
|||
|
|
/* Profiles */
|
|||
|
|
#if defined ( PLUS_BROADCASTER )
|
|||
|
|
#include "peripheralBroadcaster.h"
|
|||
|
|
#else
|
|||
|
|
#include "peripheral.h"
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
/* Application */
|
|||
|
|
#include "simpleBLEPeripheral.h"
|
|||
|
|
|
|||
|
|
/*********************************************************************
|
|||
|
|
* GLOBAL VARIABLES
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
// The order in this table must be identical to the task initialization calls below in osalInitTask.
|
|||
|
|
const pTaskEventHandlerFn tasksArr_peripheral[] =
|
|||
|
|
{
|
|||
|
|
LL_ProcessEvent, // task 0
|
|||
|
|
Hal_ProcessEvent, // task 1
|
|||
|
|
HCI_ProcessEvent, // task 2
|
|||
|
|
#if defined ( OSAL_CBTIMER_NUM_TASKS )
|
|||
|
|
OSAL_CBTIMER_PROCESS_EVENT( osal_CbTimerProcessEvent ), // task 3
|
|||
|
|
#endif
|
|||
|
|
L2CAP_ProcessEvent, // task 4
|
|||
|
|
GAP_ProcessEvent, // task 5
|
|||
|
|
GATT_ProcessEvent, // task 6
|
|||
|
|
SM_ProcessEvent, // task 7
|
|||
|
|
GAPRole_ProcessEvent, // task 8
|
|||
|
|
GAPBondMgr_ProcessEvent, // task 9
|
|||
|
|
GATTServApp_ProcessEvent, // task 10
|
|||
|
|
SimpleBLEPeripheral_ProcessEvent // task 11
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
uint8 tasksCnt;
|
|||
|
|
uint16 *tasksEvents;
|
|||
|
|
pTaskEventHandlerFn tasksArr[12];
|
|||
|
|
|
|||
|
|
/*********************************************************************
|
|||
|
|
* FUNCTIONS
|
|||
|
|
*********************************************************************/
|
|||
|
|
|
|||
|
|
/*********************************************************************
|
|||
|
|
* @fn osalInitTasks
|
|||
|
|
*
|
|||
|
|
* @brief This function invokes the initialization function for each task.
|
|||
|
|
*
|
|||
|
|
* @param void
|
|||
|
|
*
|
|||
|
|
* @return none
|
|||
|
|
*/
|
|||
|
|
void osalInitPeripheralTasks( void )
|
|||
|
|
{
|
|||
|
|
uint8 taskID = 0;
|
|||
|
|
|
|||
|
|
tasksCnt = sizeof( tasksArr_peripheral ) / sizeof( tasksArr_peripheral[0] );
|
|||
|
|
osal_memcpy(tasksArr, tasksArr_peripheral, sizeof( tasksArr_peripheral));
|
|||
|
|
|
|||
|
|
tasksEvents = (uint16 *)osal_mem_alloc( sizeof( uint16 ) * tasksCnt);
|
|||
|
|
osal_memset( tasksEvents, 0, (sizeof( uint16 ) * tasksCnt));
|
|||
|
|
|
|||
|
|
/* LL Task */
|
|||
|
|
LL_Init( taskID++ );
|
|||
|
|
|
|||
|
|
/* Hal Task */
|
|||
|
|
Hal_Init( taskID++ );
|
|||
|
|
|
|||
|
|
/* HCI Task */
|
|||
|
|
HCI_Init( taskID++ );
|
|||
|
|
|
|||
|
|
#if defined ( OSAL_CBTIMER_NUM_TASKS )
|
|||
|
|
/* Callback Timer Tasks */
|
|||
|
|
osal_CbTimerInit( taskID );
|
|||
|
|
taskID += OSAL_CBTIMER_NUM_TASKS;
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
/* L2CAP Task */
|
|||
|
|
L2CAP_Init( taskID++ );
|
|||
|
|
|
|||
|
|
/* GAP Task */
|
|||
|
|
GAP_Init( taskID++ );
|
|||
|
|
|
|||
|
|
/* GATT Task */
|
|||
|
|
GATT_Init( taskID++ );
|
|||
|
|
|
|||
|
|
/* SM Task */
|
|||
|
|
SM_Init( taskID++ );
|
|||
|
|
|
|||
|
|
/* Profiles */
|
|||
|
|
GAPRole_Init( taskID++ );
|
|||
|
|
GAPBondMgr_Init( taskID++ );
|
|||
|
|
|
|||
|
|
GATTServApp_Init( taskID++ );
|
|||
|
|
|
|||
|
|
/* Application */
|
|||
|
|
SimpleBLEPeripheral_Init( taskID );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*********************************************************************
|
|||
|
|
*********************************************************************/
|