Lamp testbench in Rust around the HPCS 6500

lampbench station / export / label / tm30 / calibrate replace the Python
lamp_station.py, lamp_export.py, label_printer.py, tm30.py and
calibration.py that lived in HPCS6500-py. The driver is a submodule
(HPCS6500/, like mppt-testbench). Workspace crates: tm30 (TM-30-18 port of
colour-science 0.4.7), brother-ql (raster protocol, byte-identical to
brother_ql) and lamp-label (QR + ID labels for the QL-820NWB).

Bundles are byte-identical to lamp_export.py's (golden tests); the station
runs end to end in a test against the simulated instrument.
This commit is contained in:
grabowski committed 2026-10-22 17:26:14 +07:00
commit 2a3f28001c
241 files changed
+46390

No files matched your search

@@ -0,0 +1,60 @@
# name model label images options... (generated by tools/golden.py)
label_L0001_x1 QL-820NWB 23x23 label_L0001.png cut=True
label_L0001_x2 QL-820NWB 23x23 label_L0001.png,label_L0001.png cut=True
label_L0006_x1 QL-820NWB 23x23 label_L0006.png cut=True
label_L0006_x2 QL-820NWB 23x23 label_L0006.png,label_L0006.png cut=True
label_L0123_x1 QL-820NWB 23x23 label_L0123.png cut=True
label_L0123_x2 QL-820NWB 23x23 label_L0123.png,label_L0123.png cut=True
label_L12345_x1 QL-820NWB 23x23 label_L12345.png cut=True
label_L12345_x2 QL-820NWB 23x23 label_L12345.png,label_L12345.png cut=True
label_L9_x1 QL-820NWB 23x23 label_L9.png cut=True
label_L9_x2 QL-820NWB 23x23 label_L9.png,label_L9.png cut=True
white_202_x1 QL-820NWB 23x23 white_202.png cut=True
white_202_x2 QL-820NWB 23x23 white_202.png,white_202.png cut=True
black_202_x1 QL-820NWB 23x23 black_202.png cut=True
black_202_x2 QL-820NWB 23x23 black_202.png,black_202.png cut=True
checker_202_x1 QL-820NWB 23x23 checker_202.png cut=True
checker_202_x2 QL-820NWB 23x23 checker_202.png,checker_202.png cut=True
corner_tl_x1 QL-820NWB 23x23 corner_tl.png cut=True
corner_tl_x2 QL-820NWB 23x23 corner_tl.png,corner_tl.png cut=True
corner_tr_x1 QL-820NWB 23x23 corner_tr.png cut=True
corner_tr_x2 QL-820NWB 23x23 corner_tr.png,corner_tr.png cut=True
corner_bl_x1 QL-820NWB 23x23 corner_bl.png cut=True
corner_bl_x2 QL-820NWB 23x23 corner_bl.png,corner_bl.png cut=True
corner_br_x1 QL-820NWB 23x23 corner_br.png cut=True
corner_br_x2 QL-820NWB 23x23 corner_br.png,corner_br.png cut=True
random_202_x1 QL-820NWB 23x23 random_202.png cut=True
random_202_x2 QL-820NWB 23x23 random_202.png,random_202.png cut=True
label_L0006_nocut QL-820NWB 23x23 label_L0006.png cut=False
label_L0006_compress_x2 QL-820NWB 23x23 label_L0006.png,label_L0006.png compress=True
random_202_compress QL-820NWB 23x23 random_202.png compress=True
checker_202_compress QL-820NWB 23x23 checker_202.png compress=True
black_202_compress QL-820NWB 23x23 black_202.png compress=True
white_202_compress QL-820NWB 23x23 white_202.png compress=True
corner_tl_rot0 QL-820NWB 23x23 corner_tl.png rotate=0
corner_tl_rot90 QL-820NWB 23x23 corner_tl.png rotate=90
corner_tl_rot180 QL-820NWB 23x23 corner_tl.png rotate=180
corner_tl_rot270 QL-820NWB 23x23 corner_tl.png rotate=270
corner_br_rot0 QL-820NWB 23x23 corner_br.png rotate=0
random_202_thr100 QL-820NWB 23x23 random_202.png threshold=100
random_202_thr0 QL-820NWB 23x23 random_202.png threshold=0
random_202_thr50 QL-820NWB 23x23 random_202.png threshold=50
random_202_lq QL-820NWB 23x23 random_202.png hq=False
random_202_dither QL-820NWB 23x23 random_202.png dither=True
random_202_dither_thr100 QL-820NWB 23x23 random_202.png dither=True threshold=100
multi_labels QL-820NWB 23x23 label_L0001.png,label_L0006.png,label_L12345.png cut=True
random_404_dpi600 QL-820NWB 23x23 random_404.png dpi_600=True
random_404_dpi600_compress QL-820NWB 23x23 random_404.png dpi_600=True compress=True
endless62_696 QL-820NWB 62 random_696x300.png
endless62_resize500 QL-820NWB 62 random_500x200.png
endless62_rot90 QL-820NWB 62 random_300x696.png rotate=90
endless62_dpi600 QL-820NWB 62 random_1392x150.png dpi_600=True
endless29_306 QL-820NWB 29 random_306x300.png compress=True
diecut62x29_auto_rotate QL-820NWB 62x29 random_271x696.png
round_d24 QL-820NWB d24 random_236.png
ql1100_102 QL-1100 102 sparse_1164x301.png compress=True
ql1100_62 QL-1100 62 sparse_696x301.png compress=True
ql700_62_compress_ignored QL-700 62 random_696x300.png compress=True
ql500_29 QL-500 29 random_306x300.png
ql570_62x29 QL-570 62x29 random_696x271.png cut=False
ql800_23x23_x2 QL-800 23x23 label_L0006.png,label_L0006.png compress=True