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@19:e056f98192f2, 2019-04-17 (annotated)
- Committer:
- spadaaa
- Date:
- Wed Apr 17 12:58:36 2019 +0000
- Revision:
- 19:e056f98192f2
- Parent:
- 18:7002e66af2e5
- Child:
- 20:dac20b06d457
Tp04 fonctionnel :)
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 | |
| spadaaa | 19:e056f98192f2 | 5 | #include <stdio.h> |
| spadaaa | 19:e056f98192f2 | 6 | |
| loicguibert | 14:c5578b5edabe | 7 | EnvironmentalService::EnvironmentalService(BLE& ble, Logger& logger) |
| loicguibert | 14:c5578b5edabe | 8 | : m_ble(ble), |
| loicguibert | 14:c5578b5edabe | 9 | m_serviceAdded(false), |
| loicguibert | 15:aac1b3950a9e | 10 | m_pressureCharacteristic(GattCharacteristic::UUID_PRESSURE_CHAR, &m_pressure), |
| loicguibert | 15:aac1b3950a9e | 11 | m_temperatureCharacteristic(GattCharacteristic::UUID_TEMPERATURE_CHAR, &m_temperature), |
| loicguibert | 15:aac1b3950a9e | 12 | m_humidityCharacteristic(GattCharacteristic::UUID_HUMIDITY_CHAR, &m_humidity), |
| loicguibert | 16:eed9a9ba319c | 13 | m_pressureTrendCharacteristic(0x2AA3, &m_pressureTrend), |
| loicguibert | 14:c5578b5edabe | 14 | m_logger(logger) { |
| loicguibert | 14:c5578b5edabe | 15 | } |
| loicguibert | 14:c5578b5edabe | 16 | |
| loicguibert | 14:c5578b5edabe | 17 | void EnvironmentalService::addServiceToGattServer(void) { |
| loicguibert | 14:c5578b5edabe | 18 | // We should only ever need to add the information service once |
| loicguibert | 14:c5578b5edabe | 19 | if (m_serviceAdded) { |
| loicguibert | 14:c5578b5edabe | 20 | return; |
| loicguibert | 14:c5578b5edabe | 21 | } |
| loicguibert | 14:c5578b5edabe | 22 | |
| loicguibert | 15:aac1b3950a9e | 23 | GattCharacteristic *charTable[] = { |
| loicguibert | 15:aac1b3950a9e | 24 | &m_pressureCharacteristic, |
| loicguibert | 15:aac1b3950a9e | 25 | &m_temperatureCharacteristic, |
| loicguibert | 16:eed9a9ba319c | 26 | &m_humidityCharacteristic, |
| loicguibert | 16:eed9a9ba319c | 27 | &m_pressureTrendCharacteristic |
| loicguibert | 15:aac1b3950a9e | 28 | }; |
| loicguibert | 14:c5578b5edabe | 29 | |
| loicguibert | 15:aac1b3950a9e | 30 | GattService environmentalService(GattService::UUID_ENVIRONMENTAL_SERVICE, charTable, sizeof(charTable) / sizeof(GattCharacteristic *)); |
| loicguibert | 15:aac1b3950a9e | 31 | m_ble.gattServer().addService(environmentalService); |
| loicguibert | 14:c5578b5edabe | 32 | |
| loicguibert | 14:c5578b5edabe | 33 | m_serviceAdded = true; |
| loicguibert | 14:c5578b5edabe | 34 | |
| loicguibert | 14:c5578b5edabe | 35 | m_logger.log("Environmental service added\r\n"); |
| loicguibert | 14:c5578b5edabe | 36 | } |
| loicguibert | 14:c5578b5edabe | 37 | |
| loicguibert | 16:eed9a9ba319c | 38 | void EnvironmentalService::updateEnvironmentalService(PressureType_t newPressure, TemperatureType_t newTemperature, HumidityType_t newHumidity, uint32_t newPressureTrend) { |
| loicguibert | 15:aac1b3950a9e | 39 | m_pressure = newPressure; |
| loicguibert | 15:aac1b3950a9e | 40 | m_temperature = newTemperature; |
| loicguibert | 16:eed9a9ba319c | 41 | m_humidity = newHumidity; |
| loicguibert | 18:7002e66af2e5 | 42 | |
| loicguibert | 18:7002e66af2e5 | 43 | if (newPressure == newPressureTrend) m_pressureTrend = STEADY; |
| loicguibert | 18:7002e66af2e5 | 44 | if (newPressure > newPressureTrend) m_pressureTrend = RISING_CONTINUOUSLY; |
| loicguibert | 18:7002e66af2e5 | 45 | if (newPressure < newPressureTrend) m_pressureTrend = FALLING_CONTINUOUSLY; |
| spadaaa | 19:e056f98192f2 | 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 | } |