From a5e66e13025518c94d0d6841d364bf9fcb8c8a75 Mon Sep 17 00:00:00 2001 From: Romolo Politi <romolo.politi@inaf.it> Date: Thu, 10 Oct 2024 09:18:12 +0200 Subject: [PATCH] update package --- build/lib/CCSDS/__init__.py | 1 - build/lib/CCSDS/ccsds.py | 109 ---------------------- build/lib/PyCCSDS/__init__.py | 1 - build/lib/PyCCSDS/ccsds.py | 111 ----------------------- dist/Python-CCSDS-0.1.0.tar.gz | Bin 15690 -> 0 bytes dist/Python_CCSDS-0.1.0-py3-none-any.whl | Bin 15896 -> 0 bytes pyproject.toml | 27 +++--- 7 files changed, 11 insertions(+), 238 deletions(-) delete mode 100644 build/lib/CCSDS/__init__.py delete mode 100644 build/lib/CCSDS/ccsds.py delete mode 100644 build/lib/PyCCSDS/__init__.py delete mode 100644 build/lib/PyCCSDS/ccsds.py delete mode 100644 dist/Python-CCSDS-0.1.0.tar.gz delete mode 100644 dist/Python_CCSDS-0.1.0-py3-none-any.whl diff --git a/build/lib/CCSDS/__init__.py b/build/lib/CCSDS/__init__.py deleted file mode 100644 index 8b13789..0000000 --- a/build/lib/CCSDS/__init__.py +++ /dev/null @@ -1 +0,0 @@ - diff --git a/build/lib/CCSDS/ccsds.py b/build/lib/CCSDS/ccsds.py deleted file mode 100644 index 4ff1945..0000000 --- a/build/lib/CCSDS/ccsds.py +++ /dev/null @@ -1,109 +0,0 @@ -#! /usr/bin/env python3 -from bitstring import BitStream -import spiceypy as spice -from datetime import datetime, timedelta -from rich.console import Console - - -class PacketId: - def __init__(self,data): - pID = BitStream(hex=data).unpack('uint: 3, 2*bin: 1, bits: 11') - self.VersionNum = pID[0] - self.packetType = pID[1] - self.dataFieldHeaderFlag = pID[2] - self.Apid = pID[3].uint - self.Pid = pID[3][0:7].uint - self.Pcat = pID[3][7:].uint - pass - def serialize(self): - return [self.VersionNum, self.packetType, self.dataFieldHeaderFlag, - self.Apid, self.Pid, self.Pcat] - -class SeqControl: - def __init__(self,data): - sq = BitStream(hex=data).unpack('bin:2,uint:14') - self.SegmentationFlag = sq[0] - self.SSC = sq[1] - - def serialize(self): - return [self.SegmentationFlag, self.SSC] - -class SourcePacketHeader: - def __init__(self,data): - # Read the Source Packet Header(48 bits) - # - Packet ID (16 bits) - self.packetId = PacketId(data[0:4]) - # - Packet Sequence Control (16 bits) - self.sequeceControl = SeqControl(data[4:8]) - """ - - Packet Length (16 bits) - In the packet is stored Packet length is an unsigned word - expressing “Number of octects contained in Packet Data Field” minus 1. - """ - self.packetLength = BitStream(hex=data[8:12]).unpack('uint:16')[0]+1 - # Based on BepiColombo SIMBIO-SYS - # ref: BC-SIM-GAF-IC-002 pag. 48 - def serialize(self): - return [*self.packetId.serialize(), *self.sequeceControl.serialize(), self.packetLength] - -class DataFieldHeader: - def __init__(self,data,missionID,t0): - # Read The Data Field Header (80 bit) - dfhData = BitStream(hex=data).unpack('bin:1,uint:3,bin:4,3*uint:8,uint:1,uint:31,uint:16') - self.pusVersion = dfhData[1] - self.ServiceType = dfhData[3] - self.ServiceSubType = dfhData[4] - self.DestinationId = dfhData[5] - self.Synchronization = dfhData[6] - self.CorseTime = dfhData[7] - self.FineTime = dfhData[8] - self.SCET = "%s.%s" % (self.CorseTime, self.FineTime) - if self.Synchronization == 0: - self.UTCTime = self.scet2UTC(missionID,t0) - else: - self.UTCTime = '1970-01-01T00:00:00.00000Z' - pass - - def serialize(self): - return [self.pusVersion, self.ServiceType, self.ServiceSubType, - self.DestinationId, self.SCET, self.UTCTime] - - def scet2UTC(self,missionID,t0): - if t0 == None: - et = spice.scs2e(missionID, "{}.{}".format(self.CorseTime, self.FineTime)) - ScTime = spice.et2utc(et, 'ISOC', 5) - else: - dateFormat = "%Y-%m-%dT%H:%M:%S.%f" - dt=datetime.strptime(t0,dateFormat) - sc = self.CorseTime + self.FineTime*(2**(-16)) - f=dt+timedelta(seconds=sc) - ScTime=f.strftime(dateFormat) - return ScTime+'Z' - -class PackeDataField: - def __init__(self,data, missionID,t0): - # Data Field Header - self.DFHeader = DataFieldHeader(data[0:20],missionID,t0) - # Data - self.Data = data[20:] - pass - -class CCSDS: - """ Reader for the CCSDS header """ - def __init__(self, missionID, data,console:Console=None,t0= None): - if type(missionID) is str: - if missionID.lower() == 'bepicolombo': - missionID=-121 - else: - if t0 == None: - print("WARNING: the Mission name is not valid. time converte setted to 1970-01-01 00:00:00") - t0 = "1970-01-01T00:00:00" - # Source Packet Header - self.SPH = SourcePacketHeader(data[0:12]) - # Packet Data Field - self.PDF = PackeDataField(data[12:],missionID,t0) - self.APID = self.SPH.packetId.Apid - self.Service=self.PDF.DFHeader.ServiceType - self.subService=self.PDF.DFHeader.ServiceSubType - self.Data=self.PDF.Data - diff --git a/build/lib/PyCCSDS/__init__.py b/build/lib/PyCCSDS/__init__.py deleted file mode 100644 index 8b13789..0000000 --- a/build/lib/PyCCSDS/__init__.py +++ /dev/null @@ -1 +0,0 @@ - diff --git a/build/lib/PyCCSDS/ccsds.py b/build/lib/PyCCSDS/ccsds.py deleted file mode 100644 index e91ac45..0000000 --- a/build/lib/PyCCSDS/ccsds.py +++ /dev/null @@ -1,111 +0,0 @@ -#! /usr/bin/env python3 -from bitstring import BitStream -import spiceypy as spice -from datetime import datetime, timedelta -from rich.console import Console - - -class PacketId: - def __init__(self,data): - pID = BitStream(hex=data).unpack('uint: 3, 2*bin: 1, bits: 11') - self.VersionNum = pID[0] - self.packetType = pID[1] - self.dataFieldHeaderFlag = pID[2] - self.Apid = pID[3].uint - self.Pid = pID[3][0:7].uint - self.Pcat = pID[3][7:].uint - pass - def serialize(self): - return [self.VersionNum, self.packetType, self.dataFieldHeaderFlag, - self.Apid, self.Pid, self.Pcat] - -class SeqControl: - def __init__(self,data): - sq = BitStream(hex=data).unpack('bin:2,uint:14') - self.SegmentationFlag = sq[0] - self.SSC = sq[1] - - def serialize(self): - return [self.SegmentationFlag, self.SSC] - -class SourcePacketHeader: - def __init__(self,data): - # Read the Source Packet Header(48 bits) - # - Packet ID (16 bits) - self.packetId = PacketId(data[0:4]) - # - Packet Sequence Control (16 bits) - self.sequeceControl = SeqControl(data[4:8]) - """ - - Packet Length (16 bits) - In the packet is stored Packet length is an unsigned word - expressing “Number of octects contained in Packet Data Field” minus 1. - """ - self.packetLength = BitStream(hex=data[8:12]).unpack('uint:16')[0]+1 - # Based on BepiColombo SIMBIO-SYS - # ref: BC-SIM-GAF-IC-002 pag. 48 - def serialize(self): - return [*self.packetId.serialize(), *self.sequeceControl.serialize(), self.packetLength] - -class DataFieldHeader: - def __init__(self,data,missionID,t0): - # Read The Data Field Header (80 bit) - dfhData = BitStream(hex=data).unpack('bin:1,uint:3,bin:4,3*uint:8,uint:1,uint:31,uint:16') - self.pusVersion = dfhData[1] - self.ServiceType = dfhData[3] - self.ServiceSubType = dfhData[4] - self.DestinationId = dfhData[5] - self.Synchronization = dfhData[6] - self.CorseTime = dfhData[7] - self.FineTime = dfhData[8] - self.SCET = "%s.%s" % (self.CorseTime, self.FineTime) - if self.Synchronization == 0: - self.UTCTime = self.scet2UTC(missionID,t0) - else: - self.UTCTime = '1970-01-01T00:00:00.00000Z' - pass - - def serialize(self): - return [self.pusVersion, self.ServiceType, self.ServiceSubType, - self.DestinationId, self.SCET, self.UTCTime] - - def scet2UTC(self,missionID,t0): - if t0 == None: - et = spice.scs2e(missionID, "{}.{}".format(self.CorseTime, self.FineTime)) - ScTime = spice.et2utc(et, 'ISOC', 5) - else: - dateFormat = "%Y-%m-%dT%H:%M:%S.%f" - dt=datetime.strptime(t0,dateFormat) - sc = self.CorseTime + self.FineTime*(2**(-16)) - f=dt+timedelta(seconds=sc) - ScTime=f.strftime(dateFormat) - return ScTime+'Z' - -class PackeDataField: - def __init__(self,data, missionID,t0): - # Data Field Header - self.DFHeader = DataFieldHeader(data[0:20],missionID,t0) - # Data - self.Data = data[20:] - pass - -class CCSDS: - """ Reader for the CCSDS header """ - def __init__(self, missionID, data,console:Console=None,t0= None): - if type(missionID) is str: - if missionID.lower() == 'bepicolombo': - missionID=-121 - elif missionID.lower() == 'juice': - missionID=-29 - else: - if t0 == None: - print("WARNING: the Mission name is not valid. time converte setted to 1970-01-01 00:00:00") - t0 = "1970-01-01T00:00:00" - # Source Packet Header - self.SPH = SourcePacketHeader(data[0:12]) - # Packet Data Field - self.PDF = PackeDataField(data[12:],missionID,t0) - self.APID = self.SPH.packetId.Apid - self.Service=self.PDF.DFHeader.ServiceType - self.subService=self.PDF.DFHeader.ServiceSubType - self.Data=self.PDF.Data - diff --git a/dist/Python-CCSDS-0.1.0.tar.gz b/dist/Python-CCSDS-0.1.0.tar.gz deleted file mode 100644 index 67049480a221d14c67932173914cadf83bef5398..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15690 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 M-78|r3=WJ806*iFDF6Tf diff --git a/dist/Python_CCSDS-0.1.0-py3-none-any.whl b/dist/Python_CCSDS-0.1.0-py3-none-any.whl deleted file mode 100644 index 1853dc3b56884390bdbb5d31e5a5a3227a5891ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15896 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 diff --git a/pyproject.toml b/pyproject.toml index 1eda487..ea49705 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,24 +1,19 @@ -[project] +[tool.poetry] name = "Python-CCSDS" version = "0.1.0" -dependencies = [ - "rich", - "bitstring", - "spiceypy", - 'importlib-metadata; python_version>"3.9"', -] - -authors = [{name="Romolo Politi", email ="romolo.politi@gmail.com" }] -license = {text = "GNU GPL ver3"} -readme = "README.md" keywords =['python','ccsds','nasa','esa','packets'] descriprion = 'Python library to read the CCSDS packets' +authors = ["Romolo Politi <romolo.politi@inaf.it>"] +license = "GNU GPL ver3" +readme = "README.md" - -[project.optional-dependencies] -docs = ["sphinx"] +[tool.poetry.dependencies] +python = "^3.12" +rich = "^13.9.2" +bitstring = "^4.2.3" +spiceypy = "^6.0.0" [build-system] -requires = ["setuptools"] -build-backend = "setuptools.build_meta" +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" -- GitLab