Payfrit Beacon iOS
Root cause: iOS was firing the next GATT command as soon as the BLE write ACK arrived, without waiting for the beacon's FFE1 notification response. Android explicitly waits up to 1s for the beacon to respond (via responseChannel.receive) before sending the next command. This gives the beacon MCU time to process each command before the next one arrives. Without this gate, the beacon gets overwhelmed and drops the BLE connection (supervision timeout), causing the "DX Smart command characteristic" error John reported after repeated disconnects. Changes: - Add awaitingCommandResponse flag + 1s response gate timer - After each FFE2 write success, wait for FFE1 notification before advancing - If no response within 1s, advance anyway (some commands don't respond) - Check for 4E 4F 00 rejection pattern (matches Android) - Clean up gate timer on disconnect, cleanup, and state resets Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| _backup | ||
| PayfritBeacon | ||
| PayfritBeacon.xcodeproj | ||
| .gitignore | ||
| ExportOptions.plist | ||
| ExportOptionsLocal.plist | ||
| Podfile | ||
| Podfile.lock | ||
| QA_WALKTHROUGH.md | ||