diff --git a/library.json b/library.json new file mode 100644 index 0000000..f129e1d --- /dev/null +++ b/library.json @@ -0,0 +1,37 @@ +{ + "name": "ArduinoBleOTA", + "version": "1.0.0", + "description": "Bluetooth low energy (BLE) library for uploads", + "keywords": "BLE, OTA, bluetooth, upload, update, arduino, python, android, ios", + "repository": + { + "type": "git", + "url": "https://github.com/vovagorodok/ArduinoBleOTA" + }, + "authors": + [ + { + "name": "vovagorodok", + "email": "vovagorodok2@gmail.com", + "url": "https://github.com/vovagorodok" + }, + { + "name": "dkwach", + "email": "dawid.kwach@gmail.com", + "url": "https://github.com/dkwach" + } + ], + "license": "MIT", + "homepage": "https://github.com/vovagorodok/ArduinoBleOTA", + "dependencies": + { + "jandrassy/ArduinoOTA":"^1.0.9", + "robtillaart/CRC":"^0.3.3", + "rlogiacco/CircularBuffer":"^1.3.3", + "arduino-libraries/ArduinoBLE":"^1.3.2", + "h2zero/NimBLE-Arduino":"^1.4.1" + }, + "headers": ["ArduinoBleOTA.h", "BleOtaMultiservice.h"], + "frameworks": "arduino", + "platforms": ["*"] +} diff --git a/library.properties b/library.properties deleted file mode 100644 index 1720a58..0000000 --- a/library.properties +++ /dev/null @@ -1,11 +0,0 @@ -name=ArduinoBleOta -version=1.0.0 -author=vovagorodok -maintainer=vovagorodok -sentence=Bluetooth low energy (BLE) library for uploads. -paragraph=This library supports functionality of uploads via BLE -url=https://github.com/vovagorodok/ArduinoBleOta -category=Communication -architectures=esp32,samd,megaavr,mbed,apollo3,mbed_nano,mbed_portenta,mbed_nicla -includes=ArduinoBleOTA.h -depends=ArduinoOTA,CRC32,CircularBuffer,NimBLE-Arduino,ArduinoBLE \ No newline at end of file diff --git a/platformio.ini b/platformio.ini index aa1bea3..1c23cc8 100644 --- a/platformio.ini +++ b/platformio.ini @@ -20,7 +20,7 @@ default_envs = framework = arduino lib_deps = jandrassy/ArduinoOTA@^1.0.9 - bakercp/CRC32@^2.0.0 + robtillaart/CRC@^0.3.3 rlogiacco/CircularBuffer@^1.3.3 [env:esp32dev] diff --git a/src/BleOtaMultiservice.h b/src/BleOtaMultiservice.h index 692e37a..2f86054 100644 --- a/src/BleOtaMultiservice.h +++ b/src/BleOtaMultiservice.h @@ -12,7 +12,7 @@ inline bool advertiseBle(const std::string& deviceName, const std::string& primaryUUID, const std::string& secondaryUUID) { - auto* server = BLEDevice::createServer(); + auto* server = BLEDevice::getServer(); auto* advertising = server->getAdvertising(); NimBLEAdvertisementData primaryAdvertisementData{}; diff --git a/src/BleOtaUploader.cpp b/src/BleOtaUploader.cpp index 5193e91..1ab4992 100644 --- a/src/BleOtaUploader.cpp +++ b/src/BleOtaUploader.cpp @@ -127,7 +127,11 @@ void BleOtaUploader::handleBegin(const uint8_t* data, size_t length) currentLength = 0; uploading = true; crc.reset(); - + crc.setPolynome(0x04C11DB7); + crc.setStartXOR(0xFFFFFFFF); + crc.setEndXOR(0xFFFFFFFF); + crc.setReverseIn(true); + crc.setReverseOut(true); #ifndef BLE_OTA_NO_BUFFER buffer.clear(); uint32_t bufferSize = withBuffer ? BLE_OTA_BUFFER_SIZE : 0; @@ -189,7 +193,7 @@ void BleOtaUploader::handleEnd(const uint8_t* data, size_t length) uint32_t firmwareCrc; memcpy(&firmwareCrc, data, length); - if (crc.finalize() != firmwareCrc) + if (crc.getCRC() != firmwareCrc) { terminateUpload(); send(CHECKSUM_ERROR); @@ -278,7 +282,7 @@ void BleOtaUploader::fillData(const uint8_t* data, size_t length) #else storage->write(data[i]); #endif - crc.update(data[i]); + crc.add(data[i]); } }