project
Fork of X_NUCLEO_IDB0XA1 by
Diff: source/BlueNRGGap.cpp
- Revision:
- 186:7e3a549b9678
- Parent:
- 182:e7cff2f17ef9
- Parent:
- 181:749071129d2e
- Child:
- 187:2e517d3ddd71
--- a/source/BlueNRGGap.cpp Thu Nov 19 14:23:44 2015 +0100 +++ b/source/BlueNRGGap.cpp Thu Nov 19 14:51:40 2015 +0100 @@ -998,9 +998,30 @@ static void radioScanning(void) { + ble_error_t ret; + GapScanningParams* scanningParams = BlueNRGGap::getInstance().getScanningParams(); - BlueNRGGap::getInstance().startRadioScan(*scanningParams); + ret = BlueNRGGap::getInstance().startRadioScan(*scanningParams); + + // On error, reschedule myself + // NOTE: this workaround causes a potential risk for an endless loop!!! + if(ret != BLE_ERROR_NONE) { + minar::Scheduler::postCallback(radioScanning).delay(minar::milliseconds(100)); + } +} + +static void makeConnection(void) +{ + ble_error_t ret; + + ret = BlueNRGGap::getInstance().createConnection(); + + // On error, reschedule myself + // NOTE: this workaround causes a potential risk for an endless loop!!! + if(ret != BLE_ERROR_NONE) { + minar::Scheduler::postCallback(makeConnection).delay(minar::milliseconds(100)); + } } static void makeConnection(void) @@ -1202,7 +1223,7 @@ (void)connectionParams; (void)scanParams; - // Save the peer address + // Save the peer address for(int i=0; i<BDADDR_SIZE; i++) { _peerAddr[i] = peerAddr[i]; }