You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
==================================
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.1.0
.. contents:: Table of Contents
Library Installation
=====================
.. code-block:: bash
$ pip install SCOSpy
Usage
========
.. code-block:: python
a = SCOS(packet)
where *packet* is the hexadecimal string rapresentation of the Telemetry packet.
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)
Common Packet Header Structure (CHP)
------------------------------------
In the CHP are present the following fields.
.. list-table:: CHP
:widths: 20 80
:header-rows: 1
* - Field
- Descriprion
* - **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, values are 0 for an inserted packet and 1 for an update.
* - **SimFlag**
- Simulated packet, values are 0 for a non-simulated packet generated by the spacecraft and 1 for a simulated packet generated by a Simulator or test tool.
* - **FilingTime**
- Filing Time. For TM this is the timestamp. For TCs, this is the release time.
* - **CreationTime**
- Creation 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
* - **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 :ref:`spacecraft_id_table`.
It has two fields: **ID** and **Description**.
* - **GSID**
- In the case of telemetry, the ID and name of the ground station which receives the frame containing this packet. See :ref:`ground_id`. It has two fields: **ID** and **Station**.
* - **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 :ref:packet_type for details.
* - **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:
**0** – packet is time-stamped with the creation time – i.e. SCOS-2000 packet creation
**1** – that 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)
* - **TQ**
- Time quality of the timestamp, used only if the TsPolicy is set to 2:
**0** – Good
**1** – Inaccurate
**2** – Bad
* - **StreamID**
- The datastream identifier in the MCS, which for TM maps to VCs:
**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)
For TCs stream **1** is used.
For EVs stream **1000** and **1001** is used.
**65535** – is used for internal non spacecraft TM packets, which should be ignored by external users.
* - **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 :ref:`mission_id`