This is mandatory
Dependencies: BLE_API mbed nRF51822 SHT21_ncleee
Diff: main.cpp
- Revision:
- 2:654ee4b3950f
- Parent:
- 1:f7fe82a00d4e
- Child:
- 3:b6d2c5195055
--- a/main.cpp Mon Nov 09 20:58:25 2015 +0000 +++ b/main.cpp Mon Nov 09 23:09:16 2015 +0000 @@ -16,13 +16,19 @@ #include "mbed.h" #include "BLE.h" -#include "EnvironmentalService.h" +#include "battery.h" +#include "WeatherService.h" +#include "BatteryService.h" BLE ble; DigitalOut led1(LED1); +AnalogIn batteryPin(p1); const static char DEVICE_NAME[] = "Weather Station"; -static const uint16_t uuid16_list[] = {GattService::UUID_ENVIRONMENTAL_SERVICE}; +static const uint16_t uuid16_list[] = { + GattService::UUID_ENVIRONMENTAL_SERVICE, + GattService::UUID_BATTERY_SERVICE +}; static volatile bool triggerSensorPolling = false; /* Restart Advertising on disconnection*/ @@ -33,7 +39,7 @@ void blink(void) { - led1 = !led1; /* Do blinky on LED1 while we're waiting for BLE events */ +// led1 = !led1; /* Do blinky on LED1 while we're waiting for BLE events */ triggerSensorPolling = true; } @@ -46,14 +52,16 @@ ble.init(); ble.gap().onDisconnection(disconnectionCallback); - /* Setup primary service. */ + /* Setup weather service. */ float currentTemperature = 42.22; - EnvironmentalService envService(ble); + WeatherService weatherService(ble); + BatteryService batteryService(ble, 0); + Battery battery(BATTERY_PIN); /* setup advertising */ ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED | GapAdvertisingData::LE_GENERAL_DISCOVERABLE); ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LIST_16BIT_SERVICE_IDS, (uint8_t *)uuid16_list, sizeof(uuid16_list)); - ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::THERMOMETER_EAR); + ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::UNKNOWN); ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LOCAL_NAME, (uint8_t *)DEVICE_NAME, sizeof(DEVICE_NAME)); ble.gap().setAdvertisingType(GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED); ble.gap().setAdvertisingInterval(1000); /* 1000ms */ @@ -70,8 +78,11 @@ // } /* In our case, we simply update the dummy temperature measurement. */ -// currentTemperature += 0.1; - envService.updateTemperature(currentTemperature); + currentTemperature += 0.1; + weatherService.updateTemperature(currentTemperature); + weatherService.updatePressure(0); + weatherService.updateHumidity(0); + batteryService.updateBatteryLevel(battery.read()); } else { ble.waitForEvent(); }