yes Spada / Mbed OS programme
Revision:
16:eed9a9ba319c
Parent:
15:aac1b3950a9e
Child:
18:7002e66af2e5
--- a/EnvironmentalService.cpp	Tue Apr 16 07:22:47 2019 +0000
+++ b/EnvironmentalService.cpp	Tue Apr 16 08:25:25 2019 +0000
@@ -8,6 +8,7 @@
   m_pressureCharacteristic(GattCharacteristic::UUID_PRESSURE_CHAR, &m_pressure),
   m_temperatureCharacteristic(GattCharacteristic::UUID_TEMPERATURE_CHAR, &m_temperature),
   m_humidityCharacteristic(GattCharacteristic::UUID_HUMIDITY_CHAR, &m_humidity),
+  m_pressureTrendCharacteristic(0x2AA3, &m_pressureTrend),
   m_logger(logger) {
 }
 
@@ -20,7 +21,8 @@
   GattCharacteristic *charTable[] = {
                                       &m_pressureCharacteristic,
                                       &m_temperatureCharacteristic,
-                                      &m_humidityCharacteristic
+                                      &m_humidityCharacteristic,
+                                      &m_pressureTrendCharacteristic
                                      };
                                       
   GattService environmentalService(GattService::UUID_ENVIRONMENTAL_SERVICE, charTable, sizeof(charTable) / sizeof(GattCharacteristic *));
@@ -31,11 +33,19 @@
   m_logger.log("Environmental service added\r\n");
 }
 
-void EnvironmentalService::updateEnvironmentalService(PressureType_t newPressure, TemperatureType_t newTemperature, HumidityType_t newHumidity) {
+void EnvironmentalService::updateEnvironmentalService(PressureType_t newPressure, TemperatureType_t newTemperature, HumidityType_t newHumidity, uint32_t newPressureTrend) {
   m_pressure = newPressure;
   m_temperature = newTemperature;
-  m_humidity = newHumidity;  
+  m_humidity = newHumidity;
+  if (newPressureTrend < newPressure) {
+      m_pressureTrend = RISING_CONTINUOUSLY;
+  } else if (newPressureTrend == newPressure) {
+      m_pressureTrend = STEADY;
+  } else {
+      m_pressureTrend = FALLING_CONTINUOUSLY;
+  }
   m_ble.gattServer().write(m_pressureCharacteristic.getValueHandle(), (uint8_t *) &m_pressure, sizeof(PressureType_t));
   m_ble.gattServer().write(m_temperatureCharacteristic.getValueHandle(), (uint8_t *) &m_temperature, sizeof(m_temperature));
   m_ble.gattServer().write(m_humidityCharacteristic.getValueHandle(), (uint8_t *) &m_humidity, sizeof(m_humidity));
+  m_ble.gattServer().write(m_pressureTrendCharacteristic.getValueHandle(), (uint8_t *) &m_pressureTrend, sizeof(m_pressureTrend));
 }