X_NUCLEO_IDB05A1
Dependencies: mbed-os-example-ble-Advertising
Revision 264:1e754a01869e, committed 2016-09-15
- Comitter:
- Vincent Coubard
- Date:
- Thu Sep 15 10:51:26 2016 +0100
- Branch:
- e9fb3e390284c3f7ef8e1d21cc55deef7558ca3d
- Parent:
- 254:f4d217cadbde
- Child:
- 273:00205952d841
- Commit message:
- Sync with e9fb3e390284c3f7ef8e1d21cc55deef7558ca3d
2016-07-11 11:07:03+01:00: Vincent Coubard
Changes needed for the scheduling policy.
Friendly with RTOS.
Changed in this revision
--- a/source/BlueNRGDevice.cpp Thu Sep 15 10:51:17 2016 +0100
+++ b/source/BlueNRGDevice.cpp Thu Sep 15 10:51:26 2016 +0100
@@ -229,9 +229,7 @@
bool must_return = false;
do {
- BlueNRGGap::getInstance().Process();
-
- HCI_Process();
+ bluenrgDeviceInstance.processEvents();
if(must_return) return;
@@ -469,3 +467,7 @@
{
irq_.enable_irq();
}
+
+void BlueNRGDevice::processEvents() {
+ btle_handler();
+}
\ No newline at end of file
--- a/source/bluenrg-hci/hci/hci.c Thu Sep 15 10:51:17 2016 +0100
+++ b/source/bluenrg-hci/hci/hci.c Thu Sep 15 10:51:26 2016 +0100
@@ -179,9 +179,7 @@
hciReadPacket->data_len = data_len;
if(HCI_verify(hciReadPacket) == 0) {
list_insert_tail(&hciReadPktRxQueue, (tListNode *)hciReadPacket);
-#ifdef AST_FOR_MBED_OS
- Call_BTLE_Handler();
-#endif
+ signalEventsToProcess();
} else {
list_insert_head(&hciReadPktPool, (tListNode *)hciReadPacket);
#ifdef POOL_CNT
@@ -199,9 +197,7 @@
}
else{
// HCI Read Packet Pool is empty, wait for a free packet.
-#ifdef AST_FOR_MBED_OS
- Call_BTLE_Handler();
-#endif
+ signalEventsToProcess();
readPacketListFull = TRUE;
Clear_SPI_EXTI_Flag();
return;
@@ -1229,4 +1225,3 @@
return 0;
}
-
--- a/source/platform/btle.cpp Thu Sep 15 10:51:17 2016 +0100
+++ b/source/platform/btle.cpp Thu Sep 15 10:51:26 2016 +0100
@@ -203,9 +203,7 @@
/*ret = aci_gatt_update_char_value(service_handle, dev_name_char_handle, 0,
strlen(name), (tHalUint8 *)name);*/
-#ifdef AST_FOR_MBED_OS
- minar::Scheduler::postCallback(btle_handler);
-#endif
+ signalEventsToProcess();
return;
}
@@ -218,15 +216,14 @@
@returns
*/
/**************************************************************************/
-#ifdef AST_FOR_MBED_OS
int btle_handler_pending = 0;
void btle_handler(void)
{
btle_handler_pending = 0;
+ BlueNRGGap::getInstance().Process();
HCI_Process();
}
-#endif
/* set BLE Version string */
void setVersionString(uint8_t hwVersion, uint16_t fwVersion)
@@ -643,4 +640,4 @@
#ifdef __cplusplus
}
-#endif
+#endif
\ No newline at end of file
--- a/source/platform/stm32_bluenrg_ble.cpp Thu Sep 15 10:51:17 2016 +0100
+++ b/source/platform/stm32_bluenrg_ble.cpp Thu Sep 15 10:51:26 2016 +0100
@@ -172,20 +172,12 @@
bluenrgDeviceInstance.enable_irq();
}
-#ifdef AST_FOR_MBED_OS
-/**
- * Call BTLE callback handler.
- * @param None
- * @retval None
- */
-void Call_BTLE_Handler(void)
-{
- if(!btle_handler_pending) {
- btle_handler_pending = 1;
- minar::Scheduler::postCallback(btle_handler);
- }
+void signalEventsToProcess(void) {
+ if(btle_handler_pending == 0) {
+ btle_handler_pending = 1;
+ bluenrgDeviceInstance.signalEventsToProcess(BLE::DEFAULT_INSTANCE);
+ }
}
-#endif
/**
* @brief Disable SPI IRQ.
@@ -224,4 +216,4 @@
// End of C function wrappers
////////////////////////////////////////
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
\ No newline at end of file
--- a/x-nucleo-idb0xa1/BlueNRGDevice.h Thu Sep 15 10:51:17 2016 +0100
+++ b/x-nucleo-idb0xa1/BlueNRGDevice.h Thu Sep 15 10:51:26 2016 +0100
@@ -88,6 +88,8 @@
int32_t spiWrite(uint8_t* data1, uint8_t* data2, uint8_t Nb_bytes1, uint8_t Nb_bytes2);
void disable_irq();
void enable_irq();
+
+ virtual void processEvents();
private:
bool isInitialized;
@@ -102,4 +104,4 @@
SecurityManager *sm;
};
-#endif
+#endif
\ No newline at end of file
--- a/x-nucleo-idb0xa1/bluenrg-hci/hal.h Thu Sep 15 10:51:17 2016 +0100 +++ b/x-nucleo-idb0xa1/bluenrg-hci/hal.h Thu Sep 15 10:51:26 2016 +0100 @@ -98,14 +98,11 @@ */ void Disable_SPI_IRQ(void); -/** - * Call BTLE callback handler. - */ -void Call_BTLE_Handler(void); +void signalEventsToProcess(void); void Hal_Init_Timer(void); uint32_t Hal_Get_Timer_Value(void); void Hal_Start_Timer(uint32_t timeout); void Hal_Stop_Timer(void); -#endif /* __HAL_H__ */ +#endif /* __HAL_H__ */ \ No newline at end of file
--- a/x-nucleo-idb0xa1/platform/btle.h Thu Sep 15 10:51:17 2016 +0100
+++ b/x-nucleo-idb0xa1/platform/btle.h Thu Sep 15 10:51:26 2016 +0100
@@ -49,13 +49,12 @@
uint16_t scan_window,
uint8_t own_address_type);
-#ifdef AST_FOR_MBED_OS
+
extern int btle_handler_pending;
extern void btle_handler(void);
-#endif
#ifdef __cplusplus
}
#endif
-#endif
+#endif
\ No newline at end of file