Files
grabowski 2a3f28001c 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.
2026-10-22 17:26:14 +07:00

941 lines
19 KiB
JSON

{
"name": "hpcs_grid_LED_B3",
"source": "LED-B3 linearly resampled on 380-1050 nm / 350 points (0 beyond 780)",
"generator": "crates/tm30/tools/golden.py (tm30.py + colour-science 0.4.7, numpy 2.5.1)",
"wavelengths": [
380.0,
381.91977077363896,
383.8395415472779,
385.75931232091693,
387.6790830945559,
389.59885386819485,
391.5186246418338,
393.43839541547277,
395.3581661891117,
397.2779369627507,
399.1977077363897,
401.11747851002866,
403.0372492836676,
404.9570200573066,
406.87679083094554,
408.79656160458455,
410.7163323782235,
412.63610315186247,
414.55587392550143,
416.4756446991404,
418.39541547277935,
420.3151862464183,
422.2349570200573,
424.1547277936963,
426.07449856733524,
427.9942693409742,
429.91404011461316,
431.8338108882522,
433.75358166189113,
435.6733524355301,
437.59312320916905,
439.512893982808,
441.43266475644697,
443.3524355300859,
445.27220630372494,
447.1919770773639,
449.11174785100286,
451.0315186246418,
452.9512893982808,
454.8710601719198,
456.79083094555875,
458.7106017191977,
460.63037249283667,
462.55014326647563,
464.46991404011465,
466.38968481375355,
468.30945558739256,
470.2292263610315,
472.1489971346705,
474.06876790830944,
475.9885386819484,
477.9083094555874,
479.8280802292264,
481.74785100286533,
483.6676217765043,
485.58739255014325,
487.50716332378227,
489.42693409742117,
491.3467048710602,
493.26647564469914,
495.1862464183381,
497.10601719197706,
499.025787965616,
500.94555873925503,
502.865329512894,
504.78510028653295,
506.7048710601719,
508.62464183381087,
510.5444126074499,
512.4641833810888,
514.3839541547278,
516.3037249283668,
518.2234957020057,
520.1432664756447,
522.0630372492836,
523.9828080229227,
525.9025787965616,
527.8223495702006,
529.7421203438396,
531.6618911174785,
533.5816618911175,
535.5014326647564,
537.4212034383954,
539.3409742120343,
541.2607449856733,
543.1805157593124,
545.1002865329513,
547.0200573065903,
548.9398280802293,
550.8595988538682,
552.7793696275071,
554.6991404011461,
556.6189111747851,
558.538681948424,
560.458452722063,
562.3782234957021,
564.297994269341,
566.21776504298,
568.1375358166189,
570.0573065902579,
571.9770773638968,
573.8968481375358,
575.8166189111748,
577.7363896848137,
579.6561604584527,
581.5759312320916,
583.4957020057307,
585.4154727793696,
587.3352435530086,
589.2550143266476,
591.1747851002865,
593.0945558739255,
595.0143266475645,
596.9340974212034,
598.8538681948423,
600.7736389684814,
602.6934097421204,
604.6131805157593,
606.5329512893983,
608.4527220630373,
610.3724928366762,
612.2922636103152,
614.2120343839541,
616.1318051575931,
618.051575931232,
619.971346704871,
621.8911174785101,
623.810888252149,
625.730659025788,
627.6504297994269,
629.5702005730659,
631.4899713467048,
633.4097421203438,
635.3295128939828,
637.2492836676217,
639.1690544412608,
641.0888252148998,
643.0085959885387,
644.9283667621776,
646.8481375358166,
648.7679083094556,
650.6876790830945,
652.6074498567335,
654.5272206303725,
656.4469914040114,
658.3667621776503,
660.2865329512895,
662.2063037249284,
664.1260744985673,
666.0458452722063,
667.9656160458453,
669.8853868194842,
671.8051575931232,
673.7249283667622,
675.6446991404011,
677.56446991404,
679.4842406876791,
681.4040114613181,
683.323782234957,
685.243553008596,
687.163323782235,
689.0830945558739,
691.0028653295128,
692.9226361031518,
694.8424068767908,
696.7621776504297,
698.6819484240688,
700.6017191977078,
702.5214899713467,
704.4412607449856,
706.3610315186247,
708.2808022922636,
710.2005730659025,
712.1203438395415,
714.0401146131805,
715.9598853868195,
717.8796561604585,
719.7994269340975,
721.7191977077364,
723.6389684813753,
725.5587392550143,
727.4785100286533,
729.3982808022922,
731.3180515759312,
733.2378223495703,
735.1575931232092,
737.077363896848,
738.9971346704871,
740.9169054441261,
742.836676217765,
744.756446991404,
746.676217765043,
748.5959885386819,
750.5157593123208,
752.43553008596,
754.3553008595989,
756.2750716332378,
758.1948424068768,
760.1146131805158,
762.0343839541547,
763.9541547277937,
765.8739255014327,
767.7936962750716,
769.7134670487105,
771.6332378223495,
773.5530085959886,
775.4727793696275,
777.3925501432665,
779.3123209169055,
781.2320916905444,
783.1518624641833,
785.0716332378223,
786.9914040114613,
788.9111747851002,
790.8309455587392,
792.7507163323783,
794.6704871060172,
796.5902578796561,
798.5100286532952,
800.4297994269341,
802.349570200573,
804.269340974212,
806.189111747851,
808.1088825214899,
810.028653295129,
811.948424068768,
813.8681948424069,
815.7879656160458,
817.7077363896848,
819.6275071633238,
821.5472779369627,
823.4670487106017,
825.3868194842407,
827.3065902578796,
829.2263610315185,
831.1461318051576,
833.0659025787966,
834.9856733524355,
836.9054441260745,
838.8252148997135,
840.7449856733524,
842.6647564469913,
844.5845272206304,
846.5042979942693,
848.4240687679082,
850.3438395415473,
852.2636103151863,
854.1833810888252,
856.1031518624642,
858.0229226361032,
859.9426934097421,
861.862464183381,
863.78223495702,
865.702005730659,
867.6217765042979,
869.541547277937,
871.461318051576,
873.3810888252149,
875.3008595988538,
877.2206303724929,
879.1404011461318,
881.0601719197707,
882.9799426934097,
884.8997134670487,
886.8194842406876,
888.7392550143267,
890.6590257879657,
892.5787965616046,
894.4985673352436,
896.4183381088825,
898.3381088825215,
900.2578796561604,
902.1776504297994,
904.0974212034383,
906.0171919770773,
907.9369627507164,
909.8567335243553,
911.7765042979943,
913.6962750716332,
915.6160458452722,
917.5358166189112,
919.4555873925501,
921.3753581661891,
923.295128939828,
925.214899713467,
927.134670487106,
929.054441260745,
930.974212034384,
932.8939828080229,
934.8137535816619,
936.7335243553008,
938.6532951289398,
940.5730659025788,
942.4928366762177,
944.4126074498568,
946.3323782234957,
948.2521489971347,
950.1719197707736,
952.0916905444126,
954.0114613180516,
955.9312320916905,
957.8510028653295,
959.7707736389684,
961.6905444126074,
963.6103151862465,
965.5300859598854,
967.4498567335244,
969.3696275071633,
971.2893982808023,
973.2091690544412,
975.1289398280802,
977.0487106017192,
978.9684813753581,
980.8882521489971,
982.808022922636,
984.7277936962751,
986.6475644699141,
988.567335243553,
990.487106017192,
992.4068767908309,
994.3266475644699,
996.2464183381088,
998.1661891117478,
1000.0859598853868,
1002.0057306590257,
1003.9255014326648,
1005.8452722063037,
1007.7650429799427,
1009.6848137535817,
1011.6045845272206,
1013.5243553008596,
1015.4441260744985,
1017.3638968481375,
1019.2836676217764,
1021.2034383954154,
1023.1232091690545,
1025.0429799426934,
1026.9627507163323,
1028.8825214899712,
1030.8022922636103,
1032.7220630372494,
1034.6418338108883,
1036.5616045845272,
1038.4813753581661,
1040.401146131805,
1042.320916905444,
1044.240687679083,
1046.1604584527222,
1048.080229226361,
1050.0
],
"values": [
0.0,
0.0,
0.0,
0.001518624641833867,
0.0053581661891117845,
0.009197707736389702,
0.013037249283667621,
0.016876790830945537,
0.02214899713467037,
0.03366762177650412,
0.04518624641833821,
0.06340974212034393,
0.08644699140401144,
0.10948424068767895,
0.16255014326647507,
0.21630372492836752,
0.29441260744985775,
0.4134383954154732,
0.5324641833810888,
0.7488825214899698,
0.9946131805157565,
1.2737535816618837,
1.7229799426934136,
2.1722063037249297,
2.7718624641833802,
3.4898567335243507,
4.207851002865321,
5.314613180515774,
6.439598853868204,
7.83527220630373,
9.732005730659022,
11.628739255014313,
13.71171919770771,
15.858022922636065,
17.763696275071634,
18.21292263610315,
18.66214899713467,
17.98495702005732,
16.337793696275092,
14.690630372492816,
12.903782234957008,
11.106876790830942,
9.601203438395418,
8.691232091690551,
7.781260744985659,
7.110315186246429,
6.530544412607446,
5.978280802292263,
5.628882521489972,
5.279484240687682,
5.121862464183381,
5.144899713467049,
5.167936962750717,
5.397220630372493,
5.646790830945558,
5.931604584527218,
6.2963610315186305,
6.661117478510022,
7.06896848137536,
7.495157593123209,
7.9194842406876775,
8.326475644699137,
8.733467048710596,
9.106418338108886,
9.444297994269343,
9.7821776504298,
10.058681948424068,
10.327449856733521,
10.578796561604587,
10.78613180515759,
10.993467048710603,
11.177335243553014,
11.350114613180516,
11.522034383954157,
11.683295128939825,
11.844555873925502,
12.009426934097416,
12.17836676217765,
12.347306590257883,
12.52289398280802,
12.69951289398281,
12.878137535816615,
13.062435530085962,
13.246733524355296,
13.431031518624641,
13.615329512893986,
13.799426934097417,
13.979885386819484,
14.160343839541554,
14.332206303724927,
14.493467048710595,
14.654727793696273,
14.80951289398281,
14.963094555873923,
15.111174785100287,
15.24171919770774,
15.372263610315185,
15.493065902578799,
15.608252148997133,
15.722865329512896,
15.818853868194841,
15.914842406876792,
16.004297994269344,
16.084928366762178,
16.165558739255015,
16.239885386819484,
16.312836676217767,
16.38080229226361,
16.430716332378225,
16.480630372492836,
16.511747851002866,
16.530945558739255,
16.549856733524354,
16.530659025787966,
16.511461318051577,
16.47214899713467,
16.403037249283667,
16.333925501432667,
16.22189111747851,
16.099025787965612,
15.96573065902579,
15.789111747850999,
15.612492836676221,
15.408710601719196,
15.186017191977085,
14.963323782234959,
14.699025787965612,
14.434097421203441,
14.154555873925498,
13.851232091690552,
13.547908309455588,
13.223724928366773,
12.893524355300862,
12.560028653295124,
12.210630372492844,
11.861232091690542,
11.507478510028642,
11.150401146131808,
10.793323782234971,
10.436246418338113,
10.079169054441257,
9.72346704871061,
9.370229226361031,
9.016991404011453,
8.672435530085963,
8.330716332378238,
7.9918624641833675,
7.669340974212033,
7.346819484240697,
7.036848137535818,
6.737363896848132,
6.437879656160463,
6.156446991404009,
5.876160458452713,
5.603610315186247,
5.346361031518634,
5.089111747851005,
4.85151862464183,
4.621146131805162,
4.393696275071632,
4.186361031518619,
3.9790257879656172,
3.7817191977077442,
3.5935816618911205,
3.405444126074497,
3.2349283667621824,
3.0659885386819488,
2.9030659025787933,
2.753323782234959,
2.6035816618911243,
2.4674498567335195,
2.3369054441260744,
2.207965616045849,
2.092779369627508,
1.977593123209167,
1.8681661891117496,
1.7644985673352427,
1.6608309455587358,
1.574355300859599,
1.4898853868194872,
1.407650429799428,
1.3308595988538672,
1.2540687679083111,
1.185186246418338,
1.1199140401146115,
1.0552722063037254,
0.9976790830945583,
0.9400859598853879,
0.8861604584527217,
0.8362464183381103,
0.7863323782234959,
0.7464756446991396,
0.7080802292263616,
0.6696848137535836,
0.6312893982808009,
0.5928939828080229,
0.5595988538681959,
0.5288825214899716,
0.49839541547277894,
0.4715186246418343,
0.44464183381088807,
0.41951289398280733,
0.3964756446991405,
0.3734383954154737,
0.35366762177650457,
0.3344699140401144,
0.3162177650429803,
0.3008595988538682,
0.2855014326647561,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0
],
"expected": {
"Rf": 85.39608440997756,
"Rg": 97.79901082615568,
"CCT_K": 4102.572546457284,
"Duv": -0.0005918293873569399,
"bins": [
{
"bin": 1,
"ref_a": 21.493666916247566,
"ref_b": 4.988185298005295,
"test_a": 19.41097854228106,
"test_b": 4.237499470445516,
"ref_a_norm": 0.974111333673113,
"ref_b_norm": 0.22606881609277588,
"test_a_norm": 0.8797221185849977,
"test_b_norm": 0.19204709353128077,
"Rcs_pct": -9.921286159730345,
"Rhs": -0.014953582335886877,
"Rf_h": 83.43067035334865
},
{
"bin": 2,
"ref_a": 20.63264122214867,
"ref_b": 14.362443467915396,
"test_a": 18.457550148603204,
"test_b": 14.547217674747431,
"ref_a_norm": 0.8207317079984009,
"ref_b_norm": 0.5713138047395909,
"test_a_norm": 0.734210249469538,
"test_b_norm": 0.5786638113981913,
"Rcs_pct": -6.785651866683025,
"Rhs": 0.054180054062923894,
"Rf_h": 85.11040715718623
},
{
"bin": 3,
"ref_a": 14.624466286187028,
"ref_b": 22.296118311220997,
"test_a": 11.64139182435677,
"test_b": 23.23971627484961,
"ref_a_norm": 0.548463457760392,
"ref_b_norm": 0.8361745245470678,
"test_a_norm": 0.4365887881433909,
"test_b_norm": 0.87156241438454,
"Rcs_pct": -3.2730281224740065,
"Rhs": 0.11268084637599964,
"Rf_h": 78.27637136688796
},
{
"bin": 4,
"ref_a": 3.7835635835821586,
"ref_b": 22.124798665256026,
"test_a": 1.978548631191576,
"test_b": 22.819525335377946,
"ref_a_norm": 0.16856307415851382,
"ref_b_norm": 0.9856908694059366,
"test_a_norm": 0.0881471216957889,
"test_b_norm": 1.016641918761578,
"Rcs_pct": 1.4667959559860229,
"Rhs": 0.08490903267057567,
"Rf_h": 86.29149821537418
},
{
"bin": 5,
"ref_a": -2.2119239655497234,
"ref_b": 19.128119843037165,
"test_a": -3.2899391546021723,
"test_b": 19.620323618759137,
"ref_a_norm": -0.11487180981200852,
"ref_b_norm": 0.9933803235974195,
"test_a_norm": -0.17085635435330937,
"test_b_norm": 1.0189419339394075,
"Rcs_pct": 3.5992493989313443,
"Rhs": 0.049921994423317684,
"Rf_h": 89.6242538327369
},
{
"bin": 6,
"ref_a": -11.148255869529082,
"ref_b": 17.167746757148034,
"test_a": -11.395131694955836,
"test_b": 18.062910150418126,
"ref_a_norm": -0.5446181008983001,
"ref_b_norm": 0.8386841623483354,
"test_a_norm": -0.5566785563430942,
"test_b_norm": 0.8824149658876544,
"Rcs_pct": 4.3061264306303055,
"Rhs": -0.01426763049959886,
"Rf_h": 92.84210402416262
},
{
"bin": 7,
"ref_a": -18.229900705740313,
"ref_b": 11.246987320567925,
"test_a": -17.46494877376272,
"test_b": 11.84786608591247,
"ref_a_norm": -0.8510620753579872,
"ref_b_norm": 0.5250650853821418,
"test_a_norm": -0.8153503296229732,
"test_b_norm": 0.5531170828848845,
"Rcs_pct": -1.4108376591675187,
"Rhs": -0.04316476638745592,
"Rf_h": 92.61160143553771
},
{
"bin": 8,
"ref_a": -22.79105010923753,
"ref_b": 3.578396849279519,
"test_a": -21.636083632428402,
"test_b": 3.971223899818209,
"ref_a_norm": -0.9878974171569176,
"ref_b_norm": 0.15510864958051526,
"test_a_norm": -0.9378344146241776,
"test_b_norm": 0.1721360716061134,
"Rcs_pct": -4.5779170730822605,
"Rhs": -0.026467052171126923,
"Rf_h": 91.0006755636468
},
{
"bin": 9,
"ref_a": -19.358693284334183,
"ref_b": -2.1384744785301306,
"test_a": -18.04586295685151,
"test_b": -2.381655291584643,
"ref_a_norm": -0.9939539260717375,
"ref_b_norm": -0.10979796376335532,
"test_a_norm": -0.926547885844662,
"test_b_norm": -0.1222838542276901,
"Rcs_pct": -6.367497567363852,
"Rhs": 0.025396243673878865,
"Rf_h": 89.70289506809974
},
{
"bin": 10,
"ref_a": -20.139427962408828,
"ref_b": -11.276798405229234,
"test_a": -17.65706749011864,
"test_b": -12.151386070481754,
"ref_a_norm": -0.8725296791959833,
"ref_b_norm": -0.48856111073452657,
"test_a_norm": -0.7649827721746437,
"test_b_norm": -0.5264521420198199,
"Rcs_pct": -6.837085600484762,
"Rhs": 0.09125510128690958,
"Rf_h": 81.0361401131765
},
{
"bin": 11,
"ref_a": -12.058854551175639,
"ref_b": -17.35828200020298,
"test_a": -9.734965421006237,
"test_b": -19.17100989729602,
"ref_a_norm": -0.5705391851500262,
"ref_b_norm": -0.8212703806958729,
"test_a_norm": -0.4605892885757623,
"test_b_norm": -0.9070357652037534,
"Rcs_pct": 1.0226421345501167,
"Rhs": 0.1390686925333672,
"Rf_h": 79.19396726731712
},
{
"bin": 12,
"ref_a": -5.355977172011339,
"ref_b": -23.677114212953057,
"test_a": -3.7712182513193846,
"test_b": -25.272516238095125,
"ref_a_norm": -0.2206344682336243,
"ref_b_norm": -0.9753565663014043,
"test_a_norm": -0.15535180728941117,
"test_b_norm": -1.0410776599751252,
"Rcs_pct": 5.172226594151094,
"Rhs": 0.07684982224769742,
"Rf_h": 83.829879348362
},
{
"bin": 13,
"ref_a": 3.6850044440296124,
"ref_b": -15.344231315979924,
"test_a": 3.322462452613831,
"test_b": -16.78914509029956,
"ref_a_norm": 0.23351608976056143,
"ref_b_norm": -0.9723529378898063,
"test_a_norm": 0.21054206367856199,
"test_b_norm": -1.063916087879208,
"Rcs_pct": 8.53217795906143,
"Rhs": -0.04039567102906844,
"Rf_h": 87.95061618493018
},
{
"bin": 14,
"ref_a": 14.02948917300974,
"ref_b": -18.58441067316398,
"test_a": 13.749287604757338,
"test_b": -20.179170222784244,
"ref_a_norm": 0.602503180254292,
"ref_b_norm": -0.7981164813380714,
"test_a_norm": 0.5904697887385768,
"test_b_norm": -0.8666041994964497,
"Rcs_pct": 5.02600623362309,
"Rhs": -0.048055136914487415,
"Rf_h": 87.73965073854671
},
{
"bin": 15,
"ref_a": 15.409047312947784,
"ref_b": -11.033367769942632,
"test_a": 14.089060309833355,
"test_b": -13.346786740827616,
"ref_a_norm": 0.8130614631507036,
"ref_b_norm": -0.5821778569640356,
"test_a_norm": 0.7434120849448022,
"test_b_norm": -0.7042458716275917,
"Rcs_pct": 0.9906013856897832,
"Rhs": -0.14019096610637147,
"Rf_h": 81.37159838982325
},
{
"bin": 16,
"ref_a": 20.095661758951227,
"ref_b": -3.591713352543728,
"test_a": 18.892653659571067,
"test_b": -5.8060695129771736,
"ref_a_norm": 0.9844004172431393,
"ref_b_norm": -0.17594265694121258,
"test_a_norm": 0.9254702018970731,
"test_b_norm": -0.28441448306978706,
"Rcs_pct": -3.6636084293313274,
"Rhs": -0.11788428509370821,
"Rf_h": 80.93358190054737
}
]
}
}