Skip to content
Snippets Groups Projects
Forked from an inaccessible project.
obsw_tc_service3.py 2.49 KiB
# -*- coding: utf-8 -*-
"""
@file   obsw_tc_service3.py
@brief  PUS Service 3:  Housekeeping Service.
@author R. Mueller
@date   02.05.2020
"""
import struct
from typing import Deque
from tmtc_core.tc.obsw_pus_tc_base import PusTelecommand
import config.obsw_config as g


def make_sid(object_id: bytearray, set_id: int) -> bytearray:
    set_id_bytearray = struct.pack(">I", set_id)
    return object_id + set_id_bytearray


def make_interval(interval_seconds: float) -> bytearray:
    return bytearray(struct.pack(">f", interval_seconds))


# adding custom defintion to hk using test pool variables
sid_thermalsensor = make_sid(g.THERMAL_SENSOR_DEVICE_ID, 1)
number_of_parameters = struct.pack('>B', 5)


def pack_service3_test_into(tc_queue: Deque) -> Deque:
    tc_queue.appendleft(("print", "Testing Service 3"))
    # Predefined packet testing
    # pack_predefined_tests(tc_queue)
    pack_custom_tests(tc_queue)

    tc_queue.appendleft(("export", "log/tmtc_log_service3.txt"))
    return tc_queue


def pack_custom_tests(tc_queue: Deque):
    # deleting pre-defined test entry
    tc_queue.appendleft(("print", "Testing Service 3: "))
    tc_queue.appendleft(("print", "Generate one Thermal Sensor packet: "))
    command = PusTelecommand(service=3, subservice=27, ssc=3100, app_data=sid_thermalsensor)
    tc_queue.appendleft(command.pack_command_tuple())
    # tc_queue.appendleft(("print", "Enabling periodic Thermal Sensor packet generation: "))
    # command = PusTelecommand(service=3, subservice=5, ssc=3101, app_data=sid_thermalsensor)
    # tc_queue.appendleft(command.pack_command_tuple())
    #
    # new_interval = 1.0
    # interval_app_data = sid_thermalsensor + make_interval(new_interval)
    # tc_queue.appendleft(("print", "Setting interval to one second: "))
    # command = PusTelecommand(service=3, subservice=31, ssc=3102, app_data=interval_app_data)
    # tc_queue.appendleft(command.pack_command_tuple())
    #
    # tc_queue.appendleft(("wait", 2))
    #
    # tc_queue.appendleft(("print", "Disabling periodic Thermal Sensor packet generation: "))
    # command = PusTelecommand(service=3, subservice=6, ssc=3103, app_data=sid_thermalsensor)
    # tc_queue.appendleft(command.pack_command_tuple())
    #
    # tc_queue.appendleft(("print", "Generate one shot Thermal Sensor packet: "))
    # command = PusTelecommand(service=3, subservice=27, ssc=3104, app_data=sid_thermalsensor)
    # tc_queue.appendleft(command.pack_command_tuple())