Rewrite the driver in Rust; move the testbench tools out

The repository is now only the HPCS 6500 driver: a Rust library (serial
transport, every protocol command, block parsing, USBPcap captures, a
simulated instrument) and the hpcs6500 CLI with the flags of the former
hpcs6500.py, plus dump/capture for reverse engineering.

The lamp station, lamp export, TM-30, label printer and LED calibration
move to B4L/lamp-testbench. Golden tests pin the Rust output to the Python
driver's: parsed values bit-exact, report text, CSV and number formatting.
The Python driver is at tag python-final.
This commit is contained in:
grabowski committed 2026-10-22 17:01:47 +07:00
1 parent 3ac7cd243b
commit 54242da04b
79 files changed
+23340 -3246

No files matched your search

+1
View File
@@ -0,0 +1 @@
[{"bits":0,"repr":"0.0","g6":"0","f2":"0.00","f0":"0","f1":"0.0","round1":"0.0"},{"bits":9223372036854775808,"repr":"-0.0","g6":"-0","f2":"-0.00","f0":"-0","f1":"-0.0","round1":"-0.0"},{"bits":4607182418800017408,"repr":"1.0","g6":"1","f2":"1.00","f0":"1","f1":"1.0","round1":"1.0"},{"bits":13830554455654793216,"repr":"-1.0","g6":"-1","f2":"-1.00","f0":"-1","f1":"-1.0","round1":"-1.0"},{"bits":4591870180066957722,"repr":"0.1","g6":"0.1","f2":"0.10","f0":"0","f1":"0.1","round1":"0.1"},{"bits":4602678819172646912,"repr":"0.5","g6":"0.5","f2":"0.50","f0":"0","f1":"0.5","round1":"0.5"},{"bits":4609434218613702656,"repr":"1.5","g6":"1.5","f2":"1.50","f0":"2","f1":"1.5","round1":"1.5"},{"bits":4612811918334230528,"repr":"2.5","g6":"2.5","f2":"2.50","f0":"2","f1":"2.5","round1":"2.5"},{"bits":4593671619917905920,"repr":"0.125","g6":"0.125","f2":"0.12","f0":"0","f1":"0.1","round1":"0.1"},{"bits":4600427019358961664,"repr":"0.375","g6":"0.375","f2":"0.38","f0":"0","f1":"0.4","round1":"0.4"},{"bits":4532020583610935537,"repr":"1e-05","g6":"1e-05","f2":"0.00","f0":"0","f1":"0.0","round1":"0.0"},{"bits":4547007122018943789,"repr":"0.0001","g6":"0.0001","f2":"0.00","f0":"0","f1":"0.0","round1":"0.0"},{"bits":4547007085125455641,"repr":"9.99995e-05","g6":"9.99995e-05","f2":"0.00","f0":"0","f1":"0.0","round1":"0.0"},{"bits":4683220279290232832,"repr":"123456.5","g6":"123456","f2":"123456.50","f0":"123456","f1":"123456.5","round1":"123456.5"},{"bits":4696837142389719040,"repr":"999999.5","g6":"1e+06","f2":"999999.50","f0":"1000000","f1":"999999.5","round1":"999999.5"},{"bits":4831355200913801216,"repr":"1000000000000000.0","g6":"1e+15","f2":"1000000000000000.00","f0":"1000000000000000","f1":"1000000000000000.0","round1":"1000000000000000.0"},{"bits":4846369599423283200,"repr":"1e+16","g6":"1e+16","f2":"10000000000000000.00","f0":"10000000000000000","f1":"10000000000000000.0","round1":"1e+16"},{"bits":4847542438873900484,"repr":"1.2345678901234568e+16","g6":"1.23457e+16","f2":"12345678901234568.00","f0":"12345678901234568","f1":"12345678901234568.0","round1":"1.2345678901234568e+16"},{"bits":4936209963552724370,"repr":"1e+22","g6":"1e+22","f2":"10000000000000000000000.00","f0":"10000000000000000000000","f1":"10000000000000000000000.0","round1":"1e+22"},{"bits":4502148214488346440,"repr":"1e-07","g6":"1e-07","f2":"0.00","f0":"0","f1":"0.0","round1":"0.0"},{"bits":1,"repr":"5e-324","g6":"4.94066e-324","f2":"0.00","f0":"0","f1":"0.0","round1":"0.0"},{"bits":9218868437227405311,"repr":"1.7976931348623157e+308","g6":"1.79769e+308","f2":null,"f0":null,"f1":null,"round1":"1.7976931348623157e+308"},{"bits":4636737291354636288,"repr":"100.0","g6":"100","f2":"100.00","f0":"100","f1":"100.0","round1":"100.0"},{"bits":4645392646888488960,"repr":"380.0","g6":"380","f2":"380.00","f0":"380","f1":"380.0","round1":"380.0"},{"bits":9221120237041090560,"repr":"nan","g6":"nan","f2":"nan","f0":"nan","f1":"nan","round1":null},{"bits":9218868437227405312,"repr":"inf","g6":"inf","f2":"inf","f0":"inf","f1":"inf","round1":null},{"bits":18442240474082181120,"repr":"-inf","g6":"-inf","f2":"-inf","f0":"-inf","f1":"-inf","round1":null},{"bits":4548686775598520385,"repr":"0.000123456789","g6":"0.000123457","f2":"0.00","f0":"0","f1":"0.0","round1":"0.0"},{"bits":4712889646492470477,"repr":"12345678.9","g6":"1.23457e+07","f2":"12345678.90","f0":"12345679","f1":"12345678.9","round1":"12345678.9"},{"bits":4607182409792818153,"repr":"0.999999","g6":"0.999999","f2":"1.00","f0":"1","f1":"1.0","round1":"1.0"},{"bits":4607182414296417781,"repr":"0.9999995","g6":"1","f2":"1.00","f0":"1","f1":"1.0","round1":"1.0"},{"bits":4621819117307496543,"repr":"9.9999995","g6":"10","f2":"10.00","f0":"10","f1":"10.0","round1":"10.0"},{"bits":4681608357448201011,"repr":"99999.95","g6":"99999.9","f2":"99999.95","f0":"100000","f1":"99999.9","round1":"99999.9"},{"bits":4698053236609777664,"repr":"1234567.0","g6":"1.23457e+06","f2":"1234567.00","f0":"1234567","f1":"1234567.0","round1":"1234567.0"},{"bits":4599075939470750516,"repr":"0.30000000000000004","g6":"0.3","f2":"0.30","f0":"0","f1":"0.3","round1":"0.3"},{"bits":4645392646888488960,"repr":"380.0","g6":"380","f2":"380.00","f0":"380","f1":"380.0","round1":"380.0"},{"bits":4645426419853101449,"repr":"381.91977077363896","g6":"381.92","f2":"381.92","f0":"382","f1":"381.9","round1":"381.9"},{"bits":4645460192817713938,"repr":"383.8395415472779","g6":"383.84","f2":"383.84","f0":"384","f1":"383.8","round1":"383.8"},{"bits":4645493965782326428,"repr":"385.75931232091693","g6":"385.759","f2":"385.76","f0":"386","f1":"385.8","round1":"385.8"},{"bits":4645527738746938917,"repr":"387.6790830945559","g6":"387.679","f2":"387.68","f0":"388","f1":"387.7","round1":"387.7"},{"bits":4645561511711551406,"repr":"389.59885386819485","g6":"389.599","f2":"389.60","f0":"390","f1":"389.6","round1":"389.6"},{"bits":4645595284676163895,"repr":"391.5186246418338","g6":"391.519","f2":"391.52","f0":"392","f1":"391.5","round1":"391.5"},{"bits":4645629057640Line truncated