77 lines
3.0 KiB
Python
77 lines
3.0 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
@file rad_sensor.py
|
|
@brief Tests for the radiation sensor handler
|
|
@author J. Meier
|
|
@date 01.07.2021
|
|
"""
|
|
import struct
|
|
|
|
from tmtccmd.config.definitions import QueueCommands
|
|
|
|
from tmtccmd.tc.packer import TcQueueT
|
|
from spacepackets.ecss.tc import PusTelecommand
|
|
from pus_tc.service_200_mode import pack_mode_data, Modes
|
|
|
|
|
|
class SetIds:
|
|
HK = 3
|
|
|
|
|
|
class CommandIds:
|
|
START_CONVERSIONS = 2
|
|
READ_CONVERSIONS = 3
|
|
ENABLE_DEBUG_OUTPUT = 4
|
|
DISABLE_DEBUG_OUTPUT = 5
|
|
|
|
|
|
def pack_rad_sensor_test_into(object_id: bytearray, tc_queue: TcQueueT, op_code: str):
|
|
tc_queue.appendleft(
|
|
(
|
|
QueueCommands.PRINT,
|
|
"Testing radiation sensor handler with object id: 0x" + object_id.hex(),
|
|
)
|
|
)
|
|
|
|
if op_code == "0":
|
|
tc_queue.appendleft((QueueCommands.PRINT, "Rad sensor: Switch to mode on"))
|
|
mode_data = pack_mode_data(object_id, Modes.ON, 0)
|
|
command = PusTelecommand(service=200, subservice=1, ssc=41, app_data=mode_data)
|
|
tc_queue.appendleft(command.pack_command_tuple())
|
|
|
|
if op_code == "1":
|
|
tc_queue.appendleft((QueueCommands.PRINT, "Rad sensor: Switch to mode normal"))
|
|
mode_data = pack_mode_data(object_id, Modes.NORMAL, 0)
|
|
command = PusTelecommand(service=200, subservice=1, ssc=42, app_data=mode_data)
|
|
tc_queue.appendleft(command.pack_command_tuple())
|
|
|
|
if op_code == "2":
|
|
tc_queue.appendleft((QueueCommands.PRINT, "Rad sensor: Switch to mode off"))
|
|
mode_data = pack_mode_data(object_id, Modes.OFF, 0)
|
|
command = PusTelecommand(service=200, subservice=1, ssc=42, app_data=mode_data)
|
|
tc_queue.appendleft(command.pack_command_tuple())
|
|
|
|
if op_code == "3":
|
|
tc_queue.appendleft((QueueCommands.PRINT, "Rad sensor: Start conversions"))
|
|
command = object_id + struct.pack("!I", CommandIds.START_CONVERSIONS)
|
|
command = PusTelecommand(service=8, subservice=128, ssc=43, app_data=command)
|
|
tc_queue.appendleft(command.pack_command_tuple())
|
|
|
|
if op_code == "4":
|
|
tc_queue.appendleft((QueueCommands.PRINT, "Rad sensor: Read conversions"))
|
|
command = object_id + struct.pack("!I", CommandIds.READ_CONVERSIONS)
|
|
command = PusTelecommand(service=8, subservice=128, ssc=44, app_data=command)
|
|
tc_queue.appendleft(command.pack_command_tuple())
|
|
|
|
if op_code == "5":
|
|
tc_queue.appendleft((QueueCommands.PRINT, "Rad sensor: Enable debug output"))
|
|
command = object_id + struct.pack("!I", CommandIds.ENABLE_DEBUG_OUTPUT)
|
|
command = PusTelecommand(service=8, subservice=128, ssc=45, app_data=command)
|
|
tc_queue.appendleft(command.pack_command_tuple())
|
|
|
|
if op_code == "6":
|
|
tc_queue.appendleft((QueueCommands.PRINT, "Rad sensor: Disable debug output"))
|
|
command = object_id + struct.pack("!I", CommandIds.DISABLE_DEBUG_OUTPUT)
|
|
command = PusTelecommand(service=8, subservice=128, ssc=45, app_data=command)
|
|
tc_queue.appendleft(command.pack_command_tuple())
|