diff --git a/epicardium/ble/app/app_main.c b/epicardium/ble/app/app_main.c index 567dd8a2a567d09fcca1b0f1788823a262bc9dd0..c80362b380b9998fbf3cbb8874bf1fc6ca905c74 100644 --- a/epicardium/ble/app/app_main.c +++ b/epicardium/ble/app/app_main.c @@ -179,9 +179,9 @@ uint8_t appNumConns(uint8_t role) * \return None. */ /*************************************************************************************************/ -void AppHandlerInit(wsfHandlerId_t handlerId) +void AppInit(void) { - appHandlerId = handlerId; + appHandlerId = WsfOsSetNextHandler(AppHandler); AppDbInit(); } diff --git a/epicardium/ble/ble.c b/epicardium/ble/ble.c index 588c3f0caecc1f1c75f1b79003fdff35bc1b66a5..973b6326c2e19aa5bae603ebde7ca53349f6ce25 100644 --- a/epicardium/ble/ble.c +++ b/epicardium/ble/ble.c @@ -45,7 +45,8 @@ static wsfBufPoolDesc_t mainPoolDesc[WSF_BUF_POOLS] = }; /*! \brief Stack initialization for app. */ -extern void StackInitFit(void); +extern void StackInit(void); +extern void AppInit(void); /*************************************************************************************************/ void PalSysAssertTrap(void) @@ -316,12 +317,14 @@ void ble_uart_write(uint8_t *pValue, uint8_t len) static void ble_init(void) { WsfInit(); - StackInitFit(); + StackInit(); setAddress(); + NVIC_SetPriority(BTLE_SFD_TO_IRQn, 2); NVIC_SetPriority(BTLE_TX_DONE_IRQn, 2); NVIC_SetPriority(BTLE_RX_RCVD_IRQn, 2); - FitStart(); + AppInit(); + BleStart(); /* Add the UART service dynamically */ AttsDynInit(); diff --git a/epicardium/ble/ble_main.c b/epicardium/ble/ble_main.c index 86a1ab153b117895d1c7bc9f62888e437661a0db..2f9795c2ff6cf6ba64b5dd18d2f2d8decabf4811 100644 --- a/epicardium/ble/ble_main.c +++ b/epicardium/ble/ble_main.c @@ -1,23 +1,3 @@ -/*************************************************************************************************/ -/*! - * \file - * - * \brief Fitness sample application for the following profiles: - * Heart Rate profile - * - * Copyright (c) 2011-2018 Arm Ltd. All Rights Reserved. - * ARM Ltd. confidential and proprietary. - * - * IMPORTANT. Your use of this file is governed by a Software License Agreement - * ("Agreement") that must be accepted in order to download or otherwise receive a - * copy of this file. You may not use or copy this file for any purpose other than - * as described in the Agreement. If you do not agree to all of the terms of the - * Agreement do not use this file and delete all copies in your possession or control; - * if you do not have a copy of the Agreement, you must contact ARM Ltd. prior - * to any use, copying or further distribution of this software. - */ -/*************************************************************************************************/ - /* card10: * Copied from lib/sdk/Libraries/BTLE/stack/ble-profiles/sources/apps/fit/fit_main.c * @@ -25,6 +5,11 @@ * to this file regarding handling of OOB paring data * * This file contains some application logic taken from the "fit" example. + * + * Things have been renamed: + * fit -> ble + * Fit -> Ble + * FIT -> BLE */ #include <string.h> #include "wsf_types.h" @@ -54,17 +39,12 @@ **************************************************************************************************/ /*! WSF message event starting value */ -#define FIT_MSG_START 0xA0 - -/* Default Running Speed and Cadence Measurement period (seconds) */ -#define FIT_DEFAULT_RSCM_PERIOD 1 +#define BLE_MSG_START 0xA0 /*! WSF message event enumeration */ enum { - FIT_HR_TIMER_IND = FIT_MSG_START, /*! Heart rate measurement timer expired */ - FIT_BATT_TIMER_IND, /*! Battery measurement timer expired */ - FIT_RUNNING_TIMER_IND /*! Running speed and cadence measurement timer expired */ + BLE_BATT_TIMER_IND = BLE_MSG_START, /*! Battery measurement timer expired */ }; /************************************************************************************************** @@ -78,27 +58,27 @@ typedef union dmEvt_t dm; attsCccEvt_t ccc; attEvt_t att; -} fitMsg_t; +} bleMsg_t; /************************************************************************************************** Configurable Parameters **************************************************************************************************/ /*! configurable parameters for advertising */ -static const appAdvCfg_t fitAdvCfg = +static const appAdvCfg_t bleAdvCfg = { {60000, 0, 0}, /*! Advertising durations in ms */ {500/0.625, 4000/0.625, 0} /*! Advertising intervals in 0.625 ms units */ }; /*! configurable parameters for slave */ -static const appSlaveCfg_t fitSlaveCfg = +static const appSlaveCfg_t bleSlaveCfg = { 1, /*! Maximum connections */ }; /*! configurable parameters for security */ -static const appSecCfg_t fitSecCfg = +static const appSecCfg_t bleSecCfg = { DM_AUTH_BOND_FLAG | DM_AUTH_SC_FLAG, /*! Authentication and bonding flags */ 0, /*! Initiator key distribution flags */ @@ -108,25 +88,19 @@ static const appSecCfg_t fitSecCfg = }; /*! configurable parameters for connection parameter update */ -static const appUpdateCfg_t fitUpdateCfg = +static const appUpdateCfg_t bleUpdateCfg = { 6000, /*! Connection idle period in ms before attempting connection parameter update; set to zero to disable */ - 640, /*! Minimum connection interval in 1.25ms units */ - 800, /*! Maximum connection interval in 1.25ms units */ + 800/1.25, /*! Minimum connection interval in 1.25ms units */ + 1000/1.25, /*! Maximum connection interval in 1.25ms units */ 0, /*! Connection latency */ - 900, /*! Supervision timeout in 10ms units */ + 9000/10, /*! Supervision timeout in 10ms units */ 5 /*! Number of update attempts before giving up */ }; -/*! heart rate measurement configuration */ -static const hrpsCfg_t fitHrpsCfg = -{ - 2000 /*! Measurement timer expiration period in ms */ -}; - /*! battery measurement configuration */ -static const basCfg_t fitBasCfg = +static const basCfg_t bleBasCfg = { 30, /*! Battery measurement timer expiration period in seconds */ 1, /*! Perform battery measurement after this many timer periods */ @@ -134,7 +108,7 @@ static const basCfg_t fitBasCfg = }; /*! SMP security parameter configuration */ -static const smpCfg_t fitSmpCfg = +static const smpCfg_t bleSmpCfg = { 3000, /*! 'Repeated attempts' timeout in msec */ SMP_IO_NO_IN_NO_OUT, /*! I/O Capability */ @@ -149,7 +123,7 @@ static const smpCfg_t fitSmpCfg = **************************************************************************************************/ /*! advertising data, discoverable mode */ -static const uint8_t fitAdvDataDisc[] = +static const uint8_t bleAdvDataDisc[] = { /*! flags */ 2, /*! length */ @@ -163,16 +137,14 @@ static const uint8_t fitAdvDataDisc[] = 0, /*! tx power */ /*! service UUID list */ - 9, /*! length */ + 5, /*! length */ DM_ADV_TYPE_16_UUID, /*! AD type */ - UINT16_TO_BYTES(ATT_UUID_HEART_RATE_SERVICE), - UINT16_TO_BYTES(ATT_UUID_RUNNING_SPEED_SERVICE), UINT16_TO_BYTES(ATT_UUID_DEVICE_INFO_SERVICE), UINT16_TO_BYTES(ATT_UUID_BATTERY_SERVICE) }; /*! scan data, discoverable mode */ -static const uint8_t fitScanDataDisc[] = +static const uint8_t bleScanDataDisc[] = { /*! device name */ 7, /*! length */ @@ -187,21 +159,17 @@ static const uint8_t fitScanDataDisc[] = /*! enumeration of client characteristic configuration descriptors */ enum { - FIT_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ - FIT_HRS_HRM_CCC_IDX, /*! Heart rate service, heart rate monitor characteristic */ - FIT_BATT_LVL_CCC_IDX, /*! Battery service, battery level characteristic */ - FIT_RSCS_SM_CCC_IDX, /*! Runninc speed and cadence measurement characteristic */ - FIT_NUM_CCC_IDX + BLE_GATT_SC_CCC_IDX, /*! GATT service, service changed characteristic */ + BLE_BATT_LVL_CCC_IDX, /*! Battery service, battery level characteristic */ + BLE_NUM_CCC_IDX }; /*! client characteristic configuration descriptors settings, indexed by above enumeration */ -static const attsCccSet_t fitCccSet[FIT_NUM_CCC_IDX] = +static const attsCccSet_t bleCccSet[BLE_NUM_CCC_IDX] = { /* cccd handle value range security level */ - {GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, DM_SEC_LEVEL_NONE}, /* FIT_GATT_SC_CCC_IDX */ - {HRS_HRM_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE}, /* FIT_HRS_HRM_CCC_IDX */ - {BATT_LVL_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE}, /* FIT_BATT_LVL_CCC_IDX */ - {RSCS_RSM_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE} /* FIT_RSCS_SM_CCC_IDX */ + {GATT_SC_CH_CCC_HDL, ATT_CLIENT_CFG_INDICATE, DM_SEC_LEVEL_NONE}, /* BLE_GATT_SC_CCC_IDX */ + {BATT_LVL_CH_CCC_HDL, ATT_CLIENT_CFG_NOTIFY, DM_SEC_LEVEL_NONE}, /* BLE_BATT_LVL_CCC_IDX */ }; /************************************************************************************************** @@ -209,19 +177,10 @@ static const attsCccSet_t fitCccSet[FIT_NUM_CCC_IDX] = **************************************************************************************************/ /*! WSF handler ID */ -wsfHandlerId_t fitHandlerId; - -/* WSF Timer to send running speed and cadence measurement data */ -wsfTimer_t fitRscmTimer; - -/* Running Speed and Cadence Measurement period - Can be changed at runtime to vary period */ -static uint16_t fitRscmPeriod = FIT_DEFAULT_RSCM_PERIOD; +wsfHandlerId_t bleHandlerId; -/* Heart Rate Monitor feature flags */ -static uint8_t fitHrmFlags = CH_HRM_FLAGS_VALUE_8BIT | CH_HRM_FLAGS_ENERGY_EXP; - -static void FitHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); +static void BleHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); /*************************************************************************************************/ /*! * \brief Application DM callback. @@ -231,7 +190,7 @@ static void FitHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg); * \return None. */ /*************************************************************************************************/ -static void fitDmCback(dmEvt_t *pDmEvt) +static void bleDmCback(dmEvt_t *pDmEvt) { dmEvt_t *pMsg; uint16_t len; @@ -241,7 +200,7 @@ static void fitDmCback(dmEvt_t *pDmEvt) if ((pMsg = WsfMsgAlloc(len)) != NULL) { memcpy(pMsg, pDmEvt, len); - WsfMsgSend(fitHandlerId, pMsg); + WsfMsgSend(bleHandlerId, pMsg); } } @@ -254,7 +213,7 @@ static void fitDmCback(dmEvt_t *pDmEvt) * \return None. */ /*************************************************************************************************/ -static void fitAttCback(attEvt_t *pEvt) +static void bleAttCback(attEvt_t *pEvt) { attEvt_t *pMsg; @@ -263,7 +222,7 @@ static void fitAttCback(attEvt_t *pEvt) memcpy(pMsg, pEvt, sizeof(attEvt_t)); pMsg->pValue = (uint8_t *) (pMsg + 1); memcpy(pMsg->pValue, pEvt->pValue, pEvt->valueLen); - WsfMsgSend(fitHandlerId, pMsg); + WsfMsgSend(bleHandlerId, pMsg); } } @@ -276,7 +235,7 @@ static void fitAttCback(attEvt_t *pEvt) * \return None. */ /*************************************************************************************************/ -static void fitCccCback(attsCccEvt_t *pEvt) +static void bleCccCback(attsCccEvt_t *pEvt) { attsCccEvt_t *pMsg; appDbHdl_t dbHdl; @@ -292,48 +251,11 @@ static void fitCccCback(attsCccEvt_t *pEvt) if ((pMsg = WsfMsgAlloc(sizeof(attsCccEvt_t))) != NULL) { memcpy(pMsg, pEvt, sizeof(attsCccEvt_t)); - WsfMsgSend(fitHandlerId, pMsg); + WsfMsgSend(bleHandlerId, pMsg); } } -/*************************************************************************************************/ -/*! -* \brief Send a Running Speed and Cadence Measurement Notification. -* -* \param connId connection ID -* -* \return None. -*/ -/*************************************************************************************************/ -static void fitSendRunningSpeedMeasurement(dmConnId_t connId) -{ - if (AttsCccEnabled(connId, FIT_RSCS_SM_CCC_IDX)) - { - static uint8_t walk_run = 1; - - /* TODO: Set Running Speed and Cadence Measurement Parameters */ - - RscpsSetParameter(RSCP_SM_PARAM_SPEED, 1); - RscpsSetParameter(RSCP_SM_PARAM_CADENCE, 2); - RscpsSetParameter(RSCP_SM_PARAM_STRIDE_LENGTH, 3); - RscpsSetParameter(RSCP_SM_PARAM_TOTAL_DISTANCE, 4); - - /* Toggle running/walking */ - walk_run = walk_run? 0 : 1; - RscpsSetParameter(RSCP_SM_PARAM_STATUS, walk_run); - - RscpsSendSpeedMeasurement(connId); - } - - /* Configure and start timer to send the next measurement */ - fitRscmTimer.msg.event = FIT_RUNNING_TIMER_IND; - fitRscmTimer.msg.status = FIT_RSCS_SM_CCC_IDX; - fitRscmTimer.handlerId = fitHandlerId; - fitRscmTimer.msg.param = connId; - - WsfTimerStartSec(&fitRscmTimer, fitRscmPeriod); -} /*************************************************************************************************/ /*! @@ -344,44 +266,16 @@ static void fitSendRunningSpeedMeasurement(dmConnId_t connId) * \return None. */ /*************************************************************************************************/ -static void fitProcCccState(fitMsg_t *pMsg) +static void bleProcCccState(bleMsg_t *pMsg) { APP_TRACE_INFO3("ccc state ind value:%d handle:%d idx:%d", pMsg->ccc.value, pMsg->ccc.handle, pMsg->ccc.idx); - /* handle heart rate measurement CCC */ - if (pMsg->ccc.idx == FIT_HRS_HRM_CCC_IDX) - { - if (pMsg->ccc.value == ATT_CLIENT_CFG_NOTIFY) - { - HrpsMeasStart((dmConnId_t) pMsg->ccc.hdr.param, FIT_HR_TIMER_IND, FIT_HRS_HRM_CCC_IDX); - } - else - { - HrpsMeasStop((dmConnId_t) pMsg->ccc.hdr.param); - } - return; - } - - /* handle running speed and cadence measurement CCC */ - if (pMsg->ccc.idx == FIT_RSCS_SM_CCC_IDX) - { - if (pMsg->ccc.value == ATT_CLIENT_CFG_NOTIFY) - { - fitSendRunningSpeedMeasurement((dmConnId_t)pMsg->ccc.hdr.param); - } - else - { - WsfTimerStop(&fitRscmTimer); - } - return; - } - /* handle battery level CCC */ - if (pMsg->ccc.idx == FIT_BATT_LVL_CCC_IDX) + if (pMsg->ccc.idx == BLE_BATT_LVL_CCC_IDX) { if (pMsg->ccc.value == ATT_CLIENT_CFG_NOTIFY) { - BasMeasBattStart((dmConnId_t) pMsg->ccc.hdr.param, FIT_BATT_TIMER_IND, FIT_BATT_LVL_CCC_IDX); + BasMeasBattStart((dmConnId_t) pMsg->ccc.hdr.param, BLE_BATT_TIMER_IND, BLE_BATT_LVL_CCC_IDX); } else { @@ -400,16 +294,10 @@ static void fitProcCccState(fitMsg_t *pMsg) * \return None. */ /*************************************************************************************************/ -static void fitClose(fitMsg_t *pMsg) +static void bleClose(bleMsg_t *pMsg) { - /* stop heart rate measurement */ - HrpsMeasStop((dmConnId_t) pMsg->hdr.param); - /* stop battery measurement */ BasMeasBattStop((dmConnId_t) pMsg->hdr.param); - - /* Stop running speed and cadence timer */ - WsfTimerStop(&fitRscmTimer); } /*************************************************************************************************/ @@ -422,11 +310,11 @@ static void fitClose(fitMsg_t *pMsg) * \return None. */ /*************************************************************************************************/ -static void fitSetup(fitMsg_t *pMsg) +static void bleSetup(bleMsg_t *pMsg) { /* set advertising and scan response data for discoverable mode */ - AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(fitAdvDataDisc), (uint8_t *) fitAdvDataDisc); - AppAdvSetData(APP_SCAN_DATA_DISCOVERABLE, sizeof(fitScanDataDisc), (uint8_t *) fitScanDataDisc); + AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(bleAdvDataDisc), (uint8_t *) bleAdvDataDisc); + AppAdvSetData(APP_SCAN_DATA_DISCOVERABLE, sizeof(bleScanDataDisc), (uint8_t *) bleScanDataDisc); /* set advertising and scan response data for connectable mode */ AppAdvSetData(APP_ADV_DATA_CONNECTABLE, 0, NULL); @@ -436,120 +324,6 @@ static void fitSetup(fitMsg_t *pMsg) AppAdvStart(APP_MODE_AUTO_INIT); } -/*************************************************************************************************/ -/*! - * \brief Button press callback. - * - * \param btn Button press. - * - * \return None. - */ -/*************************************************************************************************/ -static void fitBtnCback(uint8_t btn) -{ - dmConnId_t connId; - static uint8_t heartRate = 78; /* for testing/demonstration */ - - /* button actions when connected */ - if ((connId = AppConnIsOpen()) != DM_CONN_ID_NONE) - { - switch (btn) - { - case APP_UI_BTN_1_SHORT: - /* increment the heart rate */ - AppHwHrmTest(++heartRate); - break; - - case APP_UI_BTN_1_MED: - break; - - case APP_UI_BTN_1_LONG: - AppConnClose(connId); - break; - - case APP_UI_BTN_2_SHORT: - /* decrement the heart rate */ - AppHwHrmTest(--heartRate); - break; - - case APP_UI_BTN_2_MED: - /* Toggle HRM Sensor DET flags */ - if (!(fitHrmFlags & (CH_HRM_FLAGS_SENSOR_DET | CH_HRM_FLAGS_SENSOR_NOT_DET))) - { - fitHrmFlags |= CH_HRM_FLAGS_SENSOR_DET; - } - else if (fitHrmFlags & CH_HRM_FLAGS_SENSOR_DET) - { - fitHrmFlags &= ~CH_HRM_FLAGS_SENSOR_DET; - fitHrmFlags |= CH_HRM_FLAGS_SENSOR_NOT_DET; - } - else - { - fitHrmFlags &= ~CH_HRM_FLAGS_SENSOR_NOT_DET; - } - - HrpsSetFlags(fitHrmFlags); - break; - - case APP_UI_BTN_2_LONG: - /* Toggle HRM RR Interval feature flag */ - if (fitHrmFlags & CH_HRM_FLAGS_RR_INTERVAL) - { - fitHrmFlags &= ~CH_HRM_FLAGS_RR_INTERVAL; - } - else - { - fitHrmFlags |= CH_HRM_FLAGS_RR_INTERVAL; - } - - HrpsSetFlags(fitHrmFlags); - break; - - default: - break; - } - } - /* button actions when not connected */ - else - { - switch (btn) - { - case APP_UI_BTN_1_SHORT: - /* start or restart advertising */ - AppAdvStart(APP_MODE_AUTO_INIT); - break; - - case APP_UI_BTN_1_MED: - /* enter discoverable and bondable mode mode */ - AppSetBondable(TRUE); - AppAdvStart(APP_MODE_DISCOVERABLE); - break; - - case APP_UI_BTN_1_LONG: - /* clear bonded device info and restart advertising */ - AppDbDeleteAllRecords(); - AppAdvStart(APP_MODE_AUTO_INIT); - break; - - case APP_UI_BTN_2_SHORT: - /* Toggle HRM Flag for 8 and 16 bit values */ - if (fitHrmFlags & CH_HRM_FLAGS_VALUE_16BIT) - { - fitHrmFlags &= ~CH_HRM_FLAGS_VALUE_16BIT; - } - else - { - fitHrmFlags |= CH_HRM_FLAGS_VALUE_16BIT; - } - - HrpsSetFlags(fitHrmFlags); - break; - - default: - break; - } - } -} /*************************************************************************************************/ /*! @@ -560,36 +334,27 @@ static void fitBtnCback(uint8_t btn) * \return None. */ /*************************************************************************************************/ -static void fitProcMsg(fitMsg_t *pMsg) +static void bleProcMsg(bleMsg_t *pMsg) { uint8_t uiEvent = APP_UI_NONE; switch(pMsg->hdr.event) { - case FIT_RUNNING_TIMER_IND: - fitSendRunningSpeedMeasurement((dmConnId_t)pMsg->ccc.hdr.param); - break; - - case FIT_HR_TIMER_IND: - HrpsProcMsg(&pMsg->hdr); - break; - - case FIT_BATT_TIMER_IND: + case BLE_BATT_TIMER_IND: BasProcMsg(&pMsg->hdr); break; case ATTS_HANDLE_VALUE_CNF: - HrpsProcMsg(&pMsg->hdr); BasProcMsg(&pMsg->hdr); break; case ATTS_CCC_STATE_IND: - fitProcCccState(pMsg); + bleProcCccState(pMsg); break; case DM_RESET_CMPL_IND: DmSecGenerateEccKeyReq(); - fitSetup(pMsg); + bleSetup(pMsg); uiEvent = APP_UI_RESET_CMPL; break; @@ -602,13 +367,12 @@ static void fitProcMsg(fitMsg_t *pMsg) break; case DM_CONN_OPEN_IND: - HrpsProcMsg(&pMsg->hdr); BasProcMsg(&pMsg->hdr); uiEvent = APP_UI_CONN_OPEN; break; case DM_CONN_CLOSE_IND: - fitClose(pMsg); + bleClose(pMsg); uiEvent = APP_UI_CONN_CLOSE; break; @@ -663,31 +427,27 @@ static void fitProcMsg(fitMsg_t *pMsg) * \return None. */ /*************************************************************************************************/ -static void FitHandlerInit(void) +static void BleHandlerInit(void) { - APP_TRACE_INFO0("FitHandlerInit"); + APP_TRACE_INFO0("BleHandlerInit"); /* store handler ID */ - fitHandlerId =WsfOsSetNextHandler(FitHandler); + bleHandlerId =WsfOsSetNextHandler(BleHandler); /* Set configuration pointers */ - pAppAdvCfg = (appAdvCfg_t *) &fitAdvCfg; - pAppSlaveCfg = (appSlaveCfg_t *) &fitSlaveCfg; - pAppSecCfg = (appSecCfg_t *) &fitSecCfg; - pAppUpdateCfg = (appUpdateCfg_t *) &fitUpdateCfg; + pAppAdvCfg = (appAdvCfg_t *) &bleAdvCfg; + pAppSlaveCfg = (appSlaveCfg_t *) &bleSlaveCfg; + pAppSecCfg = (appSecCfg_t *) &bleSecCfg; + pAppUpdateCfg = (appUpdateCfg_t *) &bleUpdateCfg; /* Initialize application framework */ AppSlaveInit(); /* Set stack configuration pointers */ - pSmpCfg = (smpCfg_t *) &fitSmpCfg; - - /* initialize heart rate profile sensor */ - HrpsInit(fitHandlerId, (hrpsCfg_t *) &fitHrpsCfg); - HrpsSetFlags(fitHrmFlags); + pSmpCfg = (smpCfg_t *) &bleSmpCfg; /* initialize battery service server */ - BasInit(fitHandlerId, (basCfg_t *) &fitBasCfg); + BasInit(bleHandlerId, (basCfg_t *) &bleBasCfg); } /*************************************************************************************************/ @@ -700,11 +460,11 @@ static void FitHandlerInit(void) * \return None. */ /*************************************************************************************************/ -static void FitHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) +static void BleHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) { if (pMsg != NULL) { - APP_TRACE_INFO1("Fit got evt %d", pMsg->event); + APP_TRACE_INFO1("Ble got evt %d", pMsg->event); if (pMsg->event >= DM_CBACK_START && pMsg->event <= DM_CBACK_END) { @@ -716,7 +476,7 @@ static void FitHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) } /* perform profile and user interface-related operations */ - fitProcMsg((fitMsg_t *) pMsg); + bleProcMsg((bleMsg_t *) pMsg); } } @@ -727,32 +487,23 @@ static void FitHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg) * \return None. */ /*************************************************************************************************/ -void FitStart(void) +void BleStart(void) { - FitHandlerInit(); + BleHandlerInit(); /* Register for stack callbacks */ - DmRegister(fitDmCback); - DmConnRegister(DM_CLIENT_ID_APP, fitDmCback); - AttRegister(fitAttCback); + DmRegister(bleDmCback); + DmConnRegister(DM_CLIENT_ID_APP, bleDmCback); + AttRegister(bleAttCback); AttConnRegister(AppServerConnCback); - AttsCccRegister(FIT_NUM_CCC_IDX, (attsCccSet_t *) fitCccSet, fitCccCback); - - /* Register for app framework callbacks */ - AppUiBtnRegister(fitBtnCback); + AttsCccRegister(BLE_NUM_CCC_IDX, (attsCccSet_t *) bleCccSet, bleCccCback); /* Initialize attribute server database */ SvcCoreAddGroup(); - SvcHrsCbackRegister(NULL, HrpsWriteCback); - SvcHrsAddGroup(); - SvcDisAddGroup(); + SvcDisAddGroup(); // Device Information Service SvcBattCbackRegister(BasReadCback, NULL); SvcBattAddGroup(); - SvcRscsAddGroup(); - - /* Set running speed and cadence features */ - RscpsSetFeatures(RSCS_ALL_FEATURES); /* Reset the device */ DmDevReset(); diff --git a/epicardium/ble/stack.c b/epicardium/ble/stack.c index 07c73353485018d8554abdb07002233a075cddc9..f96f7dae05913144f61e7e5955c33397c63f5945 100644 --- a/epicardium/ble/stack.c +++ b/epicardium/ble/stack.c @@ -2,7 +2,7 @@ /*! * \file * - * \brief Stack initialization for fit. + * \brief Stack initialization * * Copyright (c) 2016-2017 ARM Ltd. All Rights Reserved. * ARM Ltd. confidential and proprietary. @@ -107,7 +107,7 @@ const BbRtCfg_t _bb_cfg = { * \return None. */ /*************************************************************************************************/ -void StackInitFit(void) +void StackInit(void) { wsfHandlerId_t handlerId; @@ -134,8 +134,8 @@ void StackInitFit(void) #endif /* DATS_APP_USE_LEGACY_API */ if(memUsed != LL_MEMORY_FOOTPRINT) { - printf("Controller memory mismatch 0x%x != 0x%x\n", memUsed, - LL_MEMORY_FOOTPRINT); + printf("Controller memory mismatch 0x%x != 0x%x\n", (unsigned int)memUsed, + (unsigned int)LL_MEMORY_FOOTPRINT); } #endif @@ -180,11 +180,7 @@ void StackInitFit(void) SmpHandlerInit(handlerId); SmprInit(); SmprScInit(); - HciSetMaxRxAclLen(100); - /* card10: - * Here it gets weird: application logic and stack are - * mixed a lot. */ - handlerId = WsfOsSetNextHandler(AppHandler); - AppHandlerInit(handlerId); + /*TODO card10: Probably want to adjust this */ + HciSetMaxRxAclLen(100); }