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.
EnvironmentalService.cpp@16:eed9a9ba319c, 2019-04-16 (annotated)
- Committer:
- loicguibert
- Date:
- Tue Apr 16 08:25:25 2019 +0000
- Revision:
- 16:eed9a9ba319c
- Parent:
- 15:aac1b3950a9e
- Child:
- 18:7002e66af2e5
tp.04 point 4 (almost done)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
loicguibert | 14:c5578b5edabe | 1 | #include "EnvironmentalService.h" |
loicguibert | 14:c5578b5edabe | 2 | |
loicguibert | 14:c5578b5edabe | 3 | #include "mbed.h" |
loicguibert | 14:c5578b5edabe | 4 | |
loicguibert | 14:c5578b5edabe | 5 | EnvironmentalService::EnvironmentalService(BLE& ble, Logger& logger) |
loicguibert | 14:c5578b5edabe | 6 | : m_ble(ble), |
loicguibert | 14:c5578b5edabe | 7 | m_serviceAdded(false), |
loicguibert | 15:aac1b3950a9e | 8 | m_pressureCharacteristic(GattCharacteristic::UUID_PRESSURE_CHAR, &m_pressure), |
loicguibert | 15:aac1b3950a9e | 9 | m_temperatureCharacteristic(GattCharacteristic::UUID_TEMPERATURE_CHAR, &m_temperature), |
loicguibert | 15:aac1b3950a9e | 10 | m_humidityCharacteristic(GattCharacteristic::UUID_HUMIDITY_CHAR, &m_humidity), |
loicguibert | 16:eed9a9ba319c | 11 | m_pressureTrendCharacteristic(0x2AA3, &m_pressureTrend), |
loicguibert | 14:c5578b5edabe | 12 | m_logger(logger) { |
loicguibert | 14:c5578b5edabe | 13 | } |
loicguibert | 14:c5578b5edabe | 14 | |
loicguibert | 14:c5578b5edabe | 15 | void EnvironmentalService::addServiceToGattServer(void) { |
loicguibert | 14:c5578b5edabe | 16 | // We should only ever need to add the information service once |
loicguibert | 14:c5578b5edabe | 17 | if (m_serviceAdded) { |
loicguibert | 14:c5578b5edabe | 18 | return; |
loicguibert | 14:c5578b5edabe | 19 | } |
loicguibert | 14:c5578b5edabe | 20 | |
loicguibert | 15:aac1b3950a9e | 21 | GattCharacteristic *charTable[] = { |
loicguibert | 15:aac1b3950a9e | 22 | &m_pressureCharacteristic, |
loicguibert | 15:aac1b3950a9e | 23 | &m_temperatureCharacteristic, |
loicguibert | 16:eed9a9ba319c | 24 | &m_humidityCharacteristic, |
loicguibert | 16:eed9a9ba319c | 25 | &m_pressureTrendCharacteristic |
loicguibert | 15:aac1b3950a9e | 26 | }; |
loicguibert | 14:c5578b5edabe | 27 | |
loicguibert | 15:aac1b3950a9e | 28 | GattService environmentalService(GattService::UUID_ENVIRONMENTAL_SERVICE, charTable, sizeof(charTable) / sizeof(GattCharacteristic *)); |
loicguibert | 15:aac1b3950a9e | 29 | m_ble.gattServer().addService(environmentalService); |
loicguibert | 14:c5578b5edabe | 30 | |
loicguibert | 14:c5578b5edabe | 31 | m_serviceAdded = true; |
loicguibert | 14:c5578b5edabe | 32 | |
loicguibert | 14:c5578b5edabe | 33 | m_logger.log("Environmental service added\r\n"); |
loicguibert | 14:c5578b5edabe | 34 | } |
loicguibert | 14:c5578b5edabe | 35 | |
loicguibert | 16:eed9a9ba319c | 36 | void EnvironmentalService::updateEnvironmentalService(PressureType_t newPressure, TemperatureType_t newTemperature, HumidityType_t newHumidity, uint32_t newPressureTrend) { |
loicguibert | 15:aac1b3950a9e | 37 | m_pressure = newPressure; |
loicguibert | 15:aac1b3950a9e | 38 | m_temperature = newTemperature; |
loicguibert | 16:eed9a9ba319c | 39 | m_humidity = newHumidity; |
loicguibert | 16:eed9a9ba319c | 40 | if (newPressureTrend < newPressure) { |
loicguibert | 16:eed9a9ba319c | 41 | m_pressureTrend = RISING_CONTINUOUSLY; |
loicguibert | 16:eed9a9ba319c | 42 | } else if (newPressureTrend == newPressure) { |
loicguibert | 16:eed9a9ba319c | 43 | m_pressureTrend = STEADY; |
loicguibert | 16:eed9a9ba319c | 44 | } else { |
loicguibert | 16:eed9a9ba319c | 45 | m_pressureTrend = FALLING_CONTINUOUSLY; |
loicguibert | 16:eed9a9ba319c | 46 | } |
loicguibert | 15:aac1b3950a9e | 47 | m_ble.gattServer().write(m_pressureCharacteristic.getValueHandle(), (uint8_t *) &m_pressure, sizeof(PressureType_t)); |
loicguibert | 15:aac1b3950a9e | 48 | m_ble.gattServer().write(m_temperatureCharacteristic.getValueHandle(), (uint8_t *) &m_temperature, sizeof(m_temperature)); |
loicguibert | 15:aac1b3950a9e | 49 | m_ble.gattServer().write(m_humidityCharacteristic.getValueHandle(), (uint8_t *) &m_humidity, sizeof(m_humidity)); |
loicguibert | 16:eed9a9ba319c | 50 | m_ble.gattServer().write(m_pressureTrendCharacteristic.getValueHandle(), (uint8_t *) &m_pressureTrend, sizeof(m_pressureTrend)); |
loicguibert | 14:c5578b5edabe | 51 | } |