# -*- coding: utf-8 -*- """ Program: obsw_tm_service_5.py Date: 30.12.2019 Description: Deserialize PUS Event Report Author: R. Mueller """ from tm.obsw_pus_tm_base import PusTelemetry, TmDictionaryKeys from tm.obsw_pus_tm_factory import PusTmInfoT import struct class Service5TM(PusTelemetry): def __init__(self, byte_array): super().__init__(byte_array) self.specify_packet_info("Event") if self.get_subservice() == 1: self.append_packet_info(" Info") elif self.get_subservice() == 2: self.append_packet_info(" Error Low Severity") elif self.get_subservice() == 3: self.append_packet_info(" Error Med Severity") elif self.get_subservice() == 4: self.append_packet_info(" Error High Severity") self.eventId = struct.unpack('>H', self._tm_data[0:2])[0] self.objectId = struct.unpack('>I', self._tm_data[2:6])[0] self.param1 = struct.unpack('>I', self._tm_data[6:10])[0] self.param2 = struct.unpack('>I', self._tm_data[10:14])[0] def append_telemetry_content(self, array): super().append_telemetry_content(array) array.append(str(self.eventId)) array.append(hex(self.objectId)) array.append(str(hex(self.param1)) + ", " + str(self.param1)) array.append(str(hex(self.param2)) + ", " + str(self.param2)) def append_telemetry_column_headers(self, array): super().append_telemetry_column_headers(array) array.append("Event ID") array.append("Reporter ID") array.append("Parameter 1") array.append("Parameter 2") def pack_tm_information(self) -> PusTmInfoT: tm_information = super().pack_tm_information() add_information = { TmDictionaryKeys.REPORTER_ID: self.objectId, TmDictionaryKeys.EVENT_ID: self.eventId, TmDictionaryKeys.EVENT_PARAM_1: self.param1, TmDictionaryKeys.EVENT_PARAM_2: self.param2 } tm_information.update(add_information) return tm_information