Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Revision 1:7b8b65fd1d74, committed 2018-11-30
- Comitter:
- mcalzana
- Date:
- Fri Nov 30 12:26:58 2018 +0000
- Parent:
- 0:c544827b6b11
- Child:
- 2:59e9845ddbb6
- Commit message:
- Exercise 4
Changed in this revision
| source/main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/source/main.cpp Thu Nov 29 18:13:44 2018 +0000
+++ b/source/main.cpp Fri Nov 30 12:26:58 2018 +0000
@@ -20,7 +20,11 @@
#include "ble/DiscoveredCharacteristic.h"
#include "ble/DiscoveredService.h"
-DigitalOut alivenessLED(LED1, 1);
+DigitalOut led1(LED1);
+DigitalOut led2(LED2);
+DigitalOut led3(LED3);
+DigitalOut alivenessLED = led1;
+bool blinking = false;
static DiscoveredCharacteristic ledCharacteristic;
static bool triggerLedCharacteristic;
static const char PEER_NAME[] = "LED666";
@@ -30,7 +34,9 @@
static EventQueue eventQueue(/* event count */ 16 * EVENTS_EVENT_SIZE);
void periodicCallback(void) {
- alivenessLED = !alivenessLED; /* Do blinky on LED1 while we're waiting for BLE events */
+ if(blinking){
+ alivenessLED = !alivenessLED; /* Do blinky on LED1 while we're waiting for BLE events */
+ }
}
void advertisementCallback(const Gap::AdvertisementCallbackParams_t *params) {
@@ -48,20 +54,38 @@
const uint8_t type = params->advertisingData[i + 1];
const uint8_t* value = params->advertisingData + i + 2;
const uint8_t value_length = record_length - 1;
-
+ printf("device %d %s : distance: %d\n", i, (char*)*value, params->rssi);
if(type == GapAdvertisingData::COMPLETE_LOCAL_NAME) {
if ((value_length == sizeof(PEER_NAME)) && (memcmp(value, PEER_NAME, value_length) == 0)) {
- printf(
- "adv peerAddr[%02x %02x %02x %02x %02x %02x] rssi %d, isScanResponse %u, AdvertisementType %u\r\n",
- params->peerAddr[5], params->peerAddr[4], params->peerAddr[3], params->peerAddr[2],
- params->peerAddr[1], params->peerAddr[0], params->rssi, params->isScanResponse, params->type
- );
- BLE::Instance().gap().connect(params->peerAddr, Gap::ADDR_TYPE_RANDOM_STATIC, NULL, NULL);
+ uint8_t rssi = params->rssi;
+
+ if(rssi > -50){
+ printf("NEAR\n");
+ alivenessLED = led1;
+ }else if(rssi > -120){
+ printf("MEDIUM\n");
+ alivenessLED = led2;
+ }else{
+ printf("FAR\n");
+ alivenessLED = led3;
+ }
+ if(!blinking){
+ blinking = true;
+ }
+
+ // printf(
+// "adv peerAddr[%02x %02x %02x %02x %02x %02x] rssi %d, isScanResponse %u, AdvertisementType %u\r\n",
+// params->peerAddr[5], params->peerAddr[4], params->peerAddr[3], params->peerAddr[2],
+// params->peerAddr[1], params->peerAddr[0], params->rssi, params->isScanResponse, params->type
+// );
+// BLE::Instance().gap().connect(params->peerAddr, Gap::ADDR_TYPE_RANDOM_STATIC, NULL, NULL);
break;
}
}
i += record_length;
}
+ printf("END\n\n");
+
}
void serviceDiscoveryCallback(const DiscoveredService *service) {