""" Stream device for amint2l """ from lewis.adapters.stream import StreamInterface from lewis.core.logging import has_log from lewis.utils.command_builder import CmdBuilder from lewis.utils.replies import conditional_reply if_connected = conditional_reply("connected") @has_log class Amint2lStreamInterface(StreamInterface): """ Stream interface for the serial port """ in_terminator = chr(3) out_terminator = chr(3) def __init__(self): super(Amint2lStreamInterface, self).__init__() self.commands = { CmdBuilder(self.get_pressure).stx().arg("[A-Fa-f0-9]+").escape( "r").build() } @if_connected
from lewis.adapters.stream import StreamInterface from lewis.core.logging import has_log from lewis.utils.replies import conditional_reply from lewis.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(), CmdBuilder(self.get_remote_mode).escape("REMOTE?").eos().build(), CmdBuilder(self.set_remote_mode).escape("REMOTE").eos().build(), CmdBuilder(self.set_local_mode).escape("LOCAL").eos().build(),
from lewis.adapters.stream import StreamInterface from lewis.utils.command_builder import CmdBuilder from lewis.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(
from lewis.adapters.stream import StreamInterface, Cmd from lewis.utils.command_builder import CmdBuilder from lewis.utils.replies import conditional_reply if_connected = conditional_reply('connected') if_input_error = conditional_reply('input_correct', "E2") class Knrk6StreamInterface(StreamInterface): in_terminator = '\r' out_terminator = '\r' # Commands that we expect via serial during normal operation def __init__(self): super(Knrk6StreamInterface, self).__init__() # Commands that we expect via serial during normal operation self.commands = { CmdBuilder(self.get_position).escape("p").eos().build(), CmdBuilder(self.set_position).int().eos().build(), CmdBuilder(self.get_valve_type).escape("t").eos().build(), } def catch_all(self): pass @if_connected def get_position(self): return self.device.position
""" Stream device for danfysik """ import abc import six from lewis.core.logging import has_log from lewis.utils.command_builder import CmdBuilder from lewis.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").escape("PO ").arg(r"\+|-").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(),