From fef6659af0b039905d72709be10277a7d99d3aed Mon Sep 17 00:00:00 2001 From: Olivier Martin Date: Sun, 14 Jul 2019 15:24:50 +0200 Subject: [PATCH] gattlib-py: Exposed 'Write-without-response' --- gattlib-py/gattlib/__init__.py | 4 ++++ gattlib-py/gattlib/gatt.py | 7 +++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/gattlib-py/gattlib/__init__.py b/gattlib-py/gattlib/__init__.py index 9baeeb0..9d5331d 100644 --- a/gattlib-py/gattlib/__init__.py +++ b/gattlib-py/gattlib/__init__.py @@ -78,6 +78,10 @@ gattlib_read_char_by_uuid.argtypes = [c_void_p, POINTER(GattlibUuid), POINTER(c_ gattlib_write_char_by_uuid = gattlib.gattlib_write_char_by_uuid gattlib_write_char_by_uuid.argtypes = [c_void_p, POINTER(GattlibUuid), c_void_p, c_size_t] +# int gattlib_write_without_response_char_by_uuid(gatt_connection_t* connection, uuid_t* uuid, const void* buffer, size_t buffer_len) +gattlib_write_without_response_char_by_uuid = gattlib.gattlib_write_without_response_char_by_uuid +gattlib_write_without_response_char_by_uuid.argtypes = [c_void_p, POINTER(GattlibUuid), c_void_p, c_size_t] + # int gattlib_write_char_by_uuid_stream_open(gatt_connection_t* connection, uuid_t* uuid, gatt_stream_t **stream, uint16_t *mtu) gattlib_write_char_by_uuid_stream_open = gattlib.gattlib_write_char_by_uuid_stream_open gattlib_write_char_by_uuid_stream_open.argtypes = [c_void_p, POINTER(GattlibUuid), POINTER(c_void_p), POINTER(c_uint16)] diff --git a/gattlib-py/gattlib/gatt.py b/gattlib-py/gattlib/gatt.py index ca3e3bd..ed5deef 100644 --- a/gattlib-py/gattlib/gatt.py +++ b/gattlib-py/gattlib/gatt.py @@ -83,7 +83,7 @@ class GattCharacteristic(): return value - def write(self, data): + def write(self, data, without_response=False): if not isinstance(data, bytes) and not isinstance(data, bytearray): raise TypeError("Data must be of bytes type to know its size.") @@ -91,7 +91,10 @@ class GattCharacteristic(): buffer = data buffer_len = len(data) - ret = gattlib_write_char_by_uuid(self.connection, self._gattlib_characteristic.uuid, buffer_type.from_buffer_copy(buffer), buffer_len) + if without_response: + ret = gattlib_write_without_response_char_by_uuid(self.connection, self._gattlib_characteristic.uuid, buffer_type.from_buffer_copy(buffer), buffer_len) + else: + ret = gattlib_write_char_by_uuid(self.connection, self._gattlib_characteristic.uuid, buffer_type.from_buffer_copy(buffer), buffer_len) handle_return(ret) def stream_open(self):