docs(focas): record the wire decode corrections ported from the ignitionoee driver
FOCAS.md: positions scale from each block's own base/exponent and PositionDecimalPlaces is only the scale-less fallback; cnc_getfigure is gone; Spindle Load/MotorSpeedPct are Float64 percentages (MaxRpm renamed); program fields the CNC does not report read BadNoData; the #548 Makino 'AA' duplicates were a 2-byte name decode (now AA6/AA7). New 'Wire decode corrections (2026-10)' table lists each before/after with client-visible changes flagged, plus what was deliberately not ported and why. Troubleshooting rows for BadNoData and integer-macro BadTypeMismatch. Test-fixture doc follows the mock changes.
This commit is contained in:
@@ -61,16 +61,21 @@ binary PDUs against the documented command IDs. Covered assertions:
|
||||
|
||||
- Session open / close (`cnc_allclibhndl3` + `cnc_freelibhndl`)
|
||||
- Parameter read-back after `mock_patch` seed → `cnc_rdparam`
|
||||
- Macro read-back after seed → `cnc_rdmacro` (scaled-decimal
|
||||
translation verified)
|
||||
- Macro read-back after seed → `cnc_rdmacro` (8-byte ODBM shape:
|
||||
9-digit mantissa, `dec_val` at offset 6; vacant / fractional-on-integer
|
||||
macros read Bad)
|
||||
- PMC range read after seed → `pmc_rdpmcrng`
|
||||
- `IAlarmSource` raise + clear transitions after `mock_patch`
|
||||
alarm-list changes → `cnc_rdalmmsg2`
|
||||
- Fixed-tree bootstrap: identity / axes / spindle / program / timers /
|
||||
servo meters populate via `cnc_sysinfo`, `cnc_rdaxisname`,
|
||||
`cnc_rdspdlname`, `cnc_rddynamic2`, `cnc_exeprgname2`,
|
||||
`cnc_rdblkcount`, `cnc_rdopmode`, `cnc_rdsvmeter`, `cnc_rdspload`,
|
||||
`cnc_rdspmaxrpm`, `cnc_rdtimer`
|
||||
`cnc_rdblkcount`, `cnc_rdopmode`, `cnc_rdsvmeter`, `cnc_rdspmeter`
|
||||
(load + motor speed, 1/16384 of full scale), `cnc_rdtimer`; positions
|
||||
scale from each `cnc_rddynamic2` block's own base/exponent (the mock
|
||||
refuses the non-existent `cnc_getfigure` 0x00D3, as a real 31i-B does).
|
||||
The vendored mock's local divergence from upstream is listed in
|
||||
`Docker/focas-mock/VENDORED.md`.
|
||||
- Per-series profile selection via `mock_load_profile` — tests can
|
||||
pin one profile and assert series-gated capability suppression
|
||||
|
||||
|
||||
Reference in New Issue
Block a user