2021-01-10 11:42:06 +01:00
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
"""
|
2021-04-11 11:08:52 +02:00
|
|
|
@file tmp1075.py
|
2021-01-10 11:42:06 +01:00
|
|
|
@brief TMP1075 tests
|
|
|
|
@author J. Meier
|
|
|
|
@date 06.01.2021
|
|
|
|
"""
|
2021-05-17 17:42:04 +02:00
|
|
|
from tmtccmd.config.definitions import QueueCommands
|
2021-01-10 11:42:06 +01:00
|
|
|
|
2021-07-24 14:58:47 +02:00
|
|
|
from tmtccmd.tc.packer import TcQueueT
|
2021-10-01 10:55:56 +02:00
|
|
|
from spacepackets.ecss.tc import PusTelecommand
|
2021-03-19 17:39:52 +01:00
|
|
|
from pus_tc.service_200_mode import pack_mode_data
|
2021-01-10 11:42:06 +01:00
|
|
|
|
|
|
|
|
|
|
|
class Tmp1075TestProcedure:
|
|
|
|
"""
|
|
|
|
@brief Use this class to define the tests to perform for the Tmp1075.
|
|
|
|
@details Setting all to True will run all tests.
|
|
|
|
Setting all to False will only run the tests set to True.
|
|
|
|
"""
|
2022-01-18 14:03:56 +01:00
|
|
|
|
2021-01-30 11:20:34 +01:00
|
|
|
all = False
|
2021-01-10 11:42:06 +01:00
|
|
|
start_adc_conversion = False
|
|
|
|
get_temp = False
|
2022-01-18 14:03:56 +01:00
|
|
|
set_mode_normal = (
|
|
|
|
True # Setting mode to normal starts continuous temperature reading
|
|
|
|
)
|
2021-01-10 11:42:06 +01:00
|
|
|
set_mode_on = False # If mode is MODE_ON, temperature will only be read on command
|
|
|
|
|
|
|
|
|
|
|
|
class Tmp1075ActionIds:
|
|
|
|
get_temp = bytearray([0x0, 0x0, 0x0, 0x01])
|
|
|
|
start_adc_conversion = bytearray([0x0, 0x0, 0x0, 0x02])
|
|
|
|
|
|
|
|
|
2022-01-18 14:03:56 +01:00
|
|
|
def pack_tmp1075_test_into(
|
|
|
|
object_id: bytearray, op_code: str, tc_queue: TcQueueT
|
|
|
|
) -> TcQueueT:
|
2021-03-19 17:50:09 +01:00
|
|
|
tc_queue.appendleft(
|
2022-01-18 14:03:56 +01:00
|
|
|
(
|
|
|
|
QueueCommands.PRINT,
|
|
|
|
"Testing Tmp1075 Temperature Sensor Handler with object id: 0x"
|
|
|
|
+ object_id.hex(),
|
|
|
|
)
|
2021-03-19 17:50:09 +01:00
|
|
|
)
|
2021-01-10 11:42:06 +01:00
|
|
|
|
|
|
|
if Tmp1075TestProcedure.all or Tmp1075TestProcedure.start_adc_conversion:
|
2022-01-18 14:03:56 +01:00
|
|
|
tc_queue.appendleft(
|
|
|
|
(QueueCommands.PRINT, "TMP1075: Starting new temperature conversion")
|
|
|
|
)
|
2021-01-10 11:42:06 +01:00
|
|
|
command = object_id + Tmp1075ActionIds.start_adc_conversion
|
|
|
|
command = PusTelecommand(service=8, subservice=128, ssc=23, app_data=command)
|
|
|
|
tc_queue.appendleft(command.pack_command_tuple())
|
|
|
|
|
|
|
|
if Tmp1075TestProcedure.all or Tmp1075TestProcedure.get_temp:
|
2021-03-19 17:50:09 +01:00
|
|
|
tc_queue.appendleft((QueueCommands.PRINT, "TMP1075: Read temperature"))
|
2021-01-10 11:42:06 +01:00
|
|
|
command = object_id + Tmp1075ActionIds.get_temp
|
|
|
|
command = PusTelecommand(service=8, subservice=128, ssc=24, app_data=command)
|
|
|
|
tc_queue.appendleft(command.pack_command_tuple())
|
|
|
|
|
|
|
|
if Tmp1075TestProcedure.set_mode_normal:
|
2021-03-19 17:50:09 +01:00
|
|
|
tc_queue.appendleft((QueueCommands.PRINT, "TMP1075: Set Mode Normal"))
|
2021-01-10 11:42:06 +01:00
|
|
|
mode_data = pack_mode_data(object_id, 2, 0)
|
|
|
|
command = PusTelecommand(service=200, subservice=1, ssc=220, app_data=mode_data)
|
|
|
|
tc_queue.appendleft(command.pack_command_tuple())
|
|
|
|
|
|
|
|
if Tmp1075TestProcedure.set_mode_on:
|
2021-03-19 17:50:09 +01:00
|
|
|
tc_queue.appendleft((QueueCommands.PRINT, "TMP1075: Set Mode On"))
|
2021-01-10 11:42:06 +01:00
|
|
|
mode_data = pack_mode_data(object_id, 1, 0)
|
|
|
|
command = PusTelecommand(service=200, subservice=1, ssc=221, app_data=mode_data)
|
|
|
|
tc_queue.appendleft(command.pack_command_tuple())
|
|
|
|
|
|
|
|
return tc_queue
|