diff options
author | Daniel Friesel <derf@finalrewind.org> | 2021-11-06 07:04:46 +0100 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2021-11-06 07:04:46 +0100 |
commit | 1ba3ea765442754decfec0c6e6182e1eaeb83bd8 (patch) | |
tree | 5c612778054afc1058e812fea7bd3eb31882abe5 | |
parent | f982d84d5b46244e76a846a834d425bc5a1b28f4 (diff) |
add multi-channel support
-rwxr-xr-x | bin/kaxxxxp-viewer | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/bin/kaxxxxp-viewer b/bin/kaxxxxp-viewer index 073b9f5..84357f6 100755 --- a/bin/kaxxxxp-viewer +++ b/bin/kaxxxxp-viewer @@ -105,7 +105,7 @@ class SerialReader(serial.threaded.Protocol): class KA320: - def __init__(self, port): + def __init__(self, port, channel=1): self.ser = serial.serial_for_url(port, do_not_open=True) self.ser.baudrate = 9600 self.ser.parity = "N" @@ -120,6 +120,8 @@ class KA320: ) sys.exit(1) + self.channel = channel + self.reader = SerialReader() self.worker = serial.threaded.ReaderThread(self.ser, self.reader) self.worker.start() @@ -138,20 +140,20 @@ class KA320: return self.rw(b"*IDN?", 16) def get_max_voltage(self): - return float(self.rw(b"VSET1?", 5)) + return float(self.rw(f"VSET{self.channel:d}?".encode(), 5)) def get_max_current(self): - return float(self.rw(b"ISET1?", 5, True)) + return float(self.rw(f"ISET{self.channel:d}?".encode(), 5, True)) def get_voltage(self): try: - return float(self.rw(b"VOUT1?", 5)) + return float(self.rw(f"VOUT{self.channel:d}?".encode(), 5)) except TypeError: return None def get_current(self): try: - return float(self.rw(b"IOUT1?", 5, True)) + return float(self.rw(f"IOUT{self.channel:d}?".encode(), 5, True)) except TypeError: return None @@ -172,13 +174,13 @@ def graceful_exit(sig, frame): terminate_measurement = True -def measure_data(port, filename, duration): +def measure_data(port, filename, duration, channel=1): global terminate_measurement signal.signal(signal.SIGINT, graceful_exit) signal.signal(signal.SIGTERM, graceful_exit) signal.signal(signal.SIGQUIT, graceful_exit) - korad = KA320(port) + korad = KA320(port, channel) start_ts = time.time() @@ -312,6 +314,7 @@ def main(): default="/dev/ttyACM0", help="Set PSU serial port", ) + parser.add_argument("--channel", type=int, default=1, help="Measurement Channel") parser.add_argument( "--save", metavar="FILE", type=str, help="Save measurement data in FILE" ) @@ -354,7 +357,9 @@ def main(): with open(args.load, "r") as f: log_data = f.read() else: - log_data = measure_data(args.port, args.save, args.duration) + log_data = measure_data( + args.port, args.save, args.duration, channel=args.channel + ) data = parse_data(log_data, skip=args.skip, limit=args.limit) |