@@ -47,9 +47,9 @@ class BLEServiceMonitoring : public interface::BLEService
4747
4848 auto isScreensaverEnable () const -> bool { return screensaver_enable; }
4949
50- void onTemperatureRequested (const std::function<void ()> &callback)
50+ void onTemperatureHumidityRequested (const std::function<void ()> &callback)
5151 {
52- _on_temperature_requested_callback = callback;
52+ _on_temperature_humidity_requested_callback = callback;
5353 }
5454
5555 void onDataReceived (const data_received_handle_t ¶ms) final
@@ -75,9 +75,10 @@ class BLEServiceMonitoring : public interface::BLEService
7575
7676 void onDataRequested (const data_requested_handle_t ¶ms) final
7777 {
78- if (params.handle == _temperature_characteristic.getValueHandle () &&
79- _on_temperature_requested_callback != nullptr ) {
80- _on_temperature_requested_callback ();
78+ if ((params.handle == _temperature_characteristic.getValueHandle () ||
79+ params.handle == _humidity_characteristic.getValueHandle ()) &&
80+ _on_temperature_humidity_requested_callback != nullptr ) {
81+ _on_temperature_humidity_requested_callback ();
8182 }
8283 }
8384
@@ -91,13 +92,14 @@ class BLEServiceMonitoring : public interface::BLEService
9192 ReadOnlyArrayGattCharacteristic<uint8_t , 4 > _temperature_characteristic {
9293 service::monitoring::characteristic::temperature, temperature.begin (),
9394 GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY};
94- std::function<void ()> _on_temperature_requested_callback {};
9595
9696 std::array<uint8_t , 4 > humidity {};
9797 ReadOnlyArrayGattCharacteristic<uint8_t , 4 > _humidity_characteristic {
9898 service::monitoring::characteristic::humidity, humidity.begin (),
9999 GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY};
100100
101+ std::function<void ()> _on_temperature_humidity_requested_callback {};
102+
101103 bool screensaver_enable {true };
102104 WriteOnlyGattCharacteristic<bool > screensaver_enable_characteristic {
103105 service::monitoring::characteristic::screensaver_enable, &screensaver_enable};
0 commit comments