aboutsummaryrefslogtreecommitdiff
path: root/apps/SoilMoisture.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'apps/SoilMoisture.cpp')
-rw-r--r--apps/SoilMoisture.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/apps/SoilMoisture.cpp b/apps/SoilMoisture.cpp
index 89c2fe5..d1d8b7c 100644
--- a/apps/SoilMoisture.cpp
+++ b/apps/SoilMoisture.cpp
@@ -62,10 +62,10 @@ ByteBuffer createSetUpdateInterval(uint8_t sensor, uint8_t interval_in_seconds)
write8(interval_in_seconds);
}
-SoilMoisture SoilMoisture::create(BluetoothGatt &gatt) {
- gatt.discoverServices();
+SoilMoisture SoilMoisture::create(shared_ptr<BluetoothGatt> gatt) {
+ gatt->discoverServices();
- auto service = gatt.findService(soil_moisture_service);
+ auto service = gatt->findService(soil_moisture_service);
if (!service) {
throw runtime_error("The device is missing the soil moisture service");
@@ -80,8 +80,8 @@ SoilMoisture SoilMoisture::create(BluetoothGatt &gatt) {
return SoilMoisture(gatt, *service, *c);
}
-SoilMoisture::SoilMoisture(BluetoothGatt &gatt, BluetoothGattService &s, BluetoothGattCharacteristic &c) :
- gatt(gatt), s(s), c(c) {
+SoilMoisture::SoilMoisture(shared_ptr<BluetoothGatt> gatt, BluetoothGattService &s, BluetoothGattCharacteristic &c) :
+ gatt(std::move(gatt)), s(s), c(c) {
}
ByteBuffer SoilMoisture::writeAndRead(ByteBuffer &requestBytes) {
@@ -89,9 +89,9 @@ ByteBuffer SoilMoisture::writeAndRead(ByteBuffer &requestBytes) {
uint8_t expectedCode = requestBytes.get8(0);
- gatt.writeValue(c, requestBytes);
+ gatt->writeValue(c, requestBytes);
- auto responseBytes = gatt.readValue(c);
+ auto responseBytes = gatt->readValue(c);
if (responseBytes.getSize() < 1) {
throw runtime_error("Unexpected number of bytes read: " + to_string(requestBytes.getSize()));