38 lines
1.1 KiB
Python

#!/usr/bin/env python3
"""
Power cycle the ECU via MUM
"""
import argparse
import time
from pymumclient import MelexisUniversalMaster
from config import MUM_HOST, MUM_POWER_DEVICE, POWER_CYCLE_WAIT_TIME
def main():
parser = argparse.ArgumentParser(description='Power cycle ECU via MUM')
parser.add_argument('--host', default=MUM_HOST,
help=f'MUM IP address (default: {MUM_HOST})')
parser.add_argument('--wait', type=float, default=POWER_CYCLE_WAIT_TIME,
help=f'Wait time in seconds (default: {POWER_CYCLE_WAIT_TIME})')
args = parser.parse_args()
print(f"Connecting to MUM at {args.host}...")
mum = MelexisUniversalMaster()
mum.open_all(args.host)
power_control = mum.get_device(MUM_POWER_DEVICE)
print("Powering down ECU...")
power_control.power_down()
print(f"Waiting {args.wait} seconds...")
time.sleep(args.wait)
print("Powering up ECU...")
power_control.power_up()
print(f"Waiting {args.wait} seconds for ECU to boot...")
time.sleep(args.wait)
print("Power cycle complete!")
if __name__ == "__main__":
main()