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.
Fork of BLE_API by
Diff: main.cpp
- Revision:
- 16:542a9db01350
- Parent:
- 15:327d7329072c
- Child:
- 23:f19c60478e1b
--- a/main.cpp Wed Dec 18 12:07:38 2013 +0000
+++ b/main.cpp Wed Dec 18 18:02:45 2013 +0000
@@ -1,89 +1,38 @@
#include "mbed.h"
-
#include "uuid.h"
-#include "GattService.h"
-#include "GattCharacteristic.h"
#include "hw/nrf51822.h"
DigitalOut myled ( LED1 );
-/* Radio HW abstraction layer */
+/* Radio HW */
nRF51822 radio;
-/* Heart Rate Monitor Service */
-/* See --> https://developer.bluetooth.org/gatt/services/Pages/ServiceViewer.aspx?u=org.bluetooth.service.heart_rate.xml */
-GattService hrmService ( 0x180D );
-GattCharacteristic hrmRate ( 0x2A37, 2, 3, BLE_GATT_CHAR_PROPERTIES_NOTIFY );
-GattCharacteristic hrmLocation ( 0x2A39, 1, 1, BLE_GATT_CHAR_PROPERTIES_READ );
-
-/* GAP Advertising Example (iBeacon) */
-GapAdvertisingParams advParams ( GapAdvertisingParams::ADV_NON_CONNECTABLE_UNDIRECTED );
-GapAdvertisingData advData;
-GapAdvertisingData scanResponse;
-
-uint8_t iBeaconPayload[25] = { 0x4C, 0x00, 0x02, 0x15, 0xE2, 0x0A, 0x39, 0xF4, 0x73, 0xF5, 0x4B, 0xC4, 0xA1, 0x2F, 0x17, 0xD1, 0xAD, 0x07, 0xA9, 0x61, 0x00, 0x00, 0x00, 0x00, 0xC8 };
-
void startBeacon(void)
{
+ GapAdvertisingParams advParams ( GapAdvertisingParams::ADV_NON_CONNECTABLE_UNDIRECTED );
+ GapAdvertisingData advData;
+ GapAdvertisingData scanResponse;
+
+ uint8_t iBeaconPayload[25] = { 0x4C, 0x00, 0x02, 0x15, 0xE2, 0x0A, 0x39, 0xF4, 0x73, 0xF5, 0x4B, 0xC4, 0xA1, 0x2F, 0x17, 0xD1, 0xAD, 0x07, 0xA9, 0x61, 0x00, 0x00, 0x00, 0x00, 0xC8 };
+
+ /* ToDo: Check error conditions in a shared ASSERT with debug output via printf */
ble_error_t error;
/* iBeacon includes the FLAG and MSD fields */
- advData.addFlags(GapAdvertisingData::BREDR_NOT_SUPPORTED);
- advData.addData(GapAdvertisingData::MANUFACTURER_SPECIFIC_DATA, iBeaconPayload, 25);
-
+ error = advData.addFlags(GapAdvertisingData::BREDR_NOT_SUPPORTED);
+ error = advData.addData(GapAdvertisingData::MANUFACTURER_SPECIFIC_DATA, iBeaconPayload, 25);
+
error = radio.reset();
error = radio.setAdvertising(advParams, advData, scanResponse);
error = radio.start();
}
-void startHRM(void)
-{
- uint8_t hrmCounter = 100;
-
- /* Add the heart rate and sensor location chars to the HRM service */
- hrmService.addCharacteristic(hrmRate);
- hrmService.addCharacteristic(hrmLocation);
-
- /* Reset the BLE hardware to make sure we get a clean start */
- wait(2);
- radio.reset();
-
- /* Add the services to the radio HAL */
- radio.addService(hrmService);
-
- /* Start the services so that we can start pushing data out */
- radio.start();
-
- /* Set the heart rate monitor location (one time only) */
- /* See --> https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.body_sensor_location.xml */
- uint8_t location = 0x01; /* Chest */
- radio.writeCharacteristic(hrmService, hrmLocation, (uint8_t*)&location, sizeof(location));
-
- while(1)
- {
- myled = 1;
- wait(0.1);
- myled = 0;
- wait(0.1);
-
- /* Update the HRM measurement */
- /* First byte = 8-bit values, no extra info, Second byte = uint8_t HRM value */
- /* See --> https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.heart_rate_measurement.xml */
- hrmCounter++;
- if (hrmCounter == 175) hrmCounter = 100;
- uint8_t bpm[2] = { 0x00, hrmCounter };
- radio.writeCharacteristic(hrmService, hrmRate, bpm, 2);
- }
-}
-
int main()
{
/* Give the radio some time to boot up and settle */
wait(2);
- /* Only use one of these two options! */
startBeacon();
- // startHRM();
while(1);
}
