v0.2.6: fix kiosk-code scan resolution + add zone QR asset
All checks were successful
build-apk / build (push) Successful in 30m18s
All checks were successful
build-apk / build (push) Successful in 30m18s
ScanScreen.lookupCode tried getMetersByScannerCode first and let its thrown error-envelope abort the whole lookup, so the getMetersByZoneName fallback never ran; it also sent ZoneName in the scanned case (the API is case-sensitive — the official app lowercases). Confirmed via live mitmproxy capture of the official app: a scanned code resolves through ScannerCode, and ZoneName=dl (lowercase) returns the zone. Now tries ScannerCode -> ZoneName -> zonename(lowercased) -> TerminalSerNo, each independent and non-fatal; only reports "Lookup failed" if every attempt errored. Adds docs/zone-qr/ with the DL-Sandpoint QR (encodes ScannerCode "DL", works in both BigBrainParking and the official app) and a how-to. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
deb78bf952
commit
2bdb59b49a
4 changed files with 71 additions and 17 deletions
BIN
docs/zone-qr/DL-sandpoint.png
Normal file
BIN
docs/zone-qr/DL-sandpoint.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 431 B |
36
docs/zone-qr/README.md
Normal file
36
docs/zone-qr/README.md
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
# Zone QR codes
|
||||
|
||||
A parking-zone QR code just encodes the zone's **`ScannerCode`** as plain text.
|
||||
BigBrainParking's scanner (and the official ParkSmarter app) resolve that code to
|
||||
the zone. No URL, no wrapper — the raw scanner code is enough.
|
||||
|
||||
## Make one
|
||||
|
||||
```bash
|
||||
qrencode -o my-zone.png -s 14 -m 4 "<ScannerCode>"
|
||||
```
|
||||
|
||||
`<ScannerCode>` is the zone's `ScannerCode` field (visible on the meter detail
|
||||
screen, or in a `/api/Meter` response). For the DL zone in Sandpoint it's `DL`:
|
||||
|
||||
```bash
|
||||
qrencode -o DL-sandpoint.png -s 14 -m 4 "DL"
|
||||
```
|
||||
|
||||

|
||||
|
||||
## Which field to encode
|
||||
|
||||
Use **`ScannerCode`** — it's what physical kiosk QR stickers encode and the only
|
||||
field the official ParkSmarter app accepts when scanning.
|
||||
|
||||
- `ScannerCode` — ✅ works in BigBrainParking **and** the official app.
|
||||
- `ZoneName` (e.g. `dl`) — works as a fallback in BigBrainParking (case-sensitive
|
||||
server-side; the app tries the lowercased form too).
|
||||
- `TerminalSerNo` (e.g. `30004246`) — uniquely identifies the terminal and works
|
||||
in BigBrainParking, but the **official app rejects a bare serial** ("not
|
||||
recognized as a ParkSmarter zone"), so don't use it for cross-app QR codes.
|
||||
|
||||
When BigBrainParking scans a code it tries, in order: `ScannerCode → ZoneName →
|
||||
zonename(lowercased) → TerminalSerNo`, each independently, so any of these
|
||||
resolve.
|
||||
Loading…
Add table
Add a link
Reference in a new issue