fix(reader): correct the QR reader's identity — Dingtian DT-008, not "GEE"
Build desktop / desktop (push) Successful in 4m16s
Build & push images / images (push) Successful in 2m46s
CI / check (push) Successful in 38s

An early wrong assumption named the QR/RFID access reader "GEE" /
"GEE/Fondvision" / "GEE-QR-ER80" (and summarized a raw GEE PDF as its
datasheet). There is no GEE device — it's the Dingtian DT-008
(dingtian-tech.com/en_us/qr_code_reader.html), the same vendor as the relay
board, which is why it integrates the identical HTTP-GET-push way.

Code:
- Driver symbol geeQrReaderDriver → dingtianQrReaderDriver; label →
  "Dingtian DT-008 QR/RFID reader (HTTP push)"; comments/description rewritten
  to the real DT-008 facts (Wiegand 26/34, TCP/IP, USB, RS485 — not RS-232;
  QR/barcode + ID/IC/NFC — not DataMatrix/1D).
- Persisted driverId "gee-qr-reader" → "dingtian-qr-reader" (the registry
  lookup key + the row created on assign in qr-reader.ts).
- Migration 0015 rewrites existing devices.driver_id rows so configured readers
  keep resolving (applied to the dev DB — 2 rows; the booth applies it on boot).
  Behaviour is unchanged: naming + the persisted id only.

Wiki + memory:
- Renamed entities/gee-qr-er80.md → dingtian-dt008-reader.md and
  sources/gee-qr-er80.md → dingtian-dt008.md; rewrote both to the real DT-008
  product-page specs while KEEPING all the verified-on-hardware protocol facts
  (cjihao serial, .jsp path, Connection: close). Fixed every cross-reference +
  "GEE" mention in 6 other pages. Memory gee-reader-serial-binding →
  dingtian-reader-serial-binding. The only surviving "GEE" mentions are
  deliberate naming-correction notes, the raw PDF filename, and the
  append-only log history.

Full workspace build/lint/test green; dev DB readers verified resolving to the
registered dingtian-qr-reader driver.

Claude-Session: https://claude.ai/code/session_01Xcm6ikLgGoCxxHrxtjkk5V
This commit is contained in:
2026-06-28 17:39:15 +02:00
parent 96acd6b662
commit f6e35bbebf
20 changed files with 138 additions and 101 deletions
+37
View File
@@ -0,0 +1,37 @@
---
type: source
tags: [parking, hardware, readers, qr, dingtian, datasheet]
sources: [dingtian-dt008]
updated: 2026-06-28
---
# Source: Dingtian DT-008 QR Code Reader (product page)
Vendor product page for the **Dingtian DT-008** QR/barcode/RFID access reader —
https://www.dingtian-tech.com/en_us/qr_code_reader.html. This is the reader the project
actually has on hand for the [[ticket-encoding|QR ticket]] / RFID-[[subscription]] paths.
Entity: [[dingtian-dt008-reader]]. Same vendor as the [[dingtian-relay|Dingtian relay board]].
> **Supersedes a mis-identified source.** The project originally summarized
> `raw/GEE-QR-ER80 QR Code Access Control Reader.pdf` as if the reader were a "GEE-QR-ER80"
> (GEE NFC LIMITED). That was a wrong early assumption — the device is the Dingtian DT-008.
> Several facts in that PDF (RS-232, DataMatrix/1D, a Linux SDK) do **not** match the real
> hardware and were dropped. The HTTP-push protocol facts, however, were later **verified on the
> actual device** (see [[dingtian-dt008-reader]] "Verified on hardware").
## Key takeaways (DT-008 product page)
- **Scans:** QR / barcode (simple) **and** ID/IC/NFC cards. Read ~**0.2 s**, range **0–10 cm**.
- **Interfaces:** **Wiegand 26/34, TCP/IP, USB, RS485.** (For our integration: HTTP over TCP/IP.)
- **Power:** 9–16 V DC, 800 mA. **Size:** 86×86×42 mm. **Temp:** −30…70 °C.
- **Wiegand pinout:** Red(power), Black(GND), Green(D0), White(D1), Blue(LED), Yellow(BEEP).
- **Reporting:** "QR Code HTTP GET" — the reader HTTP-GETs a configured host on each scan; the host
replies the verdict (drives beep/output). Vendor ships a **QR Code config tool** + HTTP-GET demo
code (C++/C#/PHP) and an SDK (`QRCode_sdk.zip`). See [[qrcode-sdk]] for the protocol we implement.
## How we use it
Host-in-the-loop, synchronous HTTP: reader GETs `/qa/mcardsea.<ext>` with its serial (`cjihao`);
our endpoint (`apps/server/src/routes/qr-reader.ts`) decides and replies the SDK verdict, and emits
a `read` event for the access flows. Full integration + the on-hardware findings (the `.jsp` path
extension, `Connection: close` requirement, serial resolution) are in [[dingtian-dt008-reader]].