Chroma 61604/pychroma.py
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
"""This module implements the Chroma AC Source control.""" import sigrok.core as sr from sigrok.core.classes import ConfigKey class ACSource(object): sr_ctx = 0 def __init__(self, port, portcomm='19200/8n1', model=0): if not ACSource.sr_ctx: ACSource.sr_ctx = sr.Context.create() driver = ACSource.sr_ctx.drivers['scpi-pps'] devs = driver.scan(conn=port, serialcomm=portcomm) if not devs: raise hell self.device = devs[0] if model and model != self.device.model: print('Expected model %s, but found model %s on port %s' % (model, self.device.model, port)) raise hell self.device.open() self.output = self.device.channel_groups['1'] def set_param(self, what, value): sr_key = ConfigKey.get_by_identifier(what) self.output.config_set(sr_key, value) def read_param(self, what): sr_key = ConfigKey.get_by_identifier(what) return self.output.config_get(sr_key) def enable_output(self): self.set_param('output_enabled', True) def disable_output(self): self.set_param('output_enabled', False) def set_voltage(self, volts): self.set_param('output_voltage_target', volts) def set_ocp_limit(self, amps): self.set_param('ocp_threshold', amps) def get_ocp_limit(self): return self.set_param('ocp_threshold') def set_ovp_limit(self, amps): self.set_param('ovp_threshold', amps) def get_ovp_limit(self): return self.set_param('ovp_threshold') def measure_voltage(self): return self.read_param('output_voltage') def measure_current(self): return self.read_param('output_current')