/********************************************************************* * @fn SimpleBLEPeripheral_ObserverStateChangeCB * * @brief Peripheral observer event callback function. * * @param pEvent - pointer to event structure * * @return TRUE if safe to deallocate event message, FALSE otherwise. */ static void SimpleBLEPeripheral_ObserverStateChangeCB(gapPeripheralObserverRoleEvent_t *pEvent) { sbpEvt_t *pMsg; // Create dynamic pointer to message. if ((pMsg = ICall_malloc(sizeof(sbpEvt_t)))) { pMsg->hdr.event = SBP_OBSERVER_STATE_CHANGE_EVT; pMsg->hdr.state = SUCCESS; switch(pEvent->gap.opcode) { case GAP_DEVICE_INFO_EVENT: { gapDeviceInfoEvent_t *pDevInfoMsg; pDevInfoMsg = ICall_malloc(sizeof(gapDeviceInfoEvent_t)); memcpy(pDevInfoMsg, pEvent, sizeof(gapDeviceInfoEvent_t)); pDevInfoMsg->pEvtData = ICall_malloc(pEvent->deviceInfo.dataLen); memcpy(pDevInfoMsg->pEvtData, pEvent->deviceInfo.pEvtData, pEvent->deviceInfo.dataLen); pMsg->pData = (uint8 *)pDevInfoMsg; } break; case GAP_DEVICE_DISCOVERY_EVENT: { gapDevDiscEvent_t *pDevDiscMsg; pDevDiscMsg = ICall_malloc(sizeof(gapDevDiscEvent_t)); memcpy(pDevDiscMsg, pEvent, sizeof(gapDevDiscEvent_t)); pDevDiscMsg->pDevList = ICall_malloc((pEvent->discCmpl.numDevs)*sizeof(gapDevRec_t)); memcpy(pDevDiscMsg->pDevList, pEvent->discCmpl.pDevList, (pEvent->discCmpl.numDevs)*sizeof(gapDevRec_t)); pMsg->pData = (uint8 *)pDevDiscMsg; } break; default: break; } // Enqueue the message. Util_enqueueMsg(appMsgQueue, sem, (uint8*)pMsg); } // Free the stack message ICall_freeMsg(pEvent); }
/********************************************************************* * @fn SimpleBLEBroadcaster_stateChangeCB * * @brief Callback from GAP Role indicating a role state change. * * @param newState - new state * * @return none */ static void SimpleBLEBroadcaster_stateChangeCB(gaprole_States_t newState) { sbbEvt_t *pMsg; // Create dynamic pointer to message. if (pMsg = ICall_malloc(sizeof(sbbEvt_t))) { pMsg->hdr.event = SBB_STATE_CHANGE_EVT; pMsg->hdr.state = newState; // Enqueue the message. Util_enqueueMsg(appMsgQueue, sem, (uint8*)pMsg); } }
/********************************************************************* * @fn trainingTag_enqueueMsg * * @brief Creates a message and puts the message in RTOS queue. * * @param event - message event. * @param status - message status. * * @return None. */ static void trainingTag_enqueueMsg(uint8_t event, uint8_t status) { tTagEvt_t *pMsg; // Create dynamic pointer to message. if (pMsg = ICall_malloc(sizeof(tTagEvt_t))) { pMsg->event = event; pMsg->status = status; // Enqueue the message. Util_enqueueMsg(appMsgQueue, sem, (uint8*)pMsg); } }
/********************************************************************* * @fn SimplePropBeacon_enqueueMsg * * @brief Creates a message and puts the message in RTOS queue. * * @param event - message event. * @param state - message state. * * @return None. */ static void SimplePropBeacon_enqueueMsg(uint8_t event, uint8_t state) { spbEvt_t *pMsg; // Create dynamic pointer to message. if ((pMsg = ICall_malloc(sizeof(spbEvt_t)))) { pMsg->hdr.event = event; pMsg->hdr.state = state; // Enqueue the message. Util_enqueueMsg(appMsgQueue, sem, (uint8*)pMsg); } }
/********************************************************************* * @fn SimpleBLEPeripheral_enqueueMsg * * @brief Creates a message and puts the message in RTOS queue. * * @param event - message event. * @param state - message state. * * @return None. */ static void SimpleBLEPeripheral_enqueueMsg(uint8_t event, uint8_t state, uint8_t *pData) { sbpEvt_t *pMsg; // Create dynamic pointer to message. if ((pMsg = ICall_malloc(sizeof(sbpEvt_t)))) { pMsg->hdr.event = event; pMsg->hdr.state = state; // Enqueue the message. Util_enqueueMsg(appMsgQueue, sem, (uint8*)pMsg); } }
/******************************************************************************* * @fn SensorTag_enqueueMsg * * @brief Creates a message and puts the message in RTOS queue. * * @param event - message event. * @param serviceID - service identifier * @param paramID - parameter identifier * * @return none */ static void SensorTag_enqueueMsg(uint8_t event, uint8_t serviceID, uint8_t paramID) { stEvt_t *pMsg; // Create dynamic pointer to message. if (pMsg = ICall_malloc(sizeof(stEvt_t))) { pMsg->event = event; pMsg->serviceID = serviceID; pMsg->paramID = paramID; // Enqueue the message. Util_enqueueMsg(appMsgQueue, sem, (uint8_t*)pMsg); } }
/********************************************************************* * @fn HidEmuKbd_enqueueMsg * * @brief Creates a message and puts the message in RTOS queue. * * @param event - message event. * @param state - message state. * * @return TRUE or FALSE */ static uint8_t HidEmuKbd_enqueueMsg(uint16_t event, uint8_t state) { hidEmuKbdEvt_t *pMsg; // Create dynamic pointer to message. if (pMsg = ICall_malloc(sizeof(hidEmuKbdEvt_t))) { pMsg->hdr.event = event; pMsg->hdr.state = state; // Enqueue the message. return Util_enqueueMsg(appMsgQueue, sem, (uint8_t *)pMsg); } return FALSE; }
/********************************************************************* * @fn DualImageConcept_enqueueMsg * * @brief Creates a message and puts the message in RTOS queue. * * @param event - message event. * @param state - message state. * @param pData - message data pointer. * * @return None. */ static void DualImageConcept_enqueueMsg(uint8_t event, uint8_t state, uint8_t *pData) { dicEvt_t *pMsg; // Create dynamic pointer to message. if ((pMsg = ICall_malloc(sizeof(dicEvt_t)))) { pMsg->hdr.event = event; pMsg->hdr.state = state; pMsg->pData = pData; // Enqueue the message. Util_enqueueMsg(appMsgQueue, sem, (uint8*)pMsg); } }
/********************************************************************* * @fn simpleTopology_enqueueMsg * * @brief Creates a message and puts the message in RTOS queue. * * @param event - message event. * @param state - message state. * * @return None. */ static uint8_t simpleTopology_enqueueMsg(uint16_t event, uint8_t status, uint8_t *pData) { sbtEvt_t *pMsg = ICall_malloc(sizeof(sbtEvt_t)); // Create dynamic pointer to message. if (pMsg) { pMsg->event = event; pMsg->status = status; pMsg->pData = pData; // Enqueue the message. return Util_enqueueMsg(appMsgQueue, sem, (uint8*)pMsg); } return FALSE; }
/********************************************************************* * @fn glucCollCentral_enqueueMsg * * @brief Creates a message and puts the message in RTOS queue. * * @param event - message event. * @param state - message state. * @param pData - message data pointer. * * @return TRUE or FALSE */ static uint8_t glucCollCentral_enqueueMsg(uint8_t event, uint8_t state, uint8_t *pData) { glucCollEvt_t *pMsg; // Create dynamic pointer to message. if (pMsg = ICall_malloc(sizeof(glucCollEvt_t))) { pMsg->hdr.event = event; pMsg->hdr.state = state; pMsg->pData = pData; // Enqueue the message. return Util_enqueueMsg(appMsgQueue, sem, (uint8_t *)pMsg); } return FALSE; }