Add spectrometer.py JSON wrapper for external tools

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-02-04 14:21:15 +07:00
parent 7c00320fe8
commit 031bb420f9

44
spectrometer.py Normal file
View File

@@ -0,0 +1,44 @@
"""Thin wrapper for external tools — outputs JSON to stdout."""
import argparse
import json
import sys
from hpcs6500 import HPCS6500, find_hpcs_port
def measure():
port = find_hpcs_port()
if not port:
print('{"error": "HPCS 6500 not found"}', file=sys.stderr)
sys.exit(1)
dev = HPCS6500(port)
try:
dev.identify()
dev.psu_on()
reading = dev.take_reading(psu=False)
finally:
dev.psu_off()
dev.close()
if reading is None:
print('{"error": "measurement failed"}', file=sys.stderr)
sys.exit(1)
result = {
"lumen": round(reading["Phi_lm"], 1),
"cct": round(reading["CCT_K"]),
}
print(json.dumps(result))
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="HPCS 6500 JSON interface")
parser.add_argument("--measure", action="store_true", help="Take a measurement and output JSON")
args = parser.parse_args()
if args.measure:
measure()
else:
parser.print_help()