コード例 #1
0
"""
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
コード例 #2
0
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(),
コード例 #3
0
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(
コード例 #4
0
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
コード例 #5
0
"""
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(),