The beacon reboots instantly on SaveConfig (0x60). Using .withResponse meant CoreBluetooth expected a GATT ACK that never arrived, potentially causing the write to be silently dropped — leaving the config unsaved and the beacon LED still flashing after provisioning. Switching to .withoutResponse fires the bytes directly into the BLE radio buffer without requiring a round-trip ACK. The beacon firmware processes the save command from its buffer before rebooting. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| App | ||
| Assets.xcassets | ||
| en.lproj | ||
| Models | ||
| Provisioners | ||
| Services | ||
| Utils | ||
| Views | ||
| BeaconProvisioner.swift | ||
| Info.plist | ||
| payfrit-favicon-light-outlines.svg | ||