Noise ripped out after the bench verdict (tightly-wrapped unshielded cables move victim SNR only 0.2-0.3 dB, recorded in measurement.md dead ends): noise.go deleted with the noiser, phase clock and panel lane; configureNoise/checkPrivFlag gone so the X710 pair is untouched; console noise column, NOISE links rows and lane colors removed; driverPair rehomed to system.go, carrierUp to phy.go; history anchors to run start (frame-rate sampling and draw-clock roll kept — they fix display latency for every lane); goals/hardware/state/nics docs updated; verified on hardware (20.00G, zero errors, ECD 41m, SNR +7.6)

This commit is contained in:
flamingcow
2026-08-17 21:37:18 -07:00
parent be2bf56fa7
commit 66ff49f9d2
13 changed files with 60 additions and 382 deletions
+5 -35
View File
@@ -19,8 +19,6 @@ var (
uiCrit = rgb{0xd0, 0x3b, 0x3b}
uiCellOK = rgb{0x0a, 0x5d, 0x0a}
uiCellNA = rgb{0x3a, 0x3a, 0x37}
uiNoise = rgb{0x1c, 0x5c, 0xab}
uiNoise0 = rgb{0x24, 0x24, 0x23}
uiAccent = rgb{0x39, 0x87, 0xe5}
)
@@ -58,10 +56,9 @@ const (
)
// The panel is the heat matrix: one row per check, columns for now, the last
// 90 seconds at 5 s a cell, and since reset. Noise rides at the bottom as
// context — state, not a verdict.
// 90 seconds at 5 s a cell, and since reset.
var panelRows = []string{
"line rate", "lost", "corrupt", "link", "internal", "corrected", "SNR dB", "noise",
"line rate", "lost", "corrupt", "link", "internal", "corrected", "SNR dB",
}
type rect struct {
@@ -418,7 +415,7 @@ func okOr(bad bool, c rgb) rgb {
return uiCellOK
}
func (d *display) drawRows(v view, phy phyDisplay, measuring bool, nv noiseView,
func (d *display) drawRows(v view, phy phyDisplay, measuring bool,
hv histView, target float64) {
nowR := d.nowX + d.nowW
resetR := d.resetX + d.resetW
@@ -473,33 +470,6 @@ func (d *display) drawRows(v view, phy phyDisplay, measuring bool, nv noiseView,
} else {
d.colText(d.text, resetR, y, "-", uiMuted)
}
case "noise":
state := "off"
if nv.on {
state = "on"
}
if nv.missing > 0 {
d.colMark(nowR, y, markCross, uiCrit)
} else {
d.colText(d.text, nowR, y, state, uiInk2)
}
// The lane shows the commanded phase, a pure function of each
// slot's parity; only slots the run never lived through are unknown.
for k, s := range hv.slots {
c := uiCellNA
if s.sampled {
c = uiNoise0
if slotUp(s.seq) {
c = uiNoise
}
}
d.heatCell(y, k, c)
}
if nv.missing > 0 {
d.colMark(resetR, y, markCross, uiCrit)
} else {
d.colMark(resetR, y, markCheck, uiGood)
}
default:
f := -1
for j, c := range faultClasses {
@@ -553,14 +523,14 @@ func (d *display) drawFooter(v view, elapsed time.Duration) {
}
func (d *display) render(v view, elapsed time.Duration, phy phyDisplay,
measuring bool, nv noiseView, hv histView, target float64) error {
measuring bool, hv histView, target float64) error {
fb := d.fb
fb.fill(uiBg)
d.drawHeader(v, phy, hv, measuring, time.Now())
d.hairline(d.headerH - 1)
d.drawColHeaders()
d.drawRows(v, phy, measuring, nv, hv, target)
d.drawRows(v, phy, measuring, hv, target)
d.drawAxis()
d.drawFooter(v, elapsed)
d.drawResetButton()