Source code for lewis.devices.julabo.interfaces.julabo_stream_interface_1

# -*- coding: utf-8 -*-
# *********************************************************************
# lewis - a library for creating hardware device simulators
# Copyright (C) 2016-2021 European Spallation Source ERIC
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
# *********************************************************************

from lewis.adapters.stream import Cmd, StreamInterface, Var


[docs] class JulaboStreamInterfaceV1(StreamInterface): """Julabos can have different commands sets depending on the version number of the hardware. This protocol matches that for: FP50_MH (confirmed). """ protocol = "julabo-version-1" commands = { Var("temperature", read_pattern="^IN_PV_00$", doc="The bath temperature."), Var( "external_temperature", read_pattern="^IN_PV_01$", doc="The external temperature.", ), Var("heating_power", read_pattern="^IN_PV_02$", doc="The heating power."), Var( "set_point_temperature", read_pattern="^IN_SP_00$", doc="The temperature setpoint.", ), Cmd( "set_set_point", r"^OUT_SP_00 ([0-9]*\.?[0-9]+)$", argument_mappings=(float,), ), Var( "temperature_high_limit", read_pattern="^IN_SP_01$", doc="The high limit - usually set in the hardware.", ), Var( "temperature_low_limit", read_pattern="^IN_SP_02$", doc="The low limit - usually set in the hardware.", ), Var("version", read_pattern="^VERSION$", doc="The Julabo version."), Var("status", read_pattern="^STATUS$", doc="The Julabo status."), Var( "is_circulating", read_pattern="^IN_MODE_05$", doc="Whether it is circulating.", ), Cmd("set_circulating", "^OUT_MODE_05 (0|1)$", argument_mappings=(int,)), Var("internal_p", read_pattern="^IN_PAR_06$", doc="The internal proportional."), Cmd( "set_internal_p", r"^OUT_PAR_06 ([0-9]*\.?[0-9]+)$", argument_mappings=(float,), ), Var("internal_i", read_pattern="^IN_PAR_07$", doc="The internal integral."), Cmd("set_internal_i", "^OUT_PAR_07 ([0-9]*)$", argument_mappings=(int,)), Var("internal_d", read_pattern="^IN_PAR_08$", doc="The internal derivative."), Cmd("set_internal_d", "^OUT_PAR_08 ([0-9]*)$", argument_mappings=(int,)), Var("external_p", read_pattern="^IN_PAR_09$", doc="The external proportional."), Cmd( "set_external_p", r"^OUT_PAR_09 ([0-9]*\.?[0-9]+)$", argument_mappings=(float,), ), Var("external_i", read_pattern="^IN_PAR_11$", doc="The external integral."), Cmd("set_external_i", "^OUT_PAR_11 ([0-9]*)$", argument_mappings=(int,)), Var("external_d", read_pattern="^IN_PAR_12$", doc="The external derivative."), Cmd("set_external_d", "^OUT_PAR_12 ([0-9]*)$", argument_mappings=(int,)), } in_terminator = "\r" out_terminator = "\r\n"