Skip to main content

Python library to read the SCOS-2000 header

Project description

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.2.1

Library Installation

$ pip install SCOSpy

Usage

from SCOS import *
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. In the next versions other missions will be implemented.

Data Structure

The SCOS object contain:

  • Common Packet Header Structure (CPH)

and one of the following sub-object:

  • Telemetry Packet Header (TMPH)
  • Telecommand Packet Header (TCPH)
  • Event Packet Header (EPH)

Common Packet Header Structure (CHP)

In the CHP are present the following fields.

FieldDescription
CTree Used in earlier version of SCOS-2000 by c-tree to support packets storing in files and be kept for backward compatibility.
AccessFStoring mode, values are:
  • 0 for an inserted packet;
  • 1 for an update
SimFlagSimulated packet, values are:
  • 0 for a non-simulated packet generated by the spacecraft
  • 1 for a simulated packet generated by a Simulator or test tool.
FilingTimeFiling Time. For TM this is the timestamp. For TCs, this is the release time.
CreationTimeCreation Time (in seconds since 1st Jan 1970 00:00:00) – 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

CreateIDUsed by the old SCOS-2000 archive for generating a retrieval key and set by the application which generated the packet
SCIDIn the case of telemetry, Spacecraft ID.
It has two fields:
ID Numeric identificative
Descriprion Name of the Spacraft
The possible values are in the following table:
IDSpacecraft
816 BepiColombo, TM received over X-Band
817 BepiColombo, TM received over Ka-Band
GSID In the case of telemetry, the ID and name of the ground station which receives the frame containing this packet.
It has two fields:
ID Numeric identificative
StationName of the Ground Station
The possible values are in the following table:
IDGround Station Name
21 Kourou
22 Perth
23 New Norcia
24 Cebreros
25 Malargue
30 Maspalomas
97 Usuda
98 Uchinoura
PSizePacket Size. Size of the entire SCOS-2000 packet, including all headers and the packet data.
PTypeDetermines the type of SCOS-2000 packet. See :ref:packet_type for details.
IDDescription
1 Telemetry
2 Telecommand
3 Event
VersionThe version of this packet structure.
FilingFlagSet to **1** if this packet is to be filed in the MCS archive, otherwise **0**.
DistFlagSet to : **1** if this packet is to be distributed to the MCS applications, otherwise **0**.
TSPolicyDetermines the timestamp policy for spacecraft TM, i.e. what will be set in the Filing Time fields above:
0packet is time-stamped with the creation time – i.e. SCOS-2000 packet creation
1that 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)
2the correlated SCET (for spacecraft TM only)
TQTime quality of the timestamp, used only if the TsPolicy is set to 2:
0Good
1Inaccurate
2Bad
StreamIDThe datastream identifier in the MCS, which for TM maps to VCs:
1000VC0 Real-Time Non-Science (online)
1001VC1 Playback Non-Science (online)
1002VC2 Science (online)
1003VC3 File-Transfer (online)
2000VC0 Real-Time Non-Science (offline)
2001VC1 Playback Non-Science (offline)
2002VC1 Playback Non-Science (offline)
2003VC2 Science (offline)
For TCs stream **1** is used.
For EVs stream **1000** and **1001** is used.
65535is used for internal non spacecraft TM packets, which should be ignored by external users.
SeqCounterInternal MCS counter used for detecting gaps – not related to the spacecraft source sequence count value in the PUS header
SPIDthe 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.
MissionIDFor telemetry, the MCS mission identifier.
IDMission
**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
**PUSST**The value of the 8-bit Service Type, copied from the spacecraft source packet’s secondary data field header
**PUSSST**The value of the 8-bit Service Sub-type, copied from the spacecraft source packet’s secondary data field header

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:

AttributeDescriprion

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
**PUSST** Service Type - The value of the 8-bit Service Type, copied from the spacecraft source packet’s secondary data field header.
**PUSSST** Sub-Service Type - The value of the 8-bit Service Sub-type, copied from the spacecraft source packet’s secondary data field header
**PUSAck** The value of the 4-bit Ack, copied from the spacecraft source packet’s secondary data field header
**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
**UplinkFlag**
**1** if the command is to be released (passed PTV)
**0** if the command is not to be released (failed PTV)
**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.

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.

Change Log

Version 0.2.1

  • minor bugs fixed

Version 0.2.0

  • Introduced the TCHP
  • First version of the README file.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

SCOSpy-0.2.1.tar.gz (7.2 kB view hashes)

Uploaded Source

Built Distribution

SCOSpy-0.2.1-py2-none-any.whl (19.3 kB view hashes)

Uploaded Python 2

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page