From babf98539e8f1cee5d8e22b32d03f21d70a52302 Mon Sep 17 00:00:00 2001 From: Magnus Lundin Date: Fri, 11 Aug 2017 11:21:48 +0200 Subject: [PATCH 1/2] Dont echo Writes to Characteristic with BLEWriteWithoutResponse --- src/BLECharacteristic.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/BLECharacteristic.cpp b/src/BLECharacteristic.cpp index c97927c..60b71ed 100644 --- a/src/BLECharacteristic.cpp +++ b/src/BLECharacteristic.cpp @@ -107,7 +107,13 @@ bool BLECharacteristic::written() { } void BLECharacteristic::setValue(BLECentral& central, const unsigned char value[], unsigned char length) { - this->setValue(value, length); + if ( _properties & BLEWriteWithoutResponse ) { + this->_valueLength = min(length, this->_valueSize); + memcpy(this->_value, value, this->_valueLength); + } + else { + this->setValue(value, length); + } this->_written = true; From 3e80f487662abe4474aa1cd663b8cf3554d694c8 Mon Sep 17 00:00:00 2001 From: Magnus Lundin Date: Tue, 15 Aug 2017 10:21:43 +0200 Subject: [PATCH 2/2] Fix BLESerial::peek() reading from wrong location --- examples/serial/BLESerial.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/serial/BLESerial.cpp b/examples/serial/BLESerial.cpp index d1693de..929481c 100755 --- a/examples/serial/BLESerial.cpp +++ b/examples/serial/BLESerial.cpp @@ -57,7 +57,7 @@ int BLESerial::available(void) { int BLESerial::peek(void) { BLEPeripheral::poll(); if (this->_rxTail == this->_rxHead) return -1; - uint8_t byte = this->_rxBuffer[this->_rxTail]; + uint8_t byte = this->_rxBuffer[ (this->_rxTail + 1) % sizeof(this->_rxBuffer)]; #ifdef BLE_SERIAL_DEBUG Serial.print(F("BLESerial::peek() = ")); Serial.print((char) byte);