
This is an example of BLE GATT Client, which receives broadcast data from BLE_Server_BME280 ( a GATT server) , then transfers values up to mbed Device Connector (cloud).
Please refer details about BLEClient_mbedDevConn below. https://github.com/soramame21/BLEClient_mbedDevConn
The location of required BLE GATT server, BLE_Server_BME280, is at here. https://developer.mbed.org/users/edamame22/code/BLE_Server_BME280/
Revision 1:8950e6a891df, committed 2017-04-26
- Comitter:
- edamame22
- Date:
- Wed Apr 26 11:20:41 2017 +0900
- Parent:
- 0:29983394c6b6
- Child:
- 2:b894b3508057
- Commit message:
- Fix a momery overrun bug, moved global variables to local func
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Thu Apr 13 04:48:11 2017 +0000 +++ b/main.cpp Wed Apr 26 11:20:41 2017 +0900 @@ -139,9 +139,7 @@ static DiscoveredCharacteristic bme280Characteristic[HUMIDITY+1]; static bool triggerLedCharacteristic; static const char PEER_NAME[] = "BME280"; -uint16_t payload_length = 0; -uint8_t dataforClient[] = {0}; -uint32_t final_dataforClient = 0; + static EventQueue eventQueue( /* event count */ 16 * /* event size */ 32 @@ -250,14 +248,20 @@ //ASHOK's triggerRead function void triggerRead(const GattReadCallbackParams *response) { - int k; + int k=0; + uint8_t dataforClient[4] = {0,0,0,0}; + uint32_t final_dataforClient = 0; for(int j=0; j<HUMIDITY+1; j++) { if (is_active[j]) { if (response->handle == bme280Characteristic[j].getValueHandle()){ - payload_length = response-> len; + if ( response-> len > 4) { + printf("response-> len is wrong :%d, %s, skipping read", response-> len, dbg_CharType[j]); + break; + } for(int i=0; i< response-> len; i++) { dataforClient[i] = response -> data[i]; } + printf("%d B, ", response->len); //BLE packet contains 4 bytes of 8 bit int's each. Combine all of them to form a single 32-bit int. final_dataforClient = ((uint32_t)dataforClient[3]<<24) | (dataforClient[2]<<16) | (dataforClient[1] << 8) | (dataforClient[0]); //Ren debug