aboutsummaryrefslogtreecommitdiff
path: root/src/Server.cpp
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2018-03-31 17:08:42 +0100
committerdakkar <dakkar@thenautilus.net>2019-03-20 12:44:52 +0000
commitf3c110e8c370c8e64ac767b912fceaff97d66e7d (patch)
tree86ed940114a9cc580a7759daf453cc54659109f4 /src/Server.cpp
parentgeneral autotools bump (diff)
downloadgobbledegook-f3c110e8c370c8e64ac767b912fceaff97d66e7d.tar.gz
gobbledegook-f3c110e8c370c8e64ac767b912fceaff97d66e7d.tar.bz2
gobbledegook-f3c110e8c370c8e64ac767b912fceaff97d66e7d.zip
closer to what I want
* setting the temperature just prints it out * asking for the next time to sample returns a constant (later, it will read from stdin) with this, I can wrap this program with `IPC::Run` or similar, and write all the logic in Perl! the esp32 will send its own device id with the temperature, and we can safely assume that the request for "next time" will come from the same device
Diffstat (limited to 'src/Server.cpp')
-rw-r--r--src/Server.cpp25
1 files changed, 9 insertions, 16 deletions
diff --git a/src/Server.cpp b/src/Server.cpp
index 7e7e0f8..932f1ec 100644
--- a/src/Server.cpp
+++ b/src/Server.cpp
@@ -295,20 +295,20 @@ Server::Server(const std::string &serviceName, const std::string &advertisingNam
.gattServiceBegin("thermo", "11111111-2222-3333-4444-000000000000")
// Characteristic: String value
- .gattCharacteristicBegin("room1", "11111111-2222-3333-4444-000000000001", {"read", "write"})
+ .gattCharacteristicBegin("temperature", "11111111-2222-3333-4444-000000000001", {"read","write"})
// Standard characteristic "ReadValue" method call
.onReadValue(CHARACTERISTIC_METHOD_CALLBACK_LAMBDA
{
- const char *temperature = self.getDataPointer<const char*>("room-1", "");
- self.methodReturnValue(pInvocation, temperature, true);
+ const char *fake_temp = "0";
+ self.methodReturnValue(pInvocation, fake_temp, true);
})
// Standard characteristic "WriteValue" method call
.onWriteValue(CHARACTERISTIC_METHOD_CALLBACK_LAMBDA
{
GVariant *pValue = g_variant_get_child_value(pParameters, 0);
- self.setDataPointer("room-1", Utils::stringFromGVariantByteArray(pValue).c_str());
+ self.setDataPointer("temperature", Utils::stringFromGVariantByteArray(pValue).c_str());
})
// GATT Descriptor: Characteristic User Description (0x2901)
@@ -319,7 +319,7 @@ Server::Server(const std::string &serviceName, const std::string &advertisingNam
// Standard descriptor "ReadValue" method call
.onReadValue(DESCRIPTOR_METHOD_CALLBACK_LAMBDA
{
- const char *pDescription = "temperature in room 1";
+ const char *pDescription = "temperature in a room";
self.methodReturnValue(pInvocation, pDescription, true);
})
@@ -328,20 +328,13 @@ Server::Server(const std::string &serviceName, const std::string &advertisingNam
.gattCharacteristicEnd()
// Characteristic: String value
- .gattCharacteristicBegin("room2", "11111111-2222-3333-4444-000000000002", {"read", "write"})
+ .gattCharacteristicBegin("time_to_next_reading", "11111111-2222-3333-4444-000000000002", {"read"})
// Standard characteristic "ReadValue" method call
.onReadValue(CHARACTERISTIC_METHOD_CALLBACK_LAMBDA
{
- const char *temperature = self.getDataPointer<const char*>("room-2", "");
- self.methodReturnValue(pInvocation, temperature, true);
- })
-
- // Standard characteristic "WriteValue" method call
- .onWriteValue(CHARACTERISTIC_METHOD_CALLBACK_LAMBDA
- {
- GVariant *pValue = g_variant_get_child_value(pParameters, 0);
- self.setDataPointer("room-2", Utils::stringFromGVariantByteArray(pValue).c_str());
+ const char *time = self.getDataPointer<const char*>("time-to-next-sample", "");
+ self.methodReturnValue(pInvocation, time, true);
})
// GATT Descriptor: Characteristic User Description (0x2901)
@@ -352,7 +345,7 @@ Server::Server(const std::string &serviceName, const std::string &advertisingNam
// Standard descriptor "ReadValue" method call
.onReadValue(DESCRIPTOR_METHOD_CALLBACK_LAMBDA
{
- const char *pDescription = "temperature in room 2";
+ const char *pDescription = "time (in seconds) to wait before sending the next temperature reading";
self.methodReturnValue(pInvocation, pDescription, true);
})