SCOSpy
SCOSpy is a python library for the Satellite Control and Operation System 2000 (SCOS-2000) header written as hexadecimal string.
Current version is 0.5.0
Library Installation
$ pip install SCOSpy
Usage
from SCOS.SCOS import SCOS
a = SCOS(packet)
where packet is the hexadecimal string rapresentation of the Telemetry packet.
Limitation
At the moment the software works only for Telemetry and Telecommand packets (Packet Types 1 and 2) for the BepiColombo ESA Mission. It is possible add a new Mission ID and Spcecraft ID. For example to add the JUICE Mission :
form SCOS.SCOS import SCOS, MissionID, SpacecraftID
MissionID[844]={'id':844, 'description': 'JUICE'}
SpacecraftID[844]={'id':844, 'description': 'JUICE'}
obj=SCOS[data]
In the next versions other missions will be implemented.
Data Structure
The SCOS object contain:
one of the following sub-object:
- Telemetry Packet Header (TMPH)
- Telecommand Packet Header (TCPH)
- Event Packet Header (EPH) (not implemented)
and the attribute
- data with the data in the packet as hex string
Many of the entries of the objects are dictionary. Usually the structure is the following: {'id': x, 'description': 'blablabla'} ad is reported in the tables.
Common Packet Header Structure (CHP)
In the CHP are present the following fields.
| Field | Description |
|---|---|
| CTree | Used in earlier version of SCOS-2000 by c-tree to support packets storing in files and be kept for backward compatibility. |
| AccessF | Storing mode, see Access Flag Table |
| SimFlag | Simulated packet, see Simulated Packet Table |
| FilingTime | Filing Time. For TM this is the timestamp. For TCs, this is the release time. |
| CreationTime | Creation Time. This is a secondary retrieval key and for TM is the time at which the SCOS-2000 packet was created, which is also approximately the time that the packet was received by the MCS and stored. For TCs, this is its (estimated) execution time. |
| CreateID | Used by the old SCOS-2000 archive for generating a retrieval key and set by the application which generated the packet. |
| SCID | In the case of telemetry, Spacecraft ID. See Spacecraft ID Table |
| GSID | In the case of telemetry, the ID and name of the ground station which receives the frame containing this packet. See Ground Stations Table |
| PSize | Packet Size. Size of the entire SCOS-2000 packet, including all headers and the packet data. |
| PType | Determines the type of SCOS-2000 packet. See Packet Types Table |
| Version | The version of this packet structure. |
| FilingFlag | Set to 1 if this packet is to be filed in the MCS archive, otherwise 0. |
| DistFlag | Set to : 1 if this packet is to be distributed to the MCS applications, otherwise 0. |
| TSPolicy | Determines the timestamp policy for spacecraft TM, i.e. what will be set in the Filing Time fields above. See Timestamp Policy Table |
| TQ | Time quality of the timestamp, used only if the TsPolicy is set to 2. See Time Quality Table. |
| StreamID | The datastream identifier in the MCS, which for TM maps to VCs. See Stream IDs Table |
| SeqCounter | Internal MCS counter used for detecting gaps – not related to the spacecraft source sequence count value in the PUS header. |
| SPID | the numerical packet ID which identifies the packet structure, and maps to packet definitions in the TM/TC MIB database. Note: For TC packets, SPIDs 100 and 200 are used. |
| MissionID | For telemetry, the MCS mission identifier. See Mission IDs Table |
Access Flag Table
| ID | Description |
|---|---|
| 0 | inserted packet |
| 1 | update |
Simulated Packet Table
| ID | Description |
|---|---|
| 0 | non-simulated packet generated by the spacecraft |
| 1 | simulated packet generated by a Simulator or test tool. |
Spacecraft ID Table
| ID | Spacecraft | Band |
|---|---|---|
| 816 | BepiColombo | TM received over X-Band. |
| 817 | BepiColombo | TM received over Ka-Band. |
Ground Stations Table
| ID | Description |
|---|---|
| 21 | Kourou |
| 22 | Perth |
| 23 | New Norcia |
| 24 | Cebreros |
| 25 | Malargue |
| 30 | Maspalomas |
| 97 | Usuda |
| 98 | Uchinoura |
Packet Types Table
| ID | Description |
|---|---|
| 1 | Telemetry |
| 2 | Telecommand |
| 3 | Event |
Timestamp Policy Table
| ID | Description |
|---|---|
| 0 | packet is time-stamped with the creation time – i.e. SCOS-2000 packet creation |
| 1 | The packet is time-stamped with the time of transmission of the frame it was received in, i.e. Earth Reception Time minus the propagation delay (applicable to spacecraft TM only) |
| 2 | the correlated SCET (for spacecraft TM only) |
Time Quality Table
| ID | Description |
|---|---|
| 0 | Good |
| 1 | Inaccurate |
| 2 | Bad |
Stream IDs Table
| ID | Description |
|---|---|
| 1 | Used for TC stream |
| 1000 | VC0 Real-Time Non-Science (online) |
| 1001 | VC1 Playback Non-Science (online) |
| 1002 | VC2 Science (online) |
| 1003 | VC3 File-Transfer (online) |
| 2000 | VC0 Real-Time Non-Science (offline) |
| 2001 | VC1 Playback Non-Science (offline) |
| 2002 | VC1 Playback Non-Science (offline) |
| 2003 | VC2 Science (offline) |
| 65535 | is used for internal non spacecraft TM packets, which should be ignored by external users. |
For EVs stream 1000 and 1001 are used.
Mission IDs Table
| ID | Mission |
|---|---|
| 816 | BepiColombo |
Telemetry Packet Header (TMPH)
If the CHP.PType is equal to 1, the packet is a telemetry. In this case is present the TMPH onject.
The object has the following structure:
| Attribute | Description |
|---|---|
| TPSD | Structure identifier for variable length packets. |
| RouteID | The LSB of the RouteID field is used by SCOS-2000 to identify the Data Unit Type of Telemetry packet and its qualifier |
| PUSAPID | The value of the 11-bit Application Process ID, copied from the spacecraft source packet’s primary header |
| PUSSSC | The value of the 14-bit Source Sequence Count, copied from the spacecraft source packet’s primary header |
| PUSService | The value of the 8-bit Service Type, copied from the spacecraft source packet’s secondary data field header. The old key PUSST is deprecated. |
| PUSSubService | The value of the 8-bit Service Sub-type, copied from the spacecraft source packet’s secondary data field header. The old key PUSSST is deprecated. |
Telecommand Packet Header (TCPH)
If the CHP.PType is equal to 2, the packet is a telecommand. In this case is present the TCPH onject.
The object has the following structure:
| Attribute | Descriprion |
|---|---|
| UplinkTime | Uplink Time – initially set to the release time (FT), but updated with the timestamp copied from the radiation ground station response message providing the actual time of uplink from the antenna. |
| ExecTime | Execution Time – For time-tagged commands this is the UTC user provided execution time. For immediate commands this is the release time + propagation delay and later updated to be Uplink time + propagation delay. |
| LUTime | Last Update Time, this is the MCS system time at which the TC packet was last updated with a change of status. |
| RequestID | Internal MCS identifier. |
| ReqElemIdx | Internal MCS sub-identifier. |
| VarAddSz | Combined size of the fixed and variable parts of the command details data. |
| PUSAPID | The value of the 11-bit Application Process ID, copied from the spacecraft source packet’s primary header. |
| PID | Process ID. |
| PCAT | Packet Category. |
| PUSSSC | The value of the 14-bit Sequence Count, copied from the spacecraft source packet’s primary header. |
| PUSService | Service Type - The value of the 8-bit Service Type, copied from the spacecraft source packet’s secondary data field header. The old key PUSST is deprecated. |
| PUSSubService | Sub-Service Type - The value of the 8-bit Service Sub-type, copied from the spacecraft source packet’s secondary data field header. The old key PUSSST is deprecated. |
| PUSAck | The value of the 4-bit Ack, copied from the spacecraft source packet’s secondary data field header. See Aknowledge Table. |
| UplinkFlag | Uplink Flag. See Uplink Codes Table. |
| SourceHost | Numerical ID of the MCS machine running the command source. |
| SourceType | Enumeration providing the type of the command source. |
| ReqDetFixedSize | Size of the fixed part of the command details data. |
Aknowledge Table
| ID | Description |
|---|---|
| 0 | No Acknowledge required for acceptance and execution. |
| 1 | Acknowledge required for acceptance. |
| 8 | Acknowledge required for execution |
| 9 | Acknowledge required for acceptance and execution |
Uplink Codes Table
| ID | Description |
|---|---|
| 1 | if the command is to be released (passed PTV) |
| 0 | if the command is not to be released (failed PTV) |
Event Packet Header (EPH)
If the CHP.PType is equal to 3, the packet is a event. In this case is present the EPH onject.
NB: the EPH is not yet implemented.
Release files for SCOSpy 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| scospy-0.5.0.tar.gz | 22.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| scospy-0.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 41.5 kB
Release files / scospy-0.5.0.tar.gz
| Download URL | scospy-0.5.0.tar.gz |
|---|---|
| Size | 22.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
91472ca0aff4ecb0b44dcecee019377de77c121eb3db0bfa5f29d0c45db2d3e4
|
|
BLAKE2b-256 checksum How to use checksums |
d84ba13e26f73cd5b02c543c50128efe600183dc6a5b7b6f6b47a6e5cd5b1918
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.4 CPython/3.13.7 Darwin/24.6.0
|
Release files / scospy-0.5.0-py3-none-any.whl
| Download URL | scospy-0.5.0-py3-none-any.whl |
|---|---|
| Size | 19.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
68fb9571a6bf06dbf3b3b18c550b588d741927e8e9ebee1d36be747913e6d3fb
|
|
BLAKE2b-256 checksum How to use checksums |
6d0be6d629120c2c49f6c1eb0de8ce285160f2551811d138c8ec869f2261c136
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.4 CPython/3.13.7 Darwin/24.6.0
|