mirror of
https://github.com/openglow-org/forgefirm.git
synced 2026-09-27 16:51:12 -07:00
bench: the stale-origin drill goes, drills report their verdict, the pgood gate follows the pin
The faultpos live-fire drill armed and commanded a cut at an origin it called stale to test a refusal the design decided not to gate: its only outcome was an emission at an unknown position. Removed from the script and the bench page. live_fire_drills.py discarded every drill's return value, so the bench page recorded a failed live-fire drill as OK. The exit status is the drill's. laser_pgood is the supply's power-good, high on every healthy machine; fire_test.py and the K3 drill aborted on it and pgood_probe.py inverted it. The latch-unlock drills now gate on the safety chain holding HV off (charge-pump watchdog dead, pulse engine idle), as the kernel suite does, and the probe reports the pin as the kernel publishes it. motion.deadman: the controller resumed from its hang recovers on $X and moves again without a restart (the stream's fault acknowledgment).
This commit is contained in:
@@ -12,9 +12,9 @@ against what the chain and the supply were doing: idle, a dry run
|
||||
hv_current), a pause and a resume, a lid open. hv_current comes from the
|
||||
PIC at a lower rate and rides along as a range.
|
||||
|
||||
PGOOD is reported as the RAW PIN LEVEL (the kernel's laser_pgood attribute
|
||||
is the logical, inverted value: 1 = pin low). Everything else is the
|
||||
kernel's logical value.
|
||||
PGOOD is the raw pin level as the kernel publishes it (laser_pgood is the
|
||||
supply's power-good: 1 = the supply reports its outputs within spec).
|
||||
Everything else is the kernel's logical value.
|
||||
|
||||
The loop must not hog the CPU: single core, the protocol thread is
|
||||
SCHED_OTHER, so the sampler sleeps between passes and reports its worst gap.
|
||||
@@ -33,7 +33,7 @@ import time
|
||||
|
||||
CNC = '/sys/glowforge/cnc/'
|
||||
ATTRS = [ # name, attribute, invert-to-raw
|
||||
('PGOOD', CNC + 'laser_pgood', True),
|
||||
('PGOOD', CNC + 'laser_pgood', False),
|
||||
('LASER_ON', CNC + 'laser_on', False),
|
||||
('FIRE', CNC + 'laser_enable', False),
|
||||
('CP_ALIVE', CNC + 'charge_pump_alive', False),
|
||||
|
||||
Reference in New Issue
Block a user