From 0178d3ffcff8ef82bb11630b9489a61d73e3e06a Mon Sep 17 00:00:00 2001 From: "Robin.Mueller" <robin.mueller.m@gmail.com> Date: Sat, 4 Jan 2020 16:43:04 +0100 Subject: [PATCH] Service 1 moved to separate file --- tm/OBSW_TmPacket.py | 70 +------------------------------------- tm/OBSW_TmService1.py | 79 +++++++++++++++++++++++++++++++++++++++++++ tm/OBSW_TmService3.py | 4 +-- 3 files changed, 82 insertions(+), 71 deletions(-) create mode 100644 tm/OBSW_TmService1.py diff --git a/tm/OBSW_TmPacket.py b/tm/OBSW_TmPacket.py index eb4bb1d..106146f 100644 --- a/tm/OBSW_TmPacket.py +++ b/tm/OBSW_TmPacket.py @@ -7,6 +7,7 @@ Author: R.Mueller, S. Gaisser """ from tm.OBSW_PusTm import PUSTelemetry +from tm.OBSW_TmService1 import Service1TM from tm.OBSW_TmService3 import Service3TM import struct # TM Packets use the generic space packet structure provided by OBSWPusPacket to generate individual @@ -34,75 +35,6 @@ def PUSTelemetryFactory(rawPacket): else: print("The service " + str(servicetype) + " is not implemented in Telemetry Factory") return PUSTelemetry(rawPacket) - - -class Service1TM(PUSTelemetry): - def __init__(self, byteArray): - super().__init__(byteArray) - self.tcErrorCode = False - self.isStep = False - # Failure Reports with error code - self.tcPacketId = self.byteArrayData[0] << 8 | self.byteArrayData[1] - self.tcSSC = ((self.byteArrayData[2] & 0x3F) << 8) | self.byteArrayData[3] - self.printPacketInfo("Success Verification") - if self.dataFieldHeader.subtype % 2 == 0: - self.printPacketInfo("Failure Verficiation") - self.tcErrorCode = True - if self.dataFieldHeader.subtype == 6: - self.isStep = True - self.appendPacketInfo(" : Step Failure") - self.stepNumber = struct.unpack('>B', self.byteArrayData[4:5])[0] - self.ErrCode = struct.unpack('>H', self.byteArrayData[5:7])[0] - self.errorParam1 = struct.unpack('>I', self.byteArrayData[7:11])[0] - self.errorParam2 = struct.unpack('>I', self.byteArrayData[11:15])[0] - else: - self.ErrCode = struct.unpack('>H', self.byteArrayData[4:6])[0] - self.errorParam1 = struct.unpack('>I', self.byteArrayData[6:10])[0] - self.errorParam2 = struct.unpack('>I', self.byteArrayData[10:14])[0] - - elif self.dataFieldHeader.subtype == 5: - self.isStep = True - self.appendPacketInfo(" : Step Success") - self.stepNumber = struct.unpack('>B', self.byteArrayData[4:5])[0] - - def printTelemetryHeader(self, array): - super().printTelemetryHeader(array) - array.append(str(hex(self.tcPacketId))) - array.append(str(self.tcSSC)) - if self.tcErrorCode: - if self.isStep: - array.append(str(self.stepNumber)) - array.append(str(hex(self.ErrCode))) - array.append(str(hex(self.errorParam1))) - array.append(str(hex(self.errorParam2))) - elif self.isStep: - array.append(str(self.stepNumber)) - - def printTelemetryColumnHeaders(self, array): - super().printTelemetryColumnHeaders(array) - array.append("TC Packet ID") - array.append("TC SSC") - if self.tcErrorCode: - if self.isStep: - array.append("Step Number") - array.append("Return Value") - array.append("Error Param 1") - array.append("Error Param 2") - elif self.isStep: - array.append("Step Number") - - def packTmInformation(self): - tmInformation = super().packTmInformation() - addInformation = { - "tcPacketId": self.tcPacketId, - "tcSSC": self.tcSSC, - } - tmInformation.update(addInformation) - if self.tcErrorCode: - tmInformation.update({"errCode": self.ErrCode}) - if self.isStep: - tmInformation.update({"stepNumber": self.ErrCode}) - return tmInformation class Service2TM(PUSTelemetry): diff --git a/tm/OBSW_TmService1.py b/tm/OBSW_TmService1.py new file mode 100644 index 0000000..bee2f6f --- /dev/null +++ b/tm/OBSW_TmService1.py @@ -0,0 +1,79 @@ +# -*- coding: utf-8 -*- +""" +Program: OBSW_TmService1.py +Date: 30.12.2019 +Description: Deserialize Pus Verification TM +Author: R. Mueller +""" + +from tm.OBSW_PusTm import PUSTelemetry +import struct + + +class Service1TM(PUSTelemetry): + def __init__(self, byteArray): + super().__init__(byteArray) + self.tcErrorCode = False + self.isStep = False + # Failure Reports with error code + self.tcPacketId = self.byteArrayData[0] << 8 | self.byteArrayData[1] + self.tcSSC = ((self.byteArrayData[2] & 0x3F) << 8) | self.byteArrayData[3] + self.printPacketInfo("Success Verification") + if self.dataFieldHeader.subtype % 2 == 0: + self.printPacketInfo("Failure Verficiation") + self.tcErrorCode = True + if self.dataFieldHeader.subtype == 6: + self.isStep = True + self.appendPacketInfo(" : Step Failure") + self.stepNumber = struct.unpack('>B', self.byteArrayData[4:5])[0] + self.ErrCode = struct.unpack('>H', self.byteArrayData[5:7])[0] + self.errorParam1 = struct.unpack('>I', self.byteArrayData[7:11])[0] + self.errorParam2 = struct.unpack('>I', self.byteArrayData[11:15])[0] + else: + self.ErrCode = struct.unpack('>H', self.byteArrayData[4:6])[0] + self.errorParam1 = struct.unpack('>I', self.byteArrayData[6:10])[0] + self.errorParam2 = struct.unpack('>I', self.byteArrayData[10:14])[0] + + elif self.dataFieldHeader.subtype == 5: + self.isStep = True + self.appendPacketInfo(" : Step Success") + self.stepNumber = struct.unpack('>B', self.byteArrayData[4:5])[0] + + def printTelemetryHeader(self, array): + super().printTelemetryHeader(array) + array.append(str(hex(self.tcPacketId))) + array.append(str(self.tcSSC)) + if self.tcErrorCode: + if self.isStep: + array.append(str(self.stepNumber)) + array.append(str(hex(self.ErrCode))) + array.append(str(hex(self.errorParam1))) + array.append(str(hex(self.errorParam2))) + elif self.isStep: + array.append(str(self.stepNumber)) + + def printTelemetryColumnHeaders(self, array): + super().printTelemetryColumnHeaders(array) + array.append("TC Packet ID") + array.append("TC SSC") + if self.tcErrorCode: + if self.isStep: + array.append("Step Number") + array.append("Return Value") + array.append("Error Param 1") + array.append("Error Param 2") + elif self.isStep: + array.append("Step Number") + + def packTmInformation(self): + tmInformation = super().packTmInformation() + addInformation = { + "tcPacketId": self.tcPacketId, + "tcSSC": self.tcSSC, + } + tmInformation.update(addInformation) + if self.tcErrorCode: + tmInformation.update({"errCode": self.ErrCode}) + if self.isStep: + tmInformation.update({"stepNumber": self.ErrCode}) + return tmInformation \ No newline at end of file diff --git a/tm/OBSW_TmService3.py b/tm/OBSW_TmService3.py index a697e3c..c40b1af 100644 --- a/tm/OBSW_TmService3.py +++ b/tm/OBSW_TmService3.py @@ -1,9 +1,9 @@ # -*- coding: utf-8 -*- """ -Program: OBSW_TmPacket.py +Program: OBSW_TmService3.py Date: 30.12.2019 Description: Deserialize Housekeeping TM -Author: R.Mueller +Author: R. Mueller """ from tm.OBSW_PusTm import PUSTelemetry -- GitLab