# -*- coding: utf-8 -*- """ @file tmp1075.py @brief TMP1075 tests @author J. Meier @date 06.01.2021 """ import enum from spacepackets.ecss.tc import PusTelecommand from eive_tmtc.pus_tc.service_200_mode import pack_mode_data from tmtccmd.tc import DefaultPusQueueHelper from tmtccmd.tc.pus_200_fsfw_modes import Mode from tmtccmd.tc.pus_8_funccmd import make_action_id from tmtccmd.util import ObjectIdU32 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. """ all = False start_adc_conversion = False get_temp = False set_mode_normal = ( True # Setting mode to normal starts continuous temperature reading ) set_mode_on = False # If mode is MODE_ON, temperature will only be read on command class Tmp1075ActionId(enum.IntEnum): GET_TEMP = 1 START_ADC_CONV = 2 def pack_tmp1075_test_into( object_id: ObjectIdU32, op_code: str, q: DefaultPusQueueHelper ): q.add_log_cmd( f"Testing Tmp1075 Temperature Sensor Handler with object id: {object_id.as_hex_string}" ) obyt = object_id.as_bytes if Tmp1075TestProcedure.all or Tmp1075TestProcedure.start_adc_conversion: q.add_log_cmd("TMP1075: Starting new temperature conversion") command = obyt + make_action_id(Tmp1075ActionId.GET_TEMP) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if Tmp1075TestProcedure.all or Tmp1075TestProcedure.get_temp: q.add_log_cmd("TMP1075: Read temperature") command = obyt + make_action_id(Tmp1075ActionId.START_ADC_CONV) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if Tmp1075TestProcedure.set_mode_normal: q.add_log_cmd("TMP1075: Set Mode Normal") mode_data = pack_mode_data(obyt, Mode.NORMAL, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=mode_data)) if Tmp1075TestProcedure.set_mode_on: q.add_log_cmd("TMP1075: Set Mode On") mode_data = pack_mode_data(obyt, Mode.ON, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=mode_data)) return q