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
14 KiB
JSON

{
"name": "lamp_L0004",
"source": "L0004/spd.csv",
"generator": "crates/tm30/tools/golden.py (tm30.py + colour-science 0.4.7, numpy 2.5.1)",
"wavelengths": [
380.0,
381.92,
383.84,
385.76,
387.68,
389.6,
391.52,
393.44,
395.36,
397.28,
399.2,
401.12,
403.04,
404.96,
406.88,
408.8,
410.72,
412.64,
414.56,
416.48,
418.4,
420.32,
422.23,
424.15,
426.07,
427.99,
429.91,
431.83,
433.75,
435.67,
437.59,
439.51,
441.43,
443.35,
445.27,
447.19,
449.11,
451.03,
452.95,
454.87,
456.79,
458.71,
460.63,
462.55,
464.47,
466.39,
468.31,
470.23,
472.15,
474.07,
475.99,
477.91,
479.83,
481.75,
483.67,
485.59,
487.51,
489.43,
491.35,
493.27,
495.19,
497.11,
499.03,
500.95,
502.87,
504.79,
506.7,
508.62,
510.54,
512.46,
514.38,
516.3,
518.22,
520.14,
522.06,
523.98,
525.9,
527.82,
529.74,
531.66,
533.58,
535.5,
537.42,
539.34,
541.26,
543.18,
545.1,
547.02,
548.94,
550.86,
552.78,
554.7,
556.62,
558.54,
560.46,
562.38,
564.3,
566.22,
568.14,
570.06,
571.98,
573.9,
575.82,
577.74,
579.66,
581.58,
583.5,
585.42,
587.34,
589.26,
591.17,
593.09,
595.01,
596.93,
598.85,
600.77,
602.69,
604.61,
606.53,
608.45,
610.37,
612.29,
614.21,
616.13,
618.05,
619.97,
621.89,
623.81,
625.73,
627.65,
629.57,
631.49,
633.41,
635.33,
637.25,
639.17,
641.09,
643.01,
644.93,
646.85,
648.77,
650.69,
652.61,
654.53,
656.45,
658.37,
660.29,
662.21,
664.13,
666.05,
667.97,
669.89,
671.81,
673.72,
675.64,
677.56,
679.48,
681.4,
683.32,
685.24,
687.16,
689.08,
691.0,
692.92,
694.84,
696.76,
698.68,
700.6,
702.52,
704.44,
706.36,
708.28,
710.2,
712.12,
714.04,
715.96,
717.88,
719.8,
721.72,
723.64,
725.56,
727.48,
729.4,
731.32,
733.24,
735.16,
737.08,
739.0,
740.92,
742.84,
744.76,
746.68,
748.6,
750.52,
752.44,
754.36,
756.28,
758.19,
760.11,
762.03,
763.95,
765.87,
767.79,
769.71,
771.63,
773.55,
775.47,
777.39,
779.31,
781.23,
783.15,
785.07,
786.99,
788.91,
790.83,
792.75,
794.67,
796.59,
798.51,
800.43,
802.35,
804.27,
806.19,
808.11,
810.03,
811.95,
813.87,
815.79,
817.71,
819.63,
821.55,
823.47,
825.39,
827.31,
829.23,
831.15,
833.07,
834.99,
836.91,
838.83,
840.74,
842.66,
844.58,
846.5,
848.42,
850.34,
852.26,
854.18,
856.1,
858.02,
859.94,
861.86,
863.78,
865.7,
867.62,
869.54,
871.46,
873.38,
875.3,
877.22,
879.14,
881.06,
882.98,
884.9,
886.82,
888.74,
890.66,
892.58,
894.5,
896.42,
898.34,
900.26,
902.18,
904.1,
906.02,
907.94,
909.86,
911.78,
913.7,
915.62,
917.54,
919.46,
921.38,
923.3,
925.21,
927.13,
929.05,
930.97,
932.89,
934.81,
936.73,
938.65,
940.57,
942.49,
944.41,
946.33,
948.25,
950.17,
952.09,
954.01,
955.93,
957.85,
959.77,
961.69,
963.61,
965.53,
967.45,
969.37,
971.29,
973.21,
975.13,
977.05,
978.97,
980.89,
982.81,
984.73,
986.65,
988.57,
990.49,
992.41,
994.33,
996.25,
998.17,
1000.09,
1002.01,
1003.93,
1005.85,
1007.77,
1009.68,
1011.6,
1013.52,
1015.44,
1017.36,
1019.28,
1021.2,
1023.12,
1025.04,
1026.96,
1028.88,
1030.8,
1032.72,
1034.64,
1036.56,
1038.48,
1040.4,
1042.32,
1044.24,
1046.16,
1048.08,
1050.0
],
"values": [
0.0,
0.0,
0.00255847,
0.0210863,
0.065981,
0.143599,
0.270733,
0.427104,
0.588985,
0.774048,
0.985239,
1.22928,
1.51043,
1.8292,
2.18545,
2.57401,
3.00084,
3.46377,
3.96494,
4.50652,
5.08274,
5.69404,
6.33362,
6.98997,
7.6521,
8.32141,
8.98806,
9.64954,
10.291,
10.8872,
11.4421,
11.872,
12.1407,
12.2709,
12.2558,
12.086,
11.7698,
11.3215,
10.7705,
10.1515,
9.49823,
8.83597,
8.18367,
7.55855,
6.96897,
6.42542,
5.92934,
5.48097,
5.07145,
4.69341,
4.34235,
4.01609,
3.71597,
3.43772,
3.18021,
2.94261,
2.72637,
2.53448,
2.36541,
2.21833,
2.09141,
1.98509,
1.89909,
1.83159,
1.78091,
1.74462,
1.71928,
1.70914,
1.71347,
1.73166,
1.76334,
1.809,
1.87068,
1.95062,
2.06045,
2.19321,
2.33421,
2.49431,
2.6737,
2.87152,
3.08595,
3.31648,
3.56146,
3.82053,
4.09311,
4.37759,
4.67351,
4.97975,
5.2949,
5.61696,
5.94496,
6.27378,
6.60218,
6.92854,
7.25159,
7.57097,
7.88258,
8.18441,
8.47608,
8.75857,
9.03008,
9.29029,
9.53534,
9.76402,
9.97609,
10.1739,
10.3556,
10.5194,
10.6669,
10.7984,
10.9199,
11.0355,
11.1478,
11.2536,
11.3488,
11.4333,
11.5099,
11.5831,
11.6541,
11.7216,
11.7866,
11.8514,
11.9206,
11.9915,
12.0645,
12.1369,
12.2076,
12.2803,
12.3545,
12.4266,
12.4937,
12.559,
12.6264,
12.703,
12.7878,
12.8742,
12.9605,
13.0464,
13.134,
13.2263,
13.3229,
13.4213,
13.5234,
13.6302,
13.7421,
13.8583,
13.9797,
14.1068,
14.2413,
14.3828,
14.5312,
14.686,
14.8457,
15.0121,
15.1858,
15.3664,
15.5533,
15.7475,
15.9366,
16.1294,
16.3399,
16.5504,
16.756,
16.9582,
17.1554,
17.3479,
17.5369,
17.7258,
17.9161,
18.1082,
18.2991,
18.4822,
18.6546,
18.8175,
18.9729,
19.1213,
19.2638,
19.3956,
19.5168,
19.6271,
19.7252,
19.8135,
19.8926,
19.9679,
20.0357,
20.0868,
20.1231,
20.1451,
20.152,
20.1461,
20.1313,
20.1055,
20.0685,
20.0171,
19.9495,
19.8665,
19.7695,
19.6623,
19.5464,
19.4261,
19.2974,
19.1596,
19.016,
18.8959,
18.771,
18.6046,
18.4246,
18.2353,
18.0387,
17.8373,
17.6303,
17.4159,
17.1956,
16.971,
16.743,
16.511,
16.2753,
16.0385,
15.8005,
15.5616,
15.3218,
15.1178,
14.9098,
14.6607,
14.4091,
14.1571,
13.9017,
13.6399,
13.3744,
13.1073,
12.8415,
12.5759,
12.31,
12.0437,
11.7787,
11.5155,
11.2911,
11.0677,
10.8051,
10.5421,
10.2801,
10.0195,
9.76374,
9.51197,
9.26428,
9.02117,
8.78145,
8.54667,
8.31672,
8.09038,
7.89926,
7.71237,
7.49921,
7.29237,
7.09135,
6.89393,
6.69966,
6.50905,
6.32228,
6.13982,
5.96215,
5.79012,
5.62404,
5.48424,
5.34629,
5.18695,
5.02807,
4.87088,
4.71682,
4.56644,
4.41979,
4.27713,
4.13787,
4.00137,
3.86759,
3.73579,
3.62365,
3.51405,
3.39099,
3.27133,
3.1546,
3.04035,
2.92869,
2.82067,
2.71582,
2.61272,
2.51103,
2.42408,
2.33904,
2.24445,
2.15353,
2.06616,
1.98218,
1.90077,
1.82201,
1.74677,
1.67517,
1.60778,
1.54386,
1.48856,
1.4322,
1.36482,
1.29579,
1.22812,
1.16438,
1.10525,
1.05143,
1.00173,
0.954845,
0.916886,
0.881104,
0.842756,
0.808086,
0.775126,
0.742455,
0.709876,
0.677829,
0.646861,
0.617464,
0.592636,
0.568499,
0.541518,
0.515341,
0.490225,
0.466008,
0.443091,
0.421363,
0.400605,
0.380486,
0.363731,
0.347198,
0.328446,
0.310027,
0.291902,
0.274443,
0.257333,
0.240552,
0.22455,
0.209217,
0.196433,
0.184286,
0.170098,
0.156471,
0.143804,
0.132403,
0.121075,
0.110491,
0.100871,
0.092404,
0.0847517
],
"expected": {
"Rf": 67.24125771006523,
"Rg": 114.57741538875685,
"CCT_K": 2434.1904147724877,
"Duv": -0.052142527240925135,
"bins": [
{
"bin": 1,
"ref_a": 25.31926554064602,
"ref_b": 5.696050670854714,
"test_a": 24.111694074166884,
"test_b": 5.408243553598857,
"ref_a_norm": 0.9756162259190091,
"ref_b_norm": 0.21948343838100626,
"test_a_norm": 0.9290854008142064,
"test_b_norm": 0.20839349214701988,
"Rcs_pct": -4.780028952973748,
"Rhs": -0.0017991423733849908,
"Rf_h": 86.9044966575473
},
{
"bin": 2,
"ref_a": 19.800028648413715,
"ref_b": 14.033054147050713,
"test_a": 15.769992598103196,
"test_b": 16.789938030283434,
"ref_a_norm": 0.8158683084214428,
"ref_b_norm": 0.5782377567346615,
"test_a_norm": 0.6498090186280568,
"test_b_norm": 0.6918362888513115,
"Rcs_pct": -7.496129034501049,
"Rhs": 0.18671132578275035,
"Rf_h": 65.80296742576813
},
{
"bin": 3,
"ref_a": 15.61079335654892,
"ref_b": 24.122194939114507,
"test_a": 7.865758016879823,
"test_b": 30.45155649114465,
"ref_a_norm": 0.5433080510774396,
"ref_b_norm": 0.8395334190098893,
"test_a_norm": 0.27375480289763265,
"test_b_norm": 1.0598164636224399,
"Rcs_pct": 3.3402896798375767,
"Rhs": 0.34650803718461803,
"Rf_h": 32.14646510192676
},
{
"bin": 4,
"ref_a": 3.0726615988119597,
"ref_b": 19.919984867717222,
"test_a": -2.9431816718042123,
"test_b": 25.754879591175477,
"ref_a_norm": 0.15244726052792937,
"ref_b_norm": 0.9883116071146435,
"test_a_norm": -0.1460232338230949,
"test_b_norm": 1.2778045068221837,
"Rcs_pct": 22.57016699591498,
"Rhs": 0.3492127305194869,
"Rf_h": 43.200033638500095
},
{
"bin": 5,
"ref_a": -2.5265642320096955,
"ref_b": 15.692547463877709,
"test_a": -6.049520234406139,
"test_b": 19.856310139787436,
"ref_a_norm": -0.15895699883971812,
"ref_b_norm": 0.9872855070950195,
"test_a_norm": -0.3806012800697552,
"test_b_norm": 1.249245686241933,
"Rcs_pct": 30.016734195728738,
"Rhs": 0.1662795528108003,
"Rf_h": 62.209757601708866
},
{
"bin": 6,
"ref_a": -10.971458112259793,
"ref_b": 15.337732368829638,
"test_a": -13.003523938757573,
"test_b": 20.25810571438091,
"ref_a_norm": -0.5817975868155147,
"ref_b_norm": 0.8133336141926286,
"test_a_norm": -0.6895545487443585,
"test_b_norm": 1.0742525649266517,
"Rcs_pct": 27.681273925749725,
"Rhs": -0.05536216290065539,
"Rf_h": 63.97574481757434
},
{
"bin": 7,
"ref_a": -18.33287433340206,
"ref_b": 13.42976990463379,
"test_a": -19.840936315268607,
"test_b": 19.100725820145858,
"ref_a_norm": -0.806705761702064,
"ref_b_norm": 0.5909533095234281,
"test_a_norm": -0.8730653661836716,
"test_b_norm": 0.8404937104559116,
"Rcs_pct": 19.38132133047374,
"Rhs": -0.17061783949221848,
"Rf_h": 60.2040751860808
},
{
"bin": 8,
"ref_a": -21.27311392694406,
"ref_b": 3.8958460176874192,
"test_a": -19.583503013979758,
"test_b": 7.1765593652757165,
"ref_a_norm": -0.9836411892113722,
"ref_b_norm": 0.18013886556442352,
"test_a_norm": -0.905515772620259,
"test_b_norm": 0.331834794508614,
"Rcs_pct": -4.702985099167631,
"Rhs": -0.16402264688596085,
"Rf_h": 72.23803308588867
},
{
"bin": 9,
"ref_a": -24.1565667477894,
"ref_b": -5.139687608496572,
"test_a": -23.33585588741126,
"test_b": -3.1331584323023662,
"ref_a_norm": -0.9781059903389651,
"ref_b_norm": -0.20810735610024086,
"test_a_norm": -0.9448751832771309,
"test_b_norm": -0.12686244131097094,
"Rcs_pct": -4.844238301057818,
"Rhs": -0.07320080768238162,
"Rf_h": 80.74143909243692
},
{
"bin": 10,
"ref_a": -19.232620428532666,
"ref_b": -12.805073283805827,
"test_a": -16.812017522879156,
"test_b": -12.9971324491165,
"ref_a_norm": -0.8323832054507617,
"ref_b_norm": -0.5542005045861244,
"test_a_norm": -0.7276200914893317,
"test_b_norm": -0.5625127792577714,
"Rcs_pct": -8.248929337286775,
"Rhs": 0.06511467143399755,
"Rf_h": 79.06183286064181
},
{
"bin": 11,
"ref_a": -11.021505513236653,
"ref_b": -16.648050536791427,
"test_a": -6.7564395375550745,
"test_b": -17.84351600414797,
"ref_a_norm": -0.5520206127643031,
"ref_b_norm": -0.8338304642331817,
"test_a_norm": -0.33840149053564544,
"test_b_norm": -0.8937062751227346,
"Rcs_pct": -6.88955082473812,
"Rhs": 0.21088302694801858,
"Rf_h": 64.4065928345639
},
{
"bin": 12,
"ref_a": -5.283741988143532,
"ref_b": -21.169006769535528,
"test_a": 0.40921523143887184,
"test_b": -22.691897152384268,
"ref_a_norm": -0.24216852691189272,
"ref_b_norm": -0.9702342008882823,
"test_a_norm": 0.01875546724458432,
"test_b_norm": -1.0400324842810613,
"Rcs_pct": 1.7553382907329271,
"Rhs": 0.26952738235596146,
"Rf_h": 52.5392360930155
},
{
"bin": 13,
"ref_a": 3.7453202310907634,
"ref_b": -14.608570957331969,
"test_a": 6.647773596869409,
"test_b": -16.102162097363664,
"ref_a_norm": 0.24834628236425985,
"ref_b_norm": -0.968671318887811,
"test_a_norm": 0.4408033911431358,
"test_b_norm": -1.0677089936692385,
"Rcs_pct": 13.468121295695031,
"Rhs": 0.1694378075344476,
"Rf_h": 75.40993854262702
},
{
"bin": 14,
"ref_a": 13.011498869190666,
"ref_b": -15.414833648583118,
"test_a": 15.84239885115364,
"test_b": -17.561940261529973,
"ref_a_norm": 0.6450224620660133,
"ref_b_norm": -0.7641636103808519,
"test_a_norm": 0.7853594128343894,
"test_b_norm": -0.8706026922825163,
"Rcs_pct": 16.646789460226284,
"Rhs": 0.05755152451260279,
"Rf_h": 75.61639023937637
},
{
"bin": 15,
"ref_a": 16.576996223304487,
"ref_b": -10.246147995290025,
"test_a": 18.62077757563617,
"test_b": -12.827051563666874,
"ref_a_norm": 0.8506278387281897,
"ref_b_norm": -0.5257682759359001,
"test_a_norm": 0.9555019239453196,
"test_b_norm": -0.6582041162269128,
"Rcs_pct": 16.07770256266957,
"Rhs": -0.051851456819931564,
"Rf_h": 76.62203823499584
},
{
"bin": 16,
"ref_a": 18.035310108749773,
"ref_b": -3.3801147525423407,
"test_a": 18.087087802994777,
"test_b": -4.315874338137058,
"ref_a_norm": 0.9828870488915088,
"ref_b_norm": -0.18420925362570864,
"test_a_norm": 0.9857088259936496,
"test_b_norm": -0.23520621303540137,
"Rcs_pct": 1.2716570679438997,
"Rhs": -0.04946656573083323,
"Rf_h": 88.60585658294039
}
]
}
}