import six from lewis.adapters.stream import StreamInterface from lewis_emulators.utils.command_builder import CmdBuilder from lewis_emulators.utils.replies import conditional_reply if_connected = conditional_reply("connected") class MKS_PR4000B_StreamInterface(StreamInterface): def __init__(self): super(MKS_PR4000B_StreamInterface, self).__init__() self.commands = { CmdBuilder("get_value").escape("AV").int().eos().build(), CmdBuilder("get_valve_status").escape("?VL").int().eos().build(), CmdBuilder("set_valve_status").escape("VL").int().escape(",").enum( "ON", "OFF").eos().build(), CmdBuilder("get_relay_status").escape("?RL").int().eos().build(), CmdBuilder("set_relay_status").escape("RL").int().escape(",").enum( "ON", "OFF").eos().build(), CmdBuilder("get_formula_relay").escape("?FR").int().eos().build(), CmdBuilder("set_formula_relay").escape("FR").int().escape( ",").any().eos().build(), CmdBuilder("get_remote_mode").escape("?RT").eos().build(), CmdBuilder("set_remote_mode").escape("RT").escape(",").enum( "ON", "OFF").eos().build(), CmdBuilder("get_external_input").escape("EX").int().eos().build(), CmdBuilder("get_status").escape("ST").eos().build(), CmdBuilder("set_range").escape("RG").int().escape( ",").float().escape(",").int().eos().build(), CmdBuilder("get_range").escape("?RG").int().eos().build(),
from lewis.adapters.stream import StreamInterface from lewis_emulators.utils.command_builder import CmdBuilder from lewis_emulators.utils.replies import conditional_reply, timed_reply if_connected = conditional_reply("connected") if_input_error = conditional_reply("input_correct", "%%[Error:stack underflow]%%") if_valid_input_delay = timed_reply(action="crash_pump", minimum_time_delay=100) def combined_checks(func): """ Combine all conditional reply checks so we have a single decorator """ return if_valid_input_delay(if_connected(if_input_error(func))) class Jsco4180StreamInterface(StreamInterface): in_terminator = '\r' out_terminator = '\r\n' def __init__(self): super(Jsco4180StreamInterface, self).__init__() # Commands that we expect via serial during normal operation self.commands = { CmdBuilder(self.set_flowrate).float().escape(" flowrate set").eos().build(), CmdBuilder(self.get_flowrate_rbv).escape("flowrate load p").eos().build(), CmdBuilder(self.get_flowrate).escape("a_flow load p").eos().build(),
from lewis.adapters.stream import StreamInterface, Cmd from lewis_emulators.utils.command_builder import CmdBuilder from lewis_emulators.utils.replies import conditional_reply from enum import Enum if_connected = conditional_reply('connected') if_input_error = conditional_reply('input_correct', "ER,OF,00") class Modes(Enum): """ Device Modes """ MEASURE = 'R0' # Read measured values SET_UP = 'Q0' # Configure device parameters class KeylkgStreamInterface(StreamInterface): terminator = '\r' def __init__(self): super(KeylkgStreamInterface, self).__init__() # Commands that we expect via serial during normal operation self.commands = { CmdBuilder(self.set_mode).arg("Q0|R0").eos().build(), CmdBuilder(self.set_measurement_offset).escape( "SW,OF,").int().escape(",").float().eos().build(), CmdBuilder(self.get_measurement_offset).escape(
from lewis.adapters.stream import StreamInterface from lewis.core.logging import has_log from lewis_emulators.utils.replies import conditional_reply from lewis_emulators.utils.command_builder import CmdBuilder if_connected = conditional_reply('connected') if_input_error = conditional_reply('input_correct', "ERROR:20,Instrument in standalone mode") @has_log class Knr1050StreamInterface(StreamInterface): in_terminator = '\r' out_terminator = '\r' def __init__(self): super(Knr1050StreamInterface, self).__init__() # Commands that we expect via serial during normal operation self.commands = { CmdBuilder(self.get_status).escape("STATUS?").eos().build(), CmdBuilder(self.start_pump).escape("RAMP:0,").int().escape( ",").int().escape(",").int().escape(",").int().escape( ",").int().eos().build(), CmdBuilder(self.stop_pump).escape("STOP:1,0").eos().build(), CmdBuilder(self.stop_klv).escape("STOP:2").eos().build(), CmdBuilder(self.get_pressure_limits).escape("PLIM?").eos().build(), CmdBuilder(self.set_pressure_limits).escape("PLIM:").int().escape( ",").int().eos().build(),
""" Stream device for danfysik """ import abc import six from lewis.core.logging import has_log from lewis_emulators.utils.command_builder import CmdBuilder from lewis_emulators.utils.replies import conditional_reply if_available = conditional_reply("device_available") @has_log @six.add_metaclass(abc.ABCMeta) class CommonStreamInterface(object): """ Common part of the stream interface for a Danfysik. """ in_terminator = "\r" out_terminator = "" commands = [ CmdBuilder("get_voltage").escape("AD 2").eos().build(), CmdBuilder("set_polarity").arg("\+|\-").eos().build(), CmdBuilder("get_polarity").escape("PO").eos().build(), CmdBuilder("set_power_off").escape("F").eos().build(), CmdBuilder("set_power_on").escape("N").eos().build(), CmdBuilder("get_status").escape("S1").eos().build(), CmdBuilder("get_last_setpoint").escape("RA").eos().build(),
from lewis.adapters.stream import StreamInterface, Cmd from lewis_emulators.utils.command_builder import CmdBuilder from lewis_emulators.utils.constants import STX, ETX from lewis_emulators.utils.replies import conditional_reply if_input_error = conditional_reply('input_correct', STX + "01I?NA" + ETX) if_connected = conditional_reply("connected") class Aldn1000StreamInterface(StreamInterface): in_terminator = "\r" directions = 'INF|WDR|REV' status_modes = 'I|W|S|P|T|U|A?R|A?S|A?T|A?E|A?O' def __init__(self): super(Aldn1000StreamInterface, self).__init__() self.commands = { CmdBuilder(self.get_diameter).int().escape('DIA').eos().build(), CmdBuilder(self.set_diameter).int().escape('DIA').float().eos().build(), CmdBuilder(self.get_volume).int().escape('VOL').eos().build(), CmdBuilder(self.set_volume).int().escape('VOL').float().eos().build(), CmdBuilder(self.get_direction).int().escape('DIR').eos().build(), CmdBuilder(self.set_direction).int().escape('DIR').arg(self.directions).eos().build(), CmdBuilder(self.get_rate).int().escape('RAT').eos().build(), CmdBuilder(self.set_rate).int().escape('RAT').float().string().eos().build(), CmdBuilder(self.get_program_function).int().escape('FUN').eos().build(), CmdBuilder(self.get_volume_dispensed).int().escape('DIS').eos().build(),