Skip to content

TEC Oven¤

Control a TEC (Peltier-based) oven from Raicol Crystals.

RaicolTEC (Serial) ¤

RaicolTEC(equipment: Equipment)

              flowchart LR
              msl.equipment_resources.raicol.tec.RaicolTEC[RaicolTEC]
              msl.equipment.interfaces.serial.Serial[Serial]
              msl.equipment.interfaces.message_based.MessageBased[MessageBased]
              msl.equipment.schema.Interface[Interface]

                              msl.equipment.interfaces.serial.Serial --> msl.equipment_resources.raicol.tec.RaicolTEC
                                msl.equipment.interfaces.message_based.MessageBased --> msl.equipment.interfaces.serial.Serial
                                msl.equipment.schema.Interface --> msl.equipment.interfaces.message_based.MessageBased
                




              click msl.equipment_resources.raicol.tec.RaicolTEC href "" "msl.equipment_resources.raicol.tec.RaicolTEC"
              click msl.equipment.interfaces.serial.Serial href "" "msl.equipment.interfaces.serial.Serial"
              click msl.equipment.interfaces.message_based.MessageBased href "" "msl.equipment.interfaces.message_based.MessageBased"
              click msl.equipment.schema.Interface href "" "msl.equipment.schema.Interface"
            

Control a TEC (Peltier-based) oven from Raicol Crystals.

Regular-expression patterns that are used to select this Resource when connect() is called.

manufacturer=r"Raicol"
model=r"TEC"

Parameters:

Name Type Description Default
equipment Equipment

An Equipment instance.

required
Source code in packages/resources/src/msl/equipment_resources/raicol/tec.py
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
def __init__(self, equipment: Equipment) -> None:
    """Control a TEC (Peltier-based) oven from Raicol Crystals.

    Regular-expression patterns that are used to select this Resource when
    [connect()][msl.equipment.schema.Equipment.connect] is called.
    ```python
    manufacturer=r"Raicol"
    model=r"TEC"
    ```

    Args:
        equipment: An [Equipment][] instance.
    """
    super().__init__(equipment)
    self.write_termination: bytes = b"\n"

get_setpoint ¤

get_setpoint() -> float

Get the setpoint temperature.

Returns:

Type Description
float

The setpoint temperature, in Celsius.

Source code in packages/resources/src/msl/equipment_resources/raicol/tec.py
32
33
34
35
36
37
38
def get_setpoint(self) -> float:
    """Get the setpoint temperature.

    Returns:
        The setpoint temperature, in Celsius.
    """
    return float(self.query("Get_T_Set", size=6)[2:])

off ¤

off() -> None

Turn the TEC off.

Source code in packages/resources/src/msl/equipment_resources/raicol/tec.py
40
41
42
43
44
45
def off(self) -> None:
    """Turn the TEC off."""
    reply = self.query("OFF", size=4)
    if reply != "ofOK":
        msg = "Cannot turn the TEC off"
        raise MSLConnectionError(self, msg)

on ¤

on() -> None

Turn the TEC on.

Source code in packages/resources/src/msl/equipment_resources/raicol/tec.py
47
48
49
50
51
52
def on(self) -> None:
    """Turn the TEC on."""
    reply = self.query("ON", size=4)
    if reply != "onOK":
        msg = "Cannot turn the TEC on"
        raise MSLConnectionError(self, msg)

set_setpoint ¤

set_setpoint(temperature: float) -> None

Set the setpoint temperature.

Parameters:

Name Type Description Default
temperature float

The setpoint temperature, in Celsius. Must be in the range [20.1, 60.0].

required
Source code in packages/resources/src/msl/equipment_resources/raicol/tec.py
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
def set_setpoint(self, temperature: float) -> None:
    """Set the setpoint temperature.

    Args:
        temperature: The setpoint temperature, in Celsius. Must be in the range [20.1, 60.0].
    """
    t = round(temperature, 1)
    if t < 20.1 or t > 60.0:  # noqa: PLR2004
        msg = f"The setpoint temperature must be between 20.1 and 60.0, got {t}"
        raise ValueError(msg)

    reply = self.query(f"Set_T{t:.1f}", size=4, delay=0.05)
    if reply != "stOK":
        msg = "Cannot change the setpoint temperature"
        raise MSLConnectionError(self, msg)

temperature ¤

temperature() -> float

Returns the current temperature of the oven.

The temperature is measured by a PT1000 sensor that is located near the crystal in the metallic mount.

Returns:

Type Description
float

The temperature of the oven, in Celsius.

Source code in packages/resources/src/msl/equipment_resources/raicol/tec.py
70
71
72
73
74
75
76
77
78
def temperature(self) -> float:
    """Returns the current temperature of the oven.

    The temperature is measured by a PT1000 sensor that is located near the crystal in the metallic mount.

    Returns:
        The temperature of the oven, in Celsius.
    """
    return float(self.query("Data_T", size=7)[2:])