Code supports writing to the SD card as well as working with the Volckens group smartphone apps for the mbed HRM1017
Dependencies: ADS1115 BLE_API BME280 Calibration CronoDot EEPROM LSM303 MCP40D17 NCP5623BMUTBG SDFileSystem SI1145 STC3100 mbed nRF51822
Fork of UPAS_BLE_and_USB by
Diff: UPAS_Service.h
- Revision:
- 94:c57720890e76
- Child:
- 96:03106adb45c9
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/UPAS_Service.h Thu Dec 10 23:32:24 2015 +0000 @@ -0,0 +1,49 @@ +//CODE BY JAKE LORD +//ALL RIGHTS RESERVED BY VOLCKENS GROUP, FORT COLLINS CO + +#ifndef __BLE_UPAS_SERVICE_H__ +#define __BLE_UPAS_SERVICE_H__ + +class UPAS_Service { +public: + //All Characteristics shall have a read/write counterpart protocol. This should prevent corruption of data. + const static uint16_t UPAS_SERVICE_UUID = 0xA000; //UUID of Service. + + const static uint16_t RTC_CHARACTERISTIC_UUID = 0xA002; //UUID for characteristic to write the RTC to + GattCharacteristic rtcCharacteristic; + + const static uint16_t SAMPLETIME_CHARACTERISTIC_UUID = 0xA003; //UUID of variable that app will read from + GattCharacteristic sampleTimeCharacteristic; + + const static uint16_t SUBJECTLABEL_CHARACTERISTIC_UUID = 0xA004; //UUID of variable that app will read from + GattCharacteristic subjectLabelCharacteristic; + + const static uint16_t RUNREADY_CHARACTERISTIC_UUID = 0xA005; //UUID of variable that app will read from + GattCharacteristic runReadyCharacteristic; + + const static uint16_t RUNMODE_CHARACTERISTIC_UUID = 0xA006; //UUID of variable that app will read from + GattCharacteristic runModeCharacteristic; + + + UPAS_Service(BLEDevice &_ble, bool placeholder, uint8_t *rtc, uint8_t *sampleTime, uint8_t *subjectLabel) : + + rtcCharacteristic(RTC_CHARACTERISTIC_UUID, rtc,6,20, GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ | GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE | GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY ), + sampleTimeCharacteristic(SAMPLETIME_CHARACTERISTIC_UUID, sampleTime,12,20,GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ | GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE | GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY), + subjectLabelCharacteristic(SUBJECTLABEL_CHARACTERISTIC_UUID, subjectLabel,15,20,GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ | GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE | GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY), + runReadyCharacteristic(RUNREADY_CHARACTERISTIC_UUID,0,0,20,GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE | GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY), + runModeCharacteristic(RUNMODE_CHARACTERISTIC_UUID,0,0,20,GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE | GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY), + ble(_ble) + { + + GattCharacteristic *charTable[] = {&rtcCharacteristic, &sampleTimeCharacteristic, &subjectLabelCharacteristic, &runReadyCharacteristic, &runModeCharacteristic}; //Set up characteristics to be broadcasted with the UPAS service + GattService upasService(UPAS_Service::UPAS_SERVICE_UUID, charTable, sizeof(charTable) / sizeof(GattCharacteristic *)); //Finally, construct the service + ble.addService(upasService); + } + +private: + BLEDevice &ble; + + // ReadOnlyGattCharacteristic<bool> placeholderState; +}; + +#endif /* #ifndef __BLE_UPAS_SERVICE_H__ */