Skip to content

Commit

Permalink
Thermocouple telemetry, events and auxiliary data.
Browse files Browse the repository at this point in the history
  • Loading branch information
pkubanek committed Oct 21, 2024
1 parent 89b875e commit 31355f1
Show file tree
Hide file tree
Showing 5 changed files with 187 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="http://lsst-sal.tuc.noao.edu/schema/SALEventSet.xsl"?>
<SALEventSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://lsst-sal.tuc.noao.edu/schema/SALEventSet.xsd">
<Enumeration>
HC_BOTTOM=1,
HC_MIDDLE=2,
HC_TOP=3
</Enumeration>
<SALEvent>
<Subsystem>MTM1M3ThermalScanner</Subsystem>
<EFDB_Topic>MTM1M3TS_logevent_thermocouples</EFDB_Topic>
<Description>Details about thermocouples. Thermal scanner is provided in topic's index, and port number is the item's index.</Description>
<item>
<EFDB_Name>name</EFDB_Name>
<Description>Comma separated lists of thermocouple name/ID.</Description>
<IDL_Type>str</IDL_Type>
<Units>unitless</Units>
</item>
<item>
<EFDB_Name>location</EFDB_Name>
<Description>Thermocouple location.</Description>
<IDL_Type>int</IDL_Type>
<Units>unitless</Units>
<Count>94</Count>
</item>
<item>
<EFDB_Name>xPosition</EFDB_Name>
<Description>Thermocouple x position.</Description>
<IDL_Type>float</IDL_Type>
<Units>m</Units>
<Count>94</Count>
</item>
<item>
<EFDB_Name>yPosition</EFDB_Name>
<Description>Thermocouple y position.</Description>
<IDL_Type>float</IDL_Type>
<Units>m</Units>
<Count>94</Count>
</item>
<item>
<EFDB_Name>zPosition</EFDB_Name>
<Description>Thermocouple z position.</Description>
<IDL_Type>float</IDL_Type>
<Units>m</Units>
<Count>94</Count>
</item>
</SALEvent>
</SALEventSet>
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="http://lsst-sal.tuc.noao.edu/schema/SALTelemetrySet.xsl"?>
<SALTelemetrySet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://lsst-sal.tuc.noao.edu/schema/SALTelemetrySet.xsd">
<SALTelemetry>
<Subsystem>MTM1M3ThermalScanner</Subsystem>
<EFDB_Topic>MTM1M3ThermalScanner_termocouplesTemperatures</EFDB_Topic>
<Description>Temperatures measured by thermocouples. Details of the thermocouple's locations are lsst.ts.xml.tables.m1m3</Description>
<item>
<EFDB_Name>temperatures</EFDB_Name>
<Description>Measured thermocouple temperatures. Index is thermal scanner port number (0-based). As CSC is indexed, the index gives thermal scanner.</Description>
<IDL_Type>float</IDL_Type>
<Units>deg_C</Units>
<Count>94</Count>
</item>
</SALTelemetry>
</SALTelemetrySet>
18 changes: 18 additions & 0 deletions python/lsst/ts/xml/data/sal_interfaces/SALSubsystems.xml
Original file line number Diff line number Diff line change
Expand Up @@ -730,6 +730,24 @@
<Simulator>Not Provided</Simulator>
<Configuration>https://github.com/lsst-ts/ts_M1M3Thermal</Configuration>
</SALSubsystem>
<SALSubsystem>
<Name>MTM1M3ThermalScanner</Name>
<Description>The CSC for the M1M3 Mirror Thermal Scanner telemetry</Description>
<IndexEnumeration>ThermalScanner_Y_Plus,ThermalScanner_X_Plus,ThermalScnner_Y_Minus,ThermalScanner_X_Minus</IndexEnumeration>
<AddedGenerics>csc, configurable</AddedGenerics>
<ActiveDevelopers>Petr Kubánek</ActiveDevelopers>
<Github>https://github.com/lsst-ts/ts_M1M3ThermalScanner</Github>
<JenkinsTestResults>Not Available</JenkinsTestResults>
<RubinObsContact>Sandrine Thomas</RubinObsContact>
<CSCDocs/>
<ProductOwner>Sandrine Thomas</ProductOwner>
<RelatedDocuments>https://ls.st/LTS-89, https://ls.st/LTS-161</RelatedDocuments>
<SoftwareLanguage>Python</SoftwareLanguage>
<RuntimeLanguages>IDL</RuntimeLanguages>
<VendorContact>NA</VendorContact>
<Simulator>Not Provided</Simulator>
<Configuration>https://github.com/lsst-ts/ts_config_mttcs</Configuration>
</SALSubsystem>
<SALSubsystem>
<Name>LaserTracker</Name>
<Description>The CSC for the laser tracker MT Alignment system</Description>
Expand Down
1 change: 1 addition & 0 deletions python/lsst/ts/xml/tables/m1m3/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,4 @@
force_actuator_from_id,
)
from .fcu_table import FCUData, FCUTable, fcu_from_address
from .thermocouple_table import ThermocoupleData, ThermocoupleTable
104 changes: 104 additions & 0 deletions python/lsst/ts/xml/tables/m1m3/thermocouple_table.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
# This file is part of ts_xml.
#
# Developed for Vera Rubin Observatory.
# This product includes software developed by the LSST Project
# (https://www.lsst.org).
# See the COPYRIGHT file at the top-level directory of this distribution
# for details of code ownership.
#
# 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 <https://www.gnu.org/licenses/>.

import enum
from dataclasses import dataclass

__all__ = [
"ThermalScanner",
"ThermocoupleLocation",
"ThermocoupleData",
"ThermocoupleTable",
]

"""This module provides location and names for M1M3 thermocouples. Thermocouple
measurements are read by the M1M3 Thermal Scanner CSC.
Attributes
----------
ThermocoupleTable : `[ThermocoupleData]`
"""


class ThermalScanner(enum.IntEnum):
"""Thermal scanner measurement box location."""

Y_PLUS = 1
X_PLUS = 2
Y_MINUS = 3
X_MINUS = 4


class ThermocoupleLocation(enum.IntEnum):
"""Location of the mirror thermocouple. HC is for the mirror HoneyComb -
the sensor is located in the glass mirror."""

HC_BOTTOM = 1
HC_MIDDLE = 2
HC_TOP = 3


@dataclass
class ThermocoupleData:
"""Represent thermocouple index, name and location inside the mirror cell.
Attributes
----------
name : `str`
Thermocouple name - e.g. MTC017B1.
location : `ThermocoupleLocation`
Location type
scanner : `ThermalScanner`
Scanner to which is the thermocouple connected.
port : `int`
Thermocouple 1-based port. Gives port where the termocouple is
connected. Shall be integer in range 1-96.
x_position : `float`
X position in mirror cell.
y_position : `float`
Y position in mirror cell.
z_position : `float`
Z position in mirror cell.
"""

name: str
location: ThermocoupleLocation
scanner: ThermalScanner
port: int
x_position: float
y_position: float
z_position: float


ThermocoupleTable = [
ThermocoupleData(
"MTC038B1",
ThermocoupleLocation.HC_BOTTOM,
ThermalScanner.Y_PLUS,
1,
0.1,
0.1,
-0.1,
),
ThermocoupleData(
"MTC038F", ThermocoupleLocation.HC_TOP, ThermalScanner.Y_PLUS, 2, 0.1, 0.1, 0.1
),
]

0 comments on commit 31355f1

Please sign in to comment.