Dingtian relay driver — resolves the ticket-first entry blocker
The Dingtian board's inputs are independent of its relays (configurable), so a button on an input can report to the host WITHOUT auto-firing a relay — solving the access-controller-button-flow blocker the UHPPOTE/ZKTeco couldn't. packages/devices: - access-dingtian.ts: `dingtian` access driver implementing AccessControlDevice (relay pulse/latch via UDP string protocol :60001), InputDevice (read inputs + poll-based press/release events, active-LOW), and the new PreconditionDevice. - PreconditionDevice capability on the interface: a device can report config it requires for parking and optionally fix it. Dingtian checks input_link_relay via the HTTP config API and can disable it. - httpPort config field — the web/config API port is separate from UDP control (this unit uses 8080, not the default 80). - Register dingtian; export driver objects from the package. Verified on real hardware (DT-R004 @ 10.0.10.172): status read, relay pulse, input events; disabled input_link_relay via the driver, then confirmed pressing inputs fires NO relay (0000) — host-in-the-loop entry works. Config-write gotcha recorded: config_set.cgi requires "command":"setconfig" injected after "status" (GET omits it) or the POST silently no-ops. apps/server/scripts/dingtian-test.mjs: status / watch / pulse hardware test. wiki: dingtian-relay verified; button-flow marked RESOLVED; index + log.
This commit is contained in:
+13
@@ -105,3 +105,16 @@ this scale) but kept for later multi-lane scale. Recorded the stated roadmap to
|
||||
**fully unmanned, no-booth** operation in [[autonomous-direction]] and its threat-model
|
||||
shift (operator-fraud → unattended-machine threats). New stub [[dingtian-relay]]
|
||||
with the full protocol from the SDK. Driver + on-hardware test still to build.
|
||||
|
||||
## [2026-06-15] driver+test | Dingtian driver built; button blocker RESOLVED
|
||||
Built the `dingtian` access driver (AccessControlDevice relay control + InputDevice
|
||||
poll-based button events + new PreconditionDevice capability). Verified end to end on
|
||||
real hardware (DT-R004 @ 10.0.10.172, HTTP config on :8080, UDP control :60001):
|
||||
status read, relay pulse, input press/release. Disabled `input_link_relay` via the
|
||||
driver's fixPreconditions (GET config → flag 0 + clear maps → POST config_set), then
|
||||
confirmed: pressing inputs now fires NO relay (0000 status) — host-in-the-loop entry
|
||||
works. The [[access-controller-button-flow]] blocker is RESOLVED. Gotcha recorded in
|
||||
[[dingtian-relay]]: config_set requires injecting "command":"setconfig" after "status"
|
||||
(GET omits it) or the write silently no-ops. Added httpPort config field (port 8080 ≠
|
||||
default 80). Test script apps/server/scripts/dingtian-test.mjs. Next: input HTTP-push
|
||||
endpoint + wiring input→ticket→pulseOpen.
|
||||
|
||||
Reference in New Issue
Block a user