eive-tmtc/pus_tc/tmp1075.py

64 lines
2.5 KiB
Python
Raw Normal View History

2021-01-10 11:42:06 +01:00
# -*- coding: utf-8 -*-
"""
@file tmtcc_tc_tmp1075.py
@brief TMP1075 tests
@author J. Meier
@date 06.01.2021
"""
2021-03-19 17:50:09 +01:00
from tmtccmd.core.definitions import QueueCommands
2021-01-10 11:42:06 +01:00
2021-03-19 17:39:52 +01:00
from tmtccmd.pus_tc.packer import TcQueueT
from tmtccmd.pus_tc.base import PusTelecommand
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.
"""
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
2021-01-30 11:20:34 +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])
def pack_tmp1075_test_into(object_id: bytearray, tc_queue: TcQueueT) -> TcQueueT:
2021-03-19 17:50:09 +01:00
tc_queue.appendleft(
(QueueCommands.PRINT,
"Testing Tmp1075 Temperature Sensor Handler with object id: 0x" + object_id.hex())
)
2021-01-10 11:42:06 +01:00
if Tmp1075TestProcedure.all or Tmp1075TestProcedure.start_adc_conversion:
2021-03-19 17:50:09 +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