diff --git a/android/app/src/main/assets/firmware/firmware.bin b/android/app/src/main/assets/firmware/firmware.bin index aad7d4e..e5bf28e 100644 Binary files a/android/app/src/main/assets/firmware/firmware.bin and b/android/app/src/main/assets/firmware/firmware.bin differ diff --git a/android/app/src/main/java/com/eddy/atomrelay/MainActivity.kt b/android/app/src/main/java/com/eddy/atomrelay/MainActivity.kt index b6cb3a8..08321f0 100644 --- a/android/app/src/main/java/com/eddy/atomrelay/MainActivity.kt +++ b/android/app/src/main/java/com/eddy/atomrelay/MainActivity.kt @@ -213,7 +213,7 @@ class MainActivity : AppCompatActivity() { @Deprecated("Deprecated in Java") override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) - if (requestCode == REQUEST_SETTINGS && resultCode == Activity.RESULT_OK) { + if (requestCode == REQUEST_SETTINGS && resultCode == SettingsActivity.RESULT_SCAN) { stopScan() bluetoothGatt?.close() bluetoothGatt = null @@ -260,7 +260,7 @@ class MainActivity : AppCompatActivity() { private fun hexStringToBytes(hex: String): ByteArray? { val cleaned = hex.uppercase().filter { it in "0123456789ABCDEF" } - if (cleaned.length != 64) return null + if (cleaned.isEmpty() || cleaned.length % 2 != 0) return null return cleaned.chunked(2).map { it.toInt(16).toByte() }.toByteArray() } diff --git a/src/main.cpp b/src/main.cpp index 77c60fb..ffb428c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,5 +1,6 @@ #include #include +#include #include #include @@ -202,13 +203,19 @@ void setup() { pUuidChar->setValue(deviceUuid, ESP_UUID_LEN); NimBLEAdvertising *pAdvertising = NimBLEDevice::getAdvertising(); + pAdvertising->setName("SylDa_Server"); pAdvertising->addServiceUUID(SERVICE_UUID); + + NimBLEAdvertisementData scanResp; + scanResp.setCompleteServices(NimBLEUUID(SERVICE_UUID)); + pAdvertising->setScanResponseData(scanResp); pAdvertising->enableScanResponse(true); + pAdvertising->setMinInterval(32); pAdvertising->setMaxInterval(64); - NimBLEDevice::startAdvertising(); - - Serial.println("BLE: advertising started as 'SylDa_Server'"); + bool advOk = pAdvertising->start(); + Serial.printf("BLE: advertising started as 'SylDa_Server' (start=%d, isAdv=%d)\n", + advOk, pAdvertising->isAdvertising()); if (keyProvisioned) { Serial.print("HMAC Key: ");