diff options
author | dakkar <dakkar@thenautilus.net> | 2018-03-31 17:08:42 +0100 |
---|---|---|
committer | dakkar <dakkar@thenautilus.net> | 2019-03-20 12:44:52 +0000 |
commit | f3c110e8c370c8e64ac767b912fceaff97d66e7d (patch) | |
tree | 86ed940114a9cc580a7759daf453cc54659109f4 /src/Server.cpp | |
parent | general autotools bump (diff) | |
download | gobbledegook-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.cpp | 25 |
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); }) |