Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
.. 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