Source code for esptest.scripts.tempbox

import argparse
import json

try:
    # Run from `python -m esptest.scripts.tempbox`
    from ..devices.tempbox import TempboxController, get_tempbox_port
except ImportError:
    from esptest.devices.tempbox import TempboxController, get_tempbox_port


[docs] def main() -> None: parser = argparse.ArgumentParser(description='U680 tempbox controller') parser.add_argument('--port', default=None, help='Serial port. Empty means auto-detect.') parser.add_argument('--address', type=int, default=1, help='Modbus slave address') parser.add_argument('--mode', choices=['program', 'custom', 'read', 'stop'], default='read') parser.add_argument('--program', type=int, default=1, help='Program number for program mode') parser.add_argument('--temp', type=float, default=25.0, help='Target temp for custom mode') args = parser.parse_args() port = get_tempbox_port(args.port) if not port: raise ValueError('No tempbox serial port found') ctrl = TempboxController(port=port, address=args.address) try: if args.mode == 'program': ctrl.start_program_test(args.program) print(json.dumps({'mode': 'program', 'program': args.program, 'port': port}, ensure_ascii=False)) elif args.mode == 'custom': ctrl.start_custom_test(args.temp) print(json.dumps({'mode': 'custom', 'temp': args.temp, 'port': port}, ensure_ascii=False)) elif args.mode == 'stop': ctrl.stop_current_job() print(json.dumps({'mode': 'stop', 'port': port}, ensure_ascii=False)) status = ctrl.read_realtime() print(json.dumps(status, ensure_ascii=False)) finally: ctrl.close()
if __name__ == '__main__': main()