Skip to content
README.rst 5.6 KiB
Newer Older
Romolo Politi's avatar
Romolo Politi committed
.. SCOSpy documentation master file, created by
   sphinx-quickstart on Mon Jul  6 12:22:58 2020.
   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`

.. _spacecraft_id_table:
.. list-table:: Spacecraft ID
   :widths: 10 90
   :header-rows: 1

   * - ID
     - Spacecraft
   * - 816
     - BepiColombo, TM received over X-Band
   * - 817
     - BepiColombo, TM received over Ka-Band


.. _ground_id:
.. list-table:: Ground Stations ID
   :widths: 10 90
   :header-rows: 1

   * - ID
     - Ground Station Description
   * - 21
     - Kourou
   * - 22
     - Perth
   * - 23
     - New Norcia
   * - 24
     - Cebreros
   * - 25
     - Malargue
   * - 30
     - Maspalomas
   * - 97
     - Usuda
   * - 98
     - Uchinoura

.. _mission_id:
.. list-table:: Mission ID
   :widths: 10 90
   :header-rows: 1

   * - ID
     - Mission
   * - **816**
     - BepiColombo

.. _packet_type:
.. list-table: Packet Types
   :widths: 10 90
   :header-rows: 1

   * - ID
     - Description
   * - **1**
     - Telemetry
   * - **2**
     - Telecommand
   * - **3**
     - Event