# Open the port and check the power status import serial import time class PowerSupplyController: def __init__(self, port , baudrate=9600, timeout=1): self.port = port self.baudrate = baudrate self.timeout = timeout self.serial_conn = None def open_connection(self): """Open the serial port""" self.serial_conn = serial.Serial(port=self.port, baudrate=self.baudrate, timeout=self.timeout) print(f"Connected to {self.port} at {self.baudrate} baudrate.") def close_connection(self): """Close the serial port""" if self.serial_conn and self.serial_conn.is_open: self.serial_conn.close() print("Connection closed.") def send_command(self, command): """Send a command""" if self.serial_conn and self.serial_conn.is_open: self.serial_conn.write(command.encode("utf-8")) time.sleep(0.1) # Wait briefly for command processing response = self.serial_conn.readline().decode().strip() print(f"Response: {response}") return response else: print("Connection is not open.") return None def status(self): """Check the power status""" command = "#1 STS\r\n" #Change the unit number according to the settings. self.send_command(command) print(f"Command{command}") # Main program if __name__ == "__main__": # Serial port settings (Change the port name according to the environment) port_name = "COM3" # For Windows # port_name = "/dev/ttyUSB0" # For Linux/Mac # Create an instance and open the port power_controller = PowerSupplyController(port=port_name) power_controller.open_connection() # Send status check command power_controller.status() # Set remote mode to OFF power_controller.close_connection()