Files
HPCS6500-py/spectrometer.py
grabowski d06bf451f5 Simplify single-test to match vendor capture exactly
Remove send_test_config() call - vendor software doesn't send 8C 2B for
each single test, only when changing modes. Remove set_integration_time()
from spectrometer.py - vendor doesn't send 8C 01 either.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 14:34:31 +07:00

43 lines
1002 B
Python

"""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()
reading = dev.take_single_reading()
finally:
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()