+ All Categories
Home > Documents > CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE)...

CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE)...

Date post: 16-Mar-2021
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
588
Titel: Title: Dokument Nr.: Document No.: Ausgabe Nr.: Issue No.: Überarbeitung: Revision: Klassifikations Nr.: Class. Prod. Code: Ausgabedatum: Issue Date: Überarbeitungsdatum: Revision Date: Liste der zu liefernden Dokumente/Dok.–Anforderungs–Beschreibung(LLD/DAB): Document Requirements List / Doc. Requirements Description (DRL/DRD): Bearbeitet: Prepared by: Geprüft: Agreed by: Firma: Company: Vertrags–Nr.: Contract–No.: Projektmanager Project Manager Firma: Company: Projektmanager Project Manager CGS Interface Control Document – for CGS V5.1.0 – CGS–RIBRE–ICD–0001 1 31.01.02 CGS Engineering astrium–si P. Athmann astrium–si J.Frank, astrium–si astrium – All Rights Reserved – Copyright per DIN 34 astrium Space Infrasctructure
Transcript
Page 1: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Titel:Title:

Dokument Nr.:Document No.:

Ausgabe Nr.:Issue No.:

Überarbeitung:Revision:

Klassifikations Nr.:Class. Prod. Code:

Ausgabedatum:Issue Date:

Überarbeitungsdatum:Revision Date:

Liste der zu liefernden Dokumente/Dok.–Anforderungs–Beschreibung(LLD/DAB):Document Requirements List / Doc. Requirements Description (DRL/DRD):

Bearbeitet:Prepared by:

Geprüft:Agreed by:

Firma:Company:

Vertrags–Nr.:Contract–No.:

ProjektmanagerProject Manager

Firma:Company:

ProjektmanagerProject Manager

CGS Interface Control Document– for CGS V5.1.0 –

CGS–RIBRE–ICD–0001

1

31.01.02

CGS Engineering astrium–si

P. Athmann astrium–si

J.Frank, astrium–si

astrium – All Rights Reserved – Copyright per DIN 34

astriumSpace Infrasctructure

Page 2: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

astrium – All Rights Reserved – Copyright per DIN 34

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

i

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: viii

astriumSpace Infrastructure

DOCUMENT CHANGE RECORD

Issue/Rev. Issue date Pages/Section RemarksAffected

1/– 31.01.2002 all First issue for CGS V5

Based on COL–RIBRE–ICD–0025 Iss. 4/C

2 Update Applicable Documents

COL–RIBRE–IRN–CGS–8203 Issue 1/–

3 Remove SDE,SWES,FWDU and CSSCOL–RIBRE–IRN–CGS–8203 Issue 1/–

4 COL–RIBRE–IRN–CGS–8200 Issue 1/B Commercial Baseline

4.6.1 – 4.6.5 Remove Error Services from CGS external interfaceCOL–RIBRE–IRN–CGS–8206 Issue 1/–

delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/–

4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove Central Scripts. Provide list of environement variables

6.1.2 COL–RIBRE–IRN–CGS–8209 Issue 1/A MPS_DEFINITIONS

COL–RIBRE–IRN–CGS–8234 Issue 1/–MPS_DEFINITIONS

6.2 COL–RIBRE–IRN–CGS–8212 Issue 1/Apackage VICOS_DEFINITIONS

6.3.4 COL–RIBRE–IRN–CGS–8219 Issue 1/AADT_CCSDS_PACKET for PUS

6.6 COL–RIBRE–IRN–CGS–8210 Issue 1/– ADTs: Raw/Eng.Value, ADU

COL–RIBRE–IRN–CGS–8218 Issue 1/CADTs for PUS

6.7, 6.8 Delete chapter on I–Code and Parameterencoding

delete ch. 6.9 (FWDU) COL–RIBRE–IRN–CGS–8203 Issue 1/–

6.9.1 COL–RIBRE–IRN–CGS–8217 Issue 1/– UCL Ground Library Adaptations

COL–RIBRE–IRN–CGS–8224 Issue 1/AUCL SysLib: GROUND_LIBRARY

Page 3: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

astrium – All Rights Reserved – Copyright per DIN 34

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

ii

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: viii

astriumSpace Infrastructure

6.9.3 Remove TCL Lib

replace by: new UCL Mathematical LibrariesCOL–RIBRE–IRN–CGS–8205 Issue 1/–

6.9.6 COL–RIBRE–IRN–CGS–8216 Issue 1/AUCL SysLib: GROUND_VALUES

new 6.9.7 COL–RIBRE–IRN–CGS–8232 Issue 1/–UCL SysLib: RAW_DATA

new 6.9.8 COL–RIBRE–IRN–CGS–8233 Issue 1/–UCL SysLib: PACKETS_LIB

new 6.9.9 COL–RIBRE–IRN–CGS–8232 Issue 1/–UCL SysLib: TC Construction

7.7 COL–RIBRE–IRN–CGS–8222 Issue 1/–TES_API Extensions

7.17 Remove CMAS_API

7.18 Update w.r.t. deleted CMAS_APICOL–RIBRE–IRN–CGS–8225 Issue 1/–

Page 4: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

astrium – All Rights Reserved – Copyright per DIN 34

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

iii

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: viii

astriumSpace Infrastructure

TABLE OF CONTENTS

CHAPTER 1 :INTRODUCTION 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.1 Identification and Scope 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2 Purpose 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.3 Reader’s Guide 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.4 Type of Described Interfaces 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

CHAPTER 2 :APPLICABLE AND REFERENCE DOCUMENTS 4. . . . . . . . . . . . . . . . . . . . . . .

2.1 Applicable Documents 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.2 Reference Documents 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

CHAPTER 3 :GENERAL DESCRIPTION 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.1 CGS Functional Overview 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

CHAPTER 4 :INFRASTRUCTURE INTERFACES 11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.1 Operating System Services 12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.1.1 Operating System 12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.1.2 File System Structure 13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.1.2.1 Home Directories for CGS Products 13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.2.1.1 Sun Platform 13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.2.1.1.1 GSAF Home Directory 13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.2.1.1.2 CGS Home Directory 13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.2.1.1.3 Product Home Directories 13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.1.2.2 Subdirectories for CGS Products 13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.2.2.1 Start–Up Scripts 14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.2.2.2 Executable Images (Platform dependent) 14. . . . . . . . . . . . . . . . . . . . . . 4.1.2.2.3 Environment 14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.2.2.4 Utilities and Tools (Platform dependent) 14. . . . . . . . . . . . . . . . . . . . . . . 4.1.2.2.5 Configuration Data 14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Page 5: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

astrium – All Rights Reserved – Copyright per DIN 34

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

iv

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: viii

astriumSpace Infrastructure

4.1.2.2.6 Runtime Data 15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.2.2.7 Libraries 15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.1.2.3 Special Checkout related Directories 15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.2.3.1 Test Node Directory on the HP Test Nodes 15. . . . . . . . . . . . . . . . . . . . . 4.1.2.3.2 Test Node Directories on the SUN Database Server 15. . . . . . . . . . . . . .

4.1.2.4 Home Directories For CGS Extensions And Add–Ons 16. . . . . . . . . . . . . . . 4.1.2.4.1 Special Application Software (SAS) 16. . . . . . . . . . . . . . . . . . . . . . . . . .

4.1.3 Common User Environment Files 17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.2 Relational Database Management System 19. . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.2.1 Functional Interface 19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.2.1.1 General 19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.2.2 Database Installation and Configuration 19. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.2.2.1 Predefined Object Names 19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.2.1.1 User Accounts 19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.2.1.2 Tablespaces 19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.2.1.3 Public Synonyms 19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.2.1.4 CRT Device Names 19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.2.2.2 ORACLE Configuration Parameters 20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.2.2.1 INIT.ORA Configuration File 20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.2.2.2 Rollback Segments 20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.2.3 Commercial Product Versions 21. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.3 Communication Services 22. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.3.1 Internet Port Number Allocation 22. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.3.2 Commercial Product Versions 23. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.4 Presentation Services 24. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.5 DataViews Services 25. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.6 CGS Top Level User Interface 26. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.6.1 Installation Registry 27. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.7 Other Commercial Products Version 28. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.8 CGS_Library 29. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.8.1 Informal Interface 29. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.8.2 Formal Interface 29. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

CHAPTER 5 :MISSION PREPARATION INTERFACES 30. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5.1 Package MPS_DEFINITIONS 31. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Page 6: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

astrium – All Rights Reserved – Copyright per DIN 34

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

v

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: viii

astriumSpace Infrastructure

5.1.1 Exceptions 31. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5.1.1.1 Exceptions due to internal MDB / ORACLE errors 31. . . . . . . . . . . . . . . . .

5.1.1.2 SID_ERROR 31. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5.1.1.3 AUTHORIZATION_ERROR 31. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5.1.1.4 USE_ERROR 31. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5.1.1.5 ENVIRONMENT_ERROR , CDU/CCU_ERROR 31. . . . . . . . . . . . . . . . . .

5.1.1.6 PARAMETER_ERROR 32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5.1.1.7 CONSISTENCY_ERROR 32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5.1.2 Formal Description 33. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5.2 MDB Standard Entities and Application Programmer Interface 50. . . . . . . . . .

5.3 CLS Global 51. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5.3.1 General CLS Definitions 51. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5.3.2 Runtime Representation of UCL Types 53. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5.4 Flexible Tool Invocation Interface 60. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5.5 Foreign Key Support / PUI Support 60. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5.6 MDB Batch Data Entry Format 61. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

CHAPTER 6 :CHECKOUT AND SIMULATION INTERFACES 62. . . . . . . . . . . . . . . . . . . . . . . .

6.1 Test Setup Invocation Interface 63. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.2 VICOS Types Definition 65. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.3 HCI Abstract Data Types 72. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.3.1 General Concepts 72. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.3.2 Operations 73. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.3.2.1 SET Operations 73. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.3.2.2 GET Operations 73. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.3.2.3 ALTERNATIVE Function 73. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.3.2.4 PACK Operation 74. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.3.2.5 UNPACK Operation 74. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.3.2.6 PACKED_SIZE Function 74. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.3.2.7 ADD Operations 74. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.3.2.8 Operations on tables 74. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.3.2.9 Exceptions 74. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.3.2.10 Particular Remarks 75. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.2.10.1 On Synchronisation 75. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Page 7: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

astrium – All Rights Reserved – Copyright per DIN 34

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

vi

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: viii

astriumSpace Infrastructure

6.3.2.10.2 On Packing/Unpacking 75. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.3.3 ADT Physical Address 76. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.3.4 ADT CCSDS Packet 83. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.3.5 Binary Buffer ADT 108. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.4 Calibration 117. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.5 TES DEFINITIONS 134. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.6 TES Abstract Data Types 139. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.6.1 General Concepts 139. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.6.2 Operations 140. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.6.2.1 SET Operations 140. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.6.2.1.1 GET Operations 140. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.6.2.1.2 ALTERNATIVE Function 141. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.6.2.1.3 PACK Operation 141. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.6.2.1.4 UNPACK Operation 141. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.6.2.1.5 PACKED_SIZE Function 141. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.6.2.1.6 ADD Operations 141. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.6.2.1.7 Operations on tables 141. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.6.2.1.8 Exceptions 141. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.6.2.1.9 Particular Remarks 142. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.6.2.1.10 On Synchronisation 142. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.6.2.1.11 On Packing/Unpacking 142. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.6.3 ADT Raw Value 143. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.6.4 ADT Engineering Value 151. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.6.5 ADT ADU Description 159. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.6.6 ADT ADU 172. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.6.7 ADT GDU Description 187. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.6.8 ADT GDU 200. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.7 TES Application Programmer Interface 207. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.8 VICOS Housekeeping Values 236. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.9 System Libraries 244. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.9.1 UCL System Library: GROUND_COMMON 244. . . . . . . . . . . . . . . . . . . . . . . .

6.9.1.1 Routines Summary 244. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.9.1.2 UCL System Library Specification GROUND_COMMON 245. . . . . . . . . . .

6.9.1.3 Interface Description 255. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.9.2 UCL System Library: GROUND_LIBRARY 256. . . . . . . . . . . . . . . . . . . . . . . . .

6.9.2.1 Routines Summary 256. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.9.2.2 UCL Ground System Library Specification 257. . . . . . . . . . . . . . . . . . . . . . .

Page 8: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

astrium – All Rights Reserved – Copyright per DIN 34

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

vii

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: viii

astriumSpace Infrastructure

6.9.2.3 Interface Description 265. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.9.3 UCL System Library: GRD_CONVERSION 299. . . . . . . . . . . . . . . . . . . . . . . . .

6.9.3.1 Routines Summary 299. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.9.3.2 UCL Ground System Library Specification: GRD_CONVERSION 300. . . .

6.9.3.3 Interface Description 302. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.9.3.3.1 General Conversion Routines 302. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.9.4 UCL GROUND_TO_OB_LIB System Library 304. . . . . . . . . . . . . . . . . . . . . . .

6.9.4.1 Routines Summary 304. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.9.4.2 UCL GROUND_TO_OB_LIB System Library Specification 304. . . . . . . . .

6.9.4.3 Interface Description 310. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.9.5 UCL Mathematical System Libraries 326. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.9.5.1 Routines Summary 326. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.9.5.2 UCL Mathematical System Library Specification for Real type 326. . . . . . .

6.9.5.3 UCL Mathematical System Library Specification for Long_Real type 330. .

6.9.6 UCL Ground System Library: GROUND_VALUES 334. . . . . . . . . . . . . . . . . . .

6.9.6.1 Routines Summary 334. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.9.6.2 UCL System Library Specification 336. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.9.6.3 Interface Description 365. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.9.7 UCL Ground System Library: RAW_DATA_LIBRARY 415. . . . . . . . . . . . . . . .

6.9.7.1 Routines Summary 415. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.9.7.2 UCL System Library Specification 416. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.9.7.3 Interface Description 419. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.9.8 UCL Ground System Library: PACKET__LIBRARY 420. . . . . . . . . . . . . . . . . .

6.9.8.1 Routines Summary 420. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.9.8.2 UCL System Library Specification 422. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.9.8.3 Interface Description 428. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.9.9 UCL Ground System Library: TC_CONSTRUCTION 429. . . . . . . . . . . . . . . . .

6.9.9.1 Routines Summary 429. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.9.9.2 UCL System Library Specification 430. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.9.9.3 Interface Description 436. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.10 Onboard Commands and Responses 437. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.10.1 Software Commands (SWOP_Command) 437. . . . . . . . . . . . . . . . . . . . . . . . . . .

6.10.1.1 CCSDS Header for Software Commands 437. . . . . . . . . . . . . . . . . . . . . . . . .

6.10.1.2 CCSDS Data Field for Software Commands 438. . . . . . . . . . . . . . . . . . . . . .

6.10.1.3 Response Packet 438. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.10.1.3.1 CCSDS Header 438. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.10.1.3.2 CCSDS Data Field 439. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.10.2 FLAP Execution Requests 440. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Page 9: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

astrium – All Rights Reserved – Copyright per DIN 34

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

viii

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: viii

astriumSpace Infrastructure

6.10.2.1 CCSDS Header for FLAP Execution Requests 440. . . . . . . . . . . . . . . . . . . .

6.10.2.2 CCSDS Data Field for FLAP Execution Requests 440. . . . . . . . . . . . . . . . . .

6.10.2.3 Response Packet for FLAP Execution Requests 442. . . . . . . . . . . . . . . . . . . 6.10.2.3.1 CCSDS Header 442. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.10.2.3.2 CCSDS Data Field 442. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.11 DBS Types and Constants Definitions 444. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.12 DBS Application Programmer Interface 460. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.13 TEV Types and Constants Definitions 469. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.14 TEV Application Programmer Interface 489. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.15 Test Evaluation Invocation Interface 548. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.15.1 TEV Invocation for Interactive Mode 548. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.15.2 TEV Batch Mode 548. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.15.3 TEV in Office Mode 549. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.16 EXCEL Representation Format 550. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.17 Data Types supported by CGS in TES_API 551. . . . . . . . . . . . . . . . . . . . . . . . . . .

APPENDIX A :ACRONYMS 554. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

APPENDIX B :DEFINITIONS 562. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Page 10: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

1

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

CHAPTER 1 :INTRODUCTION

Page 11: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

2

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

1.1 Identification and Scope

This is the Interface Control document for the COLUMBUS Ground System software.

The authorized abbreviation for this software is CGS.

The approved identification and nomenclature of the document is the following :

CGS Interface Control Document– for CGS V5.1.0 –

CGS–RIBRE–ICD–0001

The scope of this document is to cover all aspects of CGS related to external interfaces.

1.2 Purpose

The purpose of this document is to describe functionally and formally how CGS interacts with the other SWproducts of the Columbus Ground System (CGS) and with other external systems.

It establishes in a single document an interface agreement between the Columbus System and the CGS productwith respect to those interfaces identified in section 1.1.

Hereby it is the objective to control the interface of the CGS product such that it provides services to all interfacedColumbus products in a manner suited to their needs.

The contents of this document are applicable to the design and the development of the CGS product.

1.3 Reader’s Guide

In principle, the structure of this document follows the general ICD layout, as described in the Columbus Soft-ware Development Standards (refer to document 2.2.2.1). But the presentation of the provided and required in-terfaces has been modified because it simplifies the different CGS product ICDs handling. For the CGS compo-nent, the following structure has been adopted :

Page 12: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

3

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

––1 | Introduction––2 | Applicable and Reference Documents––3 | General Description––4 | ”Product Name” Provided Interfaces––4.1 | Interface A––4.2 | Interface B

...––5 | ”Product Name” Required Interface of ”Product Y”––5.1 | Interface C

...––6 | ”Product Name” Required Interface of ”Product Z”––6.1 | Interface D

...––n | Language Interface (optional)––n+1 | Representation Interface (optional)––n+2 | Implementation Interface (optional)––n+3 | Product Link Interface––Appendix A | Acronyms––Appendix B | Definitions

...

Figure 1.3–1 CGS Interface Control Document Structure

The chapter 2 provides the applicable and reference documents mentioned in this ICD.

The chapter 3 gives an overview of the role of CGS within the complete CGS component.

The chapter 4 contains the interfaces provided by CGS to the rest of the system, as listed in the chapter 3.

The chapter 5 and the following ones contain the interfaces CGS requires from the rest of the system, as listedin the chapter 3. Each component interfacing CGS is treated in a separate chapter.

The chapter n describes language conventions, if there are some defined.

The chapter n+1 describes data representation conventions, if there are some defined.

The chapter n+2 describes protocol implementation conventions, if there are some defined.

The chapter n+3 gives necessary information to set links between products.

The appendix A provides the list of the acronyms used in this ICD.

The appendix B lists the definitions of the key terms used in this ICD.

1.4 Type of Described Interfaces

This document deals with application program interface, language interface and representation interface only.

The reader will not find the description of the CGS user interface. This type of interface, if any, will be describedin detail in the CGS Architectural Design Document and/or in the CGS User Manual .

Page 13: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

4

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

CHAPTER 2 :APPLICABLE AND

REFERENCE DOCUMENTS

Page 14: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

5

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

2.1 Applicable Documents

The following documents, of the issue shown, are external documents called up in the current document andwhich are considered to form part of this document, i.e. the called up section(s) of the applicable documentshould be treated as if they were an integral part of the document. In case of conflict, the newer documentsupersedes the older one.

2.1.1 Specifications

2.1.1.1 COLUMBUS Ground System (CGS)Requirement Specification, CGS–RIBRE–SPE–0001 Issue 1/A 31/01/2002

2.1.2 Standards

2.1.2.1 User Control Language (UCL) Reference ManualCGS–RIBRE–STD–0001 Issue 1/– TBD

2.1.2.2 High Level Command Language (HLCL) Reference ManualCGS–RIBRE–STD–0002 Issue 1/– TBD

2.1.3 Design Documents

None.

2.1.4 Technical Notes

2.1.4.1 CGS_Library Description CGS_RIBRE_ICD_0003; Iss. TBD

2.1.5 Manuals

2.1.5.1 MDA Reference ManualCGS–RIBRE–SUM–0003 Issue 1/– 20.11.01andDADI–MA Reference ManualCGS–RIBRE–SUM–0005 Issue 1/– 20.11.01

2.1.6 Interface Control Documents

2.1.6.1 MDB Standard Entities and Application Programmer Interface for CGS V5CGS–RIBRE–ICD–0002 Issue 1/– 31/01/02

Page 15: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

6

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

2.2 Reference Documents

The documents specified in this section serve only as reference material.

2.2.1 Specifications

None.

2.2.2 Standards

2.2.2.1 Columbus Software Development Standards,STD 1213 800 000 Issue 5/–, 22/11/91.

2.2.3 Design Documents

None.

2.2.4 Technical Notes

None.

2.2.5 Manuals

None.

2.2.6 Other Documents

None.

Page 16: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

7

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

CHAPTER 3 :GENERAL DESCRIPTION

Page 17: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

8

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

3.1 CGS Functional Overview

CGS is the ’backbone’ assembly providing core or essential services and actually making up most of its function-ality of the various ground based Facilities within the different Space Programmes. CGS exists in several con-figurations each targeted at some specific operational environment or user task. Major Facilities currently identi-fied are:

* Software Development Facility (SDF). Used for design and development (coding, unit test,product–level integration & partial qualification) of flight SW and data.

* Electrical Ground Support Equipment (EGSE). This facility is used for system–level integra-tion, verification and qualification of Flight HW and SW.

* Software, Integration and Test Equipment, based upon Simulators. Used for system–level in-tegration, verification and qualification of Flight SW.

A Facility is made up from CGS software configurations, standard hardware and additional hardware/softwareAdd Ons, e.g. Software Design and Development support services, Ground Test equipment etc. CGS is a genericreference concept, encompassing specific CGS ’Add On’ software and CGS will be extended to establish theFacilities. Each Facility will be different although each follow a logical model.

CGS provides software services as required for the Facilities. These services are needed for the design, develop-ment and integration, test and qualification related activities for the Flight Configuration.

The overall functionality of CGS will support the following functions:

Design and Development Support for Ground and Flight Systems including:

Columbus Ground System Infrastructure (CGSI) provides the basic service layer to allCGS S/W Applications, supporting Servers , Test Nodes and Graphical Workstationsunder the UNIX Operating System.

The Mission Database Application (MDA) constitutes the set of utilities which supportor enable various activities typically performed during the preparation phase of a check-out / simulation test or mission and provides data entry and reporting, configuration man-agement and support to off-line generation of onboard database/flight image. MDA iscentered around the Mission Database which serves as a central repository for all test /mission–related information.

Page 18: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

9

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

The Columbus Language System (CLS) comprises several language related softwarecomponents for UCL, HLCL and CPL:

The CLS Editor is the XView based user front–end for editing UCL, HLCL or CPLcommand sequences and for the specification of SW Commands within the inter-active database environment of MDA,

The UCL Compiler translates automated procedures (APs) and libraries writtenin the User Control Language (UCL) into an intermediate code (I–Code),

The HLCL Interpreter constitutes the interactive commanding interface of differ-ent applications running on various workstations in the ground system. It in-terprets and executes interactive commands and automated command sequenceswritten in the High Level Command Language (HLCL),

The HLCL Command Window is an XView based interactive window interfaceto the HLCL Interpreter.

The Ground Window Definition Utility (GWDU) provides functionality to generatecheckout and simulation orientated ground synoptic displays. These layouts contain ani-mated functional drawings which will be used to display e.g. checkout, simulation, sub-system and payload status information and to read in dedicated commands from thehuman user. This product will be based on the Ground Symbol and Display Standard.

Page 19: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

10

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Integration, Test and Qualification Support for Flight Systems:

The Test Setup, Configuration and Verification Software (TSCV) configures a requiredsystem configuration for a Checkout Test / Simulation. It enables the test nodes to be acti-vated for a given test. TSCV implements the generation of a test session in the masterarchive. TSCV further supports the user to identify and control the currently used S/WConfiguration.

The Human Computer Interface (HCI) provides all services related to user input / outputon workstations during execution of a Checkout Test / Simulation Session. It providesdifferent interfaces to the window system and the HCI devices (keyboard,mouse,screen)and includes services for synoptic display update, user help and user guidance throughtest operations. It provides the commanding interface and the message output during on-line test execution.

The Test Execution Software (TES) implements the support for test operations and auto-matic testing / monitoring of the Unit under Test (UUT). It is driven by the test definitionsdone by MDA and the configuration setup by TSCV. It provides a generic data and con-trol interface to the UUT and all services required for realtime enditem data processing.

Data Base Services (DBS) provides low level management and access to checkout testrelated result data items stored in the Test Results Database or files.

Test Evaluation Software (TEV) provides all services to evaluate a.m. data generated andstored during checkout test execution. It provides services for data selection and datapresentation. It further implements the final archiving of test results as well as the selec-tive exporting / importing of parts of the Test Result Database.

Network Software (NWSW) provides low level message based interprocess communica-tion as well as file transfer and directory services in a non NFS environment.

Timing Services Software (TSS) provides the synchronization of local computer clocksin a distributed environment with respect to the actual (local) time. In addition, TSS alsoprovide low level SMT distribution, access and handling.

Page 20: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

astrium – All Rights Reserved – Copyright per DIN 34

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

11

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: viii

astriumSpace Infrastructure

CHAPTER 4 :INFRASTRUCTURE

INTERFACES

Page 21: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

12

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

4.1 Operating System Services

4.1.1 Operating System

Informal Interface Description

CGSI provides the Operating System for SUN Computers.

Formal Interface Description

CGSI Product Platform Commercial Product Version

OS Services SUN SOLARIS 2.7

Note: The Solaris inherent Java RTE is baselined for CGS use

Page 22: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

13

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

4.1.2 File System Structure

4.1.2.1 Home Directories for CGS Products

CGSI provides to each CGS product a single home directory as defined in the following subsections.

4.1.2.1.1 Sun Platform

4.1.2.1.1.1 GSAF Home Directory

For CGS and its extensions and add–ons in the frame of GSAF, a global home directory, addressed bymeans of the environment variable

$GSAF_HOME

exists. This directory is created during CGS installation. By default, the pathname

/usr/gsaf

will be used, but this is not mandatory and can be changed during installation.

The directory $GSAF_HOME and associated subdirectories and files will be owned by the user, whois doing the installation of CGS (and its products).

4.1.2.1.1.2 CGS Home Directory

The following home directory is assigned to CGS as a common pool for SW and data:

$GSAF_HOME/cgs

The home directory is addressed by means of the environment variable CGS_HOME. This directorywill be used to store common SW and data as well as general scripts for installation / administrationetc. used by more than one CGS Product.

4.1.2.1.1.3 Product Home Directories

The following home directories are assigned to the lower level CGS Products:

$GSAF_HOME/<product>

where <product> is one of the following:cgsi, mda, gwdu, cls, tscv, hci, tes, dbs, tev, nwsw, tss.

The home directory is addressed by means of the environment variable <PRODUCT>_HOMEwhere <PRODUCT> is one following:

CGSI, MDA, GWDU, CLS, TSCV, HCI, TES, DBS, TEV, NWSW, TSS,

Within CGS scripts, SW etc, the explicit usage of ~username as reference scheme has to be avoidedin any case. All references in scripts, SW etc. shall be based on the environment variables as definedabove.

It is recommended that non–CGS Products (e.g. FES, CMAS etc.) will be installed parallel to the CGSProducts directly under $GSAF_HOME with the same substructure as defined in section 4.1.2.2.

4.1.2.2 Subdirectories for CGS Products

Each product has its subdirectories relative to its home directory for the location of executable images,data, utilities etc. as defined in sections 4.1.2.2.1 to 4.1.2.2.7 etc. CGSI will create these subdirectories.

Page 23: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

14

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Any extension in order to add another subdirectory in parallel to this level require explicit authorizationby CGS Engineering.

4.1.2.2.1 Start–Up Scripts

The following directory is provided for Product related start–up scripts:

$<PRODUCT>_HOME/bin/common

where <PRODUCT> is one of the products specified in section 4.1.2.1.1.3. Product start–up scriptswill setup the necessary environment for the execution of product SW and then subsequentially callthe target dependant executable image(s) as defined in section 4.1.2.2.

Note: For the external invocation of CGS Product SW always the start–up script under

$<PRODUCT>_HOME/bin/common

shall be called and not directly the target dependant executable image !

4.1.2.2.2 Executable Images (Platform dependent)

The following directory is provided for Product related executable images:

$<PRODUCT>_HOME/bin/<target>

where <PRODUCT> is one of the products specified in section 4.1.2.1.1.3 and <target> is one of thefollowing: sun5

4.1.2.2.3 Environment

The following directory is provided for Product related environment setup (e.g. specific login, logout,cshrc):

$<PRODUCT>_HOME/user_env

where <PRODUCT> is one of the products specified in section 4.1.2.1.1.3.

4.1.2.2.4 Utilities and Tools (Platform dependent)

The following directory is provided for executables / scripts etc of Product related utilities and tools(e.g. installation / deinstallation of users, product SW etc.):

$<PRODUCT>_HOME/util/<target>

where <PRODUCT> is one of the products specified in section 4.1.2.1.1.3 and <target> is one of thefollowing: sun5

4.1.2.2.5 Configuration Data

The following directory is provided for static configuration data of a Product (e.g. license files, productversion identification files etc, usually defined by the Product Administrator):

$<PRODUCT>_HOME/config

where <PRODUCT> is one of the products specified in section 4.1.2.1.1.3 .

Page 24: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

15

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

4.1.2.2.6 Runtime Data

The following directory is provided for Product SW generated data files at runtime:

$<PRODUCT>_HOME/data

where <PRODUCT> is one of the products specified in section 4.1.2.1.1.3 .

4.1.2.2.7 Libraries

The following directory is provided for Product specific library code including Application Program-mers Interfaces (e.g. Ada, C, SQL etc):

$<PRODUCT>_HOME/lib/

where <PRODUCT> is one of the products specified in section 4.1.2.1.1.3

4.1.2.3 Special Checkout related Directories

4.1.2.3.1 Test Node Directory on the HP Test Nodes

Additionally, for each test node (HP platform) one directory in the local filesystem on the HP machinewill be created during CGS installation.

By default, the pathname

/test_node/‘hostname‘

will be used, but this is not mandatory and can be changed during installation.

This directory has to be created with the same ownerships as the directory tree under $GSAF_HOMEon the SUN platform.

This directory will be referenced by the environment variable:

$TN_HOME

on each host .

Also below this directory, two directories ”archive” and ”replay” have to be created, also owned bythe same user as for $TN_HOME. These directories will be used by the CGS products to store archivefiles produced during a normal session (directory ”archive”) or used for replay purposes (directory ”re-play”).

4.1.2.3.2 Test Node Directories on the SUN Database Server

Additionally for each installed test node, a directory in the local filesystem of the SUN Database Serverwill be created during CGS installation.

The pathname for these directories needs to be exactly the same as for the test nodes (see section4.1.2.3.1).

These directories have to be created with the same ownerships as the directory tree under$GSAF_HOME on the DB Server platform.

For all a.m. directories, the corresponding directories of the test nodes need to be mounted (see alsoFigure 4.1.2.3.2–1 below).

Page 25: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

16

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

/usr/test_node/hostn/usr/test_node/host2/usr/test_node/host1

/usr/test_node/host1 /usr/test_node/host2 /usr/test_node/hostn

DB Server

UNIX Mounts

archive archive archive

Test Node 01 Test Node 02 Test Node xy

replay replay replay

Figure 4.1.2.3.2–1 Example of Mounting Test Node Directories on the Database Server.

4.1.2.4 Home Directories For CGS Extensions And Add–Ons

4.1.2.4.1 Special Application Software (SAS)

The CGS product TES is able to start special application Software (SAS).

For all SAS related data (executables, data, config files, results, etc.), CGS provides a global directory

$GSAF_HOME/sas

This directory will be owned by the owner of $GSAF_HOME.

CGS Software expects that SAS executables be stored in a directory

$GSAF_HOME/sas/bin

such that they can be started from here. Therefore, the executables must either by physically presentin this directory or visible here through UNIX softlinks into other parts of the filesystem, possiblyowned by the user.

It is important that all SASes are executable for CGS, i.e. the corresponding permissions have to beset appropriately.

CGS does not use any other directory structure below $GSAF_HOME/sas, however, it is recom-mended that SASes follow the breakdown given in para. 4.1.2.2.

Page 26: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

17

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

4.1.3 Common User Environment Files

This section lists the user environment variables which are set for all CGS users within their shells and withinthe applications started by the user via the shell resp. via the task selector.

The user environment described in these sections are set for C–shell and bourne shell scripts.

Variable Name Default Value set by CGS Meaning/Comments

path $OPENWINHOME/bin$ORACLE_HOME/bin$GSAF_HOME/cgsi/bin/common$GSAF_HOME/cgsi/bin/sun5/tools/tcltk/bin . ~/bin /usr/ccs/bin/usr/bin /usr/ucb

pathes where executables aresearched for

LD_LIBRARY_PATH $OPENWINHOME/lib:$ORACLE_HOME/lib

ORACLE_HOME Home of Oracle ServerInstallation

CGS_ARCH sun5 Platform architecture

REMOTE_SHELL rsh name of remote shell command

TN_BASE defined during installation base of test node directory

TN_HOME $TN_BASE/‘hostname‘/testnode name of test node directory

DV_HOME name of home directory forDataViews

LM_LICENSE_FILE DataViews License File

GSAF_HOME The value specified during CGSinstallation

Specifies the root directory of theCGS tree

CGS_HOME $GSAF_HOME/cgs Specifies the directory of the CGSproduct

CGSI_HOME $GSAF_HOME/cgsi Specifies the directory of theCGSI product

MDA_HOME $GSAF_HOME/mda Specifies the directory of theMDA product

GWDU_HOME $GSAF_HOME/gwdu Specifies the directory of theGWDU product

CLS_HOME $GSAF_HOME/cls Specifies the directory of the CLSproduct

TSCV_HOME $GSAF_HOME/tscv Specifies the directory of theTSCV product

HCI_HOME $GSAF_HOME/hci Specifies the directory of the HCIproduct

TES_HOME $GSAF_HOME/tes Specifies the directory of the TESproduct

DBS_HOME $GSAF_HOME/dbs Specifies the directory of the DBSproduct

TEV_HOME $GSAF_HOME/tev Specifies the directory of the TEVproduct

Page 27: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

18

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

NWSW_HOME $GSAF_HOME/nwsw Specifies the directory of theNWSW product

TSS_HOME $GSAF_HOME/tss Specifies the directory of the TSSproduct

SAS_HOME $GSAF_HOME/sas Specifies the directory of the SASproduct

Page 28: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

19

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

4.2 Relational Database Management System

Informal Interface Description

This chapter defines the interface provided by CGSI to the CGS products for access to and use of the RDBMSservices.

A general section details the basic interface as specificed by the commercial product documentation. This is fol-lowed by individal subsections with the specific details for each of the CGS products.

Formal Interface Description

4.2.1 Functional Interface

4.2.1.1 General

The CGSI RDBMS services are implemented by means of the ORACLE database management system.

See chapter 4.2.3 for details on product version.

4.2.2 Database Installation and Configuration

All instances of the CGSI RDBMS Services are installed and configured in accordance with the following sub-sections.

For each of the predefined objects names identified CGS product–specific defintions are described in the ap-propriate product subsection.

4.2.2.1 Predefined Object Names

4.2.2.1.1 User Accounts

A user requiring access to an ORACLE database must have an ORACLE username and password that are validfor a given database. This is separate from the username and password required by the operating system whichare assigned independently from ORACLE and do not provide access to an ORACLE database or programs.

4.2.2.1.2 Tablespaces

A database is divided into logical divisions called tablespaces. A database may have one or more tablespacesand each logical tablespace corresponds to one or more physical files. Each tablespace has a set of default storagecharacteristics. ORACLE users who will be creating database objects must have the right to create objects ina given tablespace.

4.2.2.1.3 Public Synonyms

Public synonyms are used for database objects which the DBA has created for use by all ORACLE users.

4.2.2.1.4 CRT Device Names

Default terminal definitions are provided, in CRT files, for many terminals associated with the operating systemunder which ORACLE runs. (A CRT file maps terminal keys to application functions, such as Clear Screen or

Page 29: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

20

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Go To Next Field). The ORACLE distribution tape for a given operating system contains the appropriate defaultterminal definition. It is possible to select an alternative CRT file.

The following CRT terminal definition file is used for CGS:

default.crt

4.2.2.2 ORACLE Configuration Parameters

4.2.2.2.1 INIT.ORA Configuration File

Informal Interface Description

When an ORACLE database instance starts, the ORACLE configuration parameters are taken into consider-ation. These parameters are defined in the file INIT<ORACLE_SID>.ORA whereby <ORACLE_SID> is is theOracle Instance Identifier. The parameters effect memory structures, impose limits, identify files and optimizeperformance. In the absence of an explicit value, ORACLE uses default values for each parameter.

Constraints on the use of parameters defined in the INIT.<ORACLE_SID>.ORA file and applicable to the CGSassemblies using ORACLE have been identified. To provide a precise formal interface, and since most para-meter values specificed in INIT.ORA are global (that is, are specified on a database–wide basis), the ORACLEconfiguration parameters that apply across all assemblies are stated. No assembly specific configuration con-straints have been identified.

Formal Interface Description

TBS

4.2.2.2.2 Rollback Segments

TBS

Page 30: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

21

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

4.2.3 Commercial Product Versions

CGSI Product Platform Commercial Product Version

RDBMS Services SUN ORACLE RDBMS 8.1.7 (*)(**)

SUN PRO*C 8.1.7 (*)(**)

SUN Oracle*Forms & Reports 6i (*)(***)

Patch 1

(*) Products so marked are covered by ESA/Oracle license contract

(**) Products so marked are an integral part of Oracle 8 Server Delivery

Page 31: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

22

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

4.3 Communication Services

4.3.1 Internet Port Number Allocation

Informal Interface Description

An Internet port is a logical communication channel in a host. These ports total 65535 and are accessed by portnumbers. Some of the numbers are reserved by system services such as TELNET, FTP etc. Others are reservedfor applications such as ORACLE/SQL*net.

This section defines the ports reserved for system services, etc.

Formal Interface Description

The following port numbers are reserved:

Service Portnumber/Protocol aliases and comments

System services 0–1023

ingreslock 1524/tcp

orasrv 1526/tcp ORACLE

1259/tcp Reserved for Atherton BackPlane

1259/udp Reserved for Atherton Backplane

rlb 1260/tcp # remote loopback diagnostic

nft 1536/tcp # NS network file transfer

netdist 2106/tcp # update(1m) network distribution service

rfa 4672/tcp # NS remote file access

dc_server 5000/tcp # Teamwork Data Controller Server

lanmgrx.osB 5696/tcp # LAN Manager/X for B.00.00 OfficeShare

grmd 5999/tcp # graphics resource manager

spc 6111/tcp # sub–process control

nfsd 2049/udp # NFS remote file system

CGS Applications 7000/tcp–7999/tcp VICOS Applications

CGS Applications 8000/tcp–8999/tcp CSS Applications

Notes:

# The X10_LI server for each display listens on ports 5800 + display number.

# The X10_MI server for each display listens on ports 5900 + display number.

# The X11 server for each display listens on ports 6000 + display number.

# Do not associate other services with these ports.

# Refer to the X documentation for details.

Page 32: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

23

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

4.3.2 Commercial Product Versions

CGSI Product Platform Commercial Product Version

CommunicationServices SUN TCP/IP (*)

SUN NFS (*)SUN Ethernet Software (*)

(*) Products so marked are an integral part of SunOS

Page 33: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

24

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

4.4 Presentation Services

Informal Interface Description

The CGSI Presentation Services provide an X–11 environment on all CGS workstations and servers.

In addition on Sun platforms the CGSI Presentation Services provide both an environment for developingOPENLOOK applications and an OPENLOOK window manager environment for executing window applica-tions.

Formal Interface Description

CGSI Product Platform Commercial Product Version

PresentationServices SUN X–lib Open Windows 3.6 (*)

SUN X View Toolkit Open Windows 3.6 (*)SUN Open Look Window

Manager (OLWM) Open Windows 3.6 (*)SUN X–Server Open Windows 3.6 (*)

(*) Products so marked, including Open Windows, are an integral part of SunOS/SOLARIS

Page 34: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

25

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

4.5 DataViews Services

Informal Interface Description

CGS provides Dataviews services.

Formal Interface Description

CGSI Product Platform Commercial Product Version

SUN DataViews DV Draw 9.9SUN DataViews DV Tools 9.9SUN DataViews EO Geck 3.1SUN DataViews Ada Bindings 9.7a

+ patch types.a: Color Threshold Table(described in COL–RIBRE–CGS–SMD–3031)

+ patch 052 (ftp://ftp.prs.de/pub/packages/dv97/p052.solaris.tgz)+ Modifications for Ada 95 / GNAT

Page 35: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

26

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

4.6 CGS Top Level User Interface

The CGS Top Level User Interface is the name given to the CGSI developed product. As such, it provides thefollowing:

– the user interface to the CGS system as a whole

– which integrates the CGS products through the provision of a common invocation mechanism

– which is also referred to as the CGS Desktop

– which enables the user to execute CGS level tasks

– a set of services additional to those provided by the CGS Platform (the CGSI procured products)

– Installation registry to allow any external software to register in the central CGS registry(version id table)

– (deleted)

Page 36: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

27

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

4.6.1 Installation Registry

CGS (CGSI) provides an interface to enter or update entries in a specific registry table, called Version ID Table.It allows for registering a software item (e.g. version of a software package, a patch or update etc)

The table is located in the $GSAF_HOME file system and is owned by the CGS Administrator user.

A program vit_manager is available under $CGSI_HOME/bin/sun5 which can be called on any SUN nodehaving visibility to $GSAF_HOME as the CGS Administrator user with the following parameters:

Version ID Table Manangement: List or modify the Version ID Table (VIT).

vit_manager –help | –list | –upd_item <sw_item> <field> <value> | –add_item <sw_item> <version> <host> <path> | –del_item <sw_item> | –query {<sw_item>|ALL} [–format format–list]

Parameters: –help

–– get help info –list

–– List the contents of the VIT –upd_item <sw_item> <field> <value> –– update <field> of <sw_item> with <value> . Entry is tametagged with actual time. –upd_entry <entry–no> <field> <value> –– update <field> of <entry–no> with <value> . Entry is tametagged with actual time. –add_item <sw_item> <version> <host> <path> –– Add a new entry (at the bottom) to the VIT. Entry is tametagged with actual time. –del_item <sw_item> –– Delete the entry with name = <sw_item> from the VIT –query <sw_item>|ALL [–format format–list] –– query the VIT for a given SW item/product or all items –– the output can be formatted according to an optional format–list –– format–list must be a single parameter with a comma –– or blank separated list of format identifier –– legal format identifier are –– product,version,host,date,time,path

where :<sw_item> : Name of SW item (max. 20 characters) <field> may be

’SW_ITEM’ : Name of SW item (max. 20 characters) ’VERSION’ : Version of SW item (max. 20 characters) ’HOST’ : Host where SW item is installed (max. 20 characters) ’PATH’ : Directory where SW item is installed (max. 255 characters)

<entry–no>: Number of entry in the VIT Table

Page 37: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

28

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

4.7 Other Commercial Products Version

This section specifies the versions and revision levels of other commercial software products used within a CGSversion.

Note 1: The compilers used for development of CGS are listed to describe the development baseline, ne-glecting the fact that the items are not included in the CGSI product.

Product Platform Commercial Product Version

Development SUN VADSself Ada (Rational) 6.2.3dProducts incl. Ada XViews Bindings

plus patch 81275XView Runtime System patch(COL–RIBRE–SRO–119)

SUN GNAT Ada 3.14a1

SUN Sun (ANSI C) Compiler 5.0SUN VisualWorks 3.0SUN SAMMI 3.0.12 (***)

Runtime Products SUN NTP Version 3 (*)HP NTP Version 3 (**)SUN TCL/TK 8.3.2 (****)

(*) Products so marked are an integral part of SOLARIS (Solaris 2.7 Server)

(**) Products so marked are an integral part of HP–UX

(***) Products so marked require runtime licenses for RTE and FE parts

(****) Tcl/Tk is delivered as part of the CGS installation; no license is required

Page 38: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

29

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

4.8 CGS_Library

4.8.1 Informal Interface

The CGS_Library is a set of re–usable Ada packages that provide services in the following areas:

– Abstract Data TypesAda Type definitions and Utility packages These packages provide re–usable implementation of datastructures such as lists, stacks, maps, tables, streams, sets, queues, buffers, strings, time etc.

– Operating System Interface in Ada. The interface to selected UNIX services is provided

– Mathematical ServicesMathematical packages providing operations on elements such as matrix and complex numbers are pro-vided.

4.8.2 Formal Interface

For the formal definition of the packages refer to AD 2.1.4.1 .

Page 39: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

30

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

CHAPTER 5 :MISSION PREPARATION

INTERFACES

Page 40: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

31

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

5.1 Package MPS_DEFINITIONS

Please note that this package is not allowed outside CGS by other Products than CMAS !!!

5.1.1 Exceptions

5.1.1.1 Exceptions due to internal MDB / ORACLE errors

– MDB_ERRORThis exception is raised if an operation cannot be completed because of an internal error in MPS–pro-vided procedures

– ORACLE_ERRORThis exception is raised if an operation cannot be completed because of a malfunction of the OracleDBMS (e.g. database is not available)

5.1.1.2 SID_ERROR

The SID does not exist in the current context, i.e. within the scope of the currently selected CCU version. TheCCU version is specified by the procedure MDB_SESSION.SET_LOCAL_DEFAULT.

All procedures having the ‘in parameter’ SID can raise this exception.

5.1.1.3 AUTHORIZATION_ERROR

This exception is raised if an operation cannot be executed due to the fact that a user has insufficient privilege.

In general this exception is raised if

– the user is not owner of the item specified by SID

– the status of the item is FROZEN

– the status of the item is REVIEW and the user has no configuration management privilege

5.1.1.4 USE_ERROR

This exception is raised if an operation is incorrect in the current context.Examples: * try to call procedures without being connected to the MDB * try to open the MDB when it is already open

5.1.1.5 ENVIRONMENT_ERROR , CDU/CCU_ERROR

– ENVIRONMENT_ERROR This exception is raised if an operation cannot be completed because of wrong or invalid mission–,sys-tem tree–, flight–configuration– identifiers.

– CDU_ERRORThis exception is raised if an operation cannot be completed because of wrong or invalid CDU/ CDU–version identifiers

Page 41: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

32

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

– CCU_ERRORThis exception is raised if an operation cannot be completed because of wrong or invalid CCU/CCU–version identifiers

5.1.1.6 PARAMETER_ERROR

This exception is raised if an operation cannot be completed because of wrong or invalid input parameter(in all cases where the input parameter is not related to SID’s, CDU’s, CCU’s or Environment)

5.1.1.7 CONSISTENCY_ERROR

This exception is raised if an attempt is made to access an item that is in an ”inconsistent” state (i.e. doesn’tsatisfy the predefined integrity/consistency rules)

Page 42: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

33

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

5.1.2 Formal Description

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– MPS_DEFINITIONS–––– This package contains all MPS specific types and definitions used by CGS–– in addition to the standard ADA types.–––– Unit : Package specification–––– Special features : The package NUMERIC_TYPES is directly visible–– because the ’use’ clause is used.––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– History of changes–––– Authorizing document : COL–CGS–IRN–3020B–– Date : May 1995–– Change summary : – Introduction of HLCL sequences,–– – Introduction of exception LOCKING_PROBLEM–– – Simplification of the header–– – Introduction of CSS specific SW type–– definition–– – Introduction of CGS spcific end item type–– definitions–– – Deletion of unused EGSE end item types–– Author : E. Herrmann–––– Authorizing document : COL–RIBRE–IRN–CGS–4002–– Date : Feb 1996–– Change summary : CGS V3.1 Baseline definition:–– CPL & SW Commanding–– Authors : F.Kruse, A.Werkman, C.Seelhorst–––– Authorizing document : COL–RIBRE–IRN–CGS–4002a–– Date : July 1996–– Change summary : Use T_SW_VALUE instead of T_SW_SCALAR_VALUE–– in T_FORMAL_PARAMETER, introduce new type–– T_SW_VALUE_STREAM.–– Add ASSIGN for T_SW_VALUE–– and DEALLOCATE for T_ACCESS_SW_VALUE.–– Add support for ADT_PACKING mechanism :–– provide procedures PACK and UNPACK–– and function SIZE_NEEDED.–––– Authorizing document : COL–RIBRE–IRN–CGS–4002b–– Date : September 1996–– Change summary : Initialize type T_ENGINEERING_UNIT with–– default values–– Authors : A. Werkman–––– Date : May 1997–– Change summary : Remove Fault Management related types–– Authors : W. St.Luce–––––– Authorizing document : PIRN–7064–– Date : 02.02.1998–– Change summary : Procedures–– DEALLOCATE(GARBAGE :–– in out T_ACCESS_FORMAL_PARAMETER)–– and–– CLEAR(STREAM : in out T_FORMAL_PARAMETER_LIST)–– inserted–– Author : I. Lenz–––– Authorizing document : COL–RIBRE–IRN–8079–– Date : 03.08.1999–– Change summary : Add new end item types EGSE_XXX_DERIVED_VALUE–– Author : I. Lenz

Page 43: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

34

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–––– #IRN: COL–RIBRE–IRN–CGS–4002 : CGS V3.1 Baseline definition–– #IRN: COL–RIBRE–IRN–CGS–4002a : change in T_FORMAL_PARAMETER–– #IRN: COL–RIBRE–IRN–CGS–4002b : change in type T_ENGINEERING_UNIT–– #IRN: COL–RIBRE–IRN–CGS–5007 : add constants for bytestream/eng. valuetype–– #IRN: COL–RIBRE–IRN–CGS–6002 : add ASSIGN procedure for T_SW_TYPE_DESCR–– add type EGSE_BINARY_PACKET–– #IRN: COL–RIBRE–IRN–CGS–7005 : remove fault management related types–– New enditem type: Response Packet–– New domain: USER_DEF_SIDS–– #IRN: COL–RIBRE–IRN–CGS–8125: Add extension for SW_TYPE and SW_SCALAR_VALUE–– (SPR–8927)–– Add CLASSES in T_XREF (SPR–8105)

–– #IRN: COL–RIBRE–IRN–CGS–8209a: Add enditem types for unsigned_integer –– and double_float; PUS_TC, PUS_ADU_DESCR.,STRUCT_ID–– 22.01.02 COL–RIBRE–IRN–CGS–8234: UCL specific Time–––––– END HISTORY–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

with STATIC_STRINGS;with DYNAMIC_STRINGS;with STREAMS;with LIMITED_STREAMS;with STRING_POINTERS;with UNITS;with ADT_PACKING;

with NUMERIC_TYPES; use NUMERIC_TYPES;

––––––––––––––––––––––––––––––––––––––––––

package MPS_DEFINITIONS is

SCCSID_ADS : constant STRING := ”@(#) mps_definitions.ads /main/solaris–port/cgs_4.0/cgs_4.1/cgs_4.1.1/cgs_4.3/cgs_5.0/3 01/24/02 14:30:09@(#)”;

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– EXCEPTIONS ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–– Exceptions due to internal MDB / ORACLE errors:

ORACLE_ERROR, –– This exception is raised if an operation cannot be –– completed because of a malfunction of the Oracle –– DBMS (e.g. database is not available)

MDB_ERROR, –– This exception is raised if an operation cannot be –– completed because of an internal error in –– MDA–provided procedures

CONSISTENCY_ERROR, –– This exception is raised if an attempt is made to –– access an item that is in an ”inconsistent” state –– (i.e. doesn’t satisfy the predefined integrity or –– consistency rules)

–– Exceptions due to illegal or incorrect use of provided procedures:

USE_ERROR, –– This exception is raised if an operation is –– incorrect in the current context. –– Examples: –– * try to call procedures without being connected –– to the MDB –– * try to open the MDB when it is already open –– * try to close the MDB without being connected –– * try to call READ_ITEM procedure where the –– item–type of the sid doesn’t match. –– * try to call STORE_ITEM without calling –– LOCK_ITEM previously

SID_ERROR, –– This exception is raised if the MDB item denoted by

Page 44: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

35

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– the SID doesn’t exist in the current context, –– i.e. within the scope of the currently selected CCU –– version.

AUTHORIZATION_ERROR, –– This exception is raised if an operation cannot be –– executed because of the fact that a user has –– insufficient privileges –– Examples: –– * try to lock an item for update purposes which –– is in a frozen CDU version –– * try to lock an item which the status REVIEW –– without having configuration management –– privilege. –– * try to lock an item for update purposes which –– belongs to another user

PARAMETER_ERROR, –– This exception is raised if an operation cannot be –– completed because of wrong or invalid input –– parameter (in all cases where the input parameter –– is not related to SID’s, CDU’s, CCU’s or –– Environment)

ENVIRONMENT_ERROR, –– wrong element, mission or systemtree version –– identifier

CCU_ERROR, –– wrong or invalid CCU/,CCU–version identifier CDU_ERROR, –– wrong or invalid CDU/, CDU–version identifier

LOCKING_PROBLEM –– Some procedures of the packages MDB_UCL –– and MDB_WDU_GROUND have to re–lock the updated –– and committed item. –– If this lock fails because item is locked –– by another user the exception LOCKING_PROBLEM is –– raised.

: exception;

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– Types and Constants : ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––––––––––––––––––––––––––––––––––––––––––– –– strings –––––––––––––––––––––––––––––––––––––––––––

type DYNAMIC_STRING is new DYNAMIC_STRINGS.DYNAMIC_STRING;

package STATIC_STRINGS80 is new STATIC_STRINGS(80); type STATIC_STRING80 is new STATIC_STRINGS80.STATIC_STRING;

package STATIC_STRINGS256 is new STATIC_STRINGS(256); type STATIC_STRING256 is new STATIC_STRINGS256.STATIC_STRING;

package STATIC_STRINGS1024 is new STATIC_STRINGS(1024); type STATIC_STRING1024 is new STATIC_STRINGS1024.STATIC_STRING;

––––––––––––––––––––––––––––––––––––––––––– –– byte stream –––––––––––––––––––––––––––––––––––––––––––

package BYTE_STREAMS is new STREAMS (BYTE, BYTE_ARRAY); type T_BYTE_STREAM is new BYTE_STREAMS.STREAM;

–– using this type in other packages there must be specified –– the average number of items(BYTE) for space allocation purposes –– Example: –– subtype MY_BYTE_STREAM is MPS_DEFINITIONS.T_BYTE_STREAM(20)

––––––––––––––––––––––––––––––––––––––––––– –– character stream –––––––––––––––––––––––––––––––––––––––––––

Page 45: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

36

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

package CHAR_STREAMS is new STREAMS (CHARACTER, STRING); type T_CHAR_STREAM is new CHAR_STREAMS.STREAM;

–– using this type in other packages there must be specified –– the average number of items (CHARACTER) for space allocation purposes –– Example: –– subtype MY_CHAR_STREAM is MPS_DEFINITIONS.T_CHAR_STREAM(20)

–––––––––––––––––– –– MPS constants ––––––––––––––––––

MAX_VERSION : constant := 999; –– maximal version number

MAX_NAME_LENGTH : constant := 16;

–––––––––––––––––––––––––––– –– Operating Sytem User Name ––––––––––––––––––––––––––––

USER_NAME_LEN : constant := 30;

subtype USER_NAME_INDEX is INTEGER range 1 .. USER_NAME_LEN;

subtype USERNAME is STRING (USER_NAME_INDEX);

–––––––––––––––––––––––––––––––––––––– –– Long Identifier (Pathname) for Item ––––––––––––––––––––––––––––––––––––––

NULL_PATHNAME : constant STRING := ””;

ROOT_PATHNAME : constant STRING := ”\”;

NODE_NAME_SEPARATOR : constant STRING := ”\”;

–––––––––––––––––––––––––––––––––– –– Short Identifier (SID) for Item ––––––––––––––––––––––––––––––––––

type SID is new UNSIGNED_INTEGER32;

–– NULL_SID is set in all cases where a pathname does not exist NULL_SID : constant SID := 0;

–– this is the parent’s sid of the element configuration (i.e. APM or MTFF) ROOT_SID : constant SID := 1;

type T_SID_ARRAY is array (POSITIVE range <>) of SID;

––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– Long Identifier (Pathname, Subitem_Name) for Subitem –––––––––––––––––––––––––––––––––––––––––––––––––––––––

subtype T_SUBITEM_NAME is STRING (1 .. MAX_NAME_LENGTH);

NULL_SUBITEM_NAME : constant T_SUBITEM_NAME := (others => ’ ’);

––––––––––––––––––––––––––––––––––––––––––––––––– –– Short Identifier (SID, Subitem_Id) for Subitem –––––––––––––––––––––––––––––––––––––––––––––––––

type SUBITEM_ID is new UNSIGNED_INTEGER32;

NULL_SUBITEM_ID : constant SUBITEM_ID := 0;

–––––––– –– Names ––––––––

subtype T_NAME is STRING (1 .. MAX_NAME_LENGTH);

Page 46: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

37

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

subtype T_ELEMENT_CONFIGURATION_NAME is T_NAME;

type T_ELEMENT_CONFIGURATION_ARRAY is array (POSITIVE range <>) of T_ELEMENT_CONFIGURATION_NAME;

subtype T_MISSION_NAME is T_NAME;

type T_MISSION_ARRAY is array (POSITIVE range <>) of T_MISSION_NAME;

subtype T_CONFIGURATION_NAME is STRING (1 .. MAX_NAME_LENGTH);

subtype T_ITEM_NAME is T_NAME;

subtype T_MDB_INSTANCE is T_NAME;

––––––––––––––––––––––––––––––––– –– SYSTEM– / CDU– / CCU– Version –––––––––––––––––––––––––––––––––

subtype T_VERSION_NUMBER is INTEGER range 0 .. MAX_VERSION;

type T_SYSTEMTREE_VERSION_ARRAY is array (POSITIVE range <>) of T_VERSION_NUMBER;

type T_VERSION is record VERSION : T_VERSION_NUMBER; ISSUE : T_VERSION_NUMBER; REVISION : T_VERSION_NUMBER; end record;

NO_VERSION : constant T_VERSION := (0,0,0);

type T_CDU_VERSION(TEST : BOOLEAN := FALSE) is record VERSION : T_VERSION; case TEST is when TRUE => TESTVERSION : T_VERSION_NUMBER; MDB_INSTANCE : T_MDB_INSTANCE; when FALSE => null; end case; end record;

NO_CDU_VERSION : constant T_CDU_VERSION := (FALSE,VERSION => (0,0,0));

type T_VERSION_STATUS is (NONE, REVIEW, DEVELOPMENT, FROZEN);

type T_CONSISTENCY_STATUS is (NONE, LOCAL_INVALID, LOCAL_VALID, GLOBAL_VALID);

––––––––––––– –– CDU Domain –––––––––––––

type T_CDU_DOMAIN is (NONE, CGS, EGSE, CSS, UCL_LIBRARY, SYMBOL_LIBRARY, USER_DEF_SIDS, SDDF);

––––––––––––– –– Item Types –––––––––––––

Page 47: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

38

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

type T_ITEM_TYPE is (NONE,

–– EGSE specific types

–– measurements: EGSE_INTEGER_MEASUREMENT, EGSE_FLOAT_MEASUREMENT, EGSE_DISCRETE_MEASUREMENT, EGSE_BYTE_STREAM_MEASUREMENT, EGSE_INTEGER_SW_VARIABLE, EGSE_FLOAT_SW_VARIABLE, EGSE_DISCRETE_SW_VARIABLE, EGSE_BYTE_STREAM_SW_VARIABLE,

–– derived values: EGSE_INTEGER_DERIVED_VALUE, EGSE_FLOAT_DERIVED_VALUE, EGSE_DISCRETE_DERIVED_VALUE, EGSE_STRING_DERIVED_VALUE, EGSE_UNSIGNED_INTEGER_DERIVED_VALUE, EGSE_DOUBLE_FLOAT_DERIVED_VALUE,

–– stimuli / predefined TC: EGSE_ANALOG_STIMULUS, EGSE_DISCRETE_STIMULUS, EGSE_PREDEFINED_TC, EGSE_BINARY_PACKET, PUS_TC,

–– others: EGSE_MONITOR_LIST, GDU_DESCRIPTION_LIST, ADU_DESCRIPTION, PUS_ADU_DESCRIPTION, PUS_STRUCTURE_ID, SIMULATED_ADU_DESCRIPTION, EGSE_USER_MESSAGE, EGSE_NODE, EGSE_TEST_CONFIGURATION, EGSE_SOFTWARE,

–– CSS specific types

–– item types TOPLEVEL_COMPOSITE_FB, COMPOSITE_FB,

–– end item types CONSTANT_FB, ASYNCHRONOUS_FB, SYNCHRONOUS_FB,

DOUBLE_FLOAT_MEASUREMENT, –– also used for EGSE BOOLEAN_MEASUREMENT, UNSIGNED_INTEGER_MEASUREMENT, –– also used for EGSE DOUBLE_FLOAT_SW_VARIABLE, –– also used for EGSE BOOLEAN_SW_VARIABLE, UNSIGNED_INTEGER_SW_VARIABLE, –– also used for EGSE DOUBLE_FLOAT_STIMULUS, BOOLEAN_STIMULUS, UNSIGNED_INTEGER_STIMULUS, INTEGER_STIMULUS, PULSE_STIMULUS, BURST_PULSE_STIMULUS,

–– common types VIRTUAL, CDU, GENERAL_PURPOSES, SWEU, SWRU,

Page 48: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

39

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

INTEGER_CONSTANT, REAL_CONSTANT, STRING_CONSTANT, UCL_AUTOMATED_PROCEDURE, UCL_USER_LIBRARY, UCL_SYSTEM_LIBRARY, HLCL_COMMAND_SEQUENCE, CPL_SCRIPT, SWOP_COMMAND, RESPONSE_PACKET, APID, CCSDS_END_POINT, WDU_GROUND_SYMBOL, WDU_GROUND_SYNOPTIC_DISPLAY, OTHER);

type T_ITEM_TYPE_SET is array (MPS_DEFINITIONS.T_ITEM_TYPE) of BOOLEAN;

––––––––––––––––––––––––––––––– –– Subitem Types (for CSS) –––––––––––––––––––––––––––––––

type T_SUBITEM_TYPE is (NONE, FB_IO_INPUT, FB_IO_OUTPUT);

type T_SUBITEM_TYPE_SET is array (MPS_DEFINITIONS.T_SUBITEM_TYPE) of BOOLEAN;

–––––––––––––– –– State Code ––––––––––––––

type STATE_CODE is new STRING (1..8);

type T_STATE_CODE_ARRAY is array (POSITIVE range <>) of STATE_CODE;

package STATE_CODE_STREAMS is new STREAMS (STATE_CODE, T_STATE_CODE_ARRAY); type T_STATE_CODE_LIST is new STATE_CODE_STREAMS.STREAM;

–– using this type in other packages there must be specified –– the average number of items (STATE_CODE) for space allocation purposes. –– Example: –– subtype MY_STATE_CODE_LIST is MPS_DEFINITIONS.T_STATE_CODE_LIST(20)

–––––––––––––– –– Bytestream/String engineering value type ––––––––––––––

MAX_ENGINEERING_STRING_LENGTH : constant := 256; –– sets the upper limit of a engineering string value

MAX_RAW_STRING_LENGTH: constant := 255; –– sets the upper limit of a byte stream value –– Please note that these two values should be equal –– they are kept like this for historical reasons –– They will be changed to be the same in the future –– The redundant definition in must also be changed –– to comply with this value

subtype T_RAW_STRING is STRING(1..MAX_RAW_STRING_LENGTH); subtype T_ENGINEERING_STRING is STRING(1..MAX_ENGINEERING_STRING_LENGTH);

–––––––––––––––––––– –– UCL specific Time ––––––––––––––––––––

type Unsigned_4 is range 0 .. 2 ** 4 – 1; type Unsigned_5 is range 0 .. 2 ** 5 – 1; type Unsigned_8 is range 0 .. 2 ** 8 – 1;

Time_Delta : constant := 0.000_000_001; –– delta (nanoseconds)

Page 49: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

40

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Aft_Bits : constant := 30; –– needed for fractional part Fore_Bits : constant := 47 – Aft_Bits; –– remain for integer part

type Fixed_47 is delta Time_Delta range 0.0 .. 1.0 * (2 ** Fore_Bits) – Time_Delta;

for Unsigned_4’Size use 4; for Unsigned_5’Size use 5; for Unsigned_8’Size use 8; for Fixed_47’Size use 47;

type UCL_Time is record Year : Unsigned_8; Month : Unsigned_4; Day : Unsigned_5; Seconds : Fixed_47; –– seconds since midnight end record;

for UCL_Time use record Year at 0 range 0 .. 7; Month at 0 range 8 .. 11; Day at 0 range 12 .. 16; Seconds at 0 range 17 .. 63; end record;

Min_Time : constant UCL_Time := (Year => 1901 – 1900, Month => 1, Day => 1, Seconds => 0.0);

Max_Time : constant UCL_Time := (Year => 2099 – 1900, Month => 12, Day => 31, Seconds => 86_400.0 – Time_Delta);

No_Time : constant UCL_Time := (Year => 2#11111111#, –– ~.~ Month => 2#1111#, Day => 2#11111#, Seconds => Fixed_47’Last); –– all bits = 1

––––––––––––––––––––– –– Engineering Units –––––––––––––––––––––

package BASE_UNITS is new UNITS(DOUBLE_FLOAT);

subtype T_UNIT is BASE_UNITS.UNIT;

type T_ENGINEERING_UNIT is record EXPRESSION : STATIC_STRING80 := STATIC (””); UNIT : T_UNIT := BASE_UNITS.NO_UNIT; end record;

––––––––––––––––––––––––––––––––––––––––––– –– Cross Reference List –––––––––––––––––––––––––––––––––––––––––––

type T_XREF is record PATH_NAME : DYNAMIC_STRING; SHORT_ID : SID; CLASSES : DYNAMIC_STRING; end record;

–– FK: SPR–8105 –– The CLASSES field of a cross reference contains a list of semicolon –– separated classifications of the form <product>:<identifier>, –– e. g.: CLS:SOFT; CLS:HARD. The field may be an empty string, in –– which case the cross reference is unclassified.

Page 50: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

41

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

type T_XREF_ARRAY is array (POSITIVE range <>) of T_XREF;

procedure ASSIGN (TARGET: in out T_XREF; SOURCE: T_XREF);

function ”=” (LEFT, RIGHT: T_XREF) return BOOLEAN ;

procedure DEALLOCATE (GARBAGE : in out T_XREF);

package XREF_STREAMS is new LIMITED_STREAMS (T_XREF, T_XREF_ARRAY, ASSIGN, ”=”); type T_XREF_LIST is new XREF_STREAMS.STREAM;

–– using this type in other packages there must be specified –– the average number of items (T_XREF) for space allocation purposes. –– Example: –– subtype MY_XREF_LIST is MPS_DEFINITIONS.T_XREF_LIST(20)

procedure DEALLOCATE (GARBAGE : in out T_XREF_LIST);

––––––––––––––––––––––––––––––––––––– –– Software Variables Access Classes –––––––––––––––––––––––––––––––––––––

type T_SW_ACCESS_CLASS is (NONE, READ, READ_WRITE, EXECUTE, SEND, IMPORT, PATH_SELECT, NODE_SELECT);

––––––––––––––––––– –– Completion Code –––––––––––––––––––

type COMPLETION_CODE is (SUCCESS, FAILURE, NONE);

––––––––––––––––––––––––– –– SW_TYPE related types –––––––––––––––––––––––––

–– The following descriptors make up a UCL type declaration. –– They describe the software type of database items and formal parameters. –– For a description of the UCL type concept refer to the UCL Reference –– Manual and the HLCL Reference Manual. –– –– Only a subset of the UCL types is supported, the following restrictions –– apply: –– –– enumeration types: only predefined COMPLETION_CODE –– –– array types: max. 3 dimensions –– index type must be INTEGER –– lower bounds must be 1 –– –– record types: not allowed –– –– set types: only predefined BITSET

–– 1. Type classes ––––––––––––––––––

–– These define the basic scalar type class. –– Further information is needed for arrays, constrained and unitized types.

type T_SW_TYPE is (NONE,

Page 51: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

42

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

STRING_TYPE, STATE_CODE_TYPE, INTEGER_TYPE, REAL_TYPE, BOOLEAN_TYPE, BITSET_TYPE, CHARACTER_TYPE, WORD_TYPE, PATHNAME_TYPE, TIME_TYPE, DURATION_TYPE, COMPLETION_CODE_TYPE, SUBITEM_PATHNAME_TYPE, PULSE_TYPE, BURST_PULSE_TYPE, UNSIGNED_INTEGER_TYPE, LONG_REAL_TYPE, BYTE_TYPE, LONG_WORD_TYPE, BYTE_STRING_TYPE);

–– 2. Type constraints ––––––––––––––––––––––

–– These descriptors define constraints for various UCL types. –– The discriminant CONSTRAINED defines whether there is a constraint –– or not. Each descriptor is headed with an example in UCL that might –– be represented withe the descriptor:

type T_INTEGER_RANGE (CONSTRAINED: BOOLEAN := FALSE) is record case CONSTRAINED is when TRUE => FIRST : INTEGER32 := INTEGER32’FIRST; LAST : INTEGER32 := INTEGER32’LAST; when FALSE => null; end case; end record;

–– Example: INTEGER (0 .. 1024)

type T_UNSIGNED_INTEGER_RANGE (CONSTRAINED: BOOLEAN := FALSE) is record case CONSTRAINED is when TRUE => FIRST : UNSIGNED_INTEGER32 := 0; LAST : UNSIGNED_INTEGER32 := UNSIGNED_INTEGER32’LAST; when FALSE => null; end case; end record;

–– Example: UNSIGNED_INTEGER (0 .. 1024)

type T_REAL_RANGE (CONSTRAINED: BOOLEAN := FALSE) is record case CONSTRAINED is when TRUE => FIRST : SINGLE_FLOAT := SINGLE_FLOAT’FIRST; LAST : SINGLE_FLOAT := SINGLE_FLOAT’LAST; when FALSE => null; end case; end record;

–– Example: REAL (0.0 .. 1.0)

type T_LONG_REAL_RANGE (CONSTRAINED: BOOLEAN := FALSE) is record case CONSTRAINED is when TRUE => FIRST : DOUBLE_FLOAT := DOUBLE_FLOAT’FIRST;

Page 52: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

43

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

LAST : DOUBLE_FLOAT := DOUBLE_FLOAT’LAST; when FALSE => null; end case; end record;

–– Example: LONG_REAL (0.0 .. 1.0)

type T_DURATION_RANGE (CONSTRAINED: BOOLEAN := FALSE) is record case CONSTRAINED is when TRUE => FIRST : DOUBLE_FLOAT := 0.0; LAST : DOUBLE_FLOAT := DOUBLE_FLOAT’LAST; when FALSE => null; end case; end record;

–– Example: DURATION (0.0 [s] .. 1.0 [s])

type T_CHARACTER_RANGE (CONSTRAINED: BOOLEAN := FALSE) is record case CONSTRAINED is when TRUE => FIRST : CHARACTER := CHARACTER’FIRST; LAST : CHARACTER := CHARACTER’LAST; when FALSE => null; end case; end record;

–– Example: CHARACTER (’a’ .. ’z’)

type T_BOOLEAN_RANGE (CONSTRAINED: BOOLEAN := FALSE) is record case CONSTRAINED is when TRUE => FIRST : BOOLEAN := BOOLEAN’FIRST; LAST : BOOLEAN := BOOLEAN’LAST; when FALSE => null; end case; end record;

–– Example: BOOLEAN (FALSE .. FALSE)

type T_TIME_RANGE (CONSTRAINED: BOOLEAN := FALSE) is record case CONSTRAINED is when TRUE => FIRST : UCL_TIME := MIN_TIME; LAST : UCL_TIME := MAX_TIME; when FALSE => null; end case; end record;

–– Example: TIME (01.01.1990 12:00:00 .. 31.12.1995 12:00:00)

type T_COMPLETION_CODE_RANGE (CONSTRAINED: BOOLEAN := FALSE) is record case CONSTRAINED is when TRUE => FIRST : COMPLETION_CODE := SUCCESS; LAST : COMPLETION_CODE := FAILURE; when FALSE => null; end case; end record;

–– Example: COMPLETION_CODE (SUCCESS .. SUCCESS)

Page 53: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

44

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– 3. Array dimensions ––––––––––––––––––––––

–– These types serve to define arrays up to 3 dimensions.

type T_SW_DIMENSIONS is range 0 .. 3;

type T_SW_INDEX_LIST is array (T_SW_DIMENSIONS range <>) of POSITIVE;

–– 4. Software type descriptor ––––––––––––––––––––––––––––––

–– This defines the type. The SW_TYPE discriminant defines the type –– class, for arrays the type class of the element type. –– The DIMENSION discriminant defines the array dimension. –– DIMENSION = 0 defines a scalar type. –– For each array dimension the BOUNDS field contains the upper bound. –– The lower bound is understood to be 1. The index type is always INTEGER. –– –– Each case branch is followed by a UCL example that might be represented –– with the branch.

type T_SW_TYPE_DESCRIPTOR (SW_TYPE : T_SW_TYPE := NONE; DIMENSION : T_SW_DIMENSIONS := 0) is record BOUNDS: T_SW_INDEX_LIST (1 .. DIMENSION);

case SW_TYPE is when NONE => null;

when STRING_TYPE => STRING_SIZE : NATURAL;

–– Example: X : string (80);

when BYTE_STRING_TYPE => BYTE_STRING_SIZE : NATURAL; –– Example: X : string (80) of BYTE;

when STATE_CODE_TYPE => STATE_CODE_LIST : T_STATE_CODE_LIST (5);

–– Example: X : statecode; –– X : statecode ($LOW, $MEDIUM, $HIGH);

when INTEGER_TYPE => INTEGER_RANGE : T_INTEGER_RANGE;

–– Example: X : INTEGER; –– X : INTEGER (0 .. 255);

when REAL_TYPE => REAL_UNIT : T_ENGINEERING_UNIT; REAL_RANGE : T_REAL_RANGE;

–– Example: non–unitized reals: –– X : REAL; –– X : REAL (0.0 .. 1.0);

–– Example: unitized reals: –– X : REAL [m/s]; –– X : REAL (0.0 .. 1.0) [m/s];

when DURATION_TYPE => DURATION_RANGE : T_DURATION_RANGE;

–– Example: X : DURATION; –– X : DURATION (0.0 [s] .. 1.0 [s]);

Page 54: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

45

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

when BOOLEAN_TYPE => BOOLEAN_RANGE : T_BOOLEAN_RANGE;

–– Example: X : BOOLEAN; –– X : BOOLEAN (FALSE .. FALSE);

when BITSET_TYPE => null;

–– Example: X : BITSET;

when CHARACTER_TYPE => CHARACTER_RANGE : T_CHARACTER_RANGE;

–– Example: X : CHARACTER; –– X : CHARACTER (’a’ .. ’z’);

when BYTE_TYPE => null;

–– Example: X : BYTE;

when WORD_TYPE => null;

–– Example: X : WORD;

when LONG_WORD_TYPE => null;

–– Example: X : LONG_WORD;

when PATHNAME_TYPE => ITEM_TYPES : T_ITEM_TYPE_SET; –– predefined OTHER_ITEM_TYPES : STRING_POINTERS.STRING_STREAM(2); –– user defined PARAMETERIZED : BOOLEAN;

–– Example: non–parameterized pathnames: –– X : pathname; –– X : pathname (ANALOG_MEASUREMENT, DISCRETE_MEASUREMENT);

–– Example: parameterized pathnames: –– X : pathname (); –– X : pathname (ANALOG_MEASUREMENT, DISCRETE_MEASUREMENT) ();

when SUBITEM_PATHNAME_TYPE => SUBITEM_TYPES : T_SUBITEM_TYPE_SET;

–– Example: X : pathname.*; –– X : pathname.* (FB_IO_INPUT);

when TIME_TYPE => TIME_RANGE : T_TIME_RANGE;

–– Example: X : TIME; –– X : TIME (00:00:00 .. 12:00:00);

when COMPLETION_CODE_TYPE => COMPLETION_CODE_RANGE : T_COMPLETION_CODE_RANGE;

–– Example: X : COMPLETION_CODE (SUCCESS .. SUCCESS);

when PULSE_TYPE => null;

–– Example: X : PULSE;

when BURST_PULSE_TYPE => null;

–– Example: X : BURST_PULSE;

when UNSIGNED_INTEGER_TYPE =>

Page 55: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

46

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

UNSIGNED_INTEGER_RANGE : T_UNSIGNED_INTEGER_RANGE;

–– Example: X : UNSIGNED_INTEGER; –– X : UNSIGNED_INTEGER (0 .. 255);

when LONG_REAL_TYPE => LONG_REAL_UNIT : T_ENGINEERING_UNIT; LONG_REAL_RANGE : T_LONG_REAL_RANGE;

–– Example: non–unitized long reals: –– X : LONG_REAL; –– X : LONG_REAL (0.0 .. 1.0);

–– Example: unitized long reals: –– X : LONG_REAL [m/s]; –– X : LONG_REAL (0.0 .. 1.0) [m/s];

end case; end record;

type SW_TYPE_INFO is access T_SW_TYPE_DESCRIPTOR;

procedure DEALLOCATE(GARBAGE : in out T_SW_TYPE_DESCRIPTOR) ;

procedure DEALLOCATE(GARBAGE : in out SW_TYPE_INFO) ;

procedure ASSIGN(TARGET : in out SW_TYPE_INFO; SOURCE : in SW_TYPE_INFO) ;

procedure ASSIGN(TARGET : in out T_SW_TYPE_DESCRIPTOR; SOURCE : in T_SW_TYPE_DESCRIPTOR) ;

function ”=” (LEFT, RIGHT : in T_SW_TYPE_DESCRIPTOR) return BOOLEAN ;

function EQUAL (LEFT, RIGHT : in SW_TYPE_INFO) return BOOLEAN ;

–––––––––––––––––– –– Software Values ––––––––––––––––––

–– The following descriptors describe scalar or structured values. –– Value descriptors are used to express the value of a database item –– or the default value of a formal parameter.

–– 1. Scalar value ––––––––––––––––––

–– A scalar value is represented by its type class (T_SW_TYPE) and a –– value of the respective type.

type T_SW_SCALAR_VALUE (SW_TYPE: T_SW_TYPE := NONE) is record case SW_TYPE is when NONE => null;

when STRING_TYPE => STRING_VALUE : STATIC_STRING256; when BYTE_STRING_TYPE => BYTE_STRING_VALUE : STATIC_STRING256; when STATE_CODE_TYPE => STATE_CODE_VALUE : STATE_CODE; when INTEGER_TYPE => INTEGER_VALUE : INTEGER32; when REAL_TYPE => REAL_VALUE : SINGLE_FLOAT; when BOOLEAN_TYPE => BOOLEAN_VALUE : BOOLEAN; when BITSET_TYPE => BITSET_VALUE : BITSET; when CHARACTER_TYPE => CHARACTER_VALUE : CHARACTER; when BYTE_TYPE => BYTE_VALUE : BYTE; when WORD_TYPE => WORD_VALUE : WORD; when LONG_WORD_TYPE => LONG_WORD_VALUE : LONG_WORD;

when PATHNAME_TYPE => PATHNAME_VALUE : SID; when TIME_TYPE => TIME_VALUE : UCL_TIME;

Page 56: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

47

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

when DURATION_TYPE => DURATION_VALUE : DOUBLE_FLOAT; when COMPLETION_CODE_TYPE => COMPLETION_CODE_VALUE : COMPLETION_CODE; when SUBITEM_PATHNAME_TYPE => ITEM_VALUE : SID; SUBITEM_VALUE : SUBITEM_ID; when PULSE_TYPE => PULSE_VALUE :BOOLEAN; when BURST_PULSE_TYPE => BURST_PULSE_VALUE : UNSIGNED_INTEGER32;

when UNSIGNED_INTEGER_TYPE => UNSIGNED_INTEGER_VALUE : UNSIGNED_INTEGER32;

when LONG_REAL_TYPE => LONG_REAL_VALUE : DOUBLE_FLOAT; end case; end record;

–– Provide T_SW_SCALAR_VALUE’s own packing procedures to support the –– ADT_PACKING mechanism. –– They are needed to pach T_SW_VALUE below.

function SIZE_NEEDED (VALUE : T_SW_SCALAR_VALUE) return ADT_PACKING.T_PACK_INDEX;

procedure PACK (VALUE : in T_SW_SCALAR_VALUE; BLOCK : in out ADT_PACKING.T_BLOCK);

procedure UNPACK (BLOCK : in out ADT_PACKING.T_BLOCK; VALUE : in out T_SW_SCALAR_VALUE);

–– 2. General value –––––––––––––––––––

–– The descriptor T_SW_VALUE describes a value of any of the types –– comprised by the type descriptor T_SW_TYPE_DESCRIPTOR. It covers –– scalar values and arrays of these values up to 3 dimensions.

type T_SW_VALUE (SW_TYPE : T_SW_TYPE := NONE; DIMENSION : T_SW_DIMENSIONS := 0) is limited private;

–– The following operations create and destroy values and access the –– scalar components of a (possibly structured) type.

procedure CREATE (OBJECT : in out T_SW_VALUE; SW_TYPE : in T_SW_TYPE);

procedure CREATE (OBJECT : in out T_SW_VALUE; SW_TYPE : in T_SW_TYPE; BOUNDS : in T_SW_INDEX_LIST);

procedure DESTROY (OBJECT : in out T_SW_VALUE);

procedure SET_VALUE (OBJECT : in out T_SW_VALUE; VALUE : in T_SW_SCALAR_VALUE);

procedure SET_VALUE (OBJECT : in out T_SW_VALUE; INDEX : in T_SW_INDEX_LIST; VALUE : in T_SW_SCALAR_VALUE);

procedure GET_VALUE (OBJECT : in T_SW_VALUE; VALUE : in out T_SW_SCALAR_VALUE);

procedure GET_VALUE (OBJECT : in T_SW_VALUE; INDEX : in T_SW_INDEX_LIST; VALUE : in out T_SW_SCALAR_VALUE);

function BOUNDS_OF (OBJECT : in T_SW_VALUE) return T_SW_INDEX_LIST;

procedure ASSIGN (TARGET: in out T_SW_VALUE; SOURCE: in T_SW_VALUE);

–– As T_SW_VALUE is private and internally uses access types, it is neces– –– sary to provide its own packing procedures to support the ADT_PACKING –– mechanism.

function SIZE_NEEDED (VALUE : T_SW_VALUE) return ADT_PACKING.T_PACK_INDEX;

Page 57: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

48

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

procedure PACK (SW_VALUE : in T_SW_VALUE; BLOCK : in out ADT_PACKING.T_BLOCK);

procedure UNPACK (BLOCK : in out ADT_PACKING.T_BLOCK; SW_VALUE : in out T_SW_VALUE);

type T_ACCESS_SW_VALUE is access T_SW_VALUE;

procedure DEALLOCATE (GARBAGE : in out T_ACCESS_SW_VALUE);

type T_SW_VALUE_ARRAY is array (POSITIVE range <>) of T_ACCESS_SW_VALUE;

package SW_VALUE_STREAMS is new STREAMS (T_ACCESS_SW_VALUE, T_SW_VALUE_ARRAY); type T_SW_VALUE_STREAM is new SW_VALUE_STREAMS.STREAM;

type T_SW_SCALAR_VALUE_ARRAY is array (POSITIVE range <>) of T_SW_SCALAR_VALUE;

procedure ASSIGN (TARGET: in out T_SW_SCALAR_VALUE; SOURCE: in T_SW_SCALAR_VALUE);

package SW_SCALAR_VALUE_STREAMS is new LIMITED_STREAMS (T_SW_SCALAR_VALUE, T_SW_SCALAR_VALUE_ARRAY, ASSIGN);

type T_SW_SCALAR_VALUE_STREAM is new SW_SCALAR_VALUE_STREAMS.STREAM;

––––––––––––––––––––––––––––––––––––––––– –– Formal Parameter List –––––––––––––––––––––––––––––––––––––––––

–– The following descriptors describe formal parameter lists of –– database items. For the formal parameter list concept refer to –– the UCL Reference Manual and the HLCL Reference Manual.

–– 1. Parameter mode ––––––––––––––––––––

type T_FORMAL_PARAMETER_MODE is (NONE, IN_MODE, OUT_MODE, IN_OUT_MODE);

–– 2. Single parameter ––––––––––––––––––––––

–– This describes a single parameter with its name, its mode, its type –– and its default value, if optional. –– –– A parameter has a name by which it can be identified in UCL/HLCL. –– Parameter names are identifiers as defined in UCL. –– –– A parameter may require a single value (LIST = FALSE) or an open –– list of values (LIST = TRUE). A list of values corresponds to an –– open array: –– X : array of <type> –– –– Parameters may be mandatory (OPTIONAL = FALSE) or optional –– (OPTIONAL = TRUE). Optional parameters require a default value –– described with a T_SW_VALUE descriptor. –– A single value (LIST = FALSE) is represented with a single value –– descriptor, a list of values (LIST = TRUE) is represented with –– a stream of single value descriptors.

type T_FORMAL_PARAMETER (SW_TYPE : T_SW_TYPE := NONE; DIMENSION : T_SW_DIMENSIONS := 0; OPTIONAL : BOOLEAN := FALSE; LIST : BOOLEAN := FALSE) is

Page 58: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

49

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

record TYPE_INFO : SW_TYPE_INFO (SW_TYPE, DIMENSION); MODE : T_FORMAL_PARAMETER_MODE; NAME : STATIC_STRING80; case OPTIONAL is when FALSE => null; when TRUE => case LIST is when FALSE => SW_VALUE : T_SW_VALUE (SW_TYPE, DIMENSION); when TRUE => SW_VALUE_LIST : T_SW_VALUE_STREAM(2); end case; end case; end record;

type T_ACCESS_FORMAL_PARAMETER is access T_FORMAL_PARAMETER;

–– This operation deallocates memory of T_ACCESS_FORMAL_PARAMETER –– variable and all included structures. procedure DEALLOCATE(GARBAGE : in out T_ACCESS_FORMAL_PARAMETER);

–– 3. Parameter list ––––––––––––––––––––

–– A parameter list is represented as a stream of single parameter –– descriptors.

type T_FORMAL_PARAMETER_ARRAY is array (POSITIVE range <>) of T_ACCESS_FORMAL_PARAMETER;

procedure ASSIGN (TARGET: in out T_ACCESS_FORMAL_PARAMETER; SOURCE: in T_ACCESS_FORMAL_PARAMETER);

package FORMAL_PARAMETER_STREAMS is new LIMITED_STREAMS (T_ACCESS_FORMAL_PARAMETER, T_FORMAL_PARAMETER_ARRAY, ASSIGN);

type T_FORMAL_PARAMETER_LIST is new FORMAL_PARAMETER_STREAMS.STREAM;

–– This operation deallocates a stream of type T_FORMAL_PARAMETER_LIST –– and all included structures. procedure CLEAR (STREAM : in out T_FORMAL_PARAMETER_LIST);

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– PRIVATE PART––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

private

type T_VALUE_ARRAY is array (POSITIVE range <>) of T_SW_SCALAR_VALUE;

type T_ACCESS_VALUE_ARRAY is access T_VALUE_ARRAY;

type T_SW_VALUE (SW_TYPE: T_SW_TYPE := NONE; DIMENSION: T_SW_DIMENSIONS := 0) is record BOUNDS: T_SW_INDEX_LIST (1 .. DIMENSION); VALUE: T_ACCESS_VALUE_ARRAY; end record;

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

end MPS_DEFINITIONS;

Page 59: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

50

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

5.2 MDB Standard Entities and Application Programmer Interface

The interface definition is specified in applicable document ”MDB Standard Entities and Application Pro-grammer Interface”, ref. 2.1.6.1.

Page 60: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

51

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

5.3 CLS Global

The CLS Global section comprises Ada packages that contain global CLS definitions. They form the basis ofother CLS packages:

5.3.1 General CLS Definitions

The package CLS contains global declarations referenced by all CLS components, e.g. special controlcharacters, options, all exceptions raised by any of the CLS components.

Page 61: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

52

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Formal Interface Description

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– CLS–––– Global CLS declarations:–– Special control characters.–– Options for all CLS components.–– All exceptions raised by any of the CLS components.–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– Unit: Package specification–––– Author: Franz Kruse, ERNO–––– Document: ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– Version Date Author SPR Change description–– ––––––– –––––––– –––––––––– –––– ––––––––––––––––––––––––––––––––––––––––––– 3.0.0 11.01.94 F. Kruse First issue for V3––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

package CLS is

–– Source formatting characters–––––––––––––––––––––––––––––––

TAB_CHAR: constant CHARACTER := ASCII.HT; –– Tabulator SPACE_CHAR: constant CHARACTER := ASCII.US; –– Hard space SYNC_CHAR: constant CHARACTER := ASCII.SYN; –– Synchronization point LINE_CHAR: constant CHARACTER := ASCII.LF; –– End of line character PAGE_CHAR: constant CHARACTER := ASCII.FF; –– End of page character END_CHAR: constant CHARACTER := ASCII.NUL; –– End of text character

–– Compiler options–––––––––––––––––––

type OPTIONS is (LIST_COMPILATION_DATE, LIST_OWNER_NAME, LIST_SIZE_INFORMATION, LIST_DATABASE_ITEMS, LIST_SIDS, LIST_CROSS_REFERENCE, LIST_UNCALLED_PROCEDURES, LIST_UNUSED_VARIABLES, OPTIMIZE);

type OPTION_LIST is array (OPTIONS) of BOOLEAN;

DEFAULT_OPTIONS: constant OPTION_LIST := (others => FALSE);

–– CLS Exceptions–––––––––––––––––

USE_ERROR: exception; –– invalid sequence of calls

PARAMETER_ERROR: exception; –– invalid parameter constellation

DEFINITION_ERROR: exception; –– invalid definition (of commands etc.)

TYPE_ERROR: exception; –– invalid type indication

RANGE_ERROR: exception; –– range violation

FATAL_ERROR: exception; –– fatal internal error, abort

end CLS;

Page 62: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

53

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

5.3.2 Runtime Representation of UCL Types

The Ada package CLS_TYPES defines the runtime representation of all UCL type classes, together with theUCL operations on them, and conversion functions between UCL and standard Ada types where necessary orappropriate. This representation is used in the Virtual Stack Machine (see NO TAG) and the HLCL Interpreter(see NO TAG).

All scalar types are represented as one or two 4–byte data words, resp., independently of the range of valuescovered by the type. Structured types are represented by a sequence of as many data words as needed to coverthe complete structure. Any UCL object is allocated as a multiple of full data words, even if it occupies onlypart of the last data word.

Here is a description of the type classes in detail:

INTEGER

1–word scalar type. Values are represented as signed numbers in 2’s complement.

UNSIGNED_INTEGER

1–word scalar type. Values are represented as unsigned integers. Due to implementation restrictions, only bits0 .. 30 are used to represent a value, bit 31 is always 0.

enumeration types

1–word scalar type. Values are represented as contiguous unsigned integers in the order of their declaration, thefirst enumeration value starting at 0.

B OOLEAN

1–word scalar type, represented as an enumeration type with two values: FALSE = 0, TRUE = 1.

COMPLETION_CODE

1–word scalar type, represented as an enumeration type with two values: SUCCESS = 0, FAILURE = 1.

CHARACTER

1–word scalar type. Values are represented by unsigned integers in the range 0 .. 255, where the subrange 0 ..127 is the ASCII character set.

REAL

1–word scalar type. Values are represented in IEEE single floating point format.

L ONG_REAL

2–word sclar type. Values are represented in IEEE double floating point format.

DURA TION

1–word scalar type, represented like REAL. The range is restricted to one day (–86400.0 .. 86400.0).

Page 63: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

54

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

TIME

2–word scalar type. Values are stored in a packed record. The first word stores the date, the second word storesthe seconds since midnight in DURATION format. The date is stored in the following format: the first byte isthe day in the range 1 .. 31, the second byte is the month in the range 1 .. 12, the remaining two bytes hold theyear in the range 1901 .. 2099.

Times without a date (i.e. the date is to be ignored in time operations) are represented with the complete dateword = 0.

The constant ~:~ (no time) is represented with a date word of the form: day = 0, month = 0, year = 1.

pathname types

Pathname types fall in two classes:

• Non–parameterized pathnames are 1–word scalar values represented by the SID of the correspondingdatabase item. It is represented in UNSIGNED_INTEGER format. The constant \\ (no pathname) isrepresented by SID 0.

• Parameterized pathnames are structured values. Their representation is defined by the internalencoding scheme described in chapter 4.9.3.2.

statecode types

2–word scalar types. A statecode value is represented as 8 characters packed in two words, the first bytescontaining the name of the statecode literal, and the unused bytes filled with spaces.

set types

Structured types. A set is represented by a number of bits packed in one or more words, one bit for each possiblemember of the set. A member is present in the set, if its bit is set, it is absent otherwise.

BITSET

1–word scalar type. BITSET is a special set with members 0 .. 31, each bit of the word representing one of themembers.

string types

Structured types. A string is represented as one word holding the actual length of the string as an unsignedinteger, followed by zero or more words holding a byte array with 4 bytes (i.e. characters) packed in one word.The number of bytes covers the maximum length of the string, filled up to a multiple of four.

array types

Structured types. An array is represented as a sequence of its elements in their respective representation. Arrayswith more than one dimension store their elements in an order that for all index positions i and i+1 indices onposition i+1 vary faster than on position i.

record types

Structured types. A record is represented as a sequence of its fields in their respective representation.

WORD

Scalar type. Values of type WORD simply occupy a word of 32 bits, without any interpretation of the bitsthemselves.

Page 64: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

55

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Formal Interface Description

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– CLS_TYPES–––– Basic UCL datatypes in UCL representation–––– This package defines the runtime representation of all UCL/HLCL datatypes–– with their operations.–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– Date Author Change description–– –––––––– –––––––––––– ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 01.02.95 N. Fritsch #CGS: V2.2–– 15.02.95 Franz Kruse #IRN: COL–RIBRE–IRN–CGS–3002a–– 27.06.95 I. Semrau #IRN: COL–RIBRE–IRN–CGS–3076–– use NUMERIC_TYPES;–– 29.09.95 Franz Kruse #IRN: COL–RIBRE–IRN–CGS–3077–– UCL_UNSIGNED_INTEGER constrained to 0 .. 2**31–1.–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– Date Author Change description–– –––––––– –––––––––––– ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 08.01.97 Franz Kruse #CGS: V3.2–– CHARACTER range: 0 .. 255 –> 0 .. 127.–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– Date Author Change description–– –––––––– –––––––––––– ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 28.02.00 Ulf Schmidt #CGS: V4.3–– #SPR: COL–RIBRE–CGS–SPR–7731–– CHARACTER range: 0 .. 127 –> 0 .. 255.–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– Date Author Change description–– –––––––– –––––––––––– ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 08.03.01 Franz Kruse #CGS: V4.5–– Adapted to new NUMERIC_TYPES/P_MDB interface:–– new types: BYTE, LONG_WORD, string of BYTE.–– 13.08.01 Franz Kruse #SPR: COL–RIBRE–SPR–9024–– New constant NO_STATECODE = $$.–– 20.08.01 Franz Kruse #SPR: COL–RIBRE–SPR–8927–– New types BYTE, LONG_WORD, ’string of BYTE’.–– 08.11.01 Franz Kruse #SPR: COL–RIBRE–SPR–5422–– Low–level conv.: UNTYPED: leave UCL_UNS._INT. unconstr.––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

with CALENDAR;with NUMERIC_TYPES; use NUMERIC_TYPES;with MPS_DEFINITIONS;

package CLS_TYPES is

SCCS_ID_SPEC: constant STRING := ””;

–– UCL types sizes––––––––––––––––––

WORD_SIZE : constant := 32; –– bits per UCL storage unit

–– UCL types––––––––––––

type UCL_BOOLEAN is new NUMERIC_TYPES.INTEGER32 range 0 .. 1;

type UCL_CHARACTER is new NUMERIC_TYPES.INTEGER32 range 0 .. 255;

subtype UCL_INTEGER is NUMERIC_TYPES.INTEGER32;

subtype UCL_UNSIGNED_INTEGER is NUMERIC_TYPES.UNSIGNED_INTEGER32;

Page 65: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

56

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

subtype UCL_ENUMERATION is UCL_UNSIGNED_INTEGER;

subtype UCL_REAL is NUMERIC_TYPES.SINGLE_FLOAT;

subtype UCL_LONG_REAL is NUMERIC_TYPES.DOUBLE_FLOAT;

type UCL_DURATION is new UCL_REAL range –86_400.0 .. 86_400.0;

subtype UCL_TIME is MPS_DEFINITIONS.UCL_TIME;

type UCL_BYTE is new NUMERIC_TYPES.INTEGER32 range 0 .. 255;

type UCL_WORD is new NUMERIC_TYPES.WORD;

type UCL_LONG_WORD is new NUMERIC_TYPES.LONG_WORD;

subtype UCL_PATHNAME is MPS_DEFINITIONS.SID;

type UCL_SUBITEM_PATHNAME is record ITEM: MPS_DEFINITIONS.SID; SUBITEM: MPS_DEFINITIONS.SUBITEM_ID; end record;

subtype UCL_STATECODE is MPS_DEFINITIONS.STATE_CODE;

type PACKED_BOOLEAN is new BOOLEAN; for PACKED_BOOLEAN’SIZE use 1;

type UCL_SET is array (UCL_INTEGER range <>) of PACKED_BOOLEAN; pragma PACK (UCL_SET);

subtype UCL_BITSET is UCL_SET (0..31);

–– string:

type BYTE_STRING is array (UCL_INTEGER range <>) of BYTE; pragma PACK (BYTE_STRING);

type UCL_STRING (MAX_LENGTH: UCL_INTEGER) is record BINARY: BOOLEAN := FALSE; LENGTH: UCL_INTEGER := 0; TEXT: BYTE_STRING (1 .. MAX_LENGTH); end record;

–– Constants–––––––––––––––––––––––

UCL_TRUE : constant UCL_BOOLEAN := UCL_BOOLEAN (BOOLEAN’POS (TRUE)); UCL_FALSE : constant UCL_BOOLEAN := UCL_BOOLEAN (BOOLEAN’POS (FALSE));

NO_STATECODE : constant UCL_STATECODE := (others => ’ ’);

NO_TIME : constant UCL_TIME := (DAY => 0, MONTH => 0, YEAR => 1, SECONDS => 0.0);

–– Conversion functions–––––––––––––––––––––––

function IMAGE (ITEM: UCL_BOOLEAN) return STRING; function IMAGE (ITEM: UCL_CHARACTER) return STRING; function IMAGE (ITEM: UCL_INTEGER) return STRING; function IMAGE (ITEM: UCL_UNSIGNED_INTEGER) return STRING; function IMAGE (ITEM: UCL_REAL) return STRING; function IMAGE (ITEM: UCL_LONG_REAL) return STRING; function IMAGE (ITEM: UCL_DURATION) return STRING; function IMAGE (ITEM: UCL_BYTE) return STRING; function IMAGE (ITEM: UCL_WORD) return STRING; function IMAGE (ITEM: UCL_LONG_WORD) return STRING;

Page 66: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

57

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

function IMAGE (ITEM: UCL_TIME) return STRING; function IMAGE (ITEM: UCL_STATECODE) return STRING; function IMAGE (ITEM: UCL_PATHNAME) return STRING; function IMAGE (ITEM: UCL_SUBITEM_PATHNAME) return STRING; function IMAGE (ITEM: UCL_BITSET) return STRING; function IMAGE (ITEM: UCL_STRING) return STRING;

–– Return the image of the given value

function VALUE (ITEM: STRING) return UCL_BOOLEAN; function VALUE (ITEM: STRING) return UCL_CHARACTER; function VALUE (ITEM: STRING) return UCL_INTEGER; function VALUE (ITEM: STRING) return UCL_UNSIGNED_INTEGER; function VALUE (ITEM: STRING) return UCL_REAL; function VALUE (ITEM: STRING) return UCL_LONG_REAL; function VALUE (ITEM: STRING) return UCL_DURATION; function VALUE (ITEM: STRING) return UCL_BYTE; function VALUE (ITEM: STRING) return UCL_WORD; function VALUE (ITEM: STRING) return UCL_LONG_WORD; function VALUE (ITEM: STRING) return UCL_TIME; function VALUE (ITEM: STRING) return UCL_STATECODE; function VALUE (ITEM: STRING) return UCL_PATHNAME; function VALUE (ITEM: STRING) return UCL_SUBITEM_PATHNAME; function VALUE (ITEM: STRING) return UCL_BITSET; function VALUE (ITEM: STRING) return UCL_STRING; function VALUE (ITEM: STRING; BINARY: BOOLEAN) return UCL_STRING;

–– Return the UCL value of the given string. –– Raise CLS.PARAMETER_ERROR if the given string is invalid. –– For UCL_STRING two functions are provided: one that will –– accept both binary and character strings, and one that –– accepts a specific class of strings only.

function UCL_STRING_VALUE (ITEM: CHARACTER) return UCL_STRING; function UCL_STRING_VALUE (ITEM: UCL_CHARACTER) return UCL_STRING;

–– Return the UCL string of the given character.

function UCL_STRING_VALUE (ITEM: BYTE) return UCL_STRING; function UCL_STRING_VALUE (ITEM: UCL_BYTE) return UCL_STRING;

–– Return the UCL string of the given byte.

function UCL_BOOLEAN_VALUE (ITEM: BOOLEAN) return UCL_BOOLEAN; function UCL_BYTE_VALUE (ITEM: BYTE) return UCL_BYTE; function UCL_CHARACTER_VALUE (ITEM: CHARACTER) return UCL_CHARACTER; function UCL_STRING_VALUE (ITEM: STRING) return UCL_STRING; function UCL_STRING_VALUE (ITEM: BYTE_ARRAY) return UCL_STRING;

–– Return the UCL value of the given ADA value.

function BOOLEAN_VALUE (ITEM: UCL_BOOLEAN) return BOOLEAN; function BYTE_VALUE (ITEM: UCL_BYTE) return BYTE; function CHARACTER_VALUE (ITEM: UCL_CHARACTER) return CHARACTER; function STRING_VALUE (ITEM: UCL_STRING) return STRING; function STRING_VALUE (ITEM: UCL_STRING) return BYTE_ARRAY;

–– Return the ADA value of the given UCL value. –– Raise CLS.RANGE_ERROR if a UCL character or byte value is out range.

function UCL_TIME_VALUE (ITEM: CALENDAR.TIME) return UCL_TIME; function TIME_VALUE (ITEM: UCL_TIME) return CALENDAR.TIME;

–– Convert UCL_TIME to TIME and vice versa.

function UCL_BITSET_VALUE (ITEM: NUMERIC_TYPES.BITSET) return UCL_BITSET; function BITSET_VALUE (ITEM: UCL_BITSET) return NUMERIC_TYPES. BITSET; –– Convert UCL_BITSET to BITSET and vice versa.

–– UCL arithmetic functions on the UCL types––––––––––––––––––––––––––––––––––––––––––––

Page 67: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

58

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

function ”not” (ITEM: UCL_BOOLEAN) return UCL_BOOLEAN; function ”and” (LEFT: UCL_BOOLEAN; RIGHT: UCL_BOOLEAN) return UCL_BOOLEAN; function ”or” (LEFT: UCL_BOOLEAN; RIGHT: UCL_BOOLEAN) return UCL_BOOLEAN;

–– Operations on UCL boolean.

function POWER (LEFT: UCL_INTEGER; RIGHT: UCL_INTEGER) return UCL_INTEGER; function POWER (LEFT: UCL_UNSIGNED_INTEGER; RIGHT: UCL_INTEGER) return UCL_UNSIGNED_INTEGER; function POWER (LEFT: UCL_REAL; RIGHT: UCL_INTEGER) return UCL_REAL; function POWER (LEFT: UCL_LONG_REAL; RIGHT: UCL_INTEGER) return UCL_LONG_REAL; function POWER (LEFT: UCL_INTEGER; RIGHT: UCL_UNSIGNED_INTEGER) return UCL_INTEGER; function POWER (LEFT: UCL_UNSIGNED_INTEGER; RIGHT: UCL_UNSIGNED_INTEGER) return UCL_UNSIGNED_INTEGER; function POWER (LEFT: UCL_REAL; RIGHT: UCL_UNSIGNED_INTEGER) return UCL_REAL; function POWER (LEFT: UCL_LONG_REAL; RIGHT: UCL_UNSIGNED_INTEGER) return UCL_LONG_REAL;

–– Exponentiation operations. –– Raise CLS.PARAMETER_ERROR if RIGHT is less than 0. –– Raise CLS.RANGE_ERROR if the required operation –– yields an invalid result.

function ”+” (LEFT: UCL_DURATION; RIGHT: UCL_TIME) return UCL_TIME; function ”+” (LEFT: UCL_TIME; RIGHT: UCL_DURATION) return UCL_TIME; function ”–” (LEFT: UCL_TIME; RIGHT: UCL_DURATION) return UCL_TIME; function ”–” (LEFT: UCL_TIME; RIGHT: UCL_TIME) return UCL_DURATION; function ”<” (LEFT: UCL_TIME; RIGHT: UCL_TIME) return BOOLEAN; function ”<=” (LEFT: UCL_TIME; RIGHT: UCL_TIME) return BOOLEAN; function ”>” (LEFT: UCL_TIME; RIGHT: UCL_TIME) return BOOLEAN; function ”>=” (LEFT: UCL_TIME; RIGHT: UCL_TIME) return BOOLEAN;

–– Operations on time and duration. –– Raise CLS.RANGE_ERROR if the required operation –– yields an invalid result. –– Raise CLS.PARAMETER_ERROR if a parameter has the value NO_TIME (~:~)

function ”+” (LEFT, RIGHT: UCL_SET) return UCL_SET; function ”–” (LEFT, RIGHT: UCL_SET) return UCL_SET; function ”*” (LEFT, RIGHT: UCL_SET) return UCL_SET; function ”/” (LEFT, RIGHT: UCL_SET) return UCL_SET; function ”<=” (LEFT, RIGHT: UCL_SET) return BOOLEAN; function ”<=” (LEFT: UCL_INTEGER; RIGHT: UCL_SET) return BOOLEAN;

–– Operations on sets: union, difference, intersection, –– symmetric difference, subset relations, and element membership. –– Raise CLS.PARAMETER_ERROR if the set base types are different.

function ”&” (LEFT: UCL_STRING; RIGHT: UCL_STRING) return UCL_STRING; function ”&” (LEFT: UCL_CHARACTER; RIGHT: UCL_STRING) return UCL_STRING; function ”&” (LEFT: UCL_STRING; RIGHT: UCL_CHARACTER) return UCL_STRING; function ”&” (LEFT: UCL_CHARACTER; RIGHT: UCL_CHARACTER) return UCL_STRING; function ”&” (LEFT: UCL_BYTE; RIGHT: UCL_STRING) return UCL_STRING; function ”&” (LEFT: UCL_STRING; RIGHT: UCL_BYTE) return UCL_STRING; function ”&” (LEFT: UCL_BYTE; RIGHT: UCL_BYTE) return UCL_STRING; function ”<” (LEFT: UCL_STRING; RIGHT: UCL_STRING) return BOOLEAN; function ”<=” (LEFT: UCL_STRING; RIGHT: UCL_STRING) return BOOLEAN; function ”>” (LEFT: UCL_STRING; RIGHT: UCL_STRING) return BOOLEAN; function ”>=” (LEFT: UCL_STRING; RIGHT: UCL_STRING) return BOOLEAN; function EQUAL (LEFT: UCL_STRING; RIGHT: UCL_STRING) return BOOLEAN;

–– Operations on string.

function ELEMENT (S: UCL_STRING; INDEX: UCL_INTEGER) return CHARACTER; function ELEMENT (S: UCL_STRING; INDEX: UCL_INTEGER) return UCL_CHARACTER;

Page 68: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

59

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– Read string components. –– Raise CLS.RANGE_ERROR if the given index is out of bounds.

function ELEMENT (S: UCL_STRING; INDEX: UCL_INTEGER) return BYTE; function ELEMENT (S: UCL_STRING; INDEX: UCL_INTEGER) return UCL_BYTE;

–– Read byte string components. –– Raise CLS.RANGE_ERROR if the given index is out of bounds.

procedure ASSIGN (TARGET: in out UCL_STRING; SOURCE: UCL_STRING);

–– Assign a UCL String. –– Raise CLS.RANGE_ERROR if the actual length of SOURCE is greater –– than the max. length of TARGET.

procedure ASSIGN (TARGET: in out UCL_STRING; SOURCE: CHARACTER; INDEX: UCL_INTEGER);

procedure ASSIGN (TARGET: in out UCL_STRING; SOURCE: UCL_CHARACTER; INDEX: UCL_INTEGER);

–– Assign a string component. –– Raise CLS.RANGE_ERROR if the given index is out of bounds.

procedure ASSIGN (TARGET: in out UCL_STRING; SOURCE: BYTE; INDEX: UCL_INTEGER);

procedure ASSIGN (TARGET: in out UCL_STRING; SOURCE: UCL_BYTE; INDEX: UCL_INTEGER);

–– Assign a string component. –– Raise CLS.RANGE_ERROR if the given index is out of bounds.

end CLS_TYPES;

Page 69: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

60

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

5.4 Flexible Tool Invocation Interface

Informal Interface Description

This service is provided to start external tools from I_MDB.

Formal Interface Description

The detailed description of this interface is defined in the MDA Users Reference Manual, applicable document2.1.5.1, section 4.6.

5.5 Foreign Key Support / PUI Support

The detailed description of this interface is defined in the MDA Users Reference Manual, applicable document2.1.5.1, section 4.5.

Page 70: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

61

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

5.6 MDB Batch Data Entry Format

The detailed description of this interface is defined in the MDA Users Reference Manual, applicable document2.1.5.1, section 13.

Page 71: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

62

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

CHAPTER 6 :CHECKOUT AND

SIMULATION INTERFACES

Page 72: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

63

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.1 Test Setup Invocation Interface

For the integration of TSCV into CGS, TSCV provides interface functions for the invocation of the product.

Two operating modes are provided by TSCV, the interactive mode and the batch mode. In interactive mode,the test system is controlled by the user providing a graphical user interface. Whereas in batch mode, thegraphical user interface will be suppressed, and the test system is set-up and controlled automatically asspecified by the command line parameters. Depending on the parameter profile, TSCV is invoked in eithermode.

Note only one TSCV instance can be active at any time, regardless of its operating mode.

To run TSCV in interactive mode:

$TSCV_HOME/bin/common/start_tscv

[–Ws < x> < y>] Initial main window size in pixels

[–Wp < x> < y>] Initial main window placement in pixels

[–WG [< width >x<height >][+< x>+<y>]][–geometry [< width >x<height >][+< x>+<y>]]

Initial main window size and placement in pixels

[–WP <x> <y>] Initial icon placement in pixels

[–Wi] or [+Wi] TSCV to come up closed or open (default)

To run TSCV in batch mode:

$TSCV_HOME/bin/common/start_tscv

–mn <mission_name>

–ec <element_configuration>

–sv <system_tree_version>

–sn <system_tree_node_name>

–cn <CCU_name>

–cv <CCU_version>

–tc <test_configuration>

[–ts <test_session_name> [–fa ] ]Enable final archiving of test data; disabled bydefault

–q quit after starting master AP to provide for laterinteractive control

The batch mode command line parameters have the following meaning:

mission_name name of the missionExample: FLIGHT4711

element_configuration name of the element configurationExample: APM

system_tree_version identification of the version of the system name tree to be used for the given mission and element configurationExample: 5

system_tree_node_name virtual node in the system (name) tree for the selected mission,element configuration and version of the name tree where the given

Page 73: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

64

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

CCU is looked upExample: ’\APM\EGSE’

CCU_name name of the CCU in MDBExample: IF_TEST

CCU_version version identification of the given CCU. Note that a full version identification comprises the version, issue and revision number Example: 1.1.0

test_configuration pathname of the database enditem of type EGSE_TEST_CONFIGURATION. This enditem describes how the setup of the test equipment shall be doneExample: ’\APM\EGSE\SYSTEM\IF_TEST\SETUP_3’

test_session_name name of the test session to be created in TRDB for the given testIf the test session name argument ts is omitted, test data will be stored with-in TRDB’s default test session. The test session name can consist of capitalletters, digits and underscores only, but starting with a capital letter. Itslength is limited to 20 characters maximum.Example: IF_TEST_3

The final archive argument fa, i.e. store test data on final archive media, hasonly meaning if a test session name argument is provided. By default, finalarchiving is disabled.

Note because of backslashes, path names of MDA on the UNIX command line are to be enclosed by singlequotes.

The command will return on command line parameter errors, after starting the designated master AP wheninvoked with q option, or after the test is finished, which may take up hours or even days. The final status isindicated by following return codes:

99 success100 invalid CCU selection101 invalid mission name102 invalid element configuration103 invalid system tree version104 invalid CCU name105 invalid CCU version106 invalid system tree node name107 failed to connect to other CGS product108 invalid test configuration109 failed to set–up test configuration110 failed to start test execution111 failed to create test session112 test configuration already active113 a node already participates in another active test configuration114 test session name already in use115 no final archive device available116 failed to start master AP117 another TSCV instance already executing118 invalid user profile119 invalid command line parameter profile120 default test session already in use121 TSCV internal error122 Maximum number of test configurations exceeded123 no replay mode allowed

Page 74: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

65

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.2 VICOS Types Definition

Informal Interface Description

A same set of data types are used in the various procedural interfaces provided by VICOS products. In orderto ensure the consistency of their definition and usage through all the interfaces, they are grouped and definedonce, in the current section.

They are ”basic” data types and constants (like numbers, strings, enumerations...) which are accessible directly.They constitute a type pool and are grouped into a set of Ada packages, according to their nature.

The usage of the basic data types is simple. The desired variable has to be declared with the desired type in thepiece of software which will use it. The access to the content of the variable is done directly, by knowledge ofits Ada structure.

The VICOS_DEFINITIONS package contains type and constant definitions that are :

– specific of VICOS products, i.e. not used by several products of other CGS assemblies,

– common in VICOS products, i.e. used or shared by several VICOS provided services,

– of general nature, i.e. not specific to any of these services.

Page 75: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

66

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Formal Interface Description

––––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––IDENTIFICATION–––– PROJECT NAME : CGS–– PRODUCT NAME : HCI–– CI–NUMBER : 1216 878–– OBJECT NAME : VICOS_DEFINITIONS––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––CONTENTS–––– COMPILER : SunAda 1.1 / Alsys Ada 5.5.1–– LANGUAGE : Ada–– SPECIAL CONTENTS: ––– CHANGE HISTORY–– #IRN 8212 ISSUE 1A: –– Add PUS_PACKET for T_ADU_ALTERNATIVES and T_GDU_ALTERNATIVES–– Author: N. Soelter–– Date: 22.5.2001–– #IRN 8212: –– Add DOUBLE_FLOAT_EGSE for T_RAW_VALUE_ALTERNATIVES–– Author: N. Soelter–– Date: 9.3.2001–– #IRN 6008: –– Add GDU Alternative BINARY_PACKET–– Author: P.Athmann–– Date: 14.2.97–– V3.0 at ERNO ; CGS engineering–– creator: gehrke (on host mps2s–1)–– creation date: 15.05.95 15:00:00–– CGS V2 Build 2 baseline, PIRN 3023/E–– V2.8 at ERNO ; VICOS development–– creator: athmann (on host vicos_s)–– creation date: 26.11.92 16:43:44–– update representation clause for T_ERROR_MESSAGE –– V2.7 at ERNO ; VICOS development–– creator: athmann (on host vicos_s)–– creation date: 26.11.92 10:27:57–– correct representation clauses for T_NAME_STRING–– V2.6 at ERNO ; VICOS development–– creator: vicos (on host vicos_s)–– creation date: 17.11.92 11:37:09–– adts version 2.0.1: update acc. to PIRN VICOS–2020 –– V2.5 at ERNO ; VICOS development–– creator: vicos (on host prime_1)–– creation date: 18.09.92 12:15:22–– modifications according to FINAL ICD REVIEW DNs (see list)–– V2.4 at ERNO ; VICOS development–– creator: vicos (on host vicos_8)–– creation date: 21.07.92 12:15:05–– Added T_FILE_NAME and NULL_FILE_NAME for several abstract data types.–– V2.3 at ERNO ; VICOS development–– creator: vicos (on host vicos_8)–– creation date: 21.07.92 07:31:57–– Naming of CGS_CALENDAR changed to VICOS_CALENDAR–– V2.2 at ERNO ; VICOS development–– creator: athmann (on host vicos_5)–– creation date: 10.07.92 15:35:52–– Update according to VCS SPADM–– V2.1 at ERNO ; VICOS development

Page 76: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

67

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– creator: vicos (on host vicos_s)–– creation date: 30.06.92 17:38:05–– added Standard Header by command create_file

––****************************************************************************––

with CGS_CALENDAR; –– type CGS_DATE_AND_TIME

package VICOS_DEFINITIONS is

SCCSID_ADS : constant STRING := ”@(#) vicos_definitions.ads /main/cgs_4.0/cgs_4.3/cgs_5.0/405/23/01 10:46:02@(#)”;

–––––––––––––––––––– –– Global Constants ––––––––––––––––––––

MAX_FRAME_LENGTH : constant := 2048;

MAX_LENGTH_OF_FILE_NAME: constant := 256; –– sets limit for filenames to be –– stored in VICOS data structures

MAX_LENGTH_OF_DIRECTORY_NAME: constant := 256; –– sets limit for directory names to be –– stored in VICOS data structures

MAX_LENGTH_OF_DB_PATHNAME: constant := 256; –– sets limit for MDB pathnames to be –– stored in VICOS data structures

––––––––––––––––––– –– Types for filenames –––––––––––––––––––

type T_FILE_NAME is record THE_STRING : string (1..MAX_LENGTH_OF_FILE_NAME); LENGTH : integer range 0..MAX_LENGTH_OF_FILE_NAME; end record;

for T_FILE_NAME use record LENGTH at 0 range 0..31; THE_STRING at 0 range 32..32+((MAX_LENGTH_OF_FILE_NAME*8)–1); end record; for T_FILE_NAME’size use MAX_LENGTH_OF_FILE_NAME*8+32;

NULL_FILE_NAME : constant T_FILE_NAME := ((others => ’ ’), 0);

––––––––––––––––––– –– Types for Names –––––––––––––––––––

MAX_NAME_LENGTH : constant := 20;

type T_NAME_STRING is record THE_STRING : string (1..MAX_NAME_LENGTH); LENGTH : integer range 0..MAX_NAME_LENGTH; end record;

Page 77: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

68

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

for T_NAME_STRING use record LENGTH at 0 range 0..31; THE_STRING at 0 range 32..32+((MAX_NAME_LENGTH*8)–1); end record; for T_NAME_STRING’size use 32+ MAX_NAME_LENGTH*8;

type T_APPLICATION_TYPE is ( HCI, TES, DBS, TEV, TSCV, SAS, CSS); –– types of VICOS application processes

subtype T_APPLICATION_NAME is T_NAME_STRING;

subtype T_TEST_SITE is T_NAME_STRING;

MAX_PROC_UNIT_NAME_LEN : constant := MAX_NAME_LENGTH; –– The max. process unit name

subtype T_PROC_UNIT_NAME is T_NAME_STRING; –– name of a unit inside a process

EMPTY_NAME_STRING : constant T_NAME_STRING := (THE_STRING => (others => ’ ’), LENGTH => 0);

subtype T_SAS_NAME is T_NAME_STRING; –– SAS short name used in ADU and GDU descriptions

–––––––––––––– –– Identifier ––––––––––––––

type T_HK_ID is new INTEGER; for T_HK_ID’size use 32; –– identifier for TES housekeeping variables

subtype T_PRIVATE_ID is string(1..10); –– ADU and GDU private identifier used by SAS’s.

NULL_PRIVATE_ID : constant T_PRIVATE_ID := (others => ’ ’);

––––––––––––––––––––– EGSE nodes and SW types–––––––––––––––––––

type T_EGSE_NODE_TYPES is (WORKSTATION, TEST_NODE, SIMULATOR, DATABASE_SERVER, FRONT_END_EQUIPMENT, UNIT_UNDER_TEST);

type T_EGSE_NODE is record The_Type : T_EGSE_NODE_TYPES; The_Name : T_NAME_STRING := EMPTY_NAME_STRING;

Page 78: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

69

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

end record; type T_EGSE_SW_TYPES is (SAS, EXECUTABLE, DATA_FILE);

type T_EGSE_SW is record The_Type : T_EGSE_SW_TYPES; The_Full_Name : T_FILE_NAME; The_Short_Name: T_NAME_STRING := EMPTY_NAME_STRING;end record; –––––––––––––––––––––––––––––––––––––––––––––––– –– VICOS Error Messages and Logging Definitions ––––––––––––––––––––––––––––––––––––––––––––––––

MAX_SHORT_TEXT_LENGTH : constant := 40; MAX_LONG_TEXT_LENGTH : constant := 255;

subtype T_LOG_TEXT_SHORT is string(1.. MAX_SHORT_TEXT_LENGTH); NULL_LOG_TEXT_SHORT : constant T_LOG_TEXT_SHORT:= (others => ’ ’);

subtype T_LOG_TEXT_LONG is string(1.. MAX_LONG_TEXT_LENGTH); NULL_LOG_TEXT_LONG : constant T_LOG_TEXT_LONG:= (others => ’ ’);

subtype T_LOG_GROUP is STRING(1..4); NULL_LOG_GROUP : constant T_LOG_GROUP := (others => ’ ’);

subtype T_LOG_TYPE is STRING(1..4); NULL_LOG_TYPE : constant T_LOG_TYPE := (others => ’ ’);

type T_ERROR_MESSAGE is record TIME_TAG_LT : CGS_CALENDAR.CGS_DATE_AND_TIME; TIME_TAG_SMT : CGS_CALENDAR.CGS_DATE_AND_TIME; NODE : T_APPLICATION_NAME; GROUP : T_LOG_GROUP; ERROR_TYPE : T_LOG_TYPE; MSG_NUMBER : INTEGER; –– message number SHORT_TEXT : T_LOG_TEXT_SHORT; LONG_TEXT : T_LOG_TEXT_LONG; end record;

for T_ERROR_MESSAGE use record TIME_TAG_LT at 0 range 0..127; TIME_TAG_SMT at 0 range 128..255; NODE at 0 range 256..256+(MAX_NAME_LENGTH*8)+31; GROUP at 0 range 256+MAX_NAME_LENGTH*8+32.. 256+MAX_NAME_LENGTH*8+63; ERROR_TYPE at 0 range 256+MAX_NAME_LENGTH*8+64.. 256+MAX_NAME_LENGTH*8+95; MSG_NUMBER at 0 range 256+MAX_NAME_LENGTH*8+96.. 256+MAX_NAME_LENGTH*8+127; SHORT_TEXT at 0 range 256+MAX_NAME_LENGTH*8+128.. 256+MAX_NAME_LENGTH*8+128+MAX_SHORT_TEXT_LENGTH*8–1; LONG_TEXT at 0 range 256+MAX_NAME_LENGTH*8+MAX_SHORT_TEXT_LENGTH*8+128.. 256+MAX_NAME_LENGTH*8+128+MAX_SHORT_TEXT_LENGTH*8+ MAX_LONG_TEXT_LENGTH*8–1; end record; for T_ERROR_MESSAGE’size use 256+128+MAX_NAME_LENGTH*8+ MAX_SHORT_TEXT_LENGTH*8+

Page 79: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

70

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

MAX_LONG_TEXT_LENGTH*8 ;

USER_EVENT_LOG_GROUP : constant T_LOG_GROUP := ”UEVT”; SYSTEM_LOG_GROUP : constant string := ”SYST”; TSCV_LOG_GROUP : constant string := ”TSCV”; HCI_LOG_GROUP : constant string := ”HCI ”; HLCL_LOG_GROUP : constant string := ”HLCL”; TES_LOG_GROUP : constant string := ”TES ”; MONITORING_LOG_GROUP : constant string := ”MON ”; ACQUISITION_LOG_GROUP : constant string := ”DACQ”; GENERATION_LOG_GROUP : constant string := ”DGEN”; ARCHIVING_LOG_GROUP : constant string := ”ARCH”; COMMAND_LOG_GROUP : constant string := ”CMD ”; DATA_DISPATCH_LOG_GROUP : constant string := ”DDS ”; UCL_INTERPRETER_LOG_GROUP : constant string := ”UCLI”; UCL_CLASS1_LOG_GROUP : constant string := ”UCL1”; –– Stmnts exc the following UCL_CLASS2_LOG_GROUP : constant string := ”UCL2”; –– Monitoring Statements UCL_CLASS3_LOG_GROUP : constant string := ”UCL3”; –– Enditem Statements UCL_CLASS4_LOG_GROUP : constant string := ”UCL4”; –– SAS & UCL Ctrl Statements UCL_LOG_STMT_LOG_GROUP : constant string := ”LOG ”; REPLAY_LOG_GROUP : constant string := ”REPL”; CONF_DB_LOG_GROUP : constant string := ”CDB ”; –– For access to Conf DB TRDB_LOG_GROUP : constant string := ”TRDB”; –– For access to Result DB TST_LOG_GROUP : constant string := ”TST ”; –– For test/ debugging UUT_LOG_GROUP : constant string := ”UUT ”; –– msg received from UUT SAS_LOG_GROUP : constant string := ”SAS ”; –– msg received from SAS COND_LOG_GROUP : constant string := ”COND”; –– from conditions TC_VERIF_LOG_GROUP : constant string := ”DGVF”; –– from GDU verification

–– Remark: when modifying this log (check out) message type –– section, the operation ERROR_SERVICES.TO_SEVERITY must be updated! INFO_MESSAGE_TYPE : constant string := ”INFO”; GENERAL_MESSAGE_TYPE : constant string := ”MSG ”; ERROR_MESSAGE_TYPE : constant string := ”ERR ”; WARNING_MESSAGE_TYPE : constant string := ”WRN ”; EXCEPTION_MESSAGE_TYPE: constant string := ”EXC ”; ALARM_MESSAGE_TYPE : constant string := ”ALRM”; –––––––––––––––––––––––––– –– VICOS Mode Definitions ––––––––––––––––––––––––––

type T_VICOS_MODE is ( NONE, NORMAL, REPLAY, SIMULATION, ANY_MODE);

for T_VICOS_MODE’size use 16;

type T_VICOS_STATUS is ( IDLE, RUNNING, SUSPENDED, ERROR);

for T_VICOS_STATUS’size use 16;

––––––––––––––––––– –– raw value alternatives –––––––––––––––––––

Page 80: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

71

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

type T_RAW_VALUE_ALTERNATIVES is (UNDEFINED, SINGLE_BIT, INT, U_INT, FLOAT_EGSE, DOUBLE_FLOAT_EGSE, BYTE_STREAM); –– The raw value alternatives indicates if : –– – the raw value is not set–up, so there is a bug, –– – the raw value contains a single bit –– – the raw value contains an integer –– – the raw value contains an unsigned integer –– – the raw value contains a float (32 bit) –– – the raw value contains a float (64 bit) –– – the raw value contains a byte stream

MAX_BYTE_STREAM_LENGTH: constant := 255; –– sets the upper limit of a byte stream value

––––––––––––––––––– –– adu alternatives –––––––––––––––––––

type T_ADU_ALTERNATIVES is ( UNDEFINED, STRUCTURED, UNSTRUCTURED, CCSDS_PACKET, PUS_PACKET); –– The ADU description alternatives indicates if : –– – the ADU description is a structured adu –– (a list of measurements sid), –– – the ADU description is an unstructured adu –– (a byte array), –– – the ADU description contains a ccsds packet. –– – the ADU description contains a pus packet.

––––––––––––––––––– –– gdu alternatives –––––––––––––––––––

type T_GDU_ALTERNATIVES is ( UNDEFINED, ANALOG_STIMULUS, DISCRETE_STIMULUS, BINARY_PACKET, CCSDS_PACKET, PUS_PACKET); –– The GDU description alternatives indicate if : –– – the GDU contains a REAL parameter (ANALOG_STIMULUS) –– – the GDU contains an INTEGER parameter (DISCRETE_STIMULUS) –– – the GDU contains a binary packet (byte array) –– – the GDU contains a CCSDS packet (CCSDS_PACKET) –– – the GDU contains a pus packet

end VICOS_DEFINITIONS;

Page 81: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

72

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.3 HCI Abstract Data Types

6.3.1 General Concepts

A same set of abstract data types related to HCI are used in the VICOS products. In order to ensure the con-sistency of their definition and usage through the softwares, they are grouped and defined once, in the currentsection.

An ADT specification describes a class of data structures not by an implementation, but by the list of servicesavailable on the data structures and the formal properties of these services. Further, an ADT offers a set of ser-vices to the outside world (other Objects, Applications etc), which is only concerned with the services offeredand not how they are implemented.

An ADT is defined by a formal specification, which is comprised of Types and Functions (Syntax part) and Pre-conditions and Axioms (Semantic part).

– The Type part lists the types of the specification (which may be several types or a single type, e.g. a’stack’).

– The Functions part lists the services available on instances of the type.

– The Axioms part describes semantics of the functions on the data to restrict and more precisely definethe specification.

– The Preconditions part provides applicability conditions for partial functions (functions that cannot beapplied to the ADT implementation in all cases (e.g., when a data type is empty, it may not be usefulto access its contents)).

An abstract data type is a type which Ada structure is hidden (private types) because of its complexity, its varyingsize or its implementation dependency on compilers. Their access is possible only through associated operations.This part of the interface allows pieces of software to manipulate data without knowledge of their Ada represen-tation. These types are available in the form of separate Ada packages containing at least an abstract data type,some basic data types related to it and the operations to handle it.

The ADT services provided by HCI contain a number of services applicable to appropriate ADTs. These mayinclude Create services, used to create the ADT structure, Set services, which set up the data within the ADT(e.g. for data originally held in the Mission Database or in UNIX files), Get services, which read the data set–upin the ADT and Delete services which remove the ADT. There are also type specific services which are ADTspecific, these may include services such as Initialise, Copy, Move, Pack and Unpack. The latter Pack and Un-pack, when provided, are particularly important for data transfer to provide a method of packing and unpackingdata into Byte arrays to enable easy data communication.

The usage of the abstract data types is quite sophisticated. The desired variable is declared with the desired typein the piece of software which will use it. The access to the content of the variable is done by using the associatedoperations, because the associated Ada type is not visible. A Create/Construct operation, when provided, is thefirst to be used, to instanciate the content of the variable. The Set_values operations can then be used to writedata into the instanciated variable. The Values_of/Get_values operations allow to read data from the instanciatedand filled–up variable. At last the Delete operation, when provided, will free the space allocated to ADT vari-ables which are not needed any more in the software.

HCI provides a set of ADTs which are used as appropriate by other products, including:

– ADT for packing/unpacking,

– ADT for Physical Address type,

– ADT for CCSDS Packet type,

– ADT for User Profile type,

Page 82: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

73

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

– ADT for User Message type,

– ADT for Version ID Table type,

– ADT for System Topology Table type (host logical names, test site name),

– ADT for SID list type.

HCI provides a method of accessing HCI data structures held in the Mission Database without causing perform-ance problems with continuous database access. A procedure for establishing an ADT based on MDB data isas follows: the MDA appropriate operation will be called to read appropriate Check–out information. HCI willprovide ADT Create services (if any) to create the ADT in memory and ADT Set services will be used to putthe data from the MDB into the ADT data area. (Note, these services used by MDA) The product requiring ADTaccess (maybe another Integration/Qualification product) can then use the HCI provided ADT Get services toaccess the ADT data and functions. On completion of use and when provided, HCI ADT Delete services are usedto remove the ADT.

Note that the use of ADTs within CGS provides a mechanism for Memory Management, which helps to avoidthe problems of ’Garbage Collection’ that occurs with manipulating data structures within an ’Ada’ Run Timesystem. This is particularly useful for tasks performed by Integration/Qualification products which need totransfer data information between programs.

Some basic types are also defined in ADT packages. They are, most of the time, enumeration types bound tothe ADT defined in that package.

For these enumeration types, the following naming convention has been used :

– types suffixed with _TYPE are enumeration types not determining a particular structure of the ADT;it can be considered as a normal attribute of the ADT, e.g. INTERPRETATION_TYPE inADT_MEASUREMENT_DESCRIPTION.

– types suffixed with _ALTERNATIVES are enumeration types which determine the set of other at-tributes the corresponding ADT will contain, e.g. T_ADU_ALTERNATIVES in ADT_ADU_DE-SCRIPTION.

6.3.2 Operations

This section describes the operations which are available on the previous types.

6.3.2.1 SET Operations

The SET operation(s) will assign the values of the attributes of an ADT. At least one SET operation has to beprovided, but in general there will be several SET operations, one for each of the attributes composing the ADT.In case the type of the attribute exactly determines the alternative to be set, SET can be a set of overloaded SETprocedures (all having the same name) and the type of attribute to be set will be determined by the type of thepassed parameter. The type of the attribute may be defined in another package, it may be a basic type or an otherADT. In case several attributes have the same type, different names have to be chosen for the SET operations(e.g. SET_A, SET_B).

6.3.2.2 GET Operations

The complementary of the SET operation(s) is the GET operation(s). It follows the same rules with respect toparameters and naming apply as for the SET operation. Most of the time, a function ATTRIBUTE is preferredto a procedure GET_ATTRIBUTE whenever it is possible, i.e. when no limited private types are returned orwhen single attribute is returned.

6.3.2.3 ALTERNATIVE Function

The function ALTERNATIVE returns the value of the alternative a variable of type T_ADT currently has. AfterCREATE has been called, the default value of a variable of type T_ADT shall be UNDEFINED. It shall be poss-

Page 83: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

74

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

ible to assign values of any attribute of any alternative to the variable then. This shall, however, then change thevalue of the ’discriminent’ to one of the enumeration values in T_ADT_ALTERNATIVES. All attributes be-longing to one alternative of T_ADT_ALTERNATIVES should be assign in one set operation (this is howevernot a must, it is a design goal and has to be decided on a case to case basis).

6.3.2.4 PACK Operation

The pack operation packs the contents of a variable of type T_ADT into a block of type T_BLOCK by usingoperations of an ADT_PACKING

6.3.2.5 UNPACK Operation

Inversely, UNPACK unpacks a T_BLOCK into a variable of type T_ADT which has been created before.

6.3.2.6 PACKED_SIZE Function

Function PACKED_SIZE returns the maximum number of bytes a packed structure of T_ADT may occupy.

6.3.2.7 ADD Operations

Some complex ADTs use other ADTs (e.g. ADT_ADU) or have a non deterministic memory usage, i.e. they’use’ varying amounts of memory for a given alternative.

For these ADTs, there exists the possibility to maintain dynamic ’lists’ of attributes or values inside an ADT.For this purpose, an ADD operation might be provided which then inserts exactly one element to this list.Examples are the raw values in an ADU in the package ADT_ADU.

This procedure belongs to the specific procedures defined in the frame of a complex ADT. They depend on thespecial purpose of the complex ADT and the implementer could add procedures like: get_next_element, read_atetc.

In most of the cases, these ADD operations can be replaced by a set of SET operations, because the size of thelist is known in advance. For a type T_ADT_ITEM_LIST, the operation SET_SIZE will have to be used first,and then the operation SET_ITEM, to fill the list at a specified index. Note that the index shall be uniformlyincremented from 1 to the chosen size, with an increment of 1.

6.3.2.8 Operations on tables

The operations defined on T_TABLE follow exactly the same logic as for the ADT itself.

6.3.2.9 Exceptions

The procedures/functions will raise the following standard exceptions :

– STORAGE_ERROR in case the CREATE operation has not sufficient memory space, independentof the internal implementation

– NOT_CREATED if an operation is called on a variable which has not been created.

– {PARAMETER}_VALUE_ILLEGAL in case the value of the passed parameter is not legal, e.g. aNULL_SID value for an SID parameter.

– INDEX_ERROR if the value of the passed index exceeds the size of the specified variable, e.g. it israised when trying to write/read the 101st element of an ADU which contains only 100 items.

– {ITEM}_NOT_FOUND when the searched item is not found in the specified list.

– {PARAMETER}_TYPE_MISMATCH when the type of the passed parameter and the expected typeof the formal parameter mismatch.

Page 84: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

75

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

On a case by case basis, the operations provided in this interface will also raise specific exceptions which aredocumented in the formal interface.

6.3.2.10 Particular Remarks

6.3.2.10.1 On Synchronisation

Certain ADTs (if not all of them) will have the need of performing certain memory management internally. Forsecurity reasons, a synchronised access to the internal memory has to be achieved, but only for the CREATE,DESTROY, COPY, UNPACK operations since these have impact on memory management.

At present it is not finally decided, whether the ADT internally has to provide synchronisation or whether theuser should ensure synchronised access. However, this shall not have any impact on the Ada specification.

If internal synchronisation shall be provided, the use of Ada tasking and semaphores is not allowed since thisis in conflict with the current HCI design (due to X–windows !!!). Also, for performance reasons, the Ada ’new’and ’unchecked_deallocation’ are not recommended.

6.3.2.10.2 On Packing/Unpacking

At present there exists in-house a definition of an ADT_PACKING which uses rather sophisticated techniquesto provide secure and elegant packing. However, it is also rather complex. There are investigation on a simplerapproach currently which would reduce complexity and data overheads.

When finally delivering the Ada specifications of all ADTs to the implementation teams, a version ofADT_PACKING will be delivered also which shall then be used for implementing the PACK/UNPACK oper-ations of the individual ADTs.

The principals of packing will be that the ADT_ADT.PACK operation is provided with some kind of inputT_BLOCK. The inside the body of the ADT_ADT.PACK routine, other routines of ADT_PACKING shall beused to ’add’ a packed version of T_ADT to the block. Memory management inside T_BLOCK will be accom-plished inside the ADT_PACKING provided routines. T_BLOCK is then finally returned as an out parameterof ADT_ADT.PACK (therefore at least it has to be of mode ’in out’).

Page 85: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

76

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.3.3 ADT Physical Address

Informal Interface Description

A Physical Address is the set of information on device physical address and used protocol for transfer of databetween an SAS and the corresponding front–end equipment or device. Each time a request for data acquisition/generation is addressed, the SAS in charge of this data link has to interpret this information part of an ADU/GDUDescription.

A Physical Address is a composite type containing the following attributes :

– a node address;

– a device type;

– a device address;

– a device subaddress;

– a channel number;

– a function code;

– a protocol identification;

– two commands fields allowing support for addresses coding, which format is different from thestandard provided one.

Page 86: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

77

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Formal Interface Description

–––– ADT_PHYSICAL_ADDRESS specification––––****************************************************************************––ABSTRACT–––––– This package defines and handles types related to physical address––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––IDENTIFICATION–––– PROJECT NAME : CGS–– PRODUCT NAME : HCI–– CI–NUMBER : 1216 878–– OBJECT NAME : ADT_PHYSICAL_ADDRESS––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––CONTENTS–––– COMPILER :–– LANGUAGE :–– SPECIAL CONTENTS:–– CHANGE HISTORY–– V3.0 at ERNO ; CGS_ENGINEERING–– creator: maron (on host vicos2–2)–– creation date: 07.03.95 12:00:0–– Build 2 baseline, PIRN 3050–––– V2.9 at ERNO ; VICOS development–– creator: athmann (on host vicos_s)–– creation date: 19.10.93 18:11:04–– Initialise type T_PHYSICAL_ADDRESS–––– V2.8 at ERNO ; VICOS development–– creator: athmann (on host vicos_5)–– creation date: 03.03.93 19:56:19–– COL–CC–VIC–SPR–009 (representation clauses)–– V2.7 at ERNO ; VICOS development–– creator: athmann (on host vicos_s)–– creation date: 12.01.93 19:47:15–– remove exception: CONSTRAINT_ERROR (not used)–– V2.6 at ERNO ; VICOS development–– creator: vicos (on host vicos_s)–– creation date: 17.11.92 11:30:34–– adts version 2.0.1: update acc. to PIRN VICOS–2022 –– V2.5 at ERNO ; VICOS development–– creator: vicos (on host prime_1)–– creation date: 18.09.92 12:04:12–– modifications according to FINAL ICD REVIEW DNs (see list)–– V2.4 at ERNO ; VICOS development–– creator: vicos (on host vicos_s)–– creation date: 28.07.92 09:33:21–– Changes: editorial, exceptions–– V2.3 at ERNO ; VICOS development–– creator: vicos (on host vicos_8)–– creation date: 20.07.92 08:40:40–– General layout for ADTs acc. to TN COL_MBER_ZU1_TN_0026_92–– V2.2 at ERNO ; VICOS development–– creator: athmann (on host vicos_5)–– creation date: 10.07.92 17:21:43–– Update acc. to VCS SPADM DNs

––****************************************************************************––

with VICOS_DEFINITIONS; with ADT_PACKING;

package ADT_PHYSICAL_ADDRESS is

––––––––––––––– –– public types ––––––––––––––––

Page 87: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

78

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

type T_STRING_80 isrecord THE_STRING: STRING(1..80); LENGTH: INTEGER;end record;

for T_STRING_80 use record THE_STRING at 4 range 0 .. 639; LENGTH at 0 range 0 .. 31; end record;

––––––––––––– –– adt types –––––––––––––

type T_PHYSICAL_ADDRESS is private; –– A physical address is composed of : –– – a node address, –– – a bus number –– – a device type, –– – a device address, –– – a device subaddress, –– – a channel number, –– – a function code, –– – a protocol identification, –– – two commands.

NULL_PHYSICAL_ADDRESS : constant T_PHYSICAL_ADDRESS;

–––––––––––––––––––– –– write operations ––––––––––––––––––––

procedure SET_NODE_ADDRESS ( PHYSICAL_ADDRESS : in out T_PHYSICAL_ADDRESS; WITH_NODE_ADDRESS : in STRING); –– DESCRIPTION –– This procedure sets the current node address value of –– the specified physical address variable. –– Empty: if string with blank characters or length 0 –– EXCEPTIONS –– STRING_LENGTH_ERROR: the string is longer than 20 character

procedure SET_BUS_NUMBER ( PHYSICAL_ADDRESS : in out T_PHYSICAL_ADDRESS; WITH_BUS_NUMBER : in INTEGER); –– DESCRIPTION –– This procedure sets the bus number of –– the specified physical address variable. –– Undefined if –1 –– EXCEPTIONS –– none

procedure SET_DEVICE_TYPE ( PHYSICAL_ADDRESS : in out T_PHYSICAL_ADDRESS; WITH_DEVICE_TYPE : in STRING); –– DESCRIPTION –– This procedure sets the type of the device of –– the specified physical address variable. –– Empty: if string with blank characters or length 0 –– EXCEPTIONS –– STRING_LENGTH_ERROR: the string is longer than 20 character

procedure SET_DEVICE_ADDRESS ( PHYSICAL_ADDRESS : in out T_PHYSICAL_ADDRESS; WITH_DEVICE_ADDRESS : in STRING); –– DESCRIPTION –– This procedure sets the address of the device of –– the specified physical address variable. –– Empty: if string with blank characters or length 0 –– EXCEPTIONS –– STRING_LENGTH_ERROR: the string is longer than 20 character

procedure SET_DEVICE_SUBADDRESS ( PHYSICAL_ADDRESS : in out T_PHYSICAL_ADDRESS; WITH_DEVICE_SUBADDRESS : in STRING);

Page 88: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

79

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– DESCRIPTION –– This procedure sets the subaddress of the device of –– the specified physical address variable. –– Empty: if string with blank characters or length 0 –– EXCEPTIONS –– STRING_LENGTH_ERROR: the string is longer than 20 character

procedure SET_CHANNEL ( PHYSICAL_ADDRESS : in out T_PHYSICAL_ADDRESS; WITH_CHANNEL : in INTEGER); –– DESCRIPTION –– Set the channel number applicable for –– the specified physical address variable. –– Undefined if –1 –– EXCEPTIONS –– NONE

procedure SET_FUNCTION_CODE ( PHYSICAL_ADDRESS : in out T_PHYSICAL_ADDRESS; WITH_FUNCTION_CODE : in INTEGER); –– DESCRIPTION

–– Set the function code applicable for –– the specified physical address variable. –– Undefined if –1 –– EXCEPTIONS –– NONE

procedure SET_PROTOCOL_ID ( PHYSICAL_ADDRESS : in out T_PHYSICAL_ADDRESS; WITH_PROTOCOL_ID : in INTEGER); –– DESCRIPTION

–– Set the protocol id applicable for the enditem –– the specified physical address variable. –– Undefined if –1 –– EXCEPTIONS –– NONE

procedure SET_CMD1 ( PHYSICAL_ADDRESS : in out T_PHYSICAL_ADDRESS; WITH_CMD1 : in STRING); –– DESCRIPTION

–– Set the general command strings applicable for –– the specified physical address variable. –– Undefined if all blank or length 0 –– EXCEPTIONS ––STRING_LENGTH_ERROR: the string is longer than 80 character

procedure SET_CMD2 ( PHYSICAL_ADDRESS : in out T_PHYSICAL_ADDRESS; WITH_CMD2 : in STRING); –– DESCRIPTION

–– Set the general command strings applicable for –– the specified physical address variable. –– Undefined if all blank or length 0 –– EXCEPTIONS –– STRING_LENGTH_ERROR: the string is longer than 80 character

––––––––––––––––––– –– read operations –––––––––––––––––––

function NODE_ADDRESS ( OF_PHYSICAL_ADDRESS : T_PHYSICAL_ADDRESS) return VICOS_DEFINITIONS.T_NAME_STRING; –– DESCRIPTION –– This function returns the current node address value of –– the specified physical address variable. –– EXCEPTIONS –– NONE

function BUS_NUMBER ( OF_PHYSICAL_ADDRESS : T_PHYSICAL_ADDRESS) return INTEGER; –– DESCRIPTION –– This function returns the bus number of –– the specified physical address variable. –– EXCEPTIONS –– none

Page 89: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

80

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

function DEVICE_TYPE ( OF_PHYSICAL_ADDRESS : T_PHYSICAL_ADDRESS) return VICOS_DEFINITIONS.T_NAME_STRING; –– DESCRIPTION –– This function returns the current device type value of –– the specified physical address variable. –– EXCEPTIONS –– NONE

function DEVICE_ADDRESS ( OF_PHYSICAL_ADDRESS : T_PHYSICAL_ADDRESS) return VICOS_DEFINITIONS.T_NAME_STRING; –– DESCRIPTION –– This function returns the current device address value of –– the specified physical address variable. –– EXCEPTIONS –– NONE

function DEVICE_SUBADDRESS ( OF_PHYSICAL_ADDRESS : T_PHYSICAL_ADDRESS) return VICOS_DEFINITIONS.T_NAME_STRING; –– DESCRIPTION –– This function returns the current device subaddress value of –– the specified physical address variable. –– EXCEPTIONS –– NONE

function CHANNEL ( OF_PHYSICAL_ADDRESS : T_PHYSICAL_ADDRESS) return INTEGER; –– DESCRIPTION –– This function returns the current channel value of –– the specified physical address variable. –– EXCEPTIONS –– NONE

function FUNCTION_CODE ( OF_PHYSICAL_ADDRESS : T_PHYSICAL_ADDRESS) return INTEGER; –– DESCRIPTION –– This function returns the current function code value of –– the specified physical address variable. –– EXCEPTIONS –– NONE

function PROTOCOL_ID ( OF_PHYSICAL_ADDRESS : T_PHYSICAL_ADDRESS) return INTEGER; –– DESCRIPTION –– This function returns the current protocol id value of –– the specified physical address variable. –– EXCEPTIONS –– NONE

function CMD1 ( OF_PHYSICAL_ADDRESS : T_PHYSICAL_ADDRESS) return T_STRING_80; –– DESCRIPTION –– This function returns the 1st command string of –– the specified physical address variable. –– EXCEPTIONS –– NONE

function CMD2 ( OF_PHYSICAL_ADDRESS : T_PHYSICAL_ADDRESS) return T_STRING_80; –– DESCRIPTION –– This function returns the 2nd command string of –– the specified physical address variable. –– EXCEPTIONS –– NONE

–––––––––––––––––––––– –– packing operations ––––––––––––––––––––––

procedure PACK ( PHYSICAL_ADDRESS : in T_PHYSICAL_ADDRESS;

Page 90: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

81

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

BLOCK : in out ADT_PACKING.T_BLOCK); –– DESCRIPTION –– This procedure packs the specified physical address variable into –– a contiguous memory block. –– EXCEPTIONS –– NONE

procedure UNPACK ( BLOCK : in out ADT_PACKING.T_BLOCK; PHYSICAL_ADDRESS : out T_PHYSICAL_ADDRESS); –– DESCRIPTION –– This procedure unpacks the specified memory block into –– a physical address variable. –– The variable must have been created before. –– EXCEPTIONS –– NONE

––––––––––––––––––– –– exceptions –––––––––––––––––––

STRING_LENGTH_ERROR : exception;

private

type T_PHYSICAL_ADDRESS isrecordnode_address : VICOS_DEFINITIONS.T_NAME_STRING

:= VICOS_DEFINITIONS.EMPTY_NAME_STRING;bus_number : INTEGER := 0;

–– e.g. address on a bus device_type : VICOS_DEFINITIONS.T_NAME_STRING

:= VICOS_DEFINITIONS.EMPTY_NAME_STRING; device_address : VICOS_DEFINITIONS.T_NAME_STRING

:= VICOS_DEFINITIONS.EMPTY_NAME_STRING; device_subaddress : VICOS_DEFINITIONS.T_NAME_STRING

:= VICOS_DEFINITIONS.EMPTY_NAME_STRING; channel : INTEGER := 0; function_code : INTEGER := 0;protocol_id : INTEGER := 0;command_1 : T_STRING_80

:= ((others => ’ ’),0); –– any string value

command_2 : T_STRING_80 := ((others => ’ ’),0); –– any string value

end record;–– The physical address of a measurement / stimuli / or ADU

for T_PHYSICAL_ADDRESS use record NODE_ADDRESS at 0 range 0 .. 191; BUS_NUMBER at 24 range 0 .. 31; DEVICE_TYPE at 28 range 0 .. 191; DEVICE_ADDRESS at 52 range 0 .. 191; DEVICE_SUBADDRESS at 76 range 0 .. 191; CHANNEL at 100 range 0 .. 31; FUNCTION_CODE at 104 range 0 .. 31; PROTOCOL_ID at 108 range 0 .. 31; COMMAND_1 at 112 range 0 .. 671; COMMAND_2 at 196 range 0 .. 671; end record;

for T_PHYSICAL_ADDRESS’size use 2240;

NULL_PHYSICAL_ADDRESS : constant T_PHYSICAL_ADDRESS := (node_address => VICOS_DEFINITIONS.EMPTY_NAME_STRING,bus_number => 0,device_type => VICOS_DEFINITIONS.EMPTY_NAME_STRING,device_address => VICOS_DEFINITIONS.EMPTY_NAME_STRING,device_subaddress => VICOS_DEFINITIONS.EMPTY_NAME_STRING,channel => 0,function_code => 0, protocol_id => 0,command_1 => ((others => ’ ’),0),command_2 => ((others => ’ ’),0));

Page 91: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

82

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

end ADT_PHYSICAL_ADDRESS;

Page 92: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

83

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.3.4 ADT CCSDS Packet

Informal Interface Description

A CCSDS Packet is the set of information describing the format of the data exchanged between ground and on-board systems via operational links.

A CCSDS packet is a composite type containing the following attributes :

– a primary header containing :– a packet id (= application id),– a packet type,– a version (fix),– a secondary header flag (fix),– a length.–a sequence control field composed of :– a sequence flags indicating segmentation,– a sequence counter.

– a user data area containing :– a secondary header / data field header containing :

– a category/sub_category of packet,– a checksum type,– an acknowledge indication.

– user data :– data may contain checksum or other Packet Error Control (PEC) at the end (refer to utilisation std).

For ISS/COF packets, the checksum field is of 16 bit unsigned integer type. The checksum algorithm is a 16–bitadd without carry sum of the entire packet including primary and secondary headers exclusive of the checksumword itself. For other projects, a CRC algorithm is provided.

The package ADT_CCSDS_PACKET implements the general structure of a CCSDS packet and the COF/ISSsecondary header. Specifc Data Field Headers (based on Packet Utilisation Standard – PUS) are implementedin a child package ADT_CCSDS_PACKET.PUS_SECIFIC

Page 93: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

84

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Formal Interface Description

–– ADT_CCSDS_PACKET––––****************************************************************************––ABSTRACT–––––– Provides definition of CCSDS packets for the path service–– (TM or TC packets).–– Definition is based on:–– CCSDS AOS, Blue Book CCSDS 701.0–B–2–– and:–– SSMB to APM ICD including IRN 41002–ES–0018E–– Remark:–– All common parts for CCSDS_PACKET and PUS_PACKET, which is a special–– kind of CCSDS_PACKET are summarized in this packet. All specifics–– for PUS_PACKET are described in child packet–– ADT_CCSDS_PACKET.PUS_SPECIFIC.––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––IDENTIFICATION–––– PROJECT NAME : CGS–– PRODUCT NAME : HCI–– CI–NUMBER : 1216 878–– OBJECT NAME : ADT_CCSDS_PACKET––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––CONTENTS–––– COMPILER : SunAda 1.1 / Alsys Ada 5.5.1–– LANGUAGE : Ada–– SPECIAL CONTENTS: ––– CHANGE HISTORY–– IRN 8219–– creator: N. Soelter–– creation date: 06.06.2001–– comment: additional parameter Header2_Type to handle–– the secondary headers––––*––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– creator: Juergen Hoyng RIO62–– creation date: 04.05.00–– comment:–– specific SSA Version : added some overloaded operations––––*––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– creator: P.Hartmann–– creation date: 23.06.99–– comment:–– #IRN: COL–RIBRE–IRN–CGS–8064, Issue 1/–:–– Add types and procedures to access header fields as normal–– parameters–– SPR–5864: Describe usage of Length field and checksum operation

––*––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– creator: U. Hohnhorst RIO63–– creation date: 18.06.98–– comment:–– #IRN: COL–RIBRE–IRN–CGS–8014, Issue 1/A:–– 1) comment for checksum calculation (change implementation of–– COMPUTED_CHECKSUM)–– 2) type T_CCSDS_SECONDARY_HEADER spare bit added–– 3) operations SET_SPARE_BIT, GET_SPARE_BIT added–– 4) constants NULL_CCSDS_HEADER, NULL_CCSDS_SECONDARY_HEADER and–– NULL_CCSDS_PACKET added––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– creator: U. Maron RIO63–– creation date: 22.09.97

Page 94: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

85

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– comment:–– #IRN: COL–RIBRE–IRN–CGS–7023C: added support for DOUBLE_FLOAT––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– creator: Th. Kendelbacher RIO62–– creation date: 02.06.97–– comment:–– #IRN: COL–RIBRE–IRN–CGS–7003: added [SECONDARY_]HEADER_FROM_BYTES––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V16.2 at Central Repository at DASA RI–– creator: hartmann (on host aiv_2)–– creation date: 16.12.96 12:13:27–– comment:–– in operation GET_PARAMETER, change PARAMETER from –out– to –in out–––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V16.1 at Central Repository at DASA RI–– creator: tommy (on host aiv_3)–– creation date: 09.12.96 17:08:06–– comment:––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.4 at CC; CGS development–– creator: ahs (on host sde9)–– creation date: 12.02.96 21:57:53–– comment:–– Patch from DASA + pack/unpack added by CC––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.7 at Central Repository at DASA RI (CGS V3 development)–– creator: maron (on host vicos2–2)–– creation date: 24.01.96 10:53:36–– comment:–– COL–RIBRE–IRN–3093: change Ada comments to reflect new checksum–– algorithm and again include changes introduced by COL_RIBRE–SPR–2023––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.6 at Central Repository at DASA RI (CGS V3 development)–– creator: grotheer (on host vicos2–6)–– creation date: 15.01.96 14:41:29–– comment: COL–RIBRE–CGS–SPR–2023, AT_OFFSET: NATURAL–>POSITIVE––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V3.2 at ERNO ; CGS engineering–– creator: fritsch (on host ada_s)–– creation date: 20.06.95 12:00:00–– new constant CCSDS_SECONDARY_HEADER_SIZE–– new functions (SECONDARY_)HEADER_BYTES, USER_DATA_LENGTH–– Size clause in private declaration part added–– Build 2 baseline PIRN 3046d–– V3.1 at ERNO ; CGS engineering–– creator: fritsch (on host ada_s)–– creation date: 15.06.95 12:00:00–– Build 2 baseline PIRN 3046c–– V3.0 at ERNO ; CGS engineering–– creator: maron (on host vicos2–2)–– creation date: 17.05.95 16:00:00–– Build 2 baseline PIRN 3046–– V2.4 at ERNO ; VICOS development–– creator: athmann (on host vicos_5)–– creation date: 08.12.92 20:18:14–– update comments / description–– V2.3 at ERNO ; VICOS development–– creator: vicos (on host vicos_s)–– creation date: 17.11.92 11:27:50–– adts version 2.0.1: update acc. to PIRN VICOS–2023–– V2.2 at ERNO ; VICOS development–– creator: vicos (on host prime_1)–– creation date: 18.09.92 11:58:12–– modifications according to FINAL ICD REVIEW DNs (see list)–– END HISTORY––****************************************************************************

Page 95: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

86

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

with NUMERIC_TYPES;with ADT_PACKING;

package ADT_CCSDS_PACKET is

SCCSID_ADS : constant STRING := ”@(#) adt_ccsds_packet.ads /main/solaris–port/cgs_4.1/cgs_4.1.1/cgs_4.1.1patches/cgs_4.3/cgs_5.0/8 12/03/0116:44:25@(#)”;

––––––––––––––––––––––––––––– ADT types and constants–––––––––––––––––––––––––––

type T_CCSDS_HEADER is private; type T_CCSDS_SECONDARY_HEADER is private;

type T_CCSDS_PACKET is private;

NULL_CCSDS_HEADER : constant T_CCSDS_HEADER; NULL_CCSDS_SECONDARY_HEADER : constant T_CCSDS_SECONDARY_HEADER; NULL_CCSDS_PACKET : constant T_CCSDS_PACKET;

type T_A_CCSDS_PACKET is access T_CCSDS_PACKET;

––––––––––––––––––––––––––––––– public types and constants–––––––––––––––––––––––––––––

–– SPEC_VERSION : constant STRING := ”@(#) ADT_CCSDS_PACKET 4.1.1p.1 spec”;

CCSDS_HEADER_SIZE : constant INTEGER := 6;

Sequence_Count_First_Offset_In_Bits: constant Integer := 18; Sequence_Count_Last_Offset_In_Bits : constant Integer := Sequence_Count_First_Offset_In_Bits + 14 – 1;

CCSDS_SECONDARY_HEADER_SIZE : constant INTEGER := 10; Pus_TM_Secondary_Header_Size : constant INTEGER := 10; Pus_TC_Secondary_Header_Size : constant INTEGER := 4;

MAX_PACKET_SIZE : constant INTEGER := 4095; –– maximum packet size excluding –– the six header octets –– (i.e. maximum value of the LENGTH item –– in the primary header) –– MUST BE AN ODD NUMBER –– Note: The entire number of ccsds packet –– octets is CCSDS_HEADER_SIZE –– + MAX_PACKET_SIZE –– + 1

MAX_PARAMETER_STRING : constant integer := 255;

subtype T_PARAMETER_STRING is STRING(1..MAX_PARAMETER_STRING);

type T_PACKET_PART is (DATA, PRIMARY_HEADER, SECONDARY_HEADER, CHECKSUM);

type T_Secondary_Header is (Standard_Cof, Pus_TM, Pus_TC); type T_Checksum is (None, Standard_Cof, CRC16);

–––––––––––––––––––––––––––––––––––––– Primary header items––––––––––––––––––––––––––––––––––––

subtype T_CCSDS_VERSION is INTEGER range 0..7; –– A three bit field –– However, for COLUMBUS purposes only ”0” is allowed, –– indication CCSDS version 1 packets

Page 96: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

87

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

CCSDS_VERSION_1_PACKET : constant T_CCSDS_VERSION := 0;

subtype T_CCSDS_TYPE is INTEGER range 0..1; –– A one bit field –– For COLUMBUS purposes this shall be used for routing purposes, –– however the field is not finally defined.

subtype T_CCSDS_SECONDARY_HEADER_FLAG is INTEGER range 0..1; –– A one bit field

CCSDS_PACKET_HAS_SECONDARY_HEADER_FLAG : constant T_CCSDS_SECONDARY_HEADER_FLAG := 1; CCSDS_PACKET_HAS_NO_SECONDARY_HEADER_FLAG : constant T_CCSDS_SECONDARY_HEADER_FLAG := 0;

subtype T_CCSDS_APPLICATION_ID is INTEGER range 0..2**11–1; –– An 11 bit field

subtype T_CCSDS_SEQUENCE_FLAGS is INTEGER range 0..3; –– A two bit field –– For COLUMBUS purposes only ”3” will be allowed, –– indicating an UNSEGMENTED packet

CCSDS_UNSEGMENTED_PACKET : constant T_CCSDS_SEQUENCE_FLAGS := 3;

subtype T_CCSDS_SEQUENCE_COUNT is INTEGER range 0..2**14–1; –– A 14–bit field

subtype T_CCSDS_LENGTH is INTEGER range 0..MAX_PACKET_SIZE; –– Originally a 16–bit field but restricted to the maximum length –– allowed by the implementation of this package

HEADER_FIRST: constant INTEGER := 1; HEADER_LAST: constant INTEGER := HEADER_FIRST + CCSDS_HEADER_SIZE – 1;

subtype T_HEADER_ARRAY is NUMERIC_TYPES.BYTE_ARRAY (HEADER_FIRST .. HEADER_LAST);

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– Secondary header items–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

subtype T_CCSDS_CHECKSUM_INDICATOR is INTEGER range 0..1; –– A one bit field

CCSDS_PACKET_HAS_CHECKSUM : constant T_CCSDS_CHECKSUM_INDICATOR := 1; CCSDS_PACKET_HAS_NO_CHECKSUM : constant T_CCSDS_CHECKSUM_INDICATOR := 0;

subtype T_CCSDS_TIME_ID is INTEGER range 0..3; –– A two bit field

CCSDS_NO_TIME_FIELD : constant T_CCSDS_TIME_ID := 0; CCSDS_REAL_TIME_COMMAND : constant T_CCSDS_TIME_ID := 1; CCSDS_TIME_TAG : constant T_CCSDS_TIME_ID := 2; CCSDS_TIME_NOT_USED : constant T_CCSDS_TIME_ID := 3;

subtype T_CCSDS_PACKET_TYPE is INTEGER range 0..15; –– A four bit field

CCSDS_DEFAULT_PACKET : constant T_CCSDS_PACKET_TYPE := 0; CCSDS_MEMORY_DUMP_PACKET : constant T_CCSDS_PACKET_TYPE := 1; CCSDS_DATA_SEGMENT_PACKET : constant T_CCSDS_PACKET_TYPE := 2; CCSDS_ESSENTIAL_HK_PACKET : constant T_CCSDS_PACKET_TYPE := 3; CCSDS_SYSTEM_HK_PACKET : constant T_CCSDS_PACKET_TYPE := 4; CCSDS_PAYLOAD_HK_PACKET : constant T_CCSDS_PACKET_TYPE := 5; CCSDS_SCIENCE_PACKET : constant T_CCSDS_PACKET_TYPE := 6; CCSDS_SSMB_ANCILLIARY_PACKET : constant T_CCSDS_PACKET_TYPE := 7; CCSDS_ESSENTIAL_COMMAND_PACKET : constant T_CCSDS_PACKET_TYPE := 8; CCSDS_SYSTEM_COMMAND_PACKET : constant T_CCSDS_PACKET_TYPE := 9; CCSDS_PAYLOAD_COMMAND_PACKET : constant T_CCSDS_PACKET_TYPE := 10;

Page 97: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

88

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

CCSDS_MEMORY_LOAD_PACKET : constant T_CCSDS_PACKET_TYPE := 11; CCSDS_RESPONSE_PACKET : constant T_CCSDS_PACKET_TYPE := 12; CCSDS_REPORT_PACKET : constant T_CCSDS_PACKET_TYPE := 13; CCSDS_EXCEPTION_PACKET : constant T_CCSDS_PACKET_TYPE := 14; CCSDS_ACKNOWLEDGE_PACKET : constant T_CCSDS_PACKET_TYPE := 15;

subtype T_CCSDS_PACKET_ID is NUMERIC_TYPES.UNSIGNED_INTEGER32;

subtype T_CCSDS_COARSE_TIME is NUMERIC_TYPES.UNSIGNED_INTEGER32; subtype T_CCSDS_FINE_TIME is INTEGER range 0..2**8–1;

type T_CCSDS_UNSEGMENTED_TIME is record COARSE_TIME : T_CCSDS_COARSE_TIME; FINE_TIME : T_CCSDS_FINE_TIME; end record;

subtype T_CCSDS_CHECKSUM is INTEGER range 0..2**16–1; –– A 16 bit field –– There are different checksums possible: –– o CRC16 polynomial: x**16 + x**15 + x**2 + 1 (CRC16) –– or –– o 16 bit add without carry (Standard_Cof)

Checksum_Length_In_Bytes : constant := 2;

SECOND_HEADER_FIRST: constant INTEGER := HEADER_LAST + 1; SECOND_HEADER_LAST: constant INTEGER := SECOND_HEADER_FIRST + CCSDS_SECONDARY_HEADER_SIZE – 1; subtype T_SECONDARY_HEADER_ARRAY is NUMERIC_TYPES.BYTE_ARRAY (SECOND_HEADER_FIRST .. SECOND_HEADER_LAST);

––––––––––––––––––––––––––––– Clear operations–––––––––––––––––––––––––––

procedure CLEAR (PACKET: in out T_CCSDS_PACKET); procedure CLEAR (PACKET: in out NUMERIC_TYPES.BYTE_ARRAY);

–– DESCRIPTION –– Clears a packet, all octets are set to zero –– Note that this does not result in a valid packet!! –– EXCEPTIONS –– none

–––––––––––––––––––––––––––––––––––––––––––– Write Operations for the primary header––––––––––––––––––––––––––––––––––––––––––

procedure SET_VERSION (PACKET : in out T_CCSDS_HEADER; TO : in T_CCSDS_VERSION := CCSDS_VERSION_1_PACKET); –– DESCRIPTION –– sets the packet version –– EXCEPTIONS –– none

procedure SET_TYPE (PACKET : in out T_CCSDS_HEADER; TO : in T_CCSDS_TYPE); –– DESCRIPTION –– sets the packet type –– EXCEPTIONS –– none

procedure SET_SECONDARY_HEADER_FLAG (PACKET : in out T_CCSDS_HEADER; TO : in T_CCSDS_SECONDARY_HEADER_FLAG := CCSDS_PACKET_HAS_SECONDARY_HEADER_FLAG); –– DESCRIPTION –– sets the secondary header flag –– EXCEPTIONS –– none

Page 98: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

89

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

procedure SET_APPLICATION_ID (PACKET : in out T_CCSDS_HEADER; TO : in T_CCSDS_APPLICATION_ID); –– DESCRIPTION –– sets the application id in the primary header –– EXCEPTIONS –– none

procedure SET_SEQUENCE_FLAGS (PACKET : in out T_CCSDS_HEADER; TO : in T_CCSDS_SEQUENCE_FLAGS := CCSDS_UNSEGMENTED_PACKET); –– DESCRIPTION –– sets the packet sequence flags in the primary header –– EXCEPTIONS –– none

procedure SET_SEQUENCE_COUNT (PACKET : in out T_CCSDS_HEADER; TO : in T_CCSDS_SEQUENCE_COUNT); –– DESCRIPTION –– sets the packet sequence count in the primary header –– EXCEPTIONS –– none

procedure SET_LENGTH (PACKET : in out T_CCSDS_HEADER; TO : in T_CCSDS_LENGTH); –– DESCRIPTION –– Sets the length field in the primary header of the packet. –– The length field is really a byte count for the –– user data field, starting with 0 (i.e. the number of bytes minus one). –– Note: The user data field includes the secondary header (if present), –– the user data and the checksum (if present). –– EXCEPTIONS –– none

procedure HEADER_FROM_BYTES (BYTES : in NUMERIC_TYPES.BYTE_ARRAY; PACKET : out T_CCSDS_HEADER); –– DESCRIPTION –– converts the representation bytes into a primary header –– EXCEPTIONS –– CONSTRAINT_ERROR if BYTES is smaller than the primary header length

––––––––––––––––––––––––––––––––––––––––––– read operations primary header–––––––––––––––––––––––––––––––––––––––––

function VERSION (PACKET: T_CCSDS_HEADER) return T_CCSDS_VERSION; –– DESCRIPTION –– returns the CCSDS version of the packet –– EXCEPTIONS –– none

function CCSDS_TYPE ( PACKET: T_CCSDS_HEADER) return T_CCSDS_TYPE; –– DESCRIPTION –– returns the type of the packet as defined in the primary header –– EXCEPTIONS –– none

function CCSDS_SECONDARY_HEADER_FLAG (PACKET: T_CCSDS_HEADER) return T_CCSDS_SECONDARY_HEADER_FLAG; –– DESCRIPTION –– returns the secondary header flag of the packet –– as defined in the primary header –– EXCEPTIONS –– none

function APPLICATION_ID (PACKET: T_CCSDS_HEADER) return T_CCSDS_APPLICATION_ID; –– DESCRIPTION –– returns the application id of the packet as defined in the primary header –– EXCEPTIONS –– none

function SEQUENCE_FLAGS (PACKET: T_CCSDS_HEADER)

Page 99: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

90

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

return T_CCSDS_SEQUENCE_FLAGS; –– DESCRIPTION –– returns the packet sequence count of the packet –– as defined in the primary header –– EXCEPTIONS –– none

function SEQUENCE_COUNT (PACKET: T_CCSDS_HEADER) return T_CCSDS_SEQUENCE_COUNT; –– DESCRIPTION –– returns the packet sequence count of the packet –– as defined in the primary header –– EXCEPTIONS –– none

function LENGTH (PACKET: T_CCSDS_HEADER) return T_CCSDS_LENGTH; –– DESCRIPTION –– returns the length field of the packet as defined in the primary header –– EXCEPTIONS –– none

function HEADER_BYTES (PACKET: T_CCSDS_HEADER) return NUMERIC_TYPES.BYTE_ARRAY; –– DESCRIPTION –– returns the representation of the primary header –– EXCEPTIONS –– CONSTRAINT_ERROR if

––––––––––––––––––––––––––––––––––––––––––– write operations secondary header–––––––––––––––––––––––––––––––––––––––––

procedure SET_CHECKSUM_INDICATOR (PACKET : in out T_CCSDS_SECONDARY_HEADER; TO : in T_CCSDS_CHECKSUM_INDICATOR := CCSDS_PACKET_HAS_NO_CHECKSUM); –– DESCRIPTION –– sets the checksum_type in the secondary header –– EXCEPTIONS –– none

procedure SET_TIME_ID (PACKET : in out T_CCSDS_SECONDARY_HEADER; TO : in T_CCSDS_TIME_ID := CCSDS_NO_TIME_FIELD); –– DESCRIPTION –– sets the time_id in the secondary header –– EXCEPTIONS –– none

procedure SET_PACKET_TYPE (PACKET : in out T_CCSDS_SECONDARY_HEADER; TO : in T_CCSDS_PACKET_TYPE := CCSDS_DEFAULT_PACKET); –– DESCRIPTION –– sets the packet type in the secondary header –– EXCEPTIONS –– none

procedure SET_PACKET_ID (PACKET : in out T_CCSDS_SECONDARY_HEADER; TO : in T_CCSDS_PACKET_ID); –– DESCRIPTION –– sets the packet id in the secondary header –– EXCEPTIONS –– none

procedure SET_SPARE_BIT (PACKET : in out T_CCSDS_SECONDARY_HEADER; TO : in NUMERIC_TYPES.BIT := 0); –– DESCRIPTION –– sets the spare bit in the secondary header –– EXCEPTIONS –– none

procedure SET_TIME (PACKET : in out T_CCSDS_SECONDARY_HEADER; TO : in T_CCSDS_UNSEGMENTED_TIME); –– DESCRIPTION

Page 100: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

91

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– sets the packet id in the secondary header –– EXCEPTIONS –– INVALID_TIME_ID –– the secondary header time id is wrong

procedure SECONDARY_HEADER_FROM_BYTES (BYTES : in NUMERIC_TYPES.BYTE_ARRAY; PACKET : out T_CCSDS_SECONDARY_HEADER); –– DESCRIPTION –– converts the representation bytes into a secondary header –– EXCEPTIONS –– CONSTRAINT_ERROR if BYTES is smaller than the secondary header length

––––––––––––––––––––––––––––––––––––––––––– read operations secondary header–––––––––––––––––––––––––––––––––––––––––

function CHECKSUM_INDICATOR (PACKET: T_CCSDS_SECONDARY_HEADER) return T_CCSDS_CHECKSUM_INDICATOR; –– DESCRIPTION –– returns the checksum indicator from the secondary header –– EXCEPTIONS –– none

function TIME_ID (PACKET: T_CCSDS_SECONDARY_HEADER) return T_CCSDS_TIME_ID; –– DESCRIPTION –– returns the time id from the secondary header –– EXCEPTIONS –– none

function PACKET_TYPE (PACKET: T_CCSDS_SECONDARY_HEADER) return T_CCSDS_PACKET_TYPE; –– DESCRIPTION –– returns the packet type from the secondary header –– EXCEPTIONS –– none

function PACKET_ID (PACKET: T_CCSDS_SECONDARY_HEADER) return T_CCSDS_PACKET_ID; –– DESCRIPTION –– returns the packet ID from the secondary header –– EXCEPTIONS –– none

function SPARE_BIT (PACKET: T_CCSDS_SECONDARY_HEADER) return NUMERIC_TYPES.BIT; –– DESCRIPTION –– returns the spare bit from the secondary header –– EXCEPTIONS –– none

function PACKET_TIME (PACKET: T_CCSDS_SECONDARY_HEADER) return T_CCSDS_UNSEGMENTED_TIME; –– DESCRIPTION –– returns the time field from the secondary header –– EXCEPTIONS –– INVALID_TIME_ID –– the secondary header time id is wrong

function SECONDARY_HEADER_BYTES (PACKET: T_CCSDS_SECONDARY_HEADER) return NUMERIC_TYPES.BYTE_ARRAY; –– DESCRIPTION –– returns the representation of the secondary header –– EXCEPTIONS –– none

––––––––––––––––––––––––––––––––––––––––––––––––––––––––– write operations to assemble a packet–– Note : Packets must be assembled in the following order:–– The CCSDS primary header,–– the CCSDS secondary header (if present),

Page 101: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

92

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– the length field in the primary header, if not done in first step–– the user data,–– the checksum (if present).–––– The length field in the primary header must be set–– before the checksum is written to avoid placement of–– the checksum at the wrong place––––––––––––––––––––––––––––––––––––––––––––––––––––––

procedure SET_HEADER (PACKET : in out T_CCSDS_PACKET; TO : in T_CCSDS_HEADER); procedure SET_HEADER (PACKET : in out NUMERIC_TYPES.BYTE_ARRAY; TO : in T_CCSDS_HEADER); –– DESCRIPTION –– sets the primary header –– EXCEPTIONS –– none

procedure SET_SECONDARY_HEADER (PACKET : in out T_CCSDS_PACKET; TO : in T_CCSDS_SECONDARY_HEADER); procedure SET_SECONDARY_HEADER (PACKET : in out NUMERIC_TYPES.BYTE_ARRAY; TO : in T_CCSDS_SECONDARY_HEADER); –– DESCRIPTION –– sets the secondary header –– EXCEPTIONS –– NO_SECONDARY_HEADER –– the primary header indicates that there –– should be no secondary header

procedure SET_DATA ( PACKET : in out T_CCSDS_PACKET; TO : in NUMERIC_TYPES.BYTE_ARRAY; Header2_Type : in T_Secondary_Header := Standard_Cof); procedure SET_DATA ( PACKET : in out NUMERIC_TYPES.BYTE_ARRAY; TO : in NUMERIC_TYPES.BYTE_ARRAY; Header2_Type : in T_Secondary_Header := Standard_Cof); –– DESCRIPTION –– Sets the user data to the predefined static pattern –– defined in MDB. –– The length of the user data is constrained by the length field –– in the primary header. –– EXCEPTIONS –– INVALID_SIZE –– if the byte array is too big for the packet

procedure SUBSTITUTE_PARAMETER ( PACKET : in out NUMERIC_TYPES.BYTE_ARRAY ; AT_OFFSET : in POSITIVE ; TO_VALUE : in NUMERIC_TYPES.BIT; Header2_Type : in T_Secondary_Header := Standard_Cof; Part : in T_Packet_Part := Data);

procedure SUBSTITUTE_PARAMETER ( PACKET : in out T_CCSDS_PACKET ; AT_OFFSET : in POSITIVE ; TO_VALUE : in NUMERIC_TYPES.BIT; Header2_Type : in T_Secondary_Header := Standard_Cof; Part : in T_Packet_Part := Data);

procedure SUBSTITUTE_PARAMETER ( PACKET : in out NUMERIC_TYPES.BYTE_ARRAY ; AT_OFFSET : in POSITIVE ; NUMBER_OF_BITS : in NATURAL ; TO_VALUE : in NUMERIC_TYPES.BITSET; Header2_Type : in T_Secondary_Header := Standard_Cof; Part : in T_Packet_Part := Data);

procedure SUBSTITUTE_PARAMETER ( PACKET : in out T_CCSDS_PACKET ; AT_OFFSET : in POSITIVE ; NUMBER_OF_BITS : in NATURAL ;

Page 102: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

93

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

TO_VALUE : in NUMERIC_TYPES.BITSET; Header2_Type : in T_Secondary_Header := Standard_Cof; Part : in T_Packet_Part := Data);

procedure SUBSTITUTE_PARAMETER ( PACKET : in out NUMERIC_TYPES.BYTE_ARRAY ; AT_OFFSET : in POSITIVE ; TO_VALUE : in CHARACTER; Header2_Type : in T_Secondary_Header := Standard_Cof; Part : in T_Packet_Part := Data);

procedure SUBSTITUTE_PARAMETER ( PACKET : in out T_CCSDS_PACKET ; AT_OFFSET : in POSITIVE ; TO_VALUE : in CHARACTER; Header2_Type : in T_Secondary_Header := Standard_Cof; Part : in T_Packet_Part := Data);

procedure SUBSTITUTE_PARAMETER ( PACKET : in out NUMERIC_TYPES.BYTE_ARRAY ; AT_OFFSET : in POSITIVE ; NUMBER_OF_BITS : in NATURAL ; TO_VALUE : in NUMERIC_TYPES.INTEGER32; Header2_Type : in T_Secondary_Header := Standard_Cof; Part : in T_Packet_Part := Data);

procedure SUBSTITUTE_PARAMETER ( PACKET : in out T_CCSDS_PACKET ; AT_OFFSET : in POSITIVE ; NUMBER_OF_BITS : in NATURAL ; TO_VALUE : in NUMERIC_TYPES.INTEGER32; Header2_Type : in T_Secondary_Header := Standard_Cof; Part : in T_Packet_Part := Data);

procedure SUBSTITUTE_PARAMETER ( PACKET : in out NUMERIC_TYPES.BYTE_ARRAY ; AT_OFFSET : in POSITIVE ; NUMBER_OF_BITS : in NATURAL ; TO_VALUE : in NUMERIC_TYPES.UNSIGNED_INTEGER32; Header2_Type : in T_Secondary_Header := Standard_Cof; Part : in T_Packet_Part := Data);

procedure SUBSTITUTE_PARAMETER ( PACKET : in out T_CCSDS_PACKET ; AT_OFFSET : in POSITIVE ; NUMBER_OF_BITS : in NATURAL ; TO_VALUE : in NUMERIC_TYPES.UNSIGNED_INTEGER32; Header2_Type : in T_Secondary_Header := Standard_Cof; Part : in T_Packet_Part := Data);

procedure SUBSTITUTE_PARAMETER ( PACKET : in out NUMERIC_TYPES.BYTE_ARRAY; AT_OFFSET : in POSITIVE; TO_VALUE : in NUMERIC_TYPES.SINGLE_FLOAT; Header2_Type : in T_Secondary_Header := Standard_Cof; Part : in T_Packet_Part := Data);

procedure SUBSTITUTE_PARAMETER ( PACKET : in out T_CCSDS_PACKET; AT_OFFSET : in POSITIVE; TO_VALUE : in NUMERIC_TYPES.SINGLE_FLOAT; Header2_Type : in T_Secondary_Header := Standard_Cof; Part : in T_Packet_Part := Data);

procedure SUBSTITUTE_PARAMETER ( PACKET : in out NUMERIC_TYPES.BYTE_ARRAY;

Page 103: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

94

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

AT_OFFSET : in POSITIVE; TO_VALUE : in NUMERIC_TYPES.DOUBLE_FLOAT; Header2_Type : in T_Secondary_Header := Standard_Cof; Part : in T_Packet_Part := Data);

procedure SUBSTITUTE_PARAMETER ( PACKET : in out T_CCSDS_PACKET; AT_OFFSET : in POSITIVE; TO_VALUE : in NUMERIC_TYPES.DOUBLE_FLOAT; Header2_Type : in T_Secondary_Header := Standard_Cof; Part : in T_Packet_Part := Data);

procedure SUBSTITUTE_PARAMETER ( PACKET : in out NUMERIC_TYPES.BYTE_ARRAY; AT_OFFSET : in POSITIVE; NUMBER_OF_BYTES : in NATURAL; TO_VALUE : in NUMERIC_TYPES.BYTE_ARRAY; Header2_Type : in T_Secondary_Header := Standard_Cof; Part : in T_Packet_Part := Data);

procedure SUBSTITUTE_PARAMETER ( PACKET : in out T_CCSDS_PACKET; AT_OFFSET : in POSITIVE; NUMBER_OF_BYTES : in NATURAL; TO_VALUE : in NUMERIC_TYPES.BYTE_ARRAY; Header2_Type : in T_Secondary_Header := Standard_Cof; Part : in T_Packet_Part := Data);

–– DESCRIPTION –– Takes TO_VALUE and substitutes the bits starting at –– AT_OFFSET in the PACKET. –– Note: AT_OFFSET counts the bits in the user data, starting with 1. –– EXCEPTIONS –– INVALID_SIZE –– raised if the substitution of the value exceeds the length –– of the packet –– or for integer and unsigned integer if the actual value does –– not fit into the NUMBER_OF_BITS

function COMPUTED_CHECKSUM ( PACKET : T_CCSDS_PACKET; Checksum_Type : T_Checksum := Standard_Cof) return T_CCSDS_CHECKSUM; function COMPUTED_CHECKSUM ( PACKET : NUMERIC_TYPES.BYTE_ARRAY; Checksum_Type : T_Checksum := Standard_Cof) return T_CCSDS_CHECKSUM; –– DESCRIPTION –– computes the checksum of the packet. –– The checksum algorithm calculate the checksum of the entire packet –– including primary and secondary headers exclusive of the checksum word itself. –– There are differnt Checksums possible: –– o CRC16 polynomial: x**16 + x**15 + x**2 + 1 (CRC16) –– or –– o 16 bit add without carry (Standard_Cof) –– EXCEPTIONS –– No_Checksum: –– raised if Checksum_Type is None

procedure SET_CHECKSUM ( PACKET : in out T_CCSDS_PACKET; TO : in T_CCSDS_CHECKSUM); procedure SET_CHECKSUM ( PACKET : in out NUMERIC_TYPES.BYTE_ARRAY; TO : in T_CCSDS_CHECKSUM); –– DESCRIPTION –– sets the checksum at the end of a paket –– EXCEPTIONS –– none –– REMARK: For packets no internally check for the

Page 104: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

95

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– existense of checksum will be performed. –– It has be done by –– o Ccsds_Packet.Pus_Specific.Checksum_Indicator –– for Pus_TM/Pus_TC or –– o Ccsds_Packet.Checksum_Indicator –– before call SET_CHECKSUM.

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– read operations to get the packet contents–––––––––––––––––––––––––––––––––––––––––––––––––––––––––

function HEADER (PACKET: T_CCSDS_PACKET) return T_CCSDS_HEADER; function HEADER (PACKET: NUMERIC_TYPES.BYTE_ARRAY) return T_CCSDS_HEADER; –– DESCRIPTION –– returns the primary header –– EXCEPTIONS –– none

function SECONDARY_HEADER (PACKET: T_CCSDS_PACKET) return T_CCSDS_SECONDARY_HEADER; function SECONDARY_HEADER (PACKET: NUMERIC_TYPES.BYTE_ARRAY) return T_CCSDS_SECONDARY_HEADER; –– DESCRIPTION –– returns the secondary header –– EXCEPTIONS –– NO_SECONDARY_HEADER –– the primary header indicates that there –– is no secondary header

function USER_DATA (PACKET : T_CCSDS_PACKET; Header2_Type : T_Secondary_Header := Standard_Cof) return NUMERIC_TYPES.BYTE_ARRAY; function USER_DATA (PACKET : NUMERIC_TYPES.BYTE_ARRAY; Header2_Type : T_Secondary_Header := Standard_Cof) return NUMERIC_TYPES.BYTE_ARRAY; –– DESCRIPTION –– returns the user data (excluding secondary header and checksum) –– from a packet –– EXCEPTIONS –– none

function USER_DATA_LENGTH (PACKET : T_CCSDS_PACKET; Header2_Type : T_Secondary_Header := Standard_Cof) return T_CCSDS_LENGTH; function USER_DATA_LENGTH (PACKET : NUMERIC_TYPES.BYTE_ARRAY; Header2_Type : T_Secondary_Header := Standard_Cof) return T_CCSDS_LENGTH; –– DESCRIPTION –– returns the length of the user data (excluding secondary header and –– checksum) from a packet –– EXCEPTIONS –– none

function CHECKSUM (PACKET : T_CCSDS_PACKET) return T_CCSDS_CHECKSUM; function CHECKSUM (PACKET : NUMERIC_TYPES.BYTE_ARRAY) return T_CCSDS_CHECKSUM; –– DESCRIPTION –– returns the checksum from a packet –– EXCEPTIONS –– none –– REMARK: For packets no internally check for the –– existense of checksum will be performed. –– It has be done by –– o Ccsds_Packet.Pus_Specific.Checksum_Indicator –– for Pus_TM/Pus_TC or –– o Ccsds_Packet.Checksum_Indicator –– before call CHECKSUM.

function PARAMETER (PACKET : T_CCSDS_PACKET; AT_OFFSET : POSITIVE; PACKET_PART : T_PACKET_PART := ADT_CCSDS_PACKET.DATA;

Page 105: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

96

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Header2_Type : T_Secondary_Header := Standard_Cof) return NUMERIC_TYPES.BIT; function PARAMETER (PACKET : NUMERIC_TYPES.BYTE_ARRAY; AT_OFFSET : POSITIVE; PACKET_PART : T_PACKET_PART := ADT_CCSDS_PACKET.DATA; Header2_Type : T_Secondary_Header := Standard_Cof) return NUMERIC_TYPES.BIT;

function PARAMETER (PACKET : T_CCSDS_PACKET; AT_OFFSET : POSITIVE; PACKET_PART : T_PACKET_PART := ADT_CCSDS_PACKET.DATA; Header2_Type : T_Secondary_Header := Standard_Cof) return CHARACTER; function PARAMETER (PACKET : NUMERIC_TYPES.BYTE_ARRAY; AT_OFFSET : POSITIVE; PACKET_PART : T_PACKET_PART := ADT_CCSDS_PACKET.DATA; Header2_Type : T_Secondary_Header := Standard_Cof) return CHARACTER;

function PARAMETER (PACKET : T_CCSDS_PACKET; AT_OFFSET : POSITIVE; NUMBER_OF_BITS : NATURAL; PACKET_PART : T_PACKET_PART := ADT_CCSDS_PACKET.DATA; Header2_Type : T_Secondary_Header := Standard_Cof) return NUMERIC_TYPES.BITSET; function PARAMETER (PACKET : NUMERIC_TYPES.BYTE_ARRAY; AT_OFFSET : POSITIVE; NUMBER_OF_BITS : NATURAL; PACKET_PART : T_PACKET_PART := ADT_CCSDS_PACKET.DATA; Header2_Type : T_Secondary_Header := Standard_Cof) return NUMERIC_TYPES.BITSET;

function PARAMETER (PACKET : T_CCSDS_PACKET; AT_OFFSET : POSITIVE; NUMBER_OF_BITS : NATURAL; PACKET_PART : T_PACKET_PART := ADT_CCSDS_PACKET.DATA; Header2_Type : T_Secondary_Header := Standard_Cof) return NUMERIC_TYPES.INTEGER32; function PARAMETER (PACKET : NUMERIC_TYPES.BYTE_ARRAY; AT_OFFSET : POSITIVE; NUMBER_OF_BITS : NATURAL; PACKET_PART : T_PACKET_PART := ADT_CCSDS_PACKET.DATA; Header2_Type : T_Secondary_Header := Standard_Cof) return NUMERIC_TYPES.INTEGER32;

function PARAMETER (PACKET : T_CCSDS_PACKET; AT_OFFSET : POSITIVE; NUMBER_OF_BITS : NATURAL; PACKET_PART : T_PACKET_PART := ADT_CCSDS_PACKET.DATA; Header2_Type : T_Secondary_Header := Standard_Cof) return NUMERIC_TYPES.UNSIGNED_INTEGER32; function PARAMETER (PACKET : NUMERIC_TYPES.BYTE_ARRAY; AT_OFFSET : POSITIVE; NUMBER_OF_BITS : NATURAL; PACKET_PART : T_PACKET_PART := ADT_CCSDS_PACKET.DATA; Header2_Type : T_Secondary_Header := Standard_Cof) return NUMERIC_TYPES.UNSIGNED_INTEGER32;

function PARAMETER (PACKET : T_CCSDS_PACKET; AT_OFFSET : POSITIVE; PACKET_PART : T_PACKET_PART := ADT_CCSDS_PACKET.DATA; Header2_Type : T_Secondary_Header := Standard_Cof) return NUMERIC_TYPES.SINGLE_FLOAT; function PARAMETER (PACKET : NUMERIC_TYPES.BYTE_ARRAY; AT_OFFSET : POSITIVE; PACKET_PART : T_PACKET_PART := ADT_CCSDS_PACKET.DATA; Header2_Type : T_Secondary_Header := Standard_Cof) return NUMERIC_TYPES.SINGLE_FLOAT;

function PARAMETER (PACKET : T_CCSDS_PACKET; AT_OFFSET : POSITIVE; PACKET_PART : T_PACKET_PART := ADT_CCSDS_PACKET.DATA; Header2_Type : T_Secondary_Header := Standard_Cof)

Page 106: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

97

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

return NUMERIC_TYPES.DOUBLE_FLOAT; function PARAMETER (PACKET : NUMERIC_TYPES.BYTE_ARRAY; AT_OFFSET : POSITIVE; PACKET_PART : T_PACKET_PART := ADT_CCSDS_PACKET.DATA; Header2_Type : T_Secondary_Header := Standard_Cof) return NUMERIC_TYPES.DOUBLE_FLOAT;

function PARAMETER (PACKET : T_CCSDS_PACKET; AT_OFFSET : POSITIVE; NUMBER_OF_BYTES: NATURAL; PACKET_PART : T_PACKET_PART := ADT_CCSDS_PACKET.DATA; Header2_Type : T_Secondary_Header := Standard_Cof) return NUMERIC_TYPES.BYTE_ARRAY; function PARAMETER (PACKET : NUMERIC_TYPES.BYTE_ARRAY; AT_OFFSET : POSITIVE; NUMBER_OF_BYTES: NATURAL; PACKET_PART : T_PACKET_PART := ADT_CCSDS_PACKET.DATA; Header2_Type : T_Secondary_Header := Standard_Cof) return NUMERIC_TYPES.BYTE_ARRAY;

–– DESCRIPTION –– These overloaded functions retrieve a value from a CCSDS packet –– AT_OFFSET with the given NUMBER_OF_BITS or NUMBER_OF_BYTES. –– Note: AT_OFFSET counts the bits in the PACKET_PART, starting with 1. –– EXCEPTIONS –– DATA_LENGTH_ERROR: –– raised if the retrieval of the value exceeds the length –– of the packet

–– using functions returning types that do not fit in a register (>32 bits) –– causes heap access, use these equivalent procedures for speed

procedure GET_PARAMETER ( PACKET : in T_CCSDS_PACKET; AT_OFFSET : in POSITIVE; NUMBER_OF_BYTES : in NATURAL; PARAMETER : in out T_PARAMETER_STRING; PACKET_PART : in T_PACKET_PART := ADT_CCSDS_PACKET.DATA; Header2_Type : in T_Secondary_Header := Standard_Cof); procedure GET_PARAMETER ( PACKET : in NUMERIC_TYPES.BYTE_ARRAY; AT_OFFSET : in POSITIVE; NUMBER_OF_BYTES : in NATURAL; PARAMETER : in out T_PARAMETER_STRING; PACKET_PART : in T_PACKET_PART := ADT_CCSDS_PACKET.DATA; Header2_Type : in T_Secondary_Header := Standard_Cof);

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– operation to put a whole CCSDS packet into an ADT variable or to–– retreive a CCSDS packet from an ADT variable into a byte array–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

procedure SET_WHOLE_PACKET (PACKET : out T_CCSDS_PACKET; EXTERNAL_PACKET : in NUMERIC_TYPES.BYTE_ARRAY; EXTERNAL_SIZE : in NATURAL); –– DESCRIPTION –– This procedure puts a byte array (containing a CCSDS packet) –– into the ADT variable. The size of the packet (overall) in –– bytes is given in parameter EXTERNAL_SIZE –– EXCEPTIONS –– INVALID_SIZE –– The size does not fit (either to big or internally inconsistent)

procedure GET_WHOLE_PACKET (PACKET : in T_CCSDS_PACKET; EXTERNAL_PACKET : out NUMERIC_TYPES.BYTE_ARRAY; EXTERNAL_SIZE : out NATURAL); –– DESCRIPTION –– This procedure returns a byte array (containing a CCSDS packet) –– from the ADT variable into a user provided byte array. –– The size of the packet (overall) in bytes is provided in parameter –– EXTERNAL_SIZE

Page 107: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

98

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– EXCEPTIONS –– DATA_LENGTH_ERROR –– The buffer provided by the user is too small

procedure DEALLOCATE (PACKET : in out T_A_CCSDS_PACKET); –– DESCRIPTION –– free memory allocated by new(T_CCSDS_PACKET) –– EXCEPTIONS

procedure PACK (PACKET : in T_CCSDS_PACKET; BLOCK : in out ADT_PACKING.T_BLOCK); –– DESCRIPTION –– pack the CCSDS_PACKET into a T_BLOCK –– only used data is packed i.e. the length field of the primary header –– is used to determine that packed size –– convert to machine independent format where applicable –– EXCEPTIONS

procedure UNPACK (BLOCK : in out ADT_PACKING.T_BLOCK; PACKET : in out T_CCSDS_PACKET); –– DESCRIPTION –– unpack the CCSDS from a T_BLOCK –– convert from machine independent format where applicable –– EXCEPTIONS

––––––––––––––––––––––––––––––––––––––– exceptions–––––––––––––––––––––––––––––––––––––

NO_SECONDARY_HEADER : exception; No_Checksum : exception; INVALID_TIME_ID : exception; INVALID_SIZE : exception; DATA_LENGTH_ERROR : exception;

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

private

type T_CCSDS_HEADER is record VERSION : T_CCSDS_VERSION := CCSDS_VERSION_1_PACKET; PTYPE : T_CCSDS_TYPE := 0; H2FLAG : T_CCSDS_SECONDARY_HEADER_FLAG := CCSDS_PACKET_HAS_NO_SECONDARY_HEADER_FLAG; APID : T_CCSDS_APPLICATION_ID := 0; SEQFLAG : T_CCSDS_SEQUENCE_FLAGS := CCSDS_UNSEGMENTED_PACKET; SEQCNT : T_CCSDS_SEQUENCE_COUNT := 0; LENGTH : T_CCSDS_LENGTH := 0; end record;

for T_CCSDS_HEADER use record VERSION at 0 range 0..2; PTYPE at 0 range 3..3; H2FLAG at 0 range 4..4; APID at 0 range 5..15; SEQFLAG at 2 range 0..1; SEQCNT at 2 range 2..15; LENGTH at 4 range 0..15; end record;

for T_CCSDS_HEADER’SIZE use 6 * 8;

NULL_CCSDS_HEADER : constant T_CCSDS_HEADER := (VERSION => CCSDS_VERSION_1_PACKET, PTYPE => 0, H2FLAG => CCSDS_PACKET_HAS_NO_SECONDARY_HEADER_FLAG, APID => 0, SEQFLAG => CCSDS_UNSEGMENTED_PACKET, SEQCNT => 0,

Page 108: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

99

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

LENGTH => 0);

type T_CCSDS_SECONDARY_HEADER is record COARSE_TIME : T_CCSDS_COARSE_TIME := 0; FINE_TIME : T_CCSDS_FINE_TIME := 0; TIME_ID : T_CCSDS_TIME_ID := CCSDS_NO_TIME_FIELD; CS_IND : T_CCSDS_CHECKSUM_INDICATOR := CCSDS_PACKET_HAS_NO_CHECKSUM; SPARE : NUMERIC_TYPES.BIT := 0; PACK_TYPE : T_CCSDS_PACKET_TYPE := CCSDS_DEFAULT_PACKET; PACK_ID : T_CCSDS_PACKET_ID := 0; end record;

for T_CCSDS_SECONDARY_HEADER use record COARSE_TIME at 0 range 0..31; FINE_TIME at 4 range 0..7; TIME_ID at 5 range 0..1; CS_IND at 5 range 2..2; SPARE at 5 range 3..3; PACK_TYPE at 5 range 4..7; PACK_ID at 6 range 0..31; end record;

for T_CCSDS_SECONDARY_HEADER’SIZE use 10 * 8;

NULL_CCSDS_SECONDARY_HEADER : constant T_CCSDS_SECONDARY_HEADER := (COARSE_TIME => 0, FINE_TIME => 0, TIME_ID => CCSDS_NO_TIME_FIELD, CS_IND => CCSDS_PACKET_HAS_NO_CHECKSUM, SPARE => 0, PACK_TYPE => CCSDS_DEFAULT_PACKET, PACK_ID => 0);

type T_CCSDS_PACKET is new NUMERIC_TYPES.BYTE_ARRAY (1 .. MAX_PACKET_SIZE + 1 + CCSDS_HEADER_SIZE);

NULL_CCSDS_PACKET : constant T_CCSDS_PACKET := (others => 0);

end ADT_CCSDS_PACKET;

Page 109: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

100

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Formal Interface Description

–––– Utilisation Standard ( ECSS–E–70–41)––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––IDENTIFICATION–––– PROJECT NAME : CGS–– PRODUCT NAME : HCI–– CI–NUMBER : 1216 878–– OBJECT NAME : Adt_Ccsds_Packet.Pus_Specific––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––CONTENTS–––– COMPILER : GNAT–– LANGUAGE : Ada–– SPECIAL CONTENTS: ––– CHANGE HISTORY–– IRN 8219–– creator: N. Soelter–– creation date: 22.05.2001–– comment: First version–––– Change reference : –– Date : 21.06.2001–– Author : R.Grotheer–– Change summary : T_Pus_TC_Secondary_Header_Overlay––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– END HISTORY––****************************************************************************

with NUMERIC_TYPES;

package Adt_Ccsds_Packet.Pus_Specific is

SCCSID_ADS : constant STRING := ”@(#) adt_ccsds_packet–pus_specific.ads /main/cgs_5.0/1612/07/01 10:48:16@(#)”;

––––––––––––––––––––––––––––– ADT types and constants–––––––––––––––––––––––––––

–– TM packet is ”Not–Siral–Science” Packet category type T_Pus_TM_Secondary_Header is private; type T_Pus_TC_Secondary_Header is private;

Pus_Null_Ccsds_Header : constant T_Ccsds_Header; Null_Pus_TM_Secondary_Header : constant T_Pus_TM_Secondary_Header; Null_Pus_TC_Secondary_Header : constant T_Pus_TC_Secondary_Header;

–––––––––––––––––––––––––––––––––––––– Primary header items––––––––––––––––––––––––––––––––––––

Pus_Packet_Version : constant Adt_Ccsds_Packet.T_Ccsds_Version := 0; Pus_Unsegmented_Packet : constant Adt_Ccsds_Packet.T_Ccsds_Sequence_Flags := 3;

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– Secondary header items–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–– Common (TM/TC) type Pec_Specification is (No_Pec, Crc, Iso, Undefined);

subtype T_Error_Control is INTEGER range 0 .. 2**3 – 1; subtype T_Service_Type is INTEGER range 0 .. 2**8 – 1; subtype T_Service_Subtype is INTEGER range 0 .. 2**8 – 1;

Page 110: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

101

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– Telecommand subtype T_Ccsds_Secondary_Header_Flag is INTEGER range 0 .. 1; subtype T_Acknowledge is INTEGER range 0 .. 2**4 – 1; subtype T_AckBit is INTEGER range 0 .. 1; subtype T_Source_Id is INTEGER range 0 .. 2**8 – 1;

–– Telemetry subtype T_Destination_Id is INTEGER range 0 .. 2**8 – 1;

type T_Time_With_Offset is record Days : Numeric_Types.Unsigned_Integer16; Milli_Seconds : Numeric_Types.Unsigned_Integer32; Micro_Seconds : Numeric_Types.Unsigned_Integer16; Counter : Numeric_Types.Unsigned_Integer32; end record;

type T_Time is record Days : Numeric_Types.Unsigned_Integer16; Milli_Seconds : Numeric_Types.Unsigned_Integer32; end record;

for T_Time use record Days at 0 range 0 .. 15; Milli_Seconds at 2 range 0 .. 31; end record;

for T_Time’Size use 48;

–– Defaults Ccsds_Secondary_Header_Flag : constant T_Ccsds_Secondary_Header_Flag := 0; Default_Error_Control : constant T_Error_Control := 1; Null_Time : constant T_Time := (0, 0); Null_Destination_Id : constant T_Destination_Id := 0;

Pus_TM_Secondary_Header_Last : constant INTEGER := SECOND_HEADER_FIRST + Pus_TM_Secondary_Header_Size – 1; Pus_TC_Secondary_Header_Last : constant INTEGER := SECOND_HEADER_FIRST + Pus_TC_Secondary_Header_Size – 1;

–––––––––––––––––––––––––––––––––––––––––––––––– Set/Get secondary headers from CCSDS packet––––––––––––––––––––––––––––––––––––––––––––––

procedure Set_Pus_TC_Secondary_Header ( Packet : in out T_Ccsds_Packet; To : in T_Pus_TC_Secondary_Header);

–– DESCRIPTION –– sets the PUS TC secondary header –– EXCEPTIONS –– NO_SECONDARY_HEADER –– the primary header indicates that there –– is no secondary header

procedure Set_Pus_TM_Secondary_Header ( Packet : in out T_Ccsds_Packet; To : in T_Pus_TM_Secondary_Header);

–– DESCRIPTION –– sets the PUS TM secondary header –– EXCEPTIONS –– NO_SECONDARY_HEADER –– the primary header indicates that there –– is no secondary header

function Pus_TC_Secondary_Header (Packet : T_Ccsds_Packet) return T_Pus_TC_Secondary_Header;

Page 111: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

102

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– DESCRIPTION –– returns the PUS TC secondary header –– EXCEPTIONS –– NO_SECONDARY_HEADER –– the primary header indicates that there –– is no secondary header

function Pus_TM_Secondary_Header (Packet : T_Ccsds_Packet) return T_Pus_TM_Secondary_Header;

–– DESCRIPTION –– returns the PUS TM secondary header –– EXCEPTIONS –– NO_SECONDARY_HEADER –– the primary header indicates that there –– is no secondary header

––––––––––––––––––––––––––––––––––––––––––– write operations secondary header–––––––––––––––––––––––––––––––––––––––––

–– Telecommand

procedure Set_Secondary_Header_Flag ( Packet : in out T_Pus_TC_Secondary_Header; To : in T_Ccsds_Secondary_Header_Flag := Ccsds_Secondary_Header_Flag);

–– DESCRIPTION –– sets the Secondary Header Flag in the secondary header –– EXCEPTIONS –– none

procedure Set_Error_Control ( Packet : in out T_Pus_TC_Secondary_Header; To : in T_Error_Control := Default_Error_Control);

–– DESCRIPTION –– sets the Error Control value (0 => no checksum) –– in the secondary header –– EXCEPTIONS –– none

procedure Set_Acknowledge ( Packet : in out T_Pus_TC_Secondary_Header; To : in T_Acknowledge := 0);

–– DESCRIPTION –– sets the whole Acknowledge value in the secondary header –– EXCEPTIONS –– none

procedure Set_Ack_On_Reception ( Packet : in out T_Pus_TC_Secondary_Header; To : in Boolean := True);

–– DESCRIPTION –– sets the first bit of Acknowledge value in the secondary header –– (true = 1, false = 0) –– EXCEPTIONS –– none

procedure Set_Ack_On_Start ( Packet : in out T_Pus_TC_Secondary_Header; To : in Boolean := True);

–– DESCRIPTION –– sets the second bit of Acknowledge value in the secondary header –– (true = 1, false = 0) –– EXCEPTIONS –– none

Page 112: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

103

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

procedure Set_Ack_On_Progress ( Packet : in out T_Pus_TC_Secondary_Header; To : in Boolean := True);

–– DESCRIPTION –– sets the third bit of Acknowledge value in the secondary header –– (true = 1, false = 0) –– EXCEPTIONS –– none

procedure Set_Ack_On_Completion ( Packet : in out T_Pus_TC_Secondary_Header; To : in Boolean := True);

–– DESCRIPTION –– sets the fourth bit of Acknowledge value in the secondary header –– (true = 1, false = 0) –– EXCEPTIONS –– none

procedure Set_Service_Type ( Packet : in out T_Pus_TC_Secondary_Header; To : in T_Service_Type := 0);

–– DESCRIPTION –– sets the Service Type in the secondary header –– EXCEPTIONS –– none

procedure Set_Service_Subtype ( Packet : in out T_Pus_TC_Secondary_Header; To : in T_Service_Subtype := 0);

–– DESCRIPTION –– sets the Service Subtype in the secondary header –– EXCEPTIONS –– none

procedure Set_Source_Id ( Packet : in out T_Pus_TC_Secondary_Header; To : in T_Source_Id := 0);

–– DESCRIPTION –– sets the Source ID in the secondary header –– EXCEPTIONS –– none

–– Telemetry

procedure Set_Error_Control ( Packet : in out T_Pus_TM_Secondary_Header; To : in T_Error_Control := Default_Error_Control);

–– DESCRIPTION –– sets the Error Control value (0 => no checksum) –– in the secondary header –– EXCEPTIONS –– none

procedure Set_Service_Type ( Packet : in out T_Pus_TM_Secondary_Header; To : in T_Service_Type := 0);

–– DESCRIPTION –– sets the Service Type in the secondary header –– EXCEPTIONS –– none

procedure Set_Service_Subtype ( Packet : in out T_Pus_TM_Secondary_Header; To : in T_Service_Subtype := 0);

Page 113: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

104

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– DESCRIPTION –– sets the Service Subtype in the secondary header –– EXCEPTIONS –– none

procedure Set_Destination_Id ( Packet : in out T_Pus_TM_Secondary_Header; To : in T_Destination_Id := Null_Destination_Id);

–– DESCRIPTION –– sets the Destination ID (Spare ID & Onboard Process ID) –– in the secondary header –– (only filler bits for Cryosat !) –– EXCEPTIONS –– none

procedure Set_Time ( Packet : in out T_Pus_TM_Secondary_Header; To : in T_Time := Null_Time);

–– DESCRIPTION –– sets the Time in the secondary header –– EXCEPTIONS –– none

––––––––––––––––––––––––––––––––––––––––––– read operations secondary header–––––––––––––––––––––––––––––––––––––––––

–– Telecommand

function Secondary_Header_Flag (Packet : T_Pus_TC_Secondary_Header) return T_Ccsds_Secondary_Header_Flag;

–– DESCRIPTION –– returns the Secondary Header Flag of the secondary header –– EXCEPTIONS –– none

function Error_Control (Packet : T_Pus_TC_Secondary_Header) return T_Error_Control;

–– DESCRIPTION –– returns the Error Control value (0 => no checksum) –– of the secondary header –– EXCEPTIONS –– none

function Acknowledge (Packet : T_Pus_TC_Secondary_Header) return T_Acknowledge;

–– DESCRIPTION –– returns the Acknowledge value of the secondary header –– EXCEPTIONS –– none

function Ack_On_Reception (Packet : T_Pus_TC_Secondary_Header) return Boolean;

–– DESCRIPTION –– returns the first bit of Acknowledge value in the secondary header –– (true = 1, false = 0) –– EXCEPTIONS –– none

function Ack_On_Start (Packet : T_Pus_TC_Secondary_Header) return Boolean;

–– DESCRIPTION –– sets the second bit of Acknowledge value in the secondary header –– (true = 1, false = 0)

Page 114: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

105

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– EXCEPTIONS –– none

function Ack_On_Progress (Packet : T_Pus_TC_Secondary_Header) return Boolean;

–– DESCRIPTION –– sets the third bit of Acknowledge value in the secondary header –– (true = 1, false = 0) –– EXCEPTIONS –– none

function Ack_On_Completion (Packet : T_Pus_TC_Secondary_Header) return Boolean;

–– DESCRIPTION –– sets the fourth bit of Acknowledge value in the secondary header –– (true = 1, false = 0) –– EXCEPTIONS –– none

function Service_Type (Packet : T_Pus_TC_Secondary_Header) return T_Service_Type;

–– DESCRIPTION –– returns the Service Type of the secondary header –– EXCEPTIONS –– none

function Service_Subtype (Packet : T_Pus_TC_Secondary_Header) return T_Service_Subtype;

–– DESCRIPTION –– returns the Service Subtype of the secondary header –– EXCEPTIONS –– none

function Source_Id (Packet : T_Pus_TC_Secondary_Header) return T_Source_Id;

–– DESCRIPTION –– returns the Source ID of the secondary header –– EXCEPTIONS –– none

–– Telemetry

function Error_Control (Packet : T_Pus_TM_Secondary_Header) return T_Error_Control;

–– DESCRIPTION –– returns the Error Control value (0 => no checksum) –– of the secondary header –– EXCEPTIONS –– none

function Service_Type (Packet : T_Pus_TM_Secondary_Header) return T_Service_Type;

–– DESCRIPTION –– returns the Service Type of the secondary header –– EXCEPTIONS –– none

function Service_Subtype (Packet : T_Pus_TM_Secondary_Header) return T_Service_Subtype;

–– DESCRIPTION –– returns the Service Subtype of the secondary header –– EXCEPTIONS –– none

Page 115: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

106

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

function Destination_Id (Packet : T_Pus_TM_Secondary_Header) return T_Destination_Id;

–– DESCRIPTION –– returns the Destination ID of the secondary header –– (only filler bits for Cryosat !) –– EXCEPTIONS –– none

function Time (Packet : T_Pus_TM_Secondary_Header) return T_Time;

–– DESCRIPTION –– returns the Time of the secondary header –– EXCEPTIONS –– none

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

private

–– filler bits subtype T_One_Bit is Integer range 0 .. 1; subtype T_Four_Bits is Integer range 0 .. 2**4 – 1;

–– primary header Pus_Null_Ccsds_Header : constant T_Ccsds_Header := (Version => Pus_Packet_Version, PTYPE => 0, H2FLAG => Ccsds_Packet_Has_Secondary_Header_Flag, APID => 0, SEQFLAG => Pus_Unsegmented_Packet, SEQCNT => 0, LENGTH => 0);

–– Telecommand type T_Pus_TC_Secondary_Header is record Secondary_Header_Flag : T_Ccsds_Secondary_Header_Flag := Ccsds_Secondary_Header_Flag; Error_Control : T_Error_Control := Default_Error_Control; Ack_On_Completion : T_AckBit := 0; Ack_On_Start : T_AckBit := 0; Ack_On_Progress : T_AckBit := 0; Ack_On_Reception : T_AckBit := 0; Service_Type : T_Service_Type := 0; Service_SubType : T_Service_Subtype := 0; Source_Id : T_Source_Id := 0; end record;

type T_Pus_TC_Secondary_Header_Overlay is record Dummy1 : T_Ccsds_Secondary_Header_Flag; Dummy2 : T_Error_Control; Acknowledge : T_Acknowledge; Dummy3 : T_Service_Type; Dummy4 : T_Service_Subtype; Dummy5 : T_Source_Id; end record;

for T_Pus_TC_Secondary_Header use record Secondary_Header_Flag at 0 range 0 .. 0; Error_Control at 0 range 1 .. 3; Ack_On_Completion at 0 range 4 .. 4; Ack_On_Start at 0 range 5 .. 5; Ack_On_Progress at 0 range 6 .. 6; Ack_On_Reception at 0 range 7 .. 7; Service_Type at 1 range 0 .. 7; Service_SubType at 2 range 0 .. 7; Source_Id at 3 range 0 .. 7; end record;

Page 116: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

107

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

for T_Pus_TC_Secondary_Header’SIZE use Pus_TC_Secondary_Header_Size * 8;

for T_Pus_TC_Secondary_Header_Overlay use record Dummy1 at 0 range 0 .. 0; Dummy2 at 0 range 1 .. 3; Acknowledge at 0 range 4 .. 7; Dummy3 at 1 range 0 .. 7; Dummy4 at 2 range 0 .. 7; Dummy5 at 3 range 0 .. 7; end record;

Null_Pus_TC_Secondary_Header : constant T_Pus_TC_Secondary_Header := (Secondary_Header_Flag => Ccsds_Secondary_Header_Flag, Error_Control => Default_Error_Control, Ack_On_Completion => 0, Ack_On_Progress => 0, Ack_On_Start => 0, Ack_On_Reception => 0, Service_Type => 0, Service_SubType => 0, Source_Id => 0);

–– Telemetry type T_Pus_TM_Secondary_Header is record One_Bit : T_One_Bit := 0; Error_Control : T_Error_Control := Default_Error_Control; Four_Bits : T_Four_Bits := 0; Service_Type : T_Service_Type := 0; Service_SubType : T_Service_Subtype := 0; Destination_Id : T_Destination_Id := 0; Time : T_Time := Null_Time; end record;

for T_Pus_TM_Secondary_Header use record One_Bit at 0 range 0 .. 0; Error_Control at 0 range 1 .. 3; Four_Bits at 0 range 4 .. 7; Service_Type at 1 range 0 .. 7; Service_SubType at 2 range 0 .. 7; Destination_Id at 3 range 0 .. 7; Time at 4 range 0 .. 47; end record;

for T_Pus_TM_Secondary_Header’SIZE use Pus_TM_Secondary_Header_Size * 8;

Null_Pus_TM_Secondary_Header : constant T_Pus_TM_Secondary_Header := (One_Bit => 0, Error_Control => Default_Error_Control, Four_Bits => 0, Service_Type => 0, Service_SubType => 0, Destination_Id => 0, Time => Null_Time);

end Adt_Ccsds_Packet.Pus_Specific;

Page 117: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

108

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.3.5 Binary Buffer ADT

Informal Interface Description

The package ADT_BINARY_BUFFER has been introduced to make conversion between hexadecimal/raw va-lues and binary values in a safe and uniformed way.

A binary buffer is composed of :

– a length (in bytes),

– a data buffer which can be written/read as :

– raw values stored at a certain location (in bits) with a certain length (in bits) accordingto a certain interpretation type;

– hexadecimal values stored at a certain location (in bits) with a certain length (in bits);

– binary values stored at a certain location (in bits).

The following conventions have been adopted :

– the least significant bit is the first on the right in a bit pattern,

– the most significant bit is the first on the left in a bit pattern,

– the bits are numbered from 1 to N*8 in a binary buffer of length n bytes, starting the numer-ation with the first bit on the left,

– a value located at position P and with length L in a binary buffer means that the equivalentbit pattern representing this value starts at bit Pth and finishes at bit (P+L–1)th,

– in a binary buffer, unused bits are set to 0,

– a single_bit value has a 1bit long bit pattern and can be positioned at any position in the bi-nary buffer, the value of the single_bit (0 or 1) is simply copied in that bit,

– a bit_set value has a 1 up to 32 bits long bit pattern and can be positioned at any position inthe binary buffer where this bit pattern fits, the value of the bit_set (a list of 0 and 1) is sim-ply copied in that bit pattern,

– a 1s complement 12 bits integer value has a 12 bits long bit pattern and can be positionedat any position in the binary buffer where this bit pattern fits, the value of the 1s comple-ment 12 bits integer is converted into a binary value following the 1s complement represen-tation, e.g. ’2’ is encoded ’000000000010’ and ’–2’ is encoded ’111111111101,

– a 2s complement 12 bits integer value has a 12 bits long bit pattern and can be positionedat any position in the binary buffer where this bit pattern fits, the value of the 2s comple-ment 12 bits integer is converted into a binary value following the 2s complement represen-tation, e.g. ’2’ is encoded ’000000000010’ and ’–2’ is encoded ’111111111110

– a 1s complement 16 bits integer value has a 16 bits long bit pattern and can be positionedat any position in the binary buffer where this bit pattern fits, the value of the 1s comple-ment 16 bits integer is converted into a binary value following the 1s complement represen-tation,

– a 2s complement 16 bits integer value has a 16 bits long bit pattern and can be positionedat any position in the binary buffer where this bit pattern fits, the value of the 2s comple-

Page 118: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

109

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

ment 16 bits integer is converted into a binary value following the 2s complement represen-tation,

– a 1s complement 32 bits integer value has a 32 bits long bit pattern and can be positionedat any position in the binary buffer where this bit pattern fits, the value of the 1s comple-ment 32 bits integer is converted into a binary value following the 1s complement represen-tation,

– a 2s complement 32 bits integer value has a 32 bits long bit pattern and can be positionedat any position in the binary buffer where this bit pattern fits, the value of the 2s comple-ment 32 bits integer is converted into a binary value following the 2s complement represen-tation,

– a float value has a 32 bits long bit pattern and can be positioned at any position in the bi-nary buffer where this bit pattern fits, the value of the float is converted into a binary valuefollowing the IEEE standard for normalized single–precision–floating–point numbers,

– a byte_stream value has a 1 up to 256 bytes long bit pattern and can be positioned at anyposition where this bit pattern fits, the value of the byte_stream (a list of 0 and 1) is simplycopied in that bit pattern,

– a hexadecimal value has a 1 up to 512 nibbles (half byte) long bit pattern and can be posi-tioned at any position where this bit pattern fits, the value of the hexadecimal number isconverted into a binary value following the standard binary representation, e.g. ’FF’ is en-coded ’11111111’.

Page 119: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

110

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Formal Interface Description

–––– ADT_BINARY_BUFFER spec––––****************************************************************************––ABSTRACT–––– This ADT allows conversion of hexadecimal and raw values into –– binary buffer and vice versa––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––IDENTIFICATION–––– PROJECT NAME : COLUMBUS VICOS–– PRODUCT NAME : VCS–– CI–NUMBER : 1234950–– OBJECT NAME : ADT_BINARY_BUFFER––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––CONTENTS–––– COMPILER : SUN/Verdix Ada–– LANGUAGE : Ada–– SPECIAL CONTENTS: ––– CHANGE HISTORY–––– #IRN 8069/B: modify comments of SUBSTITUTE_PARAMETER operations.–– Author: P.Hartmann–– Date: 22.06.99–––– #IRN 6020/B: change function PARAMETER into procedureGET_PARAMETER–– for BYTE_ARRAY parameter and update comments.–– Author: P.Hartmann–– Date: 09.04.97–––– #IRN 6020: Add new services to store and retrieve parameter(values)–– Author: P.Athmann–– Date: 14.2.97–––– V2.3 at ERNO ; VICOS development–– creator: grotheer (on host vicos_s)–– creation date: 19.01.94 15:57:43–– AT_LOCATION aligned with database (first bit=0)

Page 120: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

111

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–––– V2.2 at ERNO ; VICOS development–– creator: grotheer (on host vicos_s)–– creation date: 24.09.93 10:38:52–– initial version, header added––

––****************************************************************************

with NUMERIC_TYPES; with STATIC_STRINGS; with ADT_RAW_VALUE;

package ADT_BINARY_BUFFER is

–––––––––––––––––––––––––––––– –– public types and constants ––––––––––––––––––––––––––––––

package STATIC_STRINGS512 is new STATIC_STRINGS(512);

type T_HEXA_STRING is new STATIC_STRINGS512.STATIC_STRING;

–––––––––––––––––––– –– write operations ––––––––––––––––––––

procedure SET_RAW_VALUE ( IN_BUFFER : in out NUMERIC_TYPES.BYTE_ARRAY; WITH_RAW_VALUE : in ADT_RAW_VALUE.T_RAW_VALUE; AT_LOCATION : in NATURAL; WITH_LENGTH : in POSITIVE); –– DESCRIPTION –– This procedure sets the specified raw value in the –– specified binary buffer at the specified location (0..n bits)

–– with the specified length (in bits). The length is specifiedby –– the size of the value itself or by WITH_LENGTH (for bitsetsand integer).

–– EXCEPTIONS –– VALUE_TYPE_MISMATCH : –– The type of the specified raw value is not set –– LENGTH_MISMATCH : –– Bit location + value length exceeds the buffer size. –– or if the length is greater than the raw value (case

Page 121: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

112

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

BYTE_STREAM) –– or for integer and unsigned integer if the actual valuedoes –– not fit into the NUMBER_OF_BITS

procedure SET_HEXA_VALUE ( IN_BUFFER : in out NUMERIC_TYPES.BYTE_ARRAY; WITH_HEXA_VALUE : in T_HEXA_STRING; AT_LOCATION : in NATURAL; WITH_LENGTH : in POSITIVE); –– DESCRIPTION –– This procedure sets the specified hexadecimal value ( textstring ) –– in the specified binary buffer at the specified location (0..nbits) –– with the specified length (in bits). Leading zeros of thehexa– –– decimal string value are suppressed, but the specified lengthmay –– add leading zeros. That means: the hexadecimal string ”03”sets only –– 2 bits (if the specified length is 2), but a given ”3” withthe –– specified length of 8 inserts the bits 00000011. –– EXCEPTIONS –– LENGTH_MISMATCH : –– The specified length is not compatible with the specified –– hexadecimal value, or the size of the binary buffer is toosmall. –– VALUE_TYPE_MISMATCH : –– The specified string is not an hexadecimal value. –– The hexadecimal value shall be a string of the characters0..9, –– A..F with no blanks in between (blanks may be on eitherside).

procedure SET_BINARY_BUFFER ( IN_BUFFER : in out NUMERIC_TYPES.BYTE_ARRAY; WITH_BINARY_BUFFER : in NUMERIC_TYPES.BYTE_ARRAY; AT_LOCATION : in NATURAL); –– DESCRIPTION –– This procedure sets the binary buffer specified as second –– parameter into the binary buffer specified as first parameter –– at the specified location (0..n bits). Byte alignment of the –– specified location is not required. –– EXCEPTIONS –– LENGTH_MISMATCH : –– The passed binary buffer, at the specified location, doesnot –– fit into the binary buffer specified as first parameter.

Page 122: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

113

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

procedure SUBSTITUTE_PARAMETER( IN_BUFFER : in out NUMERIC_TYPES.BYTE_ARRAY; AT_OFFSET : POSITIVE; TO_VALUE : NUMERIC_TYPES.BIT); procedure SUBSTITUTE_PARAMETER( IN_BUFFER : in out NUMERIC_TYPES.BYTE_ARRAY; AT_OFFSET : POSITIVE; NUMBER_OF_BITS : NATURAL; TO_VALUE : NUMERIC_TYPES.BITSET); procedure SUBSTITUTE_PARAMETER( IN_BUFFER : in out NUMERIC_TYPES.BYTE_ARRAY; AT_OFFSET : POSITIVE; TO_VALUE : CHARACTER); procedure SUBSTITUTE_PARAMETER( IN_BUFFER : in out NUMERIC_TYPES.BYTE_ARRAY; AT_OFFSET : POSITIVE; NUMBER_OF_BITS : NATURAL; TO_VALUE : NUMERIC_TYPES.INTEGER32); procedure SUBSTITUTE_PARAMETER( IN_BUFFER : in out NUMERIC_TYPES.BYTE_ARRAY; AT_OFFSET : POSITIVE; NUMBER_OF_BITS : NATURAL; TO_VALUE : NUMERIC_TYPES.UNSIGNED_INTEGER32); procedure SUBSTITUTE_PARAMETER( IN_BUFFER : in out NUMERIC_TYPES.BYTE_ARRAY; AT_OFFSET : POSITIVE; TO_VALUE : NUMERIC_TYPES.SINGLE_FLOAT); procedure SUBSTITUTE_PARAMETER( IN_BUFFER : in out NUMERIC_TYPES.BYTE_ARRAY; AT_OFFSET : POSITIVE; TO_VALUE : NUMERIC_TYPES.DOUBLE_FLOAT); procedure SUBSTITUTE_PARAMETER( IN_BUFFER : in out NUMERIC_TYPES.BYTE_ARRAY; AT_OFFSET : POSITIVE; NUMBER_OF_BYTES : NATURAL; TO_VALUE : NUMERIC_TYPES.BYTE_ARRAY); ––DESCRIPTION ––Takes TO_VALUE and substitutes the bits starting at ––AT_OFFSET in the IN_BUFFER. ––AT_OFFSET is the offset to the beginning of the buffer, –– counted in bits, starting with 1 ––EXCEPTIONS ––LENGTH_MISMATCH ––raised if the offset + the length of the value is ––exceeding the length of the IN_BUFFER ––or if the length is greater than TO_VALUE (case BYTE_STREAM) ––or for integer and unsigned integer if the actual value does ––not fit into the NUMBER_OF_BITS

Page 123: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

114

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

––––––––––––––––––– –– read operations –––––––––––––––––––

function BUFFER_SIZE ( OF_BUFFER : NUMERIC_TYPES.BYTE_ARRAY) return INTEGER; –– DESCRIPTION –– This function returns the size of the specified –– binary buffer (in bytes). –– EXCEPTIONS –– None.

procedure GET_RAW_VALUE ( FROM_BUFFER : in NUMERIC_TYPES.BYTE_ARRAY; RAW_VALUE : in out ADT_RAW_VALUE.T_RAW_VALUE; AT_LOCATION : in NATURAL; WITH_LENGTH : in POSITIVE); –– DESCRIPTION –– This procedure returns a raw value out of the –– specified binary buffer at the specified location (0..n bits)

–– with the specified length (in bits). The length is specifiedby –– the size of the value itself or by WITH_LENGTH ( for bitsetsand –– byte streams and integer ). –– Note that the type of the raw value variable has to be set –– EXCEPTIONS –– VALUE_TYPE_MISMATCH : –– The type of the specified raw value is not set –– LENGTH_MISMATCH : –– 1. Bit location + value length exceeds the buffer size –– 2. WITH_LENGTH exceeds the maximum size of a bitset orstream value –– 3. WITH_LENGTH is not a multiple of 8 for byte stream values

function HEXA_VALUE ( FROM_BUFFER : NUMERIC_TYPES.BYTE_ARRAY; AT_LOCATION : NATURAL; WITH_LENGTH : POSITIVE) return T_HEXA_STRING; –– DESCRIPTION –– This function returns the hexadecimal value stored in the –– specified binary buffer at the specified location (0..n bits)

–– with the specified length (in bits). The hexadecimal string –– is returned with a minimum of characters ( no leading zeros,

Page 124: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

115

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– no hex–ID like 16#00# or 0x00, all bits 0’s = a single ”0” )

–– EXCEPTIONS –– LENGTH_MISMATCH : –– The area defined by the location and length is exceeding –– the size of the binary buffer or the extracted hexadecimalvalue –– exceeds the maximum no. of characters of the return value.

function BINARY_BUFFER ( FROM_BUFFER : NUMERIC_TYPES.BYTE_ARRAY; AT_LOCATION : NATURAL; WITH_LENGTH : POSITIVE) return NUMERIC_TYPES.BYTE_ARRAY; –– DESCRIPTION –– This function returns a binary buffer stored at the –– specified position out of the binary buffer specified –– as first parameter. Byte alignment of the specified –– location is not required. –– Note: A CONSTRAINT_ERROR will be raised at the level of the –– calling program, if the specified length is not excactly –– 8*(size of return buffer). The validity of WITH_LENGTH can’t –– be checked in this function. –– EXCEPTIONS –– LENGTH_MISMATCH : –– The area defined by the location and length is exceeding –– the size of the binary buffer or the specified length is not –– a multiple of 8 ( byte alignment for destination buffer ).

function PARAMETER( FROM_BUFFER : NUMERIC_TYPES.BYTE_ARRAY; AT_OFFSET : POSITIVE) return NUMERIC_TYPES.BIT; function PARAMETER( FROM_BUFFER : NUMERIC_TYPES.BYTE_ARRAY; AT_OFFSET : POSITIVE) return CHARACTER; function PARAMETER( FROM_BUFFER : NUMERIC_TYPES.BYTE_ARRAY; AT_OFFSET : POSITIVE; NUMBER_OF_BITS : NATURAL) return NUMERIC_TYPES.BITSET; function PARAMETER( FROM_BUFFER : NUMERIC_TYPES.BYTE_ARRAY; AT_OFFSET : POSITIVE; NUMBER_OF_BITS : NATURAL) return NUMERIC_TYPES.INTEGER32; function PARAMETER( FROM_BUFFER : NUMERIC_TYPES.BYTE_ARRAY; AT_OFFSET : POSITIVE;

Page 125: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

116

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

NUMBER_OF_BITS : NATURAL) return NUMERIC_TYPES.UNSIGNED_INTEGER32; function PARAMETER( FROM_BUFFER : NUMERIC_TYPES.BYTE_ARRAY; AT_OFFSET : POSITIVE) return NUMERIC_TYPES.SINGLE_FLOAT; function PARAMETER( FROM_BUFFER : NUMERIC_TYPES.BYTE_ARRAY; AT_OFFSET : POSITIVE) return NUMERIC_TYPES.DOUBLE_FLOAT; procedure GET_PARAMETER( FROM_BUFFER : in NUMERIC_TYPES.BYTE_ARRAY; AT_OFFSET : in POSITIVE; NUMBER_OF_BYTES : in NATURAL; BYTE_ARRAY : in out NUMERIC_TYPES.BYTE_ARRAY); ––DESCRIPTION ––These overloaded functions retrieve a value from the buffer ––AT_OFFSET with the given NUMBER_OF_BITS or NUMBER_OF_BYTES. ––Note: AT_OFFSET counts the bits in the buffer, starting with 1. ––EXCEPTIONS ––LENGTH_MISMATCH: ––raised if the offset + the length of the value is ––exceeding the length of the buffer ––or if the length is exceeding the length of the BYTE_STREAM(procedure ––GET_PARAMETER)

––––––––––––––––––––– –– Exceptions –––––––––––––––––––––

BUFFER_IS_CONSTRAINED : exception; LENGTH_MISMATCH : exception; VALUE_TYPE_MISMATCH : exception;

end ADT_BINARY_BUFFER;

Page 126: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

117

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.4 Calibration

Please note that this package is not allowed outside CGS by other Products than CMAS !!!

Informal Interface Description

The package calibration provides types to contain calibration and decalibration descriptions as well as pro-cedures to calibrate and decalibrate values based on these descriptions. Four types of (de)calibration mechan-isms are defined :

– conversion of analog values with a polynom (defined by coefficients);

– conversion of analog values with a curve defined by point pairs;

– conversion of discrete values into state codes, with an association table;

– conversion of byte stream values into strings, by extraction of substreams.

A Calibration Description is a composite type containing the following attributes :

– a calibration alternative,

– a list of coefficients, if the calibration is of type polynom,

– a point pairs curve description, if the calibration is of type point pairs, composed of :– a point pair list size,– a list of point pairs, composed of :– a raw value point;– a calibrated value point;

– an association table when the calibration alternative is DISCRETE, where each element is composedof :

– a raw value,– a corresponding state code value.

– an extraction description, if the calibration is of type string extraction, composed of :– a position (expressed as a number of characters) in the byte stream where the extraction has to begin,– a length (expressed as a number of characters) corresponding to the number of successive characters which have to be extracted from the raw byte stream.

The calibration description has packing and unpacking operations for machine independent internal representa-tion and to support inter process communication.

Also, a procedure is provided to internal represent a point pair (de)calibration curve more efficient so that the(de)calibration of data is performed quicker

Page 127: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

118

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Formal Interface Description

–––– CALIBRATION spec––––****************************************************************************––ABSTRACT–––– This package provides an abstract data type for the description of–– how enditem data is to be converted between raw and engineering–– values plus the procedures to do the transformation.–– The following operations for calibration and decalibration are provided:–– 1.) calibration: conversion of raw values –> engineering values –– (described by point_pairs)–– 2.) decalibration: conversion of engineering values –> raw values –– (described by point_pairs)–– 3.) calibration: conversion of raw values –> engineering values –– (described by a polynominal curves)–– 4.) decalibration: conversion of engineering values –> raw values –– (described by a polynominal curves)–– 5.) calibration: conversion of Integer32 –> State_Code –– (described by discrete point pairs)–– 6.) decalibration: conversion of State_Code –> Integer32 –– (described by discrete point pairs)–– 7.) calibration: conversion of Dynamic_String –> Dynamic_String –– (”substrings” argument)–– 8.) calibration: conversion of BIT/INTEGER32 –> BOOLEAN–– 9.) decalibration: conversion of BOOLEAN –> BIT/INTEGER32––10.) calibration: conversion of raw values –> engineering values –– (described by a identical mapping)––11.) decalibration: conversion of engineering values –> raw values –– (described by a identical mapping)–– The package is a combination of the former VCS packages–– ADT_CALIBRATION_DESCRIPTION and CALIBRATE. However, since this –– version is now intended for use in the CSS product also, the data–– types of raw and enmgineering values have been changed from–– ADT_RAW_VALUE / ADT_ENGINEERING_VALUE to types provided by–– NUMERIC_TYPES. Also, the exceptions have been streamlined.––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––IDENTIFICATION–––– PROJECT NAME : CGS–– PRODUCT NAME : HCI–– CI–NUMBER : 1216878–– OBJECT NAME : VICOS_ADTS––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––CONTENTS–––– LANGUAGE : Ada–– SPECIAL CONTENTS:–– CHANGE HISTORY––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– IRN–8109 / SPR–7132–– creator: P.Athmann–– creation date: 25.05.00–– comment: IRN 8109 / CGS_4.4.0–– Extend Discrete Calibration to allow for ranges–– Increase number of discrete pairs to a maximim of 256 –– Allow for 0 gradients in analog point pairs (SPR–7231)––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– PIRN 8037–– creator: P.Hartmann

Page 128: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

119

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– creation date: 05.11.98–– comment: IRN 8036––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– PDB/ClearCase, CGS V4.1 at DASA RI–– 20.Aug.98: COL–RIBRE–IRN–CGS–8022–– Add (de–)calibration for signed <–> unsigned integer––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V16.1 at Central Repository at DASA RI–– creator: tommy (on host aiv_tn2)–– creation date: 09.12.96 16:56:44–– comment:––––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.7 at Central Repository at DASA RI (CGS V3 development)–– creator: cssproma (on host ada_s)–– creation date: 09.01.96 16:40:03–– comment:–– –– introduced new functions, see PIRN COL–RIBRE–IRN–CGS–3091–– –– adapted comments and body code, see SPR COL–RIBRE–SPR–CGS–2051––––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.6 at Central Repository at DASA RI (CGS V3 development)–– creator: A.Schulz–– creation date: 08.01.96–– comment:–– introduced new functions, see PIRN COL–RIBRE–IRN–CGS–3091–– adapted comments and body code, see SPR COL–RIBRE–SPR–CGS–2051––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.5 at Central Repository at DASA RI (CGS V3 development)–– creator: css_test (on host csf_1)–– creation date: 19.12.95 09:01:11–– comment:–– introduced new functions, see PIRN COL–RIBRE–IRN–CGS–3091––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.4 at Central Repository at DASA RI (CGS V3 development)–– creator: css_test (on host csf_1)–– creation date: 31.08.95 16:50:52–– comment:–– PIRN COL–RIBRE–IRN–CGS–3032 1/H––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.3 at Central Repository at DASA RI (CGS V3 development)–– creator: css_test (on host csf_1)–– creation date: 31.08.95–– comment:–– new baseline according to PIRN COL–RIBRE–IRN–CGS–3032 1/H––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.2 at Central Repository at DASA RI (CGS V3 development)–– creator: athmann (on host vicos_5)–– creation date: 02.06.95 18:32:03–– comment:–– Constant UNDEFINED_MAPPING changed to NULL_CALIBRATION_DECALIBRATION––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.2 at Central Repository at DASA RI (CGS V3 development)–– creator: css_test (on host csf_1)–– creation date: 02.06.95 13:31:06

Page 129: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

120

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– comment:–– new baseline according to PIRN COL–RIBRE–IRN–CGS–3032 1/F––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V1.0 at Central Repository V4 (CGS build2 development)–– creator: gehrke (on host mps2s–1)–– creation date: 16.05.95 11:00:00–– comment:–– COL_RIBRE–IRN–3032/E–– END HISTORY

––****************************************************************************––

with MPS_DEFINITIONS;with NUMERIC_TYPES; with ADT_PACKING;

package CALIBRATION is

––––––––––––––––––––– Exceptions–––––––––––––––––––

––––– due to invalid runtime data –––––––––––––––––––––––

–– raised for invalid input data to (de–)calibrated:VALUE_OUT_OF_RANGE: exception;

––––– due to invalid configuration data resp. usage –––––

–– raised by SET_xxx_(DE–)CALIBRATION when SW types are invalid–– for calibration alternative: ARGUMENT_ERROR: exception;

–– raised by (DE–)CALIBRATED when calibration description was defined–– for other direction:ILLEGAL_MAPPING_KIND: exception;

–– raised when input calibration description is incomplete–– or parameters for SET_xx_(DE)CALIBRATION are invalid:ILLEGAL_CALIB_DECALIB_DEFINITION: exception;

–– raised by INVERT when inversion is impossible:NOT_INVERTABLE: exception;

–– raised when description alternative or SW type –– is illegal for current operation:CALIBRATION_TYPE_MISMATCH: exception;

––––––––––––––––––––––––––––––––––––––––––––––––––– Constants–––––––––––––––––––––––––––––––––––––––––––––––––

MAX_POLYNOM_COEFFICIENTS : constant integer := 5;MAX_POINT_PAIRS : constant integer := 20;MAX_STATE_CODES : constant integer := 257; –– 256 statecodes from MDB –– + 1 reserved for ”OTHER”–– kept for compatibilityMAX_BYTESTREAM : constant integer := MPS_DEFINITIONS.MAX_RAW_STRING_LENGTH;

––––––––––––––––––––– Types–––––––––––––––––––

Page 130: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

121

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

type MAPPING_KIND is (CALIBRATION, DECALIBRATION);

type CALIBRATION_ALTERNATIVES is ( UNDEFINED, POLYNOM, POINT_PAIRS, DISCRETE, BOOLEAN_CAL, SUBSTRING, CONSTANT_CAL);

–– The calibration alternative indicates how calibration shall be done:–– – the curve is a polynom,–– – the curve is a point pairs curve,–– – a discrete association table is used,–– – string extraction is used,–– – default mapping used dependant on type of engineering and raw value

subtype POLYNOM_INDEX is integer range 0 .. MAX_POLYNOM_COEFFICIENTS – 1;subtype ANALOG_POINT_PAIR_INDEX is integer range 1 .. MAX_POINT_PAIRS;subtype DISCRETE_POINT_PAIR_INDEX is integer range 1 .. MAX_STATE_CODES;subtype BYTESTREAM_INDEX is integer range 1 .. MAX_BYTESTREAM;

type POLYNOM_COEFFICIENTS is array ( POLYNOM_INDEX ) of NUMERIC_TYPES.DOUBLE_FLOAT;

type ANALOG_POINT_PAIR is record RAW_POINT : NUMERIC_TYPES.DOUBLE_FLOAT; CAL_POINT : NUMERIC_TYPES.DOUBLE_FLOAT;end record;

type ANALOG_POINT_PAIR_ARRAY is array ( ANALOG_POINT_PAIR_INDEX range <>) of ANALOG_POINT_PAIR;

type DISCRETE_POINT_PAIR is record RANGE_DEFINED : BOOLEAN:= FALSE; –– True if range is defined. –– False if single value given in DISCRETE_VALUE DISCRETE_VALUE : NUMERIC_TYPES.INTEGER32; HIGH_DISCRETE_VALUE : NUMERIC_TYPES.INTEGER32; –– high value for range STATECODE_VALUE : MPS_DEFINITIONS.STATE_CODE;end record;

type DISCRETE_POINT_PAIR_ARRAY is array ( DISCRETE_POINT_PAIR_INDEX range <>) of DISCRETE_POINT_PAIR;

type CALIBRATION_DECALIBRATION_TYPE is private;–– The private type which describes how calibration as well as decalibration–– shall be done. In favor of brevity, no separate decalibration type is–– provided since anyhow all internals of calibration/decalibration are–– the same.

NULL_CALIBRATION_DECALIBRATION: constant CALIBRATION_DECALIBRATION_TYPE;

––––––––––––––––––––––––––––––––––––––––––––––––– write operations–––––––––––––––––––––––––––––––––––––––––––––––

procedure SET_CONSTANT_CALIBRATION ( OF_CAL_DESCR: in out CALIBRATION_DECALIBRATION_TYPE; RAW_VALUE_DESCRIPTOR: in MPS_DEFINITIONS.T_SW_TYPE_DESCRIPTOR; ENG_VALUE_DESCRIPTOR: in MPS_DEFINITIONS.T_SW_TYPE_DESCRIPTOR);–– DESCRIPTION

Page 131: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

122

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– This procedure sets an identical calibration for all raw and engineering –– values of type integer, unsigned_integer32, real and long_real :–– calibrated value = raw value–– The calibration alternative is set to CONSTANT_CAL internally–– Also, the allowed ranges for the engineering and raw values as well–– as their type are set from the input value descriptors.–– Note that the parameters of type ”MPS_DEFINITIONS.T_SW_TYPE_DESCRIPTOR” –– contains a component called ”engineering_unit”, which is not used here.–– EXCEPTIONS:–– ARGUMENT_ERROR: raised, if–– – raw or engineering type is not legal for constant calibration–– ILLEGAL_CALIB_DECALIB_DEFINITION: raised, if–– – raw or engineering range is empty (first>=last)

procedure SET_POLYNOM_CALIBRATION ( OF_CAL_DESCR: in out CALIBRATION_DECALIBRATION_TYPE; COEFFICIENTS: in POLYNOM_COEFFICIENTS; RAW_VALUE_DESCRIPTOR: in MPS_DEFINITIONS.T_SW_TYPE_DESCRIPTOR; ENG_VALUE_DESCRIPTOR: in MPS_DEFINITIONS.T_SW_TYPE_DESCRIPTOR);

–– DESCRIPTION–– This procedure sets the polynom calibration coefficients of–– the specified calibration description for all raw and engineering –– values of type integer, unsigned_integer32, real and long_real.–– The calibration alternative is set to POLYNOM internally–– Also, the allowed ranges for the engineering and raw values as well–– as their type are set from the input value descriptors.–– Note that the parameters of type ”MPS_DEFINITIONS.T_SW_TYPE_DESCRIPTOR” –– contains a component called ”engineering_unit”, which is not used here.–– EXCEPTIONS–– ARGUMENT_ERROR: raised, if–– – raw or engineering type is not legal for polynom calibration–– ILLEGAL_CALIB_DECALIB_DEFINITION: raised, if–– – raw or engineering range is empty (first>=last)

procedure SET_POINT_PAIR_CALIBRATION ( OF_CAL_DESCR: in out CALIBRATION_DECALIBRATION_TYPE; POINT_PAIRS: in ANALOG_POINT_PAIR_ARRAY; RAW_VALUE_DESCRIPTOR: in MPS_DEFINITIONS.T_SW_TYPE_DESCRIPTOR; ENG_VALUE_DESCRIPTOR: in MPS_DEFINITIONS.T_SW_TYPE_DESCRIPTOR);

–– DESCRIPTION–– This procedure sets the analog calibration point pairs of–– the specified calibration description for all raw and engineering –– values of type integer, unsigned_integer32, real and long_real.–– The calibration alternative is set to POINT_PAIRS internally–– Also, the allowed ranges for the engineering and raw values as well–– as their type are set from the input value descriptors.–– Note that the parameters of type ”MPS_DEFINITIONS.T_SW_TYPE_DESCRIPTOR” –– contains a component called ”engineering_unit”, which is not used here.–– EXCEPTIONS–– ARGUMENT_ERROR: raised, if–– – raw or engineering type is not legal for point pair calibration–– ILLEGAL_CALIB_DECALIB_DEFINITION: raised, if–– – raw or engineering range is empty (first>=last)–– – less than 2 or more than MAX_POINT_PAIRS point pairs provided–– – two adjacent raw values are identical–– VALUE_OUT_OF_RANGE: raised, if–– – any raw or engineering value is out of range

procedure SET_DISCRETE_CALIBRATION ( OF_CAL_DESCR: in out CALIBRATION_DECALIBRATION_TYPE; POINT_PAIRS: in DISCRETE_POINT_PAIR_ARRAY; RAW_VALUE_TYPE: in MPS_DEFINITIONS.T_SW_TYPE);

Page 132: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

123

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– DESCRIPTION–– This procedure sets the discrete calibration point pairs of–– the specified calibration description for all raw values –– of type integer and unsigned_integer32.–– Note that the first entry within the list of state_codes denotes–– the value which will be returned by the calibration operations–– in case no valid state_code is found.–– Internally, the following actions are performed automatically:–– => the calibration alternative is set to DISCRETE –– => the raw value descriptor is set dependant –– on the RAW_VALUE_TYPE: –– SW_TYPE := RAW_VALUE_TYPE–– with range: SW_TYPE’FIRST..SW_TYPE’LAST–– => the engineering value descriptor is set to –– SW_TYPE := STATE_CODE_TYPE–– STATE_CODE_LIST:= <list of state codes>–– EXCEPTIONS–– ARGUMENT_ERROR: raised, if–– – raw type is not legal for discrete calibration–– ILLEGAL_CALIB_DECALIB_DEFINITION: raised, if–– – less than 2 or more than MAX_STATE_CODES point pairs provided–– – two raw values are identical

procedure SET_BOOLEAN_CALIBRATION ( OF_CAL_DESCR: in out CALIBRATION_DECALIBRATION_TYPE; BY_TRUE: in NUMERIC_TYPES.BIT; BY_FALSE: in NUMERIC_TYPES.BIT);

–– DESCRIPTION–– This procedure sets the bit–to–boolean mapping for calibration of–– the specified calibration description.–– Internally, the following actions are performed automatically:–– => the calibration alternative is set to BOOLEAN_CAL –– => the raw value descriptor is set to –– SW_TYPE := INTEGER_TYPE–– with range: 0..1–– => the engineering value descriptor is set to –– SW_TYPE := BOOLEAN_TYPE–– EXCEPTIONS–– ILLEGAL_CALIB_DECALIB_DEFINITION: raised, if–– – BY_TRUE and BY_FALSE are identical

procedure SET_BOOLEAN_CALIBRATION ( OF_CAL_DESCR: in out CALIBRATION_DECALIBRATION_TYPE; BY_TRUE: in NUMERIC_TYPES.INTEGER32; BY_FALSE: in NUMERIC_TYPES.INTEGER32);

–– DESCRIPTION–– This procedure sets the integer32–to–boolean mapping for calibration of–– the specified calibration description.–– Internally, the following actions are performed automatically:–– => the calibration alternative is set to BOOLEAN_CAL –– => the raw value descriptor is set to –– SW_TYPE := INTEGER_TYPE–– with range: 0..2GB–– => the engineering value descriptor is set to –– SW_TYPE := BOOLEAN_TYPE–– EXCEPTIONS–– ILLEGAL_CALIB_DECALIB_DEFINITION: raised, if–– – BY_TRUE and BY_FALSE are identical

procedure SET_BYTESTREAM_CALIBRATION ( OF_CAL_DESCR: in out CALIBRATION_DECALIBRATION_TYPE;

Page 133: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

124

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

START_POINT: in BYTESTREAM_INDEX; SUBSTRING_LENGTH: in BYTESTREAM_INDEX);

–– DESCRIPTION–– This procedure sets the substring start point and length values of–– the specified calibration description.–– Internally, the following actions are performed automatically:–– => the calibration alternative is set to SUBSTRING –– => the raw value descriptor is set to –– SW_TYPE := STRING_TYPE–– with STRING_SIZE: START_POINT + SUBSTRING_LENGTH – 1–– (minimum length required for calibration)–– => the engineering value descriptor is set to –– SW_TYPE := STRING_TYPE–– with STRING_SIZE: SUBSTRING_LENGTH–– EXCEPTIONS–– ILLEGAL_CALIB_DECALIB_DEFINITION: raised, if–– – START_POINT + SUBSTRING_LENGTH – 1 > MAX_BYTESTREAM

procedure SET_CONSTANT_DECALIBRATION ( OF_CAL_DESCR: in out CALIBRATION_DECALIBRATION_TYPE; RAW_VALUE_DESCRIPTOR: in MPS_DEFINITIONS.T_SW_TYPE_DESCRIPTOR; ENG_VALUE_DESCRIPTOR: in MPS_DEFINITIONS.T_SW_TYPE_DESCRIPTOR);–– DESCRIPTION–– This procedure sets an identical decalibration for all raw and engineering –– values of type integer, unsigned_integer32, real and long_real :–– calibrated value = raw value–– The calibration alternative is set to CONSTANT_CAL internally–– Also, the allowed ranges for the engineering and raw values as well–– as their type are set from the input value descriptors.–– Note that the parameters of type ”MPS_DEFINITIONS.T_SW_TYPE_DESCRIPTOR” –– contains a component called ”engineering_unit”, which is not used here.–– EXCEPTIONS:–– ARGUMENT_ERROR: raised, if–– – raw or engineering type is not legal for constant calibration–– ILLEGAL_CALIB_DECALIB_DEFINITION: raised, if–– – raw or engineering range is empty (first>=last)

procedure SET_POLYNOM_DECALIBRATION ( OF_CAL_DESCR: in out CALIBRATION_DECALIBRATION_TYPE; COEFFICIENTS: in POLYNOM_COEFFICIENTS; RAW_VALUE_DESCRIPTOR: in MPS_DEFINITIONS.T_SW_TYPE_DESCRIPTOR; ENG_VALUE_DESCRIPTOR: in MPS_DEFINITIONS.T_SW_TYPE_DESCRIPTOR);–– DESCRIPTION–– This procedure sets the polynom decalibration coefficients of–– the specified calibration description for all raw and engineering –– values of type integer, unsigned_integer32, real and long_real.–– The calibration alternative is set to POLYNOM internally–– Also, the allowed ranges for the engineering and raw values as well–– as their type are set from the input value descriptors.–– Note that the parameters of type ”MPS_DEFINITIONS.T_SW_TYPE_DESCRIPTOR” –– contains a component called ”engineering_unit”, which is not used here.–– EXCEPTIONS–– ARGUMENT_ERROR: raised, if–– – raw or engineering type is not legal for polynom calibration–– ILLEGAL_CALIB_DECALIB_DEFINITION: raised, if–– – raw or engineering range is empty (first>=last)

procedure SET_POINT_PAIR_DECALIBRATION ( OF_CAL_DESCR: in out CALIBRATION_DECALIBRATION_TYPE; POINT_PAIRS: in ANALOG_POINT_PAIR_ARRAY; RAW_VALUE_DESCRIPTOR: in MPS_DEFINITIONS.T_SW_TYPE_DESCRIPTOR; ENG_VALUE_DESCRIPTOR: in MPS_DEFINITIONS.T_SW_TYPE_DESCRIPTOR);–– DESCRIPTION

Page 134: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

125

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– This procedure sets the analog decalibration point pairs of–– the specified calibration description for all raw and engineering –– values of type integer, unsigned_integer32, real and long_real.–– The calibration alternative is set to POINT_PAIRS internally–– Also, the allowed ranges for the engineering and raw values as well–– as their type are set from the input value descriptors.–– Note that the parameters of type ”MPS_DEFINITIONS.T_SW_TYPE_DESCRIPTOR” –– contains a component called ”engineering_unit”, which is not used here.–– EXCEPTIONS–– ARGUMENT_ERROR: raised, if–– – raw or engineering type is not legal for point pair calibration–– ILLEGAL_CALIB_DECALIB_DEFINITION: raised, if–– – raw or engineering range is empty (first>=last)–– – less than 2 or more than MAX_POINT_PAIRS point pairs provided–– – two adjacent engineering values are identical–– VALUE_OUT_OF_RANGE: raised, if–– – any raw or engineering value is out of range

procedure SET_DISCRETE_DECALIBRATION ( OF_CAL_DESCR: in out CALIBRATION_DECALIBRATION_TYPE; POINT_PAIRS: in DISCRETE_POINT_PAIR_ARRAY; RAW_VALUE_TYPE: in MPS_DEFINITIONS.T_SW_TYPE);–– DESCRIPTION–– This procedure sets the discrete decalibration point pairs of–– the specified calibration description for all raw values –– of type integer and unsigned_integer32.–– Internally, the following actions are performed automatically:–– => the calibration alternative is set to DISCRETE –– => the raw value descriptor is set dependant –– on the RAW_VALUE_TYPE: –– SW_TYPE := RAW_VALUE_TYPE–– with range: SW_TYPE’FIRST..SW_TYPE’LAST–– => the engineering value descriptor is set to –– SW_TYPE := STATE_CODE_TYPE–– STATE_CODE_LIST:= <list of state codes>–– EXCEPTIONS–– ARGUMENT_ERROR: raised, if–– – raw type is not legal for discrete calibration–– ILLEGAL_CALIB_DECALIB_DEFINITION: raised, if–– – less than 2 or more than MAX_STATE_CODES point pairs provided–– – two state code values are identical

procedure SET_BOOLEAN_DECALIBRATION ( OF_CAL_DESCR: in out CALIBRATION_DECALIBRATION_TYPE; BY_TRUE: in NUMERIC_TYPES.BIT; BY_FALSE: in NUMERIC_TYPES.BIT);–– DESCRIPTION–– This procedure sets the bit–to–boolean mapping for decalibration of–– the specified calibration description.–– Internally, the following actions are performed automatically:–– => the calibration alternative is set to BOOLEAN_CAL –– => the raw value descriptor is set to –– SW_TYPE := INTEGER_TYPE–– with range: 0..1–– => the engineering value descriptor is set to –– SW_TYPE := BOOLEAN_TYPE–– EXCEPTIONS–– ILLEGAL_CALIB_DECALIB_DEFINITION: raised, if–– – BY_TRUE and BY_FALSE are identical

procedure SET_BOOLEAN_DECALIBRATION ( OF_CAL_DESCR: in out CALIBRATION_DECALIBRATION_TYPE; BY_TRUE: in NUMERIC_TYPES.INTEGER32; BY_FALSE: in NUMERIC_TYPES.INTEGER32);

Page 135: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

126

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– DESCRIPTION–– This procedure sets the integer32–to–boolean mapping for decalibration of–– the specified calibration description.–– Internally, the following actions are performed automatically:–– => the calibration alternative is set to BOOLEAN_CAL –– => the raw value descriptor is set to –– SW_TYPE := INTEGER_TYPE–– with range: 0..2GB–– => the engineering value descriptor is set to –– SW_TYPE := BOOLEAN_TYPE–– EXCEPTIONS–– ILLEGAL_CALIB_DECALIB_DEFINITION: raised, if–– – BY_TRUE and BY_FALSE are identical

procedure DEALLOCATE_CALIB(GARBAGE: in out CALIBRATION_DECALIBRATION_TYPE);–– DESCRIPTION–– This procedure removes a previously defined calibration/decalibration description–– completely.–– EXCEPTIONS–– none

–––––––––––––––––––––––––––––––––––––––––––––––– read operations for calibration attributes––––––––––––––––––––––––––––––––––––––––––––––

function GET_CALIBRATION_ALTERNATIVE ( OF_CAL_DESCR: CALIBRATION_DECALIBRATION_TYPE) return CALIBRATION_ALTERNATIVES;–– DESCRIPTION–– This function returns the calibration alternative of the –– specified (de)calibration description; UNDEFINED when empty.–– When in doubt, call this procedure first to make sure that–– OF_CAL_DESCR has been defined. All other GET_xxx will raise–– an exception when OF_CAL_DESCR is empty.–– EXCEPTIONS–– None.

function GET_MAPPING_KIND ( OF_CAL_DESCR: in CALIBRATION_DECALIBRATION_TYPE) return MAPPING_KIND;–– DESCRIPTION–– This function returns the mapping kind of the specified (de)calibration–– description, i.e. whether the provided description may be used for–– calibration or decalibration–– EXCEPTIONS–– ILLEGAL_CALIB_DECALIB_DEFINITION: raised if–– – the (de)calibration description is empty/undefined.

function GET_RAW_VALUE_DESCRIPTOR ( OF_CAL_DESCR: in CALIBRATION_DECALIBRATION_TYPE) return MPS_DEFINITIONS.T_SW_TYPE_DESCRIPTOR;–– DESCRIPTION–– This function returns the raw value descriptor of the –– specified (de)calibration description containing the type and ranges–– EXCEPTIONS–– ILLEGAL_CALIB_DECALIB_DEFINITION: raised if–– – the (de)calibration description is empty/undefined.–– – the raw value descriptor is empty/undefined.

function GET_ENG_VALUE_DESCRIPTOR ( OF_CAL_DESCR: in CALIBRATION_DECALIBRATION_TYPE) return MPS_DEFINITIONS.T_SW_TYPE_DESCRIPTOR;–– DESCRIPTION–– This function returns the engineering value descriptor of the

Page 136: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

127

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– specified (de)calibration description containing the type and ranges–– EXCEPTIONS–– ILLEGAL_CALIB_DECALIB_DEFINITION: raised if–– – the (de)calibration description is empty/undefined.–– – the engineering value descriptor is empty/undefined.

function GET_POLYNOM_COEFFICIENTS ( OF_CAL_DESCR: in CALIBRATION_DECALIBRATION_TYPE) return POLYNOM_COEFFICIENTS;–– DESCRIPTION–– This function returns the polynom coefficients of the –– specified (de)calibration description.–– EXCEPTIONS–– CALIBRATION_TYPE_MISMATCH: raised if–– – the calibration alternative of the specified description is not POLYNOM.–– ILLEGAL_CALIB_DECALIB_DEFINITION: raised if–– – the coefficients array is empty/undefined.–– – the (de)calibration description is empty/undefined.

function GET_ANALOG_POINT_PAIRS ( OF_CAL_DESCR: in CALIBRATION_DECALIBRATION_TYPE) return ANALOG_POINT_PAIR_ARRAY;–– DESCRIPTION–– This function returns the polynom coefficients of the –– specified (de)calibration description.–– EXCEPTIONS–– CALIBRATION_TYPE_MISMATCH: raised if–– – the calibration alternative of the specified description is not POINT_PAIRS.–– ILLEGAL_CALIB_DECALIB_DEFINITION: raised if–– – the point pair array is empty/undefined.–– – the (de)calibration description is empty/undefined.

function GET_DISCRETE_POINT_PAIRS ( OF_CAL_DESCR: in CALIBRATION_DECALIBRATION_TYPE) return DISCRETE_POINT_PAIR_ARRAY;–– DESCRIPTION–– This function returns the discrete point pairs of the –– specified (de)calibration description.–– EXCEPTIONS–– CALIBRATION_TYPE_MISMATCH: raised if–– – the calibration alternative of the specified description is not DISCRETE.–– ILLEGAL_CALIB_DECALIB_DEFINITION: raised if–– – the point pair array is empty/undefined.–– – the (de)calibration description is empty/undefined.

function GET_BOOLEAN_BY_TRUE_VALUE ( OF_CAL_DESCR: in CALIBRATION_DECALIBRATION_TYPE) return NUMERIC_TYPES.BIT;–– DESCRIPTION–– This function returns the bit representation for ”TRUE” of the –– specified boolean (de)calibration description.–– EXCEPTIONS–– CALIBRATION_TYPE_MISMATCH: raised if–– – the calibration alternative of the specified description is not BOOLEAN_TYPE.–– ILLEGAL_CALIB_DECALIB_DEFINITION: raised if–– – the (de)calibration description is empty/undefined.

function GET_BOOLEAN_BY_TRUE_VALUE ( OF_CAL_DESCR: in CALIBRATION_DECALIBRATION_TYPE) return NUMERIC_TYPES.INTEGER32;–– DESCRIPTION–– This function returns the integer representation for ”TRUE” of the –– specified boolean (de)calibration description.–– EXCEPTIONS

Page 137: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

128

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– CALIBRATION_TYPE_MISMATCH: raised if–– – the calibration alternative of the specified description is not BOOLEAN_TYPE.–– ILLEGAL_CALIB_DECALIB_DEFINITION: raised if–– – the (de)calibration description is empty/undefined.

function GET_BOOLEAN_BY_FALSE_VALUE ( OF_CAL_DESCR: in CALIBRATION_DECALIBRATION_TYPE) return NUMERIC_TYPES.BIT;–– DESCRIPTION–– This function returns the bit representation for ”FALSE” of the –– specified boolean (de)calibration description.–– EXCEPTIONS–– CALIBRATION_TYPE_MISMATCH: raised if–– – the calibration alternative of the specified description is not BOOLEAN_TYPE.–– ILLEGAL_CALIB_DECALIB_DEFINITION: raised if–– – the (de)calibration description is empty/undefined.

function GET_BOOLEAN_BY_FALSE_VALUE ( OF_CAL_DESCR: in CALIBRATION_DECALIBRATION_TYPE) return NUMERIC_TYPES.INTEGER32;–– DESCRIPTION–– This function returns the integer representation for ”FALSE” of the –– specified boolean (de)calibration description.–– EXCEPTIONS–– CALIBRATION_TYPE_MISMATCH: raised if–– – the calibration alternative of the specified description is not BOOLEAN_TYPE.–– ILLEGAL_CALIB_DECALIB_DEFINITION: raised if–– – the (de)calibration description is empty/undefined.

function GET_START_POINT ( OF_CAL_DESCR: in CALIBRATION_DECALIBRATION_TYPE) return BYTESTREAM_INDEX;–– DESCRIPTION–– This function returns the start position of the –– specified bytestream (de)calibration description.–– EXCEPTIONS–– CALIBRATION_TYPE_MISMATCH: raised if–– – the calibration alternative of the specified description is not SUBSTRING.–– ILLEGAL_CALIB_DECALIB_DEFINITION: raised if–– – the (de)calibration description is empty/undefined.

function GET_SUBSTRING_LENGTH ( OF_CAL_DESCR: in CALIBRATION_DECALIBRATION_TYPE) return BYTESTREAM_INDEX;–– DESCRIPTION–– This function returns the length of the –– specified bytestream (de)calibration description.–– EXCEPTIONS–– CALIBRATION_TYPE_MISMATCH: raised if–– – the calibration alternative of the specified description is not SUBSTRING.–– ILLEGAL_CALIB_DECALIB_DEFINITION: raised if–– – the (de)calibration description is empty/undefined.

––––––––––––––––––––––––––––––––––––––––––– Pack & Unpack operations–––––––––––––––––––––––––––––––––––––––––

procedure PACK ( VALUE: in CALIBRATION_DECALIBRATION_TYPE ; BLOCK: in out ADT_PACKING.T_BLOCK );–– DESCRIPTION–– This procedure packs the specified (de)calibration description–– variable into a contiguous memory block.–– EXCEPTIONS

Page 138: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

129

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– CONSTRAINT_ERROR: raised if–– – any mandatory component of the (de)calibration description–– is empty/undefined.–– ADT_PACKING Exceptions : NOT_ENOUGH_SPACE–– BLOCK_READ_ERROR

procedure UNPACK ( BLOCK: in out ADT_PACKING.T_BLOCK ; VALUE: out CALIBRATION_DECALIBRATION_TYPE );–– DESCRIPTION–– This procedure unpacks the specified memory block into–– a (de)calibration description variable.–– EXCEPTIONS–– ADT_PACKING Exceptions : NOT_ENOUGH_PACKED_DATA–– BLOCK_WRITE_ERROR–– ADT_ID_CHECK_FAILURE

function SIZE_NEEDED (VALUE : CALIBRATION_DECALIBRATION_TYPE) return ADT_PACKING.T_PACK_INDEX;–– DESCRIPTION–– This function calculates the actual size needed for packing the–– supplied VALUE

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– operations to calibrate and decalibrate values–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

function CALIBRATED(RAW_VALUE : NUMERIC_TYPES.DOUBLE_FLOAT; CAL_DESCR : CALIBRATION_DECALIBRATION_TYPE) return NUMERIC_TYPES.DOUBLE_FLOAT;function CALIBRATED(RAW_VALUE : NUMERIC_TYPES.UNSIGNED_INTEGER32; CAL_DESCR : CALIBRATION_DECALIBRATION_TYPE) return NUMERIC_TYPES.DOUBLE_FLOAT;function CALIBRATED(RAW_VALUE : NUMERIC_TYPES.INTEGER32; CAL_DESCR : CALIBRATION_DECALIBRATION_TYPE) return NUMERIC_TYPES.DOUBLE_FLOAT; function CALIBRATED(RAW_VALUE : NUMERIC_TYPES.SINGLE_FLOAT; CAL_DESCR : CALIBRATION_DECALIBRATION_TYPE) return NUMERIC_TYPES.SINGLE_FLOAT;function CALIBRATED(RAW_VALUE : NUMERIC_TYPES.UNSIGNED_INTEGER32; CAL_DESCR : CALIBRATION_DECALIBRATION_TYPE) return NUMERIC_TYPES.SINGLE_FLOAT;function CALIBRATED(RAW_VALUE : NUMERIC_TYPES.INTEGER32; CAL_DESCR : CALIBRATION_DECALIBRATION_TYPE) return NUMERIC_TYPES.SINGLE_FLOAT; function CALIBRATED(RAW_VALUE : NUMERIC_TYPES.UNSIGNED_INTEGER32; CAL_DESCR : CALIBRATION_DECALIBRATION_TYPE) return NUMERIC_TYPES.UNSIGNED_INTEGER32; function CALIBRATED(RAW_VALUE : NUMERIC_TYPES.INTEGER32; CAL_DESCR : CALIBRATION_DECALIBRATION_TYPE) return NUMERIC_TYPES.INTEGER32;

function CALIBRATED(RAW_VALUE : NUMERIC_TYPES.UNSIGNED_INTEGER32; CAL_DESCR : CALIBRATION_DECALIBRATION_TYPE) return NUMERIC_TYPES.INTEGER32;

function CALIBRATED(RAW_VALUE : NUMERIC_TYPES.INTEGER32; CAL_DESCR : CALIBRATION_DECALIBRATION_TYPE) return NUMERIC_TYPES.UNSIGNED_INTEGER32;

–– The following functions will return the first entry of the list of

Page 139: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

130

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– defined state_codes in case the provided value is not found (i.e. there–– is no correspondent state_code found for the provided raw value).–––– Procedures return statecode associated with DISCRETE_VALUE if no range is defined–– Procedures return statecode assoc. with range of DISCRETE_VALUE .. HIGH_DISCRETE_VALUE–– if range is defined and DISCRETE_VALUE <= raw_value <= HIGH_DISCRETE_VALUE

function CALIBRATED(RAW_VALUE : NUMERIC_TYPES.INTEGER32; CAL_DESCR : CALIBRATION_DECALIBRATION_TYPE) return MPS_DEFINITIONS.STATE_CODE;function CALIBRATED(RAW_VALUE : NUMERIC_TYPES.UNSIGNED_INTEGER32; CAL_DESCR : CALIBRATION_DECALIBRATION_TYPE) return MPS_DEFINITIONS.STATE_CODE;function CALIBRATED(RAW_VALUE : NUMERIC_TYPES.BIT; CAL_DESCR : CALIBRATION_DECALIBRATION_TYPE) return MPS_DEFINITIONS.STATE_CODE; function CALIBRATED(RAW_VALUE : NUMERIC_TYPES.BIT; CAL_DESCR : CALIBRATION_DECALIBRATION_TYPE) return BOOLEAN;function CALIBRATED(RAW_VALUE : NUMERIC_TYPES.INTEGER32; CAL_DESCR : CALIBRATION_DECALIBRATION_TYPE) return BOOLEAN;

function CALIBRATED(RAW_VALUE : STRING; CAL_DESCR : CALIBRATION_DECALIBRATION_TYPE) return STRING;

–– using functions returning types that do not fit in a register (>32 bits)–– causes heap access, use these equivalent procedures for speed

–– The procedures containing a state_code as OUT–parameter will return the–– first entry of the list of defined state_codes in case the provided value–– is not found (i.e. there is no correspondent state_code found for the–– provided raw value).

procedure CALIBRATE(RAW_VALUE : NUMERIC_TYPES.INTEGER32; CAL_DESCR : CALIBRATION_DECALIBRATION_TYPE; CAL_VALUE : out MPS_DEFINITIONS.STATE_CODE);procedure CALIBRATE(RAW_VALUE : NUMERIC_TYPES.UNSIGNED_INTEGER32; CAL_DESCR : CALIBRATION_DECALIBRATION_TYPE; CAL_VALUE : out MPS_DEFINITIONS.STATE_CODE);procedure CALIBRATE(RAW_VALUE : in NUMERIC_TYPES.BIT; CAL_DESCR : in CALIBRATION_DECALIBRATION_TYPE; CAL_VALUE : out MPS_DEFINITIONS.STATE_CODE);procedure CALIBRATE(RAW_VALUE : in MPS_DEFINITIONS.T_RAW_STRING; RAW_LENGTH : in natural; CAL_DESCR : in CALIBRATION_DECALIBRATION_TYPE; CAL_VALUE : out MPS_DEFINITIONS.T_ENGINEERING_STRING; CAL_LENGTH : out natural);

–– DESCRIPTION–– These functions calibrate raw values into engineering values–– according to a given calibration description:–– – analog raw values of type FLOAT (integers have to be converted–– to FLOATs anyhow...) are converted into analog FLOATs–– – discrete raw values (represented by their integers) are–– converted into state codes–– – string raw values are ”substringed” –– The calibration for polynom is done according to the following–– formula:–– Y = a(4)*X**4 + a(3)*X**3 + a(2)*X**2 + a(1)*X + a(0)–– where X = raw value, Y = calibrated value and–– a(0) .. a(4) = COEFFICIENTS 0 .. 4

Page 140: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

131

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– For calibration via point pairs linear interpolation –– is used.–– EXCEPTIONS:–– VALUE_OUT_OF_RANGE:–– – the raw or engineering value is out of range w.r.t. the defined–– limits of the calibration curve resp. discrete points.–– ILLEGAL_MAPPING_KIND:–– – the description was not created using SET_xxx_CALIBRATION–– ILLEGAL_CALIB_DECALIB_DEFINITION:–– – calibration description is incomplete–– CALIBRATION_TYPE_MISMATCH:–– – the calibration description does not match types–– of function argument and result

function DECALIBRATED(ENG_VALUE : NUMERIC_TYPES.DOUBLE_FLOAT; CAL_DESCR : CALIBRATION_DECALIBRATION_TYPE) return NUMERIC_TYPES.DOUBLE_FLOAT;function DECALIBRATED(ENG_VALUE : NUMERIC_TYPES.DOUBLE_FLOAT; CAL_DESCR : CALIBRATION_DECALIBRATION_TYPE) return NUMERIC_TYPES.UNSIGNED_INTEGER32;function DECALIBRATED(ENG_VALUE : NUMERIC_TYPES.DOUBLE_FLOAT; CAL_DESCR : CALIBRATION_DECALIBRATION_TYPE) return NUMERIC_TYPES.INTEGER32; function DECALIBRATED(ENG_VALUE : NUMERIC_TYPES.SINGLE_FLOAT; CAL_DESCR : CALIBRATION_DECALIBRATION_TYPE) return NUMERIC_TYPES.SINGLE_FLOAT;function DECALIBRATED(ENG_VALUE : NUMERIC_TYPES.SINGLE_FLOAT; CAL_DESCR : CALIBRATION_DECALIBRATION_TYPE) return NUMERIC_TYPES.UNSIGNED_INTEGER32;function DECALIBRATED(ENG_VALUE : NUMERIC_TYPES.SINGLE_FLOAT; CAL_DESCR : CALIBRATION_DECALIBRATION_TYPE) return NUMERIC_TYPES.INTEGER32; function DECALIBRATED(ENG_VALUE : NUMERIC_TYPES.UNSIGNED_INTEGER32; CAL_DESCR : CALIBRATION_DECALIBRATION_TYPE) return NUMERIC_TYPES.UNSIGNED_INTEGER32; function DECALIBRATED(ENG_VALUE : NUMERIC_TYPES.INTEGER32; CAL_DESCR : CALIBRATION_DECALIBRATION_TYPE) return NUMERIC_TYPES.INTEGER32;

function DECALIBRATED(ENG_VALUE : NUMERIC_TYPES.UNSIGNED_INTEGER32; CAL_DESCR : CALIBRATION_DECALIBRATION_TYPE) return NUMERIC_TYPES.INTEGER32;

function DECALIBRATED(ENG_VALUE : NUMERIC_TYPES.INTEGER32; CAL_DESCR : CALIBRATION_DECALIBRATION_TYPE) return NUMERIC_TYPES.UNSIGNED_INTEGER32; –– The following functions will raise the exception VALUE_OUT_OF_RANGE in–– case the provided value is not found (i.e. there–– is no correspondent raw value found for the provided state_code).–––– Procedures return DISCRETE_VALUE associated with ENG_VALUE if no range is defined–– If a range has been defined for a statecode, the low value (DISCRETE_POINT_PAIR.DIS-CRETE_VALUE)–– is returned.

function DECALIBRATED(ENG_VALUE : MPS_DEFINITIONS.STATE_CODE; CAL_DESCR : CALIBRATION_DECALIBRATION_TYPE) return NUMERIC_TYPES.INTEGER32;function DECALIBRATED(ENG_VALUE : MPS_DEFINITIONS.STATE_CODE; CAL_DESCR : CALIBRATION_DECALIBRATION_TYPE)

Page 141: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

132

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

return NUMERIC_TYPES.UNSIGNED_INTEGER32;function DECALIBRATED(ENG_VALUE : MPS_DEFINITIONS.STATE_CODE; CAL_DESCR : CALIBRATION_DECALIBRATION_TYPE) return NUMERIC_TYPES.BIT; function DECALIBRATED(ENG_VALUE : BOOLEAN; CAL_DESCR : CALIBRATION_DECALIBRATION_TYPE) return NUMERIC_TYPES.BIT;function DECALIBRATED(ENG_VALUE : BOOLEAN; CAL_DESCR : CALIBRATION_DECALIBRATION_TYPE) return NUMERIC_TYPES.INTEGER32;

–– DESCRIPTION–– These functions decalibrate engineering values into raw values–– according to a given decalibration description:–– – analog engineering values of type FLOAT (integers have to be converted–– to FLOATs anyhow...) are converted into analog FLOATs–– – state code engineering values are–– converted into integers (representing their discrete raw value)

–– The decalibration for polynom is done according to the following–– formula:–– Y = a(4)*X**4 + a(3)*X**3 + a(2)*X**2 + a(1)*X + a(0)–– where X = raw value, Y = calibrated value and–– a(0) .. a(4) = COEFFICIENTS 0 .. 4 –– For calibration via point pairs linear interpolation –– shall be used.–– EXCEPTIONS:–– VALUE_OUT_OF_RANGE:–– – the raw or engineering value is out of range w.r.t. the defined–– limits of the calibration curve resp. discrete points.–– ILLEGAL_MAPPING_KIND:–– – the description was not created using SET_xxx_DECALIBRATION–– – the calibration alternative does not match function argument and result–– ILLEGAL_CALIB_DECALIB_DEFINITION:–– – calibration description is incomplete–– – software types of raw and engineering value do not match types–– of function argument and result

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– operations to invert a calibration curve–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

function INVERT ( CAL_DESCR: CALIBRATION_DECALIBRATION_TYPE) return CALIBRATION_DECALIBRATION_TYPE;

–– DESCRIPTION–– This function converts a calibration/decalibration description into –– a decalibration/calibration description as follows:–– point pairs to point pairs–– discrete to discrete–– polynom to polynom or point pairs depending–– on the degree of the polynom––

–– EXCEPTION–– NOT_INVERTABLE: raised if –– the calibration alternative is set to UNDEFINED or SUBSTRING–– the calibration alternative is set to POINT_PAIRS or POLYNOM and the–– (de)calibration description is not strictly monotone–– the calibration alternative is set to DISCRETE and–– two different arguments have the same image–– or a range has been defined in an argument

Page 142: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

133

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– ILLEGAL_CALIB_DECALIB_DEFINITION: raised if–– – calibration description is incomplete

function IS_INVERTABLE ( CAL_DESCR: CALIBRATION_DECALIBRATION_TYPE) return boolean;–– DESCRIPTION–– This function checks if a (de)calibration mapping–– can be inverted (i.e. is strictly monotone and no range has been defined for astatecode)–– If the calibration description is invertable the value ”TRUE” is returned.–– EXCEPTION–– none

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

private

type INTERNAL_CALIB_DECALIB_TYPE ( THE_CALIBRATION_ALTERNATIVES: CALIBRATION_ALTERNATIVES);type CALIBRATION_DECALIBRATION_TYPE is access INTERNAL_CALIB_DECALIB_TYPE;

NULL_CALIBRATION_DECALIBRATION: constant CALIBRATION_DECALIBRATION_TYPE := null;

end CALIBRATION;

Page 143: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

134

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.5 TES DEFINITIONS

Informal Interface Description

A same set of data types are used in the various procedural interfaces provided by the TES product. In order toensure the consistency of their definition and usage through all the interfaces, they are grouped and defined once,in the current section.

They are ”basic” data types and constants (like numbers, strings, enumerations...) which are accessible directly.They constitute a type pool and are grouped into a set of Ada packages, according to their nature.

The usage of the basic data types is simple. The desired variable has to be declared with the desired type in thepiece of software which will use it. The access to the content of the variable is done directly, by knowledge ofits Ada structure.

This TES_DEFINITIONS package contains type and constant definitions that are :

– . specific of TES, i.e. not used or shared by several VICOS products,

– . common in TES, i.e. used or shared by several TES provided services,

– . of general nature, i.e. not specific to any of these services.

Page 144: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

135

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Formal Interface Description

–––– TES_DEFINITIONS––––****************************************************************************––ABSTRACT–––––– This package defines types and constants for TES––––––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––IDENTIFICATION–––– PROJECT NAME : CGS–– PRODUCT NAME : TES–– CI–NUMBER : 1216 843–– OBJECT NAME : TES_DEFINITIONS––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––CONTENTS–––– COMPILER : SunAda 1.1 /Alsys Ada 5.5.1–– LANGUAGE : Ada–– SPECIAL CONTENTS: ––– CHANGE HISTORY–––– creator: U.Maron–– creation date: 03.09.97–– comment:–– #PIRN: COL–RIBRE–IRN–CGS–7012 Issue 1/C: –– New return codes for SW commanding LOAD_SCOE.––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– creator: U.Maron–– creation date: 29.05.97–– comment:–– #PIRN: COL–RIBRE–IRN–CGS–7012 Issue 1/A: –– Provide definitions for replay mode.––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V5.1.1.1 at Central Repository at DASA RI–– creator: athmann (on host vicos_5)–– creation date: 17.09.96 18:20:14–– comment:–– #PIRN: COL–RIBRE–IRN–CGS–4014 Issue 1/A: –– Add new return codes––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V5.1.1.1 at Central Repository at DASA RI–– creator: athmann (on host vicos_5)–– creation date: 17.09.96 18:20:14–– comment:–– #PIRN: COL–RIBRE–IRN–CGS–4014 Issue 1/A: –– Add new return codes––––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.5 at CC; CGS development–– creator: ahs (on host sde16)–– creation date: 18.08.95 09:31:19–– comment:–– COL–RIBRE–IRN–CGS–3067 1/D

Page 145: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

136

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.1.1.2 at Central Repository at DASA RI (CGS V3 development)–– creator: gehrke (on host mps2s–1)–– creation date: 16.08.95 14:33:38–– comment:–– Build 2 B/L, PIRN 3067D –– END HISTORY added to header––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V3.0 at DASA–RI ; CGS Engineering–– creator: maron (on vicos2–2)–– creation date: 24.03.95–– Build 2 baseline, PIRN 3067–– V2.6 at ERNO ; VICOS development–– creator: vicos (on host prime_1)–– creation date: 18.09.92 12:11:36–– modifications according to FINAL ICD REVIEW DNs (see list)–– V2.5 at ERNO ; VICOS development–– creator: vicos (on host vicos_8)–– creation date: 22.07.92 15:29:47–– Deleted : T_AP_ID; Added : NULL_IDENTIFIER–– V2.4 at ERNO ; VICOS development–– creator: vicos (on host vicos_8)–– creation date: 21.07.92 07:33:10–– Naming of CGS_CALENDAR changed to VICOS_CALENDAR–– V2.3 at ERNO ; VICOS development–– creator: maron (on host vicos_6)–– creation date: 20.07.92 15:34:26–– VCS–SPADM–– V2.2 at ERNO ; VICOS development–– creator: athmann (on host vicos_5)–– creation date: 10.07.92 16:12:21–– align TES_EXECUTION_MODE with VICOS_DEFINITIONS–– V2.1 at ERNO ; VICOS development–– creator: vicos (on host vicos_12)–– creation date: 30.06.92 17:38:03–– added Standard Header by command create_file–––– END HISTORY––––****************************************************************************––with VICOS_DEFINITIONS;

package TES_DEFINITIONS is

––––––––––––––––––––––––––––––––––––––––––––––––––––commonly used identifiers––––––––––––––––––––––––––––––––––––––––––––––––––

type T_APPLICATION_ID is new NATURAL; for T_APPLICATION_ID’size use 32;

type T_IDENTIFIER is new NATURAL; for T_IDENTIFIER’size use 32;

NULL_IDENTIFIER : constant T_IDENTIFIER := 0;

–––––––––––––––––––––––––––––––––––––––––––––––––––– commonly used return values––––––––––––––––––––––––––––––––––––––––––––––––––

type T_RETURN_STATUS is new NATURAL;

Page 146: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

137

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– Return Codes for TES_RPI and TES_API

SUCCESS : constant T_RETURN_STATUS := 0;OTHER_ERROR : constant T_RETURN_STATUS := 1;COMMUNICATION_ERROR : constant T_RETURN_STATUS := 2;CURRENT_MODE_WRONG : constant T_RETURN_STATUS := 3;

INVALID_APPLICATION_ID : constant T_RETURN_STATUS := 10;INVALID_VALUE : constant T_RETURN_STATUS := 11;INVALID_IDENTIFIER : constant T_RETURN_STATUS := 12;ENDITEM_UNKNOWN : constant T_RETURN_STATUS := 13;ENDITEM_NOT_ACQUIRED : constant T_RETURN_STATUS := 14;

AP_NOT_FOUND : constant T_RETURN_STATUS := 50;SAS_UNKNOWN : constant T_RETURN_STATUS := 51;

INVALID_COMMAND_ID : constant T_RETURN_STATUS := 60;COMMAND_TIMEOUT : constant T_RETURN_STATUS := 61;COMMAND_NEEDS_NO_ACK : constant T_RETURN_STATUS := 62;

NOT_A_SW_VALUE : constant T_RETURN_STATUS := 70;TYPE_MISMATCH : constant T_RETURN_STATUS := 71;

TSS_ERROR : constant T_RETURN_STATUS := 80;SMT_RESET : constant T_RETURN_STATUS := 81;

ADU_SERVICE_ALREADY_ANNOUNCED : constant T_RETURN_STATUS := 90;ADU_SERVICE_NOT_ANNOUNCED : constant T_RETURN_STATUS := 91;GDU_SERVICE_ALREADY_ANNOUNCED : constant T_RETURN_STATUS := 92;GDU_SERVICE_NOT_ANNOUNCED : constant T_RETURN_STATUS := 93;

NO_SERVER_CONNECTION : constant T_RETURN_STATUS := 100;TES_IS_STOPPED : constant T_RETURN_STATUS := 101;WRONG_MODE_SELECTED : constant T_RETURN_STATUS := 102;TES_BADLY_INITIALISED : constant T_RETURN_STATUS := 103;REQUEST_ENDITEM_LIST_FAILED : constant T_RETURN_STATUS := 104;

DELIVERY_ID_UNKNOWN : constant T_RETURN_STATUS := 110;INVALID_LIBRARY_NUMBER : constant T_RETURN_STATUS := 111;INVALID_PROCEDURE_NUMBER : constant T_RETURN_STATUS := 112;INVALID_AP_ID : constant T_RETURN_STATUS := 113;ILLEGAL_FROM_HLCL : constant T_RETURN_STATUS := 114;INVALID_PARAMETER : constant T_RETURN_STATUS := 115;

AP_NOT_STOPPED : constant T_RETURN_STATUS := 120;TOO_MANY_APS : constant T_RETURN_STATUS := 121;AP_NOT_COMPILED : constant T_RETURN_STATUS := 122;

TSS_INIT_ERROR : constant T_RETURN_STATUS := 130;AP_TABLE_INIT_ERROR : constant T_RETURN_STATUS := 131;GDU_TABLE_INIT_ERROR : constant T_RETURN_STATUS := 132;MONITOR_LIST_INIT_ERROR : constant T_RETURN_STATUS := 133;UCL_USER_LIB_INIT_ERROR : constant T_RETURN_STATUS := 134;MEASUREMENT_INIT_ERROR : constant T_RETURN_STATUS := 135;ERROR_MESSAGE_INIT_ERROR : constant T_RETURN_STATUS := 136;DBS_CONNECTION_PROBLEM : constant T_RETURN_STATUS := 137;HCI_CONNECTION_PROBLEM : constant T_RETURN_STATUS := 138;MDB_CONNECTION_PROBLEM : constant T_RETURN_STATUS := 139;DISTRIBUTION_TABLE_ERROR : constant T_RETURN_STATUS := 140;TOPOLOGY_ERROR : constant T_RETURN_STATUS := 141;

RUNTIME_ERROR : constant T_RETURN_STATUS := 150;

Page 147: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

138

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

LOAD_ADT_ERROR_MEASUREMENT_TABLE: constant T_RETURN_STATUS := 201;LOAD_ADT_ERROR_GDU_TABLE : constant T_RETURN_STATUS := 202;LOAD_ADT_ERROR_ADU_TABLE : constant T_RETURN_STATUS := 203;LOAD_ADT_ERROR_MONITOR_LIST : constant T_RETURN_STATUS := 204;LOAD_ADT_ERROR_GDU_LIST : constant T_RETURN_STATUS := 205;LOAD_ADT_ERROR_SIM_VALUE_TABLE : constant T_RETURN_STATUS := 206;LOAD_ADT_ERROR_AP_TABLE : constant T_RETURN_STATUS := 207;LOAD_ADT_ERROR_USER_LIB_TABLE : constant T_RETURN_STATUS := 208;LOAD_ADT_ERROR_NODE_LIST : constant T_RETURN_STATUS := 209;LOAD_ADT_ERROR_SW_LIST : constant T_RETURN_STATUS := 210;LOAD_ADT_ERROR_USR_MSG_TABLE : constant T_RETURN_STATUS := 211;WRONG_ENVIRONMENT : constant T_RETURN_STATUS := 212;MISSING_ENVIRONMENT : constant T_RETURN_STATUS := 213;DIRECTORY_CREATION_ERROR : constant T_RETURN_STATUS := 214;DIRECTORY_DOES_NOT_EXIST : constant T_RETURN_STATUS := 215;FILE_OPEN_ERROR : constant T_RETURN_STATUS := 216;FILE_CLOSE_ERROR : constant T_RETURN_STATUS := 217;FILE_READ_ERROR : constant T_RETURN_STATUS := 218;MISSING_NODE_NAME : constant T_RETURN_STATUS := 219;MISSING_LOAD_POINT : constant T_RETURN_STATUS := 220;

REPLAY_START_TIME_WRONG : constant T_RETURN_STATUS := 250;WRONG_REPLAY_PERIOD : constant T_RETURN_STATUS := 251;CANNOT_READ_ARCHIVE_FILE : constant T_RETURN_STATUS := 252;

LOAD_ADT_ERROR_SWOP_CMD_TABLE : constant T_RETURN_STATUS := 253;LOAD_ADT_ERROR_RESPONSE_PACKET_TABLE : constant T_RETURN_STATUS := 254;LOAD_ADT_ERROR_APPL_ID_TABLE : constant T_RETURN_STATUS := 255;

–––––––––––––––––––––––––––––––––––––––––––––––––––– commonly used mode and state definitions––––––––––––––––––––––––––––––––––––––––––––––––––

subtype T_EXECUTION_MODE is VICOS_DEFINITIONS.T_VICOS_MODE range VICOS_DEFINITIONS.NONE .. VICOS_DEFINITIONS.SIMULATION;

type T_LINK_STATUS is (RESET, INITIALISED, RUNNING, ABORTED); for T_LINK_STATUS’size use 8;

–––––––––––––––––––––––––––––––––––––––––––––––––––– commonly used message definitions––––––––––––––––––––––––––––––––––––––––––––––––––

MAX_SIZE_OF_AP_MESSAGE : constant NATURAL := 80;

subtype T_AP_MESSAGE is STRING (1 .. MAX_SIZE_OF_AP_MESSAGE);

MAX_SIZE_OF_SAS_MESSAGE : constant NATURAL := 80;

subtype T_SAS_MESSAGE is STRING (1 .. MAX_SIZE_OF_SAS_MESSAGE);

MAX_SIZE_OF_SAS_PARAMETERS : constant NATURAL := 80;

subtype T_SAS_PARAMETERS is STRING (1 .. MAX_SIZE_OF_SAS_PARAMETERS);

end TES_DEFINITIONS;

Page 148: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

139

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.6 TES Abstract Data Types

6.6.1 General Concepts

A same set of abstract data types related to TES are used in the VICOS products. In order to ensure the con-sistency of their definition and usage through the softwares, they are grouped and defined once, in the currentsection.

An ADT specification describes a class of data structures not by an implementation, but by the list of servicesavailable on the data structures and the formal properties of these services. Further, an ADT offers a set of ser-vices to the outside world (other Objects, Applications etc), which is only concerned with the services offeredand not how they are implemented.

An ADT is defined by a formal specification, which is comprised of Types and Functions (Syntax part) and Pre-conditions and Axioms (Semantic part).

– The Type part lists the types of the specification (which may be several types or a single type, e.g. a’stack’).

– The Functions part lists the services available on instances of the type.

– The Axioms part describes semantics of the functions on the data to restrict and more precisely definethe specification.

– The Preconditions part provides applicability conditions for partial functions (functions that cannot beapplied to the ADT implementation in all cases (e.g., when a data type is empty, it may not be usefulto access its contents)).

An abstract data type is a type which Ada structure is hidden (private types) because of its complexity, its varyingsize or its implementation dependency on compilers. Their access is possible only through associated operations.This part of the interface allows pieces of software to manipulate data without knowledge of their Ada represen-tation. These types are available in the form of separate Ada packages containing at least an abstract data type,some basic data types related to it and the operations to handle it.

The ADT services provided by TES contain a number of services applicable to appropriate ADTs. These mayinclude Create services, used to create the ADT structure, Set services, which set up the data within the ADT(e.g. for data originally held in the Mission Database or in UNIX files), Get services, which read the data set–upin the ADT and Delete services which remove the ADT. There are also type specific services which are ADTspecific, these may include services such as Initialise, Copy, Move, Pack and Unpack. The latter Pack and Un-pack, when provided, are particularly important for data transfer to provide a method of packing and unpackingdata into Byte arrays to enable easy data communication.

The usage of the abstract data types is quite sophisticated. The desired variable is declared with the desired typein the piece of software which will use it. The access to the content of the variable is done by using the associatedoperations, because the associated Ada type is not visible. A Create/Construct operation, when provided, is thefirst to be used, to instanciate the content of the variable. The Set_values operations can then be used to writedata into the instanciated variable. The Values_of/Get_values operations allow to read data from the instanciatedand filled–up variable. At last the Delete operation, when provided, will free the space allocated to ADT vari-ables which are not needed any more in the software.

TES provides a set of ADTs which are used as appropriate by other products, including:

– ADT for raw value type,

– ADT for engineering value type,

– ADT for ADU description type,

– ADT for ADU type,

Page 149: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

140

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

– ADT for simulated value table type,

– ADT for GDU description type,

– ADT for GDU type,

– ADT for archive file type,

– ADT for calibration description type,

– ADT for calibration services,

– ADT for monitoring description type,

– ADT for measurement description type.

TES provides a method of accessing TES data structures held in the Mission Database without causing perform-ance problems with continuous database access. A procedure for establishing an ADT based on MDB data isas follows: the MDA appropriate operation will be called to read appropriate Check–out information. TES willprovide ADT Create services (if any) to create the ADT in memory and ADT Set services will be used to putthe data from the MDB into the ADT data area. (Note, these services used by MDA) The product requiring ADTaccess (maybe another Integration/Qualification product) can then use the TES provided ADT Get services toaccess the ADT data and functions. On completion of use and when provided, TES ADT Delete services areused to remove the ADT.

Note that the use of ADTs within CGS provides a mechanism for Memory Management, which helps to avoidthe problems of ’Garbage Collection’ that occurs with manipulating data structures within an ’Ada’ Run Timesystem. This is particularly useful for tasks performed by Integration/Qualification products which need totransfer data information between programs.

Some basic types are also defined in ADT packages. They are, most of the time, enumeration types bound tothe ADT defined in that package.

For these enumeration types, the following naming convention has been used :

– types suffixed with _TYPE are enumeration types not determining a particular structure of the ADT;it can be considered as a normal attribute of the ADT, e.g. INTERPRETATION_TYPE inADT_MEASUREMENT_DESCRIPTION.

– types suffixed with _ALTERNATIVES are enumeration types which determine the set of other at-tributes the corresponding ADT will contain, e.g. T_ADU_ALTERNATIVES in ADT_ADU_DE-SCRIPTION.

6.6.2 Operations

This section describes the operations which are available on the previous types.

6.6.2.1 SET Operations

The SET operation(s) will assign the values of the attributes of an ADT. At least one SET operation has to beprovided, but in general there will be several SET operations, one for each of the attributes composing the ADT.In case the type of the attribute exactly determines the alternative to be set, SET can be a set of overloaded SETprocedures (all having the same name) and the type of attribute to be set will be determined by the type of thepassed parameter. The type of the attribute may be defined in another package, it may be a basic type or an otherADT. In case several attributes have the same type, different names have to be chosen for the SET operations(e.g. SET_A, SET_B).

6.6.2.1.1 GET Operations

The complementary of the SET operation(s) is the GET operation(s). It follows the same rules with respect toparameters and naming apply as for the SET operation. Most of the time, a function ATTRIBUTE is preferred

Page 150: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

141

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

to a procedure GET_ATTRIBUTE whenever it is possible, i.e. when no limited private types are returned orwhen single attribute is returned.

6.6.2.1.2 ALTERNATIVE Function

The function ALTERNATIVE returns the value of the alternative a variable of type T_ADT currently has. AfterCREATE has been called, the default value of a variable of type T_ADT shall be UNDEFINED. It shall be poss-ible to assign values of any attribute of any alternative to the variable then. This shall, however, then change thevalue of the ’discriminent’ to one of the enumeration values in T_ADT_ALTERNATIVES. All attributes be-longing to one alternative of T_ADT_ALTERNATIVES should be assign in one set operation (this is howevernot a must, it is a design goal and has to be decided on a case to case basis).

6.6.2.1.3 PACK Operation

The pack operation packs the contents of a variable of type T_ADT into a block of type T_BLOCK by usingoperations of an ADT_PACKING

6.6.2.1.4 UNPACK Operation

Inversely, UNPACK unpacks a T_BLOCK into a variable of type T_ADT which has been created before.

6.6.2.1.5 PACKED_SIZE Function

Function PACKED_SIZE returns the maximum number of bytes a packed structure of T_ADT may occupy.

6.6.2.1.6 ADD Operations

Some complex ADTs use other ADTs (e.g. ADT_ADU) or have a non deterministic memory usage, i.e. they’use’ varying amounts of memory for a given alternative.

For these ADTs, there exists the possibility to maintain dynamic ’lists’ of attributes or values inside an ADT.For this purpose, an ADD operation might be provided which then inserts exactly one element to this list.Examples are the raw values in an ADU in the package ADT_ADU.

This procedure belongs to the specific procedures defined in the frame of a complex ADT. They depend on thespecial purpose of the complex ADT and the implementer could add procedures like: get_next_element, read_atetc.

In most of the cases, these ADD operations can be replaced by a set of SET operations, because the size of thelist is known in advance. For a type T_ADT_ITEM_LIST, the operation SET_SIZE will have to be used first,and then the operation SET_ITEM, to fill the list at a specified index. Note that the index shall be uniformlyincremented from 1 to the chosen size, with an increment of 1.

6.6.2.1.7 Operations on tables

The operations defined on T_TABLE follow exactly the same logic as for the ADT itself.

6.6.2.1.8 Exceptions

The procedures/functions will raise the following standard exceptions :

– STORAGE_ERROR in case the CREATE operation has not sufficient memory space, independentof the internal implementation

– NOT_CREATED if an operation is called on a variable which has not been created.

– {PARAMETER}_VALUE_ILLEGAL in case the value of the passed parameter is not legal, e.g. aNULL_SID value for an SID parameter.

Page 151: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

142

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

– INDEX_ERROR if the value of the passed index exceeds the size of the specified variable, e.g. it israised when trying to write/read the 101st element of an ADU which contains only 100 items.

– {ITEM}_NOT_FOUND when the searched item is not found in the specified list.

– {PARAMETER}_TYPE_MISMATCH when the type of the passed parameter and the expected typeof the formal parameter mismatch.

On a case by case basis, the operations provided in this interface will also raise specific exceptions which aredocumented in the formal interface.

6.6.2.1.9 Particular Remarks

6.6.2.1.10 On Synchronisation

Certain ADTs (if not all of them) will have the need of performing certain memory management internally. Forsecurity reasons, a synchronised access to the internal memory has to be achieved, but only for the CREATE,DESTROY, COPY, UNPACK operations since these have impact on memory management.

At present it is not finally decided, whether the ADT internally has to provide synchronisation or whether theuser should ensure synchronised access. However, this shall not have any impact on the Ada specification.

If internal synchronisation shall be provided, the use of Ada tasking and semaphores is not allowed since thisis in conflict with the current TES design (due to X–windows !!!). Also, for performance reasons, the Ada ’new’and ’unchecked_deallocation’ are not recommended.

6.6.2.1.11 On Packing/Unpacking

At present there exists in-house a definition of an ADT_PACKING which uses rather sophisticated techniquesto provide secure and elegant packing. However, it is also rather complex. There are investigation on a simplerapproach currently which would reduce complexity and data overheads.

When finally delivering the Ada specifications of all ADTs to the implementation teams, a version ofADT_PACKING will be delivered also which shall then be used for implementing the PACK/UNPACK oper-ations of the individual ADTs.

The principals of packing will be that the ADT_ADT.PACK operation is provided with some kind of inputT_BLOCK. The inside the body of the ADT_ADT.PACK routine, other routines of ADT_PACKING shall beused to ’add’ a packed version of T_ADT to the block. Memory management inside T_BLOCK will be accom-plished inside the ADT_PACKING provided routines. T_BLOCK is then finally returned as an out parameterof ADT_ADT.PACK (therefore at least it has to be of mode ’in out’).

Page 152: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

143

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.6.3 ADT Raw Value

Informal Interface Description

A Raw Value is an typed objet which, depending on the alternative it is attributed, contains a value of the sametype.

A Raw Value is a composite type containing the following attributes :

– an raw value alternative type;

– a single bit, when alternative is SINGLE_BIT;

– an integer, when alternative is INT;

– an unsigned_integer, when alternative is U_INT;

– a float, when alternative is FLOAT_EGSE;

– a double float, when alternative is DOUBLE_FLOAT_EGSE;

– a byte stream, when alternative is BYTE_STREAM.

A Table type is also provided, which allows to define indexed lists of this ADT.

Page 153: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

144

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Formal Interface Description

––––****************************************************************************––ABSTRACT–––––– Provides definition of a raw value of different type:–– – INTEGER–– – FLOAT

–– – DOUBLE_FLOAT–– – SINGLE_BIT–– – U_INT–– – BYTESTREAM––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––IDENTIFICATION–––– PROJECT NAME : CGS–– PRODUCT NAME : TES–– CI–NUMBER : 1216 843–– OBJECT NAME : ADT_RAW_VALUE––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––CONTENTS–––– COMPILER : SunAda 1.1/Alsys Ada 5.5.1–– LANGUAGE : Ada–– SPECIAL CONTENTS: ––– CHANGE HISTORY–– IRN 8210–– creator: soelter (on host mps–13)–– creation date: 09.03.2001–– comment:–– new procedures/functions for setting/getting of LONG_FLOAT––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.4 at Central Repository at DASA RI (CGS V3 development)–– creator: grotheer (on host vicos2–6)–– creation date: 29.06.95 14:06:39–– comment:–– MAX_BYTE_STREAM_LENGTH identical to VICOS_DEFINITIONS––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.3 at Central Repository at DASA RI (CGS V3 development)–– creator: grotheer (on host vicos2–6)–– creation date: 15.06.95 17:04:13–– comment:–– Header correted (End History)––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V3.0 at ERNO ; VICOS development–– creator: gehrke (on host mps2s–1)–– creation date: 22.05.95 12:00:00–– CGS V2 Build 2 baseline definition, PIRN 3040/A–––– V2.9 at ERNO ; VICOS development–– creator: athmann (on host vicos_5)–– creation date: 07.05.93 16:35:41–– Define new type T_SCALAR_RAW_VALUE–––– V2.8 at ERNO ; VICOS development–– creator: athmann (on host vicos_5)–– creation date: 03.03.93 19:52:39–– Version as delivered by SRO1216843b (IK ADTs) + COL–SPR–SBI–0043–––– V2.7 at ERNO ; VICOS development–– creator: satthoff (on host vicos_4)–– creation date: 25.11.92 10:26:30–– corrupted header/established new from IK version.–– V2.6 at ERNO ; VICOS development–– creator: vicos (on host vicos_s)–– creation date: 17.11.92 11:30:49

Page 154: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

145

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– adts version 2.0.1: update acc. to PIRN VICOS–2021 –– V2.5 at ERNO ; VICOS development–– creator: vicos (on host prime_1)–– creation date: 18.09.92 12:05:49–– modifications according to FINAL ICD REVIEW DNs (see list)–– V2.4 at ERNO ; VICOS development–– creator: vicos (on host vicos_s)–– creation date: 28.07.92 09:35:52–– Changes : editorial, exceptions, operation names–– V2.3 at ERNO ; VICOS development–– creator: vicos (on host vicos_8)–– creation date: 20.07.92 10:52:53–– General layout for ADTs acc. to TN COL_MBER_ZU1_TN_0026_92–– V2.2 at ERNO ; VICOS development–– creator: athmann (on host vicos_5)–– creation date: 10.07.92 17:49:28–– Update Header–– END HISTORY

––****************************************************************************––

with VICOS_DEFINITIONS; –– T_RAW_VALUE_ALTERNATIVES with ADT_PACKING; –– type T_BLOCKwith NUMERIC_TYPES; –– type BYTE –– type BIT –– type BITSET

package ADT_RAW_VALUE is SCCS_ADS : constant STRING := ”@(#) adt_raw_value.ads /main/cgs_5.0/1 03/12/0112:40:41@(#)”;

–––––––––––––––––––––––––––––– –– public types and constants ––––––––––––––––––––––––––––––

subtype T_SCALAR_RAW_VALUE_ALTERNATIVES is VICOS_DEFINITIONS.T_RAW_VALUE_ALTERNATIVES range VICOS_DEFINITIONS.UNDEFINED ..

VICOS_DEFINITIONS.DOUBLE_FLOAT_EGSE;–– defines a subtype for scalar raw values (i.e. no byte streams)

MAX_BYTE_STREAM_LENGTH : constant := VICOS_DEFINITIONS.MAX_BYTE_STREAM_LENGTH;

type T_BYTE_STREAM is record

LENGTH : NATURAL := 0;STREAM : NUMERIC_TYPES.BYTE_ARRAY(1 .. MAX_BYTE_STREAM_LENGTH);

end record;

for T_BYTE_STREAM userecord LENGTH at 0 range 0 .. 31;STREAM at 4 range 0 .. MAX_BYTE_STREAM_LENGTH*8–1;end record;

for T_BYTE_STREAM’SIZE use MAX_BYTE_STREAM_LENGTH*8+32;

––––––––––––– –– adt types ––––––––––––– type T_RAW_VALUE (RAW_TYPE : VICOS_DEFINITIONS.T_RAW_VALUE_ALTERNATIVES :=VICOS_DEFINITIONS.UNDEFINED)

is private; –– A raw value is composed of : –– – an raw value alternative type, –– – a single bit, –– – an unsigned integer,

Page 155: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

146

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– – an integer, –– – a float, –– – a double_float, –– – a byte stream.

type T_SCALAR_RAW_VALUE (RAW_TYPE : T_SCALAR_RAW_VALUE_ALTERNATIVES := VICOS_DEFINITIONS.UNDEFINED)

is private; –– A scalar raw value is composed of : –– – an raw value alternative type, –– – a single bit, –– – a unsigned integer, –– – an integer, –– – a float, –– – a double_float,

–––––––––––––––––––– –– write operations ––––––––––––––––––––

procedure SET_ALTERNATIVE(VALUE : in out T_RAW_VALUE; RAW_TYPE : in VICOS_DEFINITIONS.T_RAW_VALUE_ALTERNATIVES);

–– DESCRIPTION–– Sets the alternative of a raw value

–– EXCEPTION–– RAW_VALUE_IS_CONSTRAINED–– Raised when trying to change discriminant of –– a constrained raw value

–– DESCRIPTION (for all following write operations) –– This procedure sets the current value of the specified –– raw value variable. –– EXCEPTIONS (for all following read operations) –– RAW_VALUE_TYPE_MISMATCH : –– the current alternative of the passed variable –– and the type of the formal parameter mismatch.

procedure SET_BIT_VALUE ( OF_VALUE: in out T_RAW_VALUE; WITH_BIT: in NUMERIC_TYPES.BIT ); procedure SET_BITSET_VALUE ( OF_VALUE: in out T_RAW_VALUE; WITH_BITSET: in NUMERIC_TYPES.UNSIGNED_INTEGER32 ); procedure SET_INTEGER_VALUE ( OF_VALUE: in out T_RAW_VALUE; WITH_INTEGER: in INTEGER ); procedure SET_FLOAT_VALUE ( OF_VALUE: in out T_RAW_VALUE; WITH_FLOAT: in FLOAT );

procedure SET_LONG_FLOAT_VALUE ( OF_VALUE: in out T_RAW_VALUE; WITH_LONG_FLOAT: in LONG_FLOAT );

procedure SET_BYTE_STREAM_VALUE ( OF_VALUE: in out T_RAW_VALUE; WITH_BYTE_STREAM: in T_BYTE_STREAM

Page 156: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

147

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

);

–– Overloaded Operations for scalar raw values

procedure SET_ALTERNATIVE(VALUE : in out T_SCALAR_RAW_VALUE; RAW_TYPE : in T_SCALAR_RAW_VALUE_ALTERNATIVES);

–– DESCRIPTION–– Sets the alternative of a scalar raw value

–– EXCEPTION–– RAW_VALUE_IS_CONSTRAINED–– Raised when trying to change discriminant of –– a constrained raw value

procedure SET_BIT_VALUE ( OF_VALUE: in out T_SCALAR_RAW_VALUE; WITH_BIT: in NUMERIC_TYPES.BIT );

procedure SET_BITSET_VALUE ( OF_VALUE: in out T_SCALAR_RAW_VALUE; WITH_BITSET: in NUMERIC_TYPES.UNSIGNED_INTEGER32 ); procedure SET_INTEGER_VALUE ( OF_VALUE: in out T_SCALAR_RAW_VALUE; WITH_INTEGER: in INTEGER ); procedure SET_FLOAT_VALUE ( OF_VALUE: in out T_SCALAR_RAW_VALUE; WITH_FLOAT: in FLOAT ); procedure SET_LONG_FLOAT_VALUE ( OF_VALUE: in out T_SCALAR_RAW_VALUE; WITH_LONG_FLOAT: in LONG_FLOAT );

––––––––––––––––––– –– read operations –––––––––––––––––––

function ALTERNATIVE ( OF_VALUE: T_RAW_VALUE )

return VICOS_DEFINITIONS.T_RAW_VALUE_ALTERNATIVES; –– DESCRIPTION –– This function returns the current alternative of –– the specified raw value variable.

–– DESCRIPTION (for all following read operations) –– This function returns the current value of –– the specified raw value variable. –– EXCEPTIONS (for all following read operations) –– RAW_VALUE_TYPE_MISMATCH : –– the current alternative of the passed variable –– and the type of the formal parameter mismatch.

function BIT_VALUE ( OF_VALUE: T_RAW_VALUE ) return NUMERIC_TYPES.BIT;

Page 157: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

148

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

function BITSET_VALUE ( OF_VALUE: T_RAW_VALUE ) return NUMERIC_TYPES.UNSIGNED_INTEGER32; function INTEGER_VALUE ( OF_VALUE: T_RAW_VALUE ) return INTEGER; function FLOAT_VALUE ( OF_VALUE: T_RAW_VALUE ) return FLOAT;

function LONG_FLOAT_VALUE ( OF_VALUE: T_RAW_VALUE ) return LONG_FLOAT;

function BYTE_STREAM_VALUE ( OF_VALUE: T_RAW_VALUE ) return T_BYTE_STREAM;

–– Overloaded Operations for scalar raw values

function ALTERNATIVE ( OF_VALUE: T_SCALAR_RAW_VALUE )

return T_SCALAR_RAW_VALUE_ALTERNATIVES; –– DESCRIPTION –– This function returns the current alternative of –– the specified raw value variable.

–– DESCRIPTION (for all following read operations) –– This function returns the current value of –– the specified raw value variable. –– EXCEPTIONS (for all following read operations) –– RAW_VALUE_TYPE_MISMATCH : –– the current alternative of the passed variable –– and the type of the formal parameter mismatch.

function BIT_VALUE ( OF_VALUE: T_SCALAR_RAW_VALUE ) return NUMERIC_TYPES.BIT; function BITSET_VALUE ( OF_VALUE: T_SCALAR_RAW_VALUE ) return NUMERIC_TYPES.UNSIGNED_INTEGER32; function INTEGER_VALUE ( OF_VALUE: T_SCALAR_RAW_VALUE ) return INTEGER; function FLOAT_VALUE ( OF_VALUE: T_SCALAR_RAW_VALUE ) return FLOAT;

function LONG_FLOAT_VALUE ( OF_VALUE: T_SCALAR_RAW_VALUE ) return LONG_FLOAT;

–––––––––––––––––––––––––––––––––––––––––––––

Page 158: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

149

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– ’type conversion’ (assignment) operations –––––––––––––––––––––––––––––––––––––––––––––

function ASSIGN (SCALAR_VALUE: T_SCALAR_RAW_VALUE) return T_RAW_VALUE;

–– DESCRIPTION–– Assign a scalar value to a value of type T_RAW_VALUE

–– EXCEPTIONS–– none

function ASSIGN (RAW_VALUE: T_RAW_VALUE) return T_SCALAR_RAW_VALUE;

–– DESCRIPTION–– Assign a raw value to a value of type T_SCALAR_RAW_VALUE

–– EXCEPTIONS–– RAW_VALUE_TYPE_MISMATCH

–– the type of the RAW_VALUE was BYTE_STREAM

–––––––––––––––––––––– –– packing operations ––––––––––––––––––––––

procedure PACK ( VALUE: in T_RAW_VALUE; BLOCK: in out ADT_PACKING.T_BLOCK ); –– DESCRIPTION –– This procedure packs the specified raw value variable into –– a contiguous memory block.

procedure UNPACK ( BLOCK: in out ADT_PACKING.T_BLOCK; VALUE: out T_RAW_VALUE ); –– DESCRIPTION –– This procedure unpacks the specified memory block into –– a raw value variable.

–– Overloaded Operations for scalar raw values:

procedure PACK ( VALUE: in T_SCALAR_RAW_VALUE; BLOCK: in out ADT_PACKING.T_BLOCK ); –– DESCRIPTION –– This procedure packs the specified raw value variable into –– a contiguous memory block.

procedure UNPACK ( BLOCK: in out ADT_PACKING.T_BLOCK; VALUE: out T_SCALAR_RAW_VALUE ); –– DESCRIPTION –– This procedure unpacks the specified memory block into –– a raw value variable.

––––––––––––––––––– –– exceptions –––––––––––––––––––

RAW_VALUE_TYPE_MISMATCH : exception;RAW_VALUE_IS_CONSTRAINED : exception;

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– private

Page 159: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

150

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

type T_RAW_VALUE (RAW_TYPE : VICOS_DEFINITIONS.T_RAW_VALUE_ALTERNATIVES :=VICOS_DEFINITIONS.UNDEFINED) is record case RAW_TYPE is when VICOS_DEFINITIONS.SINGLE_BIT => BIT_VALUE : NUMERIC_TYPES.BIT; BYTE_PAD : NUMERIC_TYPES.BYTE_ARRAY(1..3); when VICOS_DEFINITIONS.U_INT => BITSET_VALUE : NUMERIC_TYPES.UNSIGNED_INTEGER32; when VICOS_DEFINITIONS.INT => INTEGER_VALUE : NUMERIC_TYPES.INTEGER32; when VICOS_DEFINITIONS.FLOAT_EGSE => FLOAT_VALUE : NUMERIC_TYPES.SINGLE_FLOAT; when VICOS_DEFINITIONS.DOUBLE_FLOAT_EGSE => DOUBLE_FLOAT_VALUE : NUMERIC_TYPES.DOUBLE_FLOAT; when VICOS_DEFINITIONS.BYTE_STREAM => BYTE_STREAM_VALUE : T_BYTE_STREAM; when VICOS_DEFINITIONS.UNDEFINED => null; end case ; end record;

for T_RAW_VALUE userecord RAW_TYPE at 0 range 0 .. 5;BYTE_STREAM_VALUE at 0 range 32 .. 32+MAX_BYTE_STREAM_LENGTH*8–1+32;BIT_VALUE at 0 range 32 .. 32;

BYTE_PAD at 0 range 40 .. 63;BITSET_VALUE at 0 range 32 .. 63;INTEGER_VALUE at 0 range 32 .. 63;FLOAT_VALUE at 0 range 32 .. 63;DOUBLE_FLOAT_VALUE at 0 range 32 .. 95;end record;

for T_RAW_VALUE’size use MAX_BYTE_STREAM_LENGTH*8+32+32;–– for T_RAW_VALUE’size use 2112;

type T_SCALAR_RAW_VALUE (RAW_TYPE : T_SCALAR_RAW_VALUE_ALTERNATIVES := VICOS_DEFINITIONS.UNDEFINED) is

record case RAW_TYPE is when VICOS_DEFINITIONS.SINGLE_BIT => BIT_VALUE : NUMERIC_TYPES.BIT; BYTE_PAD : NUMERIC_TYPES.BYTE_ARRAY(1..3); when VICOS_DEFINITIONS. U_INT => BITSET_VALUE : NUMERIC_TYPES. UNSIGNED_INTEGER32; when VICOS_DEFINITIONS.INT => INTEGER_VALUE : NUMERIC_TYPES.INTEGER32; when VICOS_DEFINITIONS.FLOAT_EGSE => FLOAT_VALUE : NUMERIC_TYPES.SINGLE_FLOAT; when VICOS_DEFINITIONS.DOUBLE_FLOAT_EGSE => DOUBLE_FLOAT_VALUE : NUMERIC_TYPES.DOUBLE_FLOAT; when VICOS_DEFINITIONS.UNDEFINED => null; end case ; end record;

for T_SCALAR_RAW_VALUE userecord RAW_TYPE at 0 range 0 .. 5;BIT_VALUE at 0 range 32 .. 32;

BYTE_PAD at 0 range 40 .. 63;BITSET_VALUE at 0 range 32 .. 63;INTEGER_VALUE at 0 range 32 .. 63;FLOAT_VALUE at 0 range 32 .. 63;DOUBLE_FLOAT_VALUE at 0 range 32 .. 95;end record;

end ADT_RAW_VALUE;

Page 160: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

151

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.6.4 ADT Engineering Value

Informal Interface Description

A Engineering Value is an typed objet which, depending on the alternative it is attributed, contains a value ofthe same type.

A Engineering Value is a composite type containing the following attributes :

– an engineering value alternative type;

– a state code, when alternative is STATE_CODE;

– an integer, when alternative is INT;

– an unsigned_integer, when alternative is U_INT;

– a float, when alternative is FLT;

– a double_float, when alternative is L_FLT;

– a string, when alternative is STR.

A Table type is also provided, which allows to define indexed lists of this ADT.

Page 161: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

152

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Formal Interface Description

–––– ––––****************************************************************************––ABSTRACT–––––– This package defines and handles types related to engineering value––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––IDENTIFICATION–––– PROJECT NAME : COLUMBUS VICOS–– PRODUCT NAME : VCS–– CI–NUMBER : 1234 950–– OBJECT NAME : ADT_ENGINEERING_VALUE––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––CONTENTS–––– COMPILER : VADS V 6.0.3(c) / Gnat–– LANGUAGE : Ada–– SPECIAL CONTENTS:–– CHANGE HISTORY–– IRN 8210–– creator: soelter (on host mps–13)–– creation date: 08.03.2001–– comment:–– New alternatives for long float and unsigned added–––– V3.1 at Central Repository V2.2 (CGS V3 development)–– creator: grotheer (on host vicos2s)–– creation date: 11.07.94 17:14:56–– comment:–– NULL_ENGINEERING_VALUE added, COL–ERNO–CGS–SPR–1297––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V2.7 at ERNO ; VICOS development–– creator: athmann (on host vicos_5)–– creation date: 07.05.93 16:33:26–– Define new type T_SCALAR_ENGINEERING_VALUE–––– V2.6 at ERNO ; VICOS development–– creator: athmann (on host vicos_5)–– creation date: 03.03.93 19:54:13–– Version as delivered by SRO1216843b (IK ADTs)–––– V2.5 at ERNO ; VICOS development–– creator: vicos (on host vicos_s)–– creation date: 17.11.92 11:28:09–– adts version 2.0.1: update acc. to PIRN VICOS–2028 –– V2.4 at ERNO ; VICOS development–– creator: vicos (on host prime_1)–– creation date: 18.09.92 11:59:08–– modifications according to FINAL ICD REVIEW DNs (see list)–– V2.3 at ERNO ; VICOS development–– creator: vicos (on host vicos_s)–– creation date: 28.07.92 09:28:51–– Changes : editorial, exceptions, operation names–– V2.2 at ERNO ; VICOS development–– creator: vicos (on host vicos_8)–– creation date: 20.07.92 10:00:21–– General layout for ADTs acc. to TN COL_MBER_ZU1_TN_0026_92–– END HISTORY

––****************************************************************************––

with ADT_PACKING; –– type T_BLOCK

Page 162: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

153

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

with MPS_DEFINITIONS; –– type STATE_CODE

with NUMERIC_TYPES;

package ADT_ENGINEERING_VALUE is

SCCS_ADS : constant STRING := ”@(#) adt_engineering_value.ads /main/cgs_5.0/1 03/12/0112:39:07@(#)”;

–––––––––––––––––––––––––––––– –– public types and constants ––––––––––––––––––––––––––––––

type T_ENGINEERING_VALUE_ALTERNATIVES is ( UNDEFINED, STATE_CODE, INT, U_INT, FLT, L_FLT, STR); –– The engineering value alternatives indicates if : –– – the engineering value is not set–up –– – the engineering value contains a state code –– – the engineering value contains an integer –– – the engineering value contains an unsigned integer (32 bit) –– – the engineering value contains a float (32 bit) –– – the engineering value contains a long float (64 bit) –– – the engineering value contains a string

subtype T_SCALAR_ENGINEERING_VALUE_ALTERNATIVES is T_ENGINEERING_VALUE_ALTERNATIVES range UNDEFINED .. L_FLT;–– defines a subtype for scalar raw values (i.e. no strings)

MAX_CALIBRATED_STRING_LENGTH : constant := 256;

type T_CALIBRATED_STRING is record STR : STRING (1..MAX_CALIBRATED_STRING_LENGTH);

LENGTH : INTEGER range 0..MAX_CALIBRATED_STRING_LENGTH := 0; end record;

––––––––––––– –– adt type –––––––––––––

type T_ENGINEERING_VALUE ( VALUE_ALTERNATIVE : T_ENGINEERING_VALUE_ALTERNATIVES := UNDEFINED) is

private; –– A engineering value is composed of : –– – an engineering value alternative, –– – a state code, when alternative is STATE_CODE. –– – an integer, when alternative is INT. –– – an unsigned integer, when alternative is U_INT. –– – a float, when alternative is FLT. –– – a double float, when alternative is L_FLT. –– – a string, when alternative is STR.

NULL_ENGINEERING_VALUE : constant T_ENGINEERING_VALUE ;

type T_SCALAR_ENGINEERING_VALUE ( VALUE_ALTERNATIVE : T_SCALAR_ENGINEERING_VALUE_ALTERNATIVES := UNDEFINED)

is private; –– A scalar engineering value is composed of : –– – an engineering value alternative, –– – a state code, when alternative is STATE_CODE. –– – an integer, when alternative is INT. –– – an unsigned integer, when alternative is U_INT. –– – a float, when alternative is FLT. –– – a double float, when alternative is L_FLT.

Page 163: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

154

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–––––––––––––––––––– –– write operations ––––––––––––––––––––

procedure SET_ENGINEERING_VALUE_ALTERNATIVE ( OF_VALUE : in out T_ENGINEERING_VALUE; WITH_ALTER : in T_ENGINEERING_VALUE_ALTERNATIVES); –– DESCRIPTION –– This procedure sets the engineering value alternative –– of the given value. –– EXCEPTIONS –– VALUE_IS_CONSTRAINED : –– – The provided engineering value is constrained and –– the type can therefore not be changed.

–– DESCRIPTION (for all following write operations) –– This procedure sets the current value of the specified –– engineering value variable. –– EXCEPTIONS (for all following write operations) –– VALUE_TYPE_MISMATCH : –– – The operation is invalid for the given value –– of the engineering value alternative.

procedure SET_STATE_CODE_VALUE ( OF_VALUE : in out T_ENGINEERING_VALUE; WITH_STATE_CODE : in MPS_DEFINITIONS.STATE_CODE);

procedure SET_INTEGER_VALUE ( OF_VALUE : in out T_ENGINEERING_VALUE; WITH_INTEGER : in INTEGER);

procedure SET_UNSIGNED_INTEGER_VALUE ( OF_VALUE : in out T_ENGINEERING_VALUE; WITH_UNSIGNED : in NUMERIC_TYPES.UNSIGNED_INTEGER32);

procedure SET_FLOAT_VALUE ( OF_VALUE : in out T_ENGINEERING_VALUE; WITH_FLOAT : in FLOAT);

procedure SET_LONG_FLOAT_VALUE ( OF_VALUE : in out T_ENGINEERING_VALUE; WITH_LONG_FLOAT : in LONG_FLOAT);

procedure SET_STRING_VALUE ( OF_VALUE : in out T_ENGINEERING_VALUE; WITH_STRING : in T_CALIBRATED_STRING);

––––– overloaded operations for T_SCALAR_ENGINEERING_VALUE ––––––––––––––––

procedure SET_ENGINEERING_VALUE_ALTERNATIVE ( OF_VALUE : in out T_SCALAR_ENGINEERING_VALUE; WITH_ALTER : in T_SCALAR_ENGINEERING_VALUE_ALTERNATIVES); –– DESCRIPTION –– This procedure sets the engineering value alternative –– of the given value. –– EXCEPTIONS –– VALUE_IS_CONSTRAINED : –– – The provided engineering value is constrained and –– the type can therefore not be changed.

–– DESCRIPTION (for all following write operations) –– This procedure sets the current value of the specified –– engineering value variable. –– EXCEPTIONS (for all following write operations) –– VALUE_TYPE_MISMATCH : –– – The operation is invalid for the given value –– of the engineering value alternative.

procedure SET_STATE_CODE_VALUE ( OF_VALUE : in out T_SCALAR_ENGINEERING_VALUE; WITH_STATE_CODE : in MPS_DEFINITIONS.STATE_CODE);

Page 164: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

155

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

procedure SET_INTEGER_VALUE ( OF_VALUE : in out T_SCALAR_ENGINEERING_VALUE; WITH_INTEGER : in INTEGER);

procedure SET_UNSIGNED_INTEGER_VALUE ( OF_VALUE : in out T_SCALAR_ENGINEERING_VALUE; WITH_UNSIGNED : in NUMERIC_TYPES.UNSIGNED_INTEGER32);

procedure SET_FLOAT_VALUE ( OF_VALUE : in out T_SCALAR_ENGINEERING_VALUE; WITH_FLOAT : in FLOAT);

procedure SET_LONG_FLOAT_VALUE ( OF_VALUE : in out T_SCALAR_ENGINEERING_VALUE; WITH_LONG_FLOAT : in LONG_FLOAT);

––––––––––––––––––– –– read operations –––––––––––––––––––

function ALTERNATIVE ( OF_VALUE : T_ENGINEERING_VALUE) return T_ENGINEERING_VALUE_ALTERNATIVES; –– DESCRIPTION –– This function returns the current alternative of –– the specified engineering value variable. –– EXCEPTIONS –– None.

–– DESCRIPTION (for all following read operations) –– This function returns the current value of –– the specified engineering value variable. –– EXCEPTIONS (for all following read operations) –– VALUE_TYPE_MISMATCH : –– the current alternative of the passed variable –– and the type of the formal parameter mismatch.

function STATE_CODE_VALUE ( OF_VALUE : T_ENGINEERING_VALUE) return MPS_DEFINITIONS.STATE_CODE;

function INTEGER_VALUE ( OF_VALUE : T_ENGINEERING_VALUE) return INTEGER;

function UNSIGNED_INTEGER_VALUE ( OF_VALUE : T_ENGINEERING_VALUE) return NUMERIC_TYPES.UNSIGNED_INTEGER32;

function FLOAT_VALUE ( OF_VALUE : T_ENGINEERING_VALUE) return FLOAT;

function LONG_FLOAT_VALUE ( OF_VALUE : T_ENGINEERING_VALUE) return LONG_FLOAT;

function STRING_VALUE ( OF_VALUE : T_ENGINEERING_VALUE) return T_CALIBRATED_STRING;

––––– overloaded operations for T_SCALAR_ENGINEERING_VALUE ––––––––––––––––

function ALTERNATIVE ( OF_VALUE : T_SCALAR_ENGINEERING_VALUE) return T_SCALAR_ENGINEERING_VALUE_ALTERNATIVES; –– DESCRIPTION –– This function returns the current alternative of –– the specified engineering value variable. –– EXCEPTIONS –– None.

–– DESCRIPTION (for all following read operations)

Page 165: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

156

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– This function returns the current value of –– the specified engineering value variable. –– EXCEPTIONS (for all following read operations) –– VALUE_TYPE_MISMATCH : –– the current alternative of the passed variable –– and the type of the formal parameter mismatch.

function STATE_CODE_VALUE ( OF_VALUE : T_SCALAR_ENGINEERING_VALUE) return MPS_DEFINITIONS.STATE_CODE;

function INTEGER_VALUE ( OF_VALUE : T_SCALAR_ENGINEERING_VALUE) return INTEGER;

function UNSIGNED_INTEGER_VALUE ( OF_VALUE : T_SCALAR_ENGINEERING_VALUE) return NUMERIC_TYPES.UNSIGNED_INTEGER32;

function FLOAT_VALUE ( OF_VALUE : T_SCALAR_ENGINEERING_VALUE) return FLOAT;

function LONG_FLOAT_VALUE ( OF_VALUE : T_SCALAR_ENGINEERING_VALUE) return LONG_FLOAT;

––––––––––––––––––––––––––––––––––––––––––––– –– ’type conversion’ (assignment) operations –––––––––––––––––––––––––––––––––––––––––––––

function ASSIGN (SCALAR_VALUE: T_SCALAR_ENGINEERING_VALUE) return T_ENGINEERING_VALUE;

–– DESCRIPTION–– Assign a scalar value to a value of type T_ENGINEERING_VALUE

–– EXCEPTIONS–– none

function ASSIGN (ENGINEERING_VALUE: T_ENGINEERING_VALUE) return T_SCALAR_ENGINEERING_VALUE;

–– DESCRIPTION–– Assign a raw value to a value of type –– T_SCALAR_ENGINEERING_VALUE

–– EXCEPTIONS–– VALUE_TYPE_MISMATCH

–– the type of the ENGINEERING_VALUE was STR

–––––––––––––––––––––– –– packing operations ––––––––––––––––––––––

procedure PACK ( VALUE : in T_ENGINEERING_VALUE; BLOCK : in out ADT_PACKING.T_BLOCK); –– DESCRIPTION –– This procedure packs the specified engineering value variable into –– a contiguous memory block. –– EXCEPTIONS –– None.

procedure UNPACK ( BLOCK : in out ADT_PACKING.T_BLOCK; VALUE : out T_ENGINEERING_VALUE); –– DESCRIPTION –– This procedure unpacks the specified memory block into –– an engineering value variable. –– EXCEPTIONS –– None.

––––– overloaded operations for T_SCALAR_ENGINEERING_VALUE ––––––––––––––––

procedure PACK (

Page 166: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

157

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

VALUE : in T_SCALAR_ENGINEERING_VALUE; BLOCK : in out ADT_PACKING.T_BLOCK); –– DESCRIPTION –– This procedure packs the specified engineering value variable into –– a contiguous memory block. –– EXCEPTIONS –– None.

procedure UNPACK ( BLOCK : in out ADT_PACKING.T_BLOCK; VALUE : out T_SCALAR_ENGINEERING_VALUE); –– DESCRIPTION –– This procedure unpacks the specified memory block into –– an engineering value variable. –– EXCEPTIONS –– None.

––––––––––––––––––– –– exceptions –––––––––––––––––––

VALUE_TYPE_MISMATCH : exception; VALUE_IS_CONSTRAINED : exception;

private

type T_ENGINEERING_VALUE( VALUE_ALTERNATIVE : T_ENGINEERING_VALUE_ALTERNATIVES := UNDEFINED) is record case VALUE_ALTERNATIVE is

when STATE_CODE => STATE_CODE_VALUE : MPS_DEFINITIONS.STATE_CODE; when INT => INT_VALUE : INTEGER := 0; when U_INT => U_INT_VALUE : NUMERIC_TYPES.UNSIGNED_INTEGER32 := 0; when FLT => FLT_VALUE : FLOAT := 0.0; when L_FLT => L_FLT_VALUE : LONG_FLOAT := 0.0; when STR => STR_VALUE : T_CALIBRATED_STRING; when others => null; end case;

end record;

type T_SCALAR_ENGINEERING_VALUE( VALUE_ALTERNATIVE : T_SCALAR_ENGINEERING_VALUE_ALTERNATIVES

:= UNDEFINED) is record case VALUE_ALTERNATIVE is

when STATE_CODE => STATE_CODE_VALUE : MPS_DEFINITIONS.STATE_CODE; when INT => INT_VALUE : INTEGER := 0; when U_INT => U_INT_VALUE : NUMERIC_TYPES.UNSIGNED_INTEGER32 := 0; when FLT => FLT_VALUE : FLOAT := 0.0; when L_FLT => L_FLT_VALUE : LONG_FLOAT := 0.0; when others => null; end case;

end record;

NULL_ENGINEERING_VALUE : constant T_ENGINEERING_VALUE := ( VALUE_ALTERNATIVE => UNDEFINED ) ;

end ADT_ENGINEERING_VALUE;

Page 167: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

158

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Page 168: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

159

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.6.5 ADT ADU Description

Informal Interface Description

A ADU Description is the set of information describing the format of the data acquired by VICOS. It is normallypredefined in the mission/configuration database, and loaded from the corresponding end–item, in test systemconfiguration and set–up phase. It is then supplied, together with the request for acquisition, by VICOS to thededicated SAS at test execution time.

A ADU Description is a composite type containing the following attributes :

– an ADU description alternative, which modifies the structure of this item;

– an database sid, which is the identifier allocated by the MDB when the corresponding end–item iscreated;

– a private identifier, which is a identification number specific to VICOS and SASs, allowing refer-ence to this item without knowledge of the database sid;

– an SAS’s short name i.e. the one in charge of the data transfer (see EGSE Software);

– an acquisition rate, which indicates the frequency of reception of the corresponding ADU;

– a global address, indicating where to acquire the values (see Physical Address);

– an ADU data buffer size;

– a list of measurement references, if ADU is structured composed of :– a mission database sid,– a raw value alternative,– a physical address;

– a list of item description, if ADU is unstructured composed of :– a measurement sid,– a location in the data buffer, in bits,– a length in the data buffer, in bits,

– a ccsds identifier, if ADU is ccsds_packet.

A Table type is also provided, which allows to define indexed lists of this ADT.

Page 169: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

160

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Formal Interface Description

–––– ADT_ADU_DESCRIPTION––––****************************************************************************––ABSTRACT–––––– This package is an abstract data type definition of the–– ADU_DESCRIPTIONS––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––IDENTIFICATION–––– PROJECT NAME : CGS–– PRODUCT NAME : TES–– CI–NUMBER : 1216 843–– OBJECT NAME : ADT_ADU_DESCRIPTION––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––CONTENTS–––– COMPILER : SunAda 1.1 /Alsys Ada 5.5.1–– LANGUAGE : ADA–– SPECIAL CONTENTS:–– CHANGE HISTORY–– IRN 8218–– creator: N. Soelter–– creation date: 22.05.2001–– comment: add PUS_PACKET to T_ADU data structure–– set and get operation for new pus secondary header––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– PIRN 8065–– creator: P.Hartmann–– creation date: 23.06.99–– comment: access to CCSDS header via measurements––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– PIRN 8051–– creator: P.Hartmann–– creation date: 31.03.99–– comment: increase MAX_NBR_UNSTRUCTURED_ITEMS from 500 to 750––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– PIRN 8039–– creator: P.Hartmann–– creation date: 05.11.98–– comment: add physical address flag for structured ADU’s––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– PIRN 7061–– creator: P.Hartmann–– creation date: 14.01.98–– comment: increase MAX_NBR_UNSTRUCTURED_ITEMS from 250 to 500––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– PIRN 5016–– creator: P.Hartmann–– creation date: 17.04.97–– comment: suppress ”pragma PACK (T__STRUCTURED_DESCRIPTION);”––

Page 170: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

161

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V16.1 at Central Repository at DASA RI–– creator: tommy (on host aiv_tn2)–– creation date: 09.12.96 16:55:59–– comment:–– access type added––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.4 at Central Repository at DASA RI (CGS V3 development)–– creator: adt_1 (on host vicos2–3)–– creation date: 15.06.95 14:35:29–– comment:–– Updated the type definition for T_ADU_DESCRIPTION to be inline with PIRN 3046C––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.3 at Central Repository at DASA RI (CGS V3 development)–– creator: adt_1 (on host vicos2–3)–– creation date: 15.06.95 11:37:37–– comment:–– Build 2 baseline, PIRN 3041 1/D––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V3.0 at ERNO ; CGS engineering–– creator: gehrke (on host mps2s–1)–– creation date: 22.05.95 13:00:00–– CGS V2 Build 2 baseline, PIRN 3041/C–––– END HISTORY––––****************************************************************************––

with Numeric_Types; –– type Unsigned_Integer32

with ADT_PACKING; –– type T_BLOCK

with MPS_DEFINITIONS; –– type SID

with VICOS_DEFINITIONS; –– type T_NAME_STRING –– type T_RAW_VALUE_ALTERNATIVES –– type T_ADU_ALTERNATIVES –– type T_PRIVATE_ID

with ADT_PHYSICAL_ADDRESS; –– type T_PHYSICAL_ADDRESS

with ADT_CCSDS_PACKET; –– MAX_PACKET_SIZE –– CCSDS_HEADER+SIZE

with ADT_CCSDS_PACKET.PUS_SPECIFIC;

package ADT_ADU_DESCRIPTION is

SCCS_ADS : constant STRING := ”@(#) adt_adu_description.ads /main/solaris–port/cgs_4.1.1/cgs_4.2/cgs_4.3/cgs_5.0/5 08/21/01 14:41:42@(#)”;

–––––––––––––––––––––––––––––– –– public types and constants

Page 171: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

162

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

––––––––––––––––––––––––––––––

MAX_NBR_STRUCTURED_ITEMS : constant INTEGER := 100;

MAX_NBR_UNSTRUCTURED_ITEMS : constant INTEGER := 750;

MAX_NBR_CCSDS_ITEMS : constant INTEGER := MAX_NBR_UNSTRUCTURED_ITEMS;

MAX_BINARY_BUFFER_SIZE : constant INTEGER := ADT_CCSDS_PACKET.MAX_PACKET_SIZE+ADT_CCSDS_PACKET.CCSDS_HEADER_SIZE+1;

––––––––––––– –– adt types –––––––––––––

type T_ADU_DESCRIPTION(ADU_TYPE : VICOS_DEFINITIONS.T_ADU_ALTERNATIVES := VICOS_DEFINITIONS.UNDEFINED) is private;

type T_A_ADU_DESCRIPTION is access T_ADU_DESCRIPTION;

type T_Wildcard_Field is ( –– valid flag Valid, –– fields of primary header Application_Id, –– fields of secondary header Service_Type, Service_Subtype, Destination_Id –– not in use );

type T_Wildcards is array (T_Wildcard_Field) of Boolean;

–––––––––––––––––––– –– write operations ––––––––––––––––––––

procedure SET_ALTERNATIVE ( OF_ADU_DESCRIPTION : in out T_ADU_DESCRIPTION; WITH_ALTERNATIVE : in VICOS_DEFINITIONS.T_ADU_ALTERNATIVES); –– DESCRIPTION –– This procedure sets the current alternative value of –– the specified ADU description variable. –– Setting the alternative to UNDEFINED internally clears –– all fields as if the ADU_DESCRIPTION were empty –– EXCEPTIONS –– ADU_DESCRIPTION_IS_CONSTRAINED –– Raised when trying to change the ADU description –– in a constraint way

procedure SET_DB_SID ( OF_ADU_DESCRIPTION : in out T_ADU_DESCRIPTION; WITH_DB_SID : in MPS_DEFINITIONS.SID); –– DESCRIPTION –– This procedure sets the current database sid value of –– the specified ADU description variable. –– EXCEPTIONS –– SID_VALUE_ILLEGAL : –– the passed sid has not a legal value, i.e. NULL_SID.

procedure SET_PRIVATE_ID ( OF_ADU_DESCRIPTION : in out T_ADU_DESCRIPTION; WITH_PRIVATE_ID : in VICOS_DEFINITIONS.T_PRIVATE_ID); –– DESCRIPTION

Page 172: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

163

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– This procedure sets the current private identifier value of –– the specified ADU description variable. –– EXCEPTIONS

procedure SET_SAS_NAME ( OF_ADU_DESCRIPTION : in out T_ADU_DESCRIPTION; WITH_SAS_NAME : in VICOS_DEFINITIONS.T_SAS_NAME); –– DESCRIPTION –– This procedure sets the current SAS short name value of –– the specified ADU description variable. –– EXCEPTIONS –– SAS_NAME_VALUE_ILLEGAL : –– the passed name has not a legal value, i.e. EMPTY_NAME_STRING.

procedure SET_ACQUISITION_RATE ( OF_ADU_DESCRIPTION : in out T_ADU_DESCRIPTION; WITH_ACQUISITION_RATE : in NATURAL); –– DESCRIPTION –– This procedure sets the current ADU acquisition rate value of –– the specified ADU description variable. –– EXCEPTIONS

procedure SET_GLOBAL_ADDRESS ( OF_ADU_DESCRIPTION : in out T_ADU_DESCRIPTION; WITH_GLOBAL_ADDRESS : in out ADT_PHYSICAL_ADDRESS.T_PHYSICAL_ADDRESS); –– DESCRIPTION –– This procedure sets the global physical address of –– the specified ADU description variable. –– EXCEPTIONS

procedure SET_ITEMS_WITH_PHYSICAL_ADDRESS ( OF_ADU_DESCRIPTION : in out T_ADU_DESCRIPTION; WITH_PYSICAL_ADDRESS : in BOOLEAN); –– DESCRIPTION –– This procedure sets the flag indicating for a structured ADU if –– the items do have a physical address or not. –– EXCEPTIONS –– ADU_TYPE_MISMATCH –– the ADU alternative is not a structured ADU

procedure SET_NBR_ITEMS ( OF_ADU_DESCRIPTION : in out T_ADU_DESCRIPTION; WITH_NBR_ITEMS : in NATURAL); –– DESCRIPTION –– This procedure sets the current number of items of –– the specified ADU description variable. –– EXCEPTIONS –– SIZE_ERROR –– the passed number is bigger than the maximum contained items. –– IS_UNDEFINED –– the ADU alternative is undefined

procedure SET_ENDITEM_DESCRIPTION ( IN_ADU_DESCRIPTION : in out T_ADU_DESCRIPTION; WITH_DB_SID : in MPS_DEFINITIONS.SID; WITH_RAW_VALUE_TYPE : in VICOS_DEFINITIONS. T_RAW_VALUE_ALTERNATIVES; AT_INDEX : in POSITIVE; WITH_PARAMETER_ADDRESS : in ADT_PHYSICAL_ADDRESS. T_PHYSICAL_ADDRESS); –– DESCRIPTION –– This procedure sets the item sid in the specified –– ADU description variable, at the specified position.

Page 173: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

164

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– EXCEPTIONS –– INDEX_ERROR : –– – the specified position is bigger than MAX_NBR_STRUCTURED_ITEMS. –– SID_VALUE_ILLEGAL : –– – the passed sid has not a legal value, i.e. NULL_SID. –– ADU_TYPE_MISMATCH : –– – the ADU alternative is not STRUCTURED. –– SIZE_ERROR : –– – the number of bytes needed to represent the values in the –– ADU exceeds MAX_BINARY_BUFFER_SIZE

procedure SET_ENDITEM_DESCRIPTION ( IN_ADU_DESCRIPTION : in out T_ADU_DESCRIPTION; WITH_DB_SID : in MPS_DEFINITIONS.SID; WITH_BIT_LOCATION : in NATURAL; WITH_BIT_SIZE : in NATURAL; WITH_PACKET_PART : in ADT_CCSDS_PACKET.T_PACKET_PART := ADT_CCSDS_PACKET.DATA; AT_INDEX : in POSITIVE); –– DESCRIPTION –– This procedure sets the item description in the specified –– ADU description variable, at the specified position. –– EXCEPTIONS –– INDEX_ERROR : –– – the specified position is bigger than MAX_NBR_UNSTRUCTURED_ITEMS. –– SID_VALUE_ILLEGAL : –– – the passed sid has not a legal value, i.e. NULL_SID. –– ADU_TYPE_MISMATCH : –– – the ADU alternative is not UNSTRUCTURED or CCSDS_PACKET.

procedure SET_CCSDS_HEADER ( IN_ADU_DESCRIPTION : in out T_ADU_DESCRIPTION; WITH_CCSDS_HEADER : in ADT_CCSDS_PACKET.T_CCSDS_HEADER); –– DESCRIPTION –– This procedure stores the ccsds primary header of the desired CCSDS –– packet which should be put into the corresponding ADU –– in the ADU description variable. –– EXCEPTIONS –– ADU_TYPE_MISMATCH : –– the ADU alternative is not CCSDS_PACKET.

procedure SET_CCSDS_2ND_HEADER ( IN_ADU_DESCRIPTION : in out T_ADU_DESCRIPTION; WITH_CCSDS_2ND_HEADER : in ADT_CCSDS_PACKET.T_CCSDS_SECONDARY_HEADER); –– DESCRIPTION –– This procedure stores the ccsds secondary header of the desired –– CCSDS packet which should be put into the corresponding ADU –– in the ADU description variable. –– EXCEPTIONS –– ADU_TYPE_MISMATCH : –– the ADU alternative is not CCSDS_PACKET.

procedure Set_Pus_Data_Field_Header ( In_Adu_Description : in out T_Adu_Description; With_Ccsds_2nd_Header : inAdt_Ccsds_Packet.Pus_Specific.T_Pus_TM_Secondary_Header); –– DESCRIPTION –– This procedure stores the pus ccsds secondary header of the desired –– CCSDS packet which should be put into the corresponding ADU –– in the ADU description variable. –– EXCEPTIONS –– ADU_TYPE_MISMATCH : –– the ADU alternative is not PUS_PACKET.

Page 174: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

165

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

procedure Set_Wildcard ( In_Adu_Description : in out T_Adu_Description; Field : in T_Wildcard_Field; With_Wildcard : in Boolean); –– DESCRIPTION –– This procedure stores the information on data fields of the CCSDS –– headers: if they have a wildcard all values are valid –– EXCEPTIONS –– ADU_TYPE_MISMATCH : –– the ADU alternative is not PUS_PACKET.

procedure Set_Wildcards ( In_Adu_Description : in out T_Adu_Description; Wildcards : in T_Wildcards); –– DESCRIPTION –– This procedure stores the information on data fields of the CCSDS –– headers: if they have a wildcard all values are valid –– EXCEPTIONS –– ADU_TYPE_MISMATCH : –– the ADU alternative is not PUS_PACKET.

procedure SET_ADU_SIZE( IN_ADU_DESCRIPTION : in out T_ADU_DESCRIPTION; SIZE : in NATURAL); –– DESCRIPTION –– Set the size of the ADU in case it is unstructured –– EXCEPTIONS –– ADU_TYPE_MISMATCH : –– the ADU alternative is not UNSTRUCTURED –– SIZE_ERROR : –– the specified position is bigger than the maximum list size.

procedure Set_Pus_Struct_Id ( In_Adu_Description : in out T_Adu_Description; Struct_Id : in Mps_Definitions.Sid; Struct_Id_Value : in Integer); –– DESCRIPTION –– This procedure sets the SID and the ID value of a Structure ID –– EXCEPTIONS –– ADU_TYPE_MISMATCH : –– the ADU alternative is not PUS_PACKET.

procedure Set_Pus_Struct_Id_Location ( In_Adu_Description : in out T_Adu_Description; Bit_Offset_Of_Sid : in Numeric_Types.Unsigned_Integer32; Bit_Length_Of_Sid : in Numeric_Types.Unsigned_Integer32); –– DESCRIPTION –– This procedure sets the location of a Structure ID –– Bit_Offset_Of_Sid is the offset from the beginning of –– the PUS packet (incl. header!) –– EXCEPTIONS –– ADU_TYPE_MISMATCH : –– the ADU alternative is not PUS_PACKET.

––––––––––––––––––– –– read operations –––––––––––––––––––

function DB_SID ( OF_ADU_DESCRIPTION : T_ADU_DESCRIPTION) return MPS_DEFINITIONS.SID; –– DESCRIPTION –– This function returns the current database sid value of

Page 175: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

166

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– the specified ADU description variable. –– EXCEPTIONS –– IS_UNDEFINED : –– the alternative is UNDEFINED

function PRIVATE_ID ( OF_ADU_DESCRIPTION : T_ADU_DESCRIPTION) return VICOS_DEFINITIONS.T_PRIVATE_ID; –– DESCRIPTION –– This function returns the current private identifier value of –– the specified ADU description variable. –– EXCEPTIONS –– IS_UNDEFINED : –– the alternative is UNDEFINED

function SAS_NAME ( OF_ADU_DESCRIPTION : T_ADU_DESCRIPTION) return VICOS_DEFINITIONS.T_SAS_NAME; –– DESCRIPTION –– This function returns the current SAS short name value of –– the specified ADU description variable. –– EXCEPTIONS –– IS_UNDEFINED : –– the alternative is UNDEFINED

function ACQUISITION_RATE ( OF_ADU_DESCRIPTION : T_ADU_DESCRIPTION) return NATURAL; –– DESCRIPTION –– This function returns the current ADU acquisition rate value of –– the specified ADU description variable. –– EXCEPTIONS –– IS_UNDEFINED : –– the alternative is UNDEFINED

function GLOBAL_ADDRESS ( OF_ADU_DESCRIPTION : in T_ADU_DESCRIPTION) return ADT_PHYSICAL_ADDRESS.T_PHYSICAL_ADDRESS; –– DESCRIPTION –– This procedure returns the current global address value of –– the specified ADU description variable. –– EXCEPTIONS –– IS_UNDEFINED : –– the alternative is UNDEFINED

procedure GET_ENDITEM_DESCRIPTION ( OF_ADU_DESCRIPTION : in T_ADU_DESCRIPTION; DB_SID : out MPS_DEFINITIONS.SID; RAW_VALUE_TYPE : out VICOS_DEFINITIONS.T_RAW_VALUE_ALTERNATIVES; AT_INDEX : in POSITIVE; PARAMETER_ADDRESS : out ADT_PHYSICAL_ADDRESS.T_PHYSICAL_ADDRESS); –– DESCRIPTION –– This procedure gets the enditem sid of the specified –– ADU description variable, at the specified position. –– EXCEPTIONS –– INDEX_ERROR : –– – the specified position is bigger than the list size. –– ADU_TYPE_MISMATCH : –– – the ADU alternative is not STRUCTURED. –– IS_UNDEFINED : –– – the alternative is UNDEFINED

procedure GET_ENDITEM_DESCRIPTION (

Page 176: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

167

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

OF_ADU_DESCRIPTION : in T_ADU_DESCRIPTION; DB_SID : out MPS_DEFINITIONS.SID; BIT_LOCATION : out NATURAL; BIT_SIZE : out NATURAL; AT_INDEX : in POSITIVE);

procedure GET_ENDITEM_DESCRIPTION ( OF_ADU_DESCRIPTION : in T_ADU_DESCRIPTION; DB_SID : out MPS_DEFINITIONS.SID; BIT_LOCATION : out NATURAL; BIT_SIZE : out NATURAL; PACKET_PART : out ADT_CCSDS_PACKET.T_PACKET_PART; AT_INDEX : in POSITIVE); –– DESCRIPTION –– This procedure gets the enditem description of the specified –– ADU description variable, at the specified position. –– the first version is kept for compatibility reason but –– should not be used as now, measurements from CCSDS packets –– can reference data in the headers/checksum part of the packet –– EXCEPTIONS –– INDEX_ERROR : –– – the specified position is bigger than the list size. –– ADU_TYPE_MISMATCH : –– – the ADU alternative is not UNSTRUCTURED or CCSDS_PACKET. –– IS_UNDEFINED : –– – the alternative is UNDEFINED

function CCSDS_HEADER ( IN_ADU_DESCRIPTION : T_ADU_DESCRIPTION) return ADT_CCSDS_PACKET.T_CCSDS_HEADER; –– DESCRIPTION –– This procedure returns the ccsds primary header of the desired –– CCSDS packet which should be put into the corresponding ADU –– in the ADU description variable. –– EXCEPTIONS –– ADU_TYPE_MISMATCH : –– the ADU alternative is not CCSDS_PACKET.

function CCSDS_2ND_HEADER ( IN_ADU_DESCRIPTION : T_ADU_DESCRIPTION) return ADT_CCSDS_PACKET.T_CCSDS_SECONDARY_HEADER; –– DESCRIPTION –– This procedure returns the ccsds secondary header of the –– desired CCSDS –– packet which should be put into the corresponding ADU –– in the ADU description variable. –– EXCEPTIONS –– ADU_TYPE_MISMATCH : –– the ADU alternative is not CCSDS_PACKET.

function Pus_Data_Field_Header ( In_Adu_Description : T_Adu_Description) return Adt_Ccsds_Packet.Pus_Specific.T_Pus_TM_Secondary_Header; –– DESCRIPTION –– This procedure returns the pus ccsds secondary header of the –– desired CCSDS –– EXCEPTIONS –– ADU_TYPE_MISMATCH : –– the ADU alternative is not PUS_PACKET.

procedure Get_Pus_Struct_Id ( In_Adu_Description : in T_Adu_Description; Struct_Id : out Mps_Definitions.Sid; Struct_Id_Value : out Integer);

Page 177: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

168

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– DESCRIPTION –– This procedure returns the SID and the ID value of a PUS Structure ID –– default values are: Struct_Id => Null_Sid, Struct_Id_Value => 0 –– EXCEPTIONS –– ADU_TYPE_MISMATCH : –– the ADU alternative is not PUS_PACKET.

procedure Get_Pus_Struct_Id_Location ( In_Adu_Description : in T_Adu_Description; Bit_Offset_Of_Sid : out Numeric_Types.Unsigned_Integer32; Bit_Length_Of_Sid : out Numeric_Types.Unsigned_Integer32); –– DESCRIPTION –– This procedure returns the location of the PUS Structure ID –– default values are: Bit_Offset_Of_Sid => 0, Bit_Length_Of_Sid => 0 –– EXCEPTIONS –– ADU_TYPE_MISMATCH : –– the ADU alternative is not PUS_PACKET.

function Has_Wildcard ( In_Adu_Description : T_Adu_Description; Field : T_Wildcard_Field) return Boolean; –– DESCRIPTION –– This procedure returns true if the wildcard flag is set –– for the specified data field –– EXCEPTIONS –– ADU_TYPE_MISMATCH : –– the ADU alternative is not PUS_PACKET.

function Get_Wildcards ( In_Adu_Description : T_Adu_Description) return T_Wildcards; –– DESCRIPTION –– This procedure returns the setting of all wildcards –– if ADU_TYPE_MISMATCH the valid flag is set to false –– EXCEPTIONS –– none

function ALTERNATIVE(ADU_DESCRIPTION : in T_ADU_DESCRIPTION) return VICOS_DEFINITIONS.T_ADU_ALTERNATIVES; –– DESCRIPTION –– This function returns the current alternative of –– the specified ADU description variable. –– EXCEPTIONS –– IS_UNDEFINED : –– the alternative is UNDEFINED

function ITEMS_WITH_PHYSICAL_ADDRESS(ADU_DESCRIPTION : in T_ADU_DESCRIPTION) return BOOLEAN; –– DESCRIPTION –– return the flag indicating for a structured ADU if the items do –– have a physical address or not. –– EXCEPTIONS : –– ADU_TYPE_MISMATCH : –– the ADU alternative is not a structured ADU

function NBR_ITEMS(ADU_DESCRIPTION : in T_ADU_DESCRIPTION) return NATURAL; –– DESCRIPTION –– return number of items in ADU –– EXCEPTIONS : –– IS_UNDEFINED : –– the alternative is UNDEFINED

Page 178: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

169

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

function ADU_SIZE(ADU_DESCRIPTION : in T_ADU_DESCRIPTION) return NATURAL; –– DESCRIPTION –– return size of the ADU –– EXCEPTIONS : –– ADU_TYPE_MISMATCH : –– the ADU alternative is not UNSTRUCTURED –– IS_UNDEFINED : –– the alternative is UNDEFINED

function INDEX( ADU_DESCRIPTION : in T_ADU_DESCRIPTION; SID : in MPS_DEFINITIONS.SID) return NATURAL; –– DESCRIPTION –– return the index in the ADU value list of a value with SID –– EXCEPTIONS : –– ADU_TYPE_MISMATCH : –– the ADU alternative is not STRUCTURED or UNSTRUCTURED –– ITEM_NOT_FOUND : –– no enditem description with the given SID –– IS_UNDEFINED : –– the alternative is UNDEFINED

–––––––––––––––––––––– –– packing operations ––––––––––––––––––––––

procedure PACK ( ADU_DESCRIPTION : in T_ADU_DESCRIPTION; BLOCK : in out ADT_PACKING.T_BLOCK); –– DESCRIPTION –– This procedure packs the specified ADU description variable into –– a contiguous memory block. –– EXCEPTIONS

procedure UNPACK ( BLOCK : in out ADT_PACKING.T_BLOCK; ADU_DESCRIPTION : out T_ADU_DESCRIPTION); –– DESCRIPTION –– This procedure unpacks the specified memory block into –– a ADU description variable. –– EXCEPTIONS

function SIZE_NEEDED ( VALUE : T_ADU_DESCRIPTION ) return ADT_PACKING.T_PACK_INDEX;–– DESCRIPTION–– This function calculates the actual size needed for packing the supplied–– VALUE–– EXCEPTIONS

procedure DEALLOCATE(ADU_DESC : in out T_A_ADU_DESCRIPTION); –– DESCRIPTION –– free memory allocated by new(T_ADU_DESCRIPTION) –– EXCEPTIONS ––

––––––––––––––––––– –– exceptions

Page 179: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

170

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–––––––––––––––––––

SID_VALUE_ILLEGAL : exception; SAS_NAME_VALUE_ILLEGAL : exception; ADU_TYPE_MISMATCH : exception; INDEX_ERROR : exception; ITEM_NOT_FOUND : exception; SIZE_ERROR : exception; ADU_DESCRIPTION_IS_CONSTRAINED : exception; IS_UNDEFINED : exception; NOT_CREATED : exception;

private

type T_STRUCTURED_DESCRIPTION is record SID : MPS_DEFINITIONS.SID; RAW_VALUE_TYPE : VICOS_DEFINITIONS.T_RAW_VALUE_ALTERNATIVES := VICOS_DEFINITIONS.UNDEFINED; PHYSICAL_ADDRESS : ADT_PHYSICAL_ADDRESS.T_PHYSICAL_ADDRESS; end record;

type T_STRUCTURED_DESCRIPTIONS is array (1 .. MAX_NBR_STRUCTURED_ITEMS) of T_STRUCTURED_DESCRIPTION;

type T_UNSTRUCTURED_DESCRIPTION is record SID : MPS_DEFINITIONS.SID; LOCATION : NATURAL; LENGTH : NATURAL; PACKET_PART : ADT_CCSDS_PACKET.T_PACKET_PART; end record;

type T_UNSTRUCTURED_DESCRIPTIONS is array (1 .. MAX_NBR_UNSTRUCTURED_ITEMS) of T_UNSTRUCTURED_DESCRIPTION;

subtype T_CCSDS_DESCRIPTION is T_UNSTRUCTURED_DESCRIPTION;

type T_CCSDS_DESCRIPTIONS is array (1..MAX_NBR_CCSDS_ITEMS) of T_CCSDS_DESCRIPTION;

type T_ADU_DESCRIPTION(ADU_TYPE : VICOS_DEFINITIONS.T_ADU_ALTERNATIVES := VICOS_DEFINITIONS.UNDEFINED) is record DB_SID : MPS_DEFINITIONS.SID; PRIVATE_ID : VICOS_DEFINITIONS.T_PRIVATE_ID; SAS_NAME : VICOS_DEFINITIONS.T_SAS_NAME; ACQUISITION_RATE : NATURAL; GLOBAL_ADDRESS : ADT_PHYSICAL_ADDRESS.T_PHYSICAL_ADDRESS; case ADU_TYPE is when VICOS_DEFINITIONS.STRUCTURED => ITEMS_WITH_PHYSICAL_ADDRESS : BOOLEAN := TRUE; NBR_STRUCTURED_ITEMS : NATURAL := 0; STRUCTURED_DESCRIPTIONS : T_STRUCTURED_DESCRIPTIONS; STRUCTURED_BUFFER_SIZE : NATURAL := 0; when VICOS_DEFINITIONS.UNSTRUCTURED => NBR_UNSTRUCTURED_ITEMS : NATURAL := 0; UNSTRUCTURED_DESCRIPTIONS: T_UNSTRUCTURED_DESCRIPTIONS; BUFFER_SIZE : NATURAL := 0; when VICOS_DEFINITIONS.CCSDS_PACKET => CCSDS_HEADER : ADT_CCSDS_PACKET.T_CCSDS_HEADER; CCSDS_SECONDARY_HEADER : ADT_CCSDS_PACKET.T_CCSDS_SECONDARY_HEADER;

Page 180: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

171

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

NBR_CCSDS_ITEMS : NATURAL := 0; CCSDS_DESCRIPTIONS : T_CCSDS_DESCRIPTIONS; when VICOS_DEFINITIONS.PUS_PACKET => PUS_CCSDS_HEADER : ADT_CCSDS_PACKET.T_CCSDS_HEADER; PUS_CCSDS_SECONDARY_HEADER: ADT_CCSDS_PACKET.PUS_SPECIFIC.T_PUS_TM_SECONDARY_HEADER; PUS_NBR_CCSDS_ITEMS : NATURAL := 0; PUS_CCSDS_DESCRIPTIONS : T_CCSDS_DESCRIPTIONS; PUS_Wildcards : T_Wildcards := (others => False); PUS_Struct_Id : Mps_Definitions.Sid := Mps_Definitions.Null_Sid; PUS_Struct_Id_Value : Integer := 0; PUS_Struct_Id_Offset : Numeric_Types.Unsigned_Integer32 := 0; PUS_Struct_Id_Length : Numeric_Types.Unsigned_Integer32 := 0; when VICOS_DEFINITIONS.UNDEFINED => null; end case; end record;

end ADT_ADU_DESCRIPTION;

Page 181: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

172

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.6.6 ADT ADU

Informal Interface Description

An ADU is the standardized format in which any measurement is received by VICOS. It is a packet of measure-ment values which are packed according to the list given in the corresponding ADU Description. ADUs are gen-erated by SASs and delivered to VICOS together with an ADU header allowing to identify the initial requestfor acquisition.

A ADU is a composite type containing the following attributes :

– an ADU alternative, which modifies the structure of this item;

– an database sid, which is the identifier allocated by the MPS when the corresponding ADU Descrip-tion end–item is created;

– a time tag, indicating when the values have been acquired;

– a sequence number, which indicates the number of ADUs, with this sid, already acquired, when re-quired cyclically;

– a data interruption flag, which means, when set to TRUE, that for some reasons, SAS could not ac-quire the corresponding data, in the time between the last ADU sent to VICOS and the current one.VICOS generates then an error message and does not apply the delta monitoring, i.e. it does notcheck values against delta limits.

– an SAS’s short name i.e. the one in charge of the data transfer (see EGSE Software);

– an ADU data buffer size;

– a list of item values, if ADU is structured composed of :– an index,– a value (see Raw Value),

– a measurement values byte buffer, if ADU is unstructured;

– a telemetry packet, if ADU is ccsds_packet.

A Table type is also provided, which allows to define indexed lists of this ADT.

Page 182: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

173

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Formal Interface Description

––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––IDENTIFICATION–––– PROJECT NAME : CGS–– PRODUCT NAME : TES–– CI–NUMBER : 1216 843–– OBJECT NAME : VICOS_ADTS––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––CONTENTS–––– COMPILER : SunAda 1.1 / Alsys Ada 5.5.1–– LANGUAGE : ADA–– SPECIAL CONTENTS:–– CHANGE HISTORY–– IRN 8218–– creator: N. Soelter–– creation date: 22.05.2001–– comment: add PUS_PACKET to T_ADU data structure––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– IRN 8210–– creator: N. Soelter–– creation date: 09.03.2001–– comment: new procedure set_raw_value and–– fuction raw_value for DOUBLE_FLOAT––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– PIRN 8070–– creator: P.Hartmann–– creation date: 23.06.99–– comment: access to CCSDS header via measurements––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V16.3 at Central Repository at DASA RI–– creator: hartmann (on host aiv_2)–– creation date: 16.12.96 13:46:08–– comment:–– add comments for UNPACK2––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V16.2 at Central Repository at DASA RI–– creator: hartmann (on host aiv_2)–– creation date: 16.12.96 13:18:30–– comment:–– 1/ GET_RAW_VALUE : make the VALUE –in out– (instead of –out–) andadd out parameter LENGTH (for structured ADU)–– 2/ remove NUMBER_OF_BITS from functions RAW_VALUE andRAW_CCSDS_VALUE returning SINGLE_FLOAT–– 3/ change name for RAW_VALUE and GET_RAW_VALUE toRAW_UNSTRUCTURED_VALUE and GET_RAW_UNSTRUCTURED_VALUE (for unstructured ADU)––––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V16.1 at Central Repository at DASA RI

Page 183: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

174

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– creator: tommy (on host aiv_tn2)–– creation date: 09.12.96 16:55:14–– comment:–– Fast unpack, access type , extract operation added––––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.4 at Central Repository at DASA RI (CGS V3 development)–– creator: adt_1 (on host vicos2–3)–– creation date: 22.06.95 09:19:35–– comment:–– Build 2 baseline––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V3.1 at CC ;–– creator: Tommy Jakobsen–– creation date: 13.06.95 10:00:00–– Build 2 baseline, PIRN 3042–– New definition of T_ADU in private part–– Included missing function raw_value for U_INT–– Updated description of some functions–––– V3.0 at ERNO ; CGS engineering–– creator: gehrke (on host mps2s–1)–– creation date: 19.05.95 10:00:00–– Build 2 baseline, PIRN 3042–––– V2.10 at ERNO ; VICOS development–– creator: athmann (on host vicos_5)–– creation date: 28.07.93 12:53:11–– Set default values for address information for private types–––– V2.9 at ERNO ; VICOS development–– creator: athmann (on host vicos_5)–– creation date: 03.03.93 20:00:14–– Version as delivered by SRO1216843b (IK ADTs)–––– V2.8 at ERNO ; VICOS development–– creator: athmann (on host vicos_5)–– creation date: 15.01.93 15:23:11–– re–include ADT_type description–– V2.7 at ERNO ; VICOS development–– creator: athmann (on host vicos_5)–– creation date: 08.12.92 20:01:29–– update comments / descriptions–– V2.6 at ERNO ; VICOS development–– creator: vicos (on host vicos_s)–– creation date: 17.11.92 11:20:00–– adts version 2.0.1: update acc. to PIRN VICOS–2034–– V2.5 at ERNO ; VICOS development–– creator: vicos (on host prime_1)–– creation date: 18.09.92 11:55:17–– modifications according to FINAL ICD REVIEW DNs (see list)–– V2.4 at ERNO ; VICOS development–– creator: vicos (on host vicos_8)–– creation date: 21.07.92 07:59:31–– Naming of CGS_CALENDAR changed to VICOS_CALENDAR–– V2.3 at ERNO ; VICOS development

Page 184: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

175

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– creator: maron (on host vicos_6)–– creation date: 20.07.92 15:31:10–– VCS–spadm & COL–MBER–ZU1–TN–0026/92–––– END HISTORY––––****************************************************************************––

with MPS_DEFINITIONS;with VICOS_DEFINITIONS;with CGS_CALENDAR;with NUMERIC_TYPES;with ADT_PACKING;with ADT_CCSDS_PACKET;with ADT_ADU_DESCRIPTION;

package ADT_ADU is

SCCSID_ADS : constant STRING := ”@(#) adt_adu.ads /main/solaris–port/cgs_4.3/cgs_5.0/5 01/08/02 10:57:35@(#)”;

–––––––––––––––––––––––––––––––––––– –– public types and constants types ––––––––––––––––––––––––––––––––––––

MAX_NBR_STRUCTURED_ITEMS : constant integer:=ADT_ADU_DESCRIPTION.MAX_NBR_STRUCTURED_ITEMS;

MAX_BINARY_BUFFER_SIZE : constant integer := ADT_ADU_DESCRIPTION.MAX_BINARY_BUFFER_SIZE;

subtype T_BINARY_BUFFER_SIZE is INTEGER range 0 .. MAX_BINARY_BUFFER_SIZE;

subtype T_NBR_STRUCTURED_ITEMS is INTEGER range 0 ..MAX_NBR_STRUCTURED_ITEMS;

type T_BINARY_BUFFER is array (T_BINARY_BUFFER_SIZE range <>) of NUMERIC_TYPES.UNSIGNED_INTEGER8;

pragma PACK(T_BINARY_BUFFER);

––––––––––––––––––––––– –– adt types –––––––––––––––––––––––

type T_ADU(ALTERNATIVE : VICOS_DEFINITIONS.T_ADU_ALTERNATIVES := VICOS_DEFINITIONS.UNDEFINED) is private; –– An ADU is composed of : –– – an ADU alternative, –– – an identifier ( MDB sid), –– – a time–tag, –– – a sequence counter, –– – a data interruption flag, –– – an SAS short name, –– – a list of measurement sids and values if ADU is structured, –– – an array of bytes containing meas. values if ADU isunstructured,

Page 185: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

176

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– – a TM packet, if ADU is a CCSDS packet,

type T_A_ADU is access T_ADU;

––––––––––––––––––––––– –– Construct operation –––––––––––––––––––––––

procedure CONSTRUCT( ADU : in out T_ADU; DESCRIPTION : inADT_ADU_DESCRIPTION.T_ADU_DESCRIPTION); –– DESCRIPTION –– this operation initially sets the ADU alternative –– and the SID to the values defined in the description –– the ADU is cleared, i.e. all datafields are set to zero –– and the sequence count is set to zero and the –– DATA_INTERRUPTION is reset. –– WARNING: There is no internal check whether or not the –– ADU is currently ”in use”. –– EXCEPTIONS: –– ADU_TYPE_MISMATCH : the input adu’s constraint contradicts the adutype of description –– SIZE_ERROR : there is not enough space in the adu for allenditems ––––––––––––––––––––– –– Write Operations –––––––––––––––––––––

procedure SET_ALTERNATIVE(ADU : in out T_ADU; ALTERNATIVE : inVICOS_DEFINITIONS.T_ADU_ALTERNATIVES); –– DESCRIPTION –– Set the alternative of the ADU; must be set before values are –– written to the ADU. –– EXCEPTIONS –– CONSTRAINT_ERROR : the alternative is already set

procedure SET_TIME_TAG(ADU : in out T_ADU; LOCAL_TIME : in CGS_CALENDAR.CGS_DATE_AND_TIME; SMT : in CGS_CALENDAR.CGS_DATE_AND_TIME); –– DESCRIPTION –– Sets the time tag of the ADU –– EXCEPTIONS –– none

procedure SET_SAS_NAME(ADU : in out T_ADU; SAS_NAME : in VICOS_DEFINITIONS.T_SAS_NAME); –– DESCRIPTION –– This procedure sets the short name of the SAS in charge of –– the specified ADU variable –– EXCEPTIONS –– None

procedure SET_SEQUENCE_NUMBER(ADU : in out T_ADU; SEQUENCE_NUMBER : in NATURAL); –– DESCRIPTION –– Sets the sequence number of the ADU

Page 186: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

177

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– EXCEPTIONS –– – none

procedure SET_DATA_INTERRUPTION(ADU : in out T_ADU);

–– DESCRIPTION –– Sets the Data Interruption flag for the ADU –– EXCEPTIONS –– none

procedure RESET_DATA_INTERRUPTION(ADU : in out T_ADU);

–– DESCRIPTION –– Resets the Data Interruption flag for the ADU –– EXCEPTIONS –– – none

procedure SET_RAW_VALUE(ADU : in out T_ADU; INDEX : in T_NBR_STRUCTURED_ITEMS; VALUE : in NUMERIC_TYPES.UNSIGNED_INTEGER32); –– DESCRIPTION –– Sets a raw value for an STRUCTURED ADU at the given index –– with an unsigned value if the corresponding RAW_VALUE_ALTERNATIVE –– in the ADU description was U_INT –– EXCEPTIONS: –– ADU_TYPE_MISMATCH –– The ADU alternative is not STRUCTURED –– INDEX_ERROR –– The index is not in the range 1 .. NBR_RAW_VALUES(ADU) –– RAW_VALUE_TYPE_MISMATCH –– The RAW_VALUE on this index is not U_INT

procedure SET_RAW_VALUE(ADU : in out T_ADU; INDEX : in T_NBR_STRUCTURED_ITEMS; VALUE : in NUMERIC_TYPES.INTEGER32); –– DESCRIPTION –– Sets a raw value for an STRUCTURED ADU at the given index –– with an unsigned value if the corresponding RAW_VALUE_ALTERNATIVE –– in the ADU description was INT –– EXCEPTIONS: –– ADU_TYPE_MISMATCH –– The ADU alternative is not STRUCTURED –– INDEX_ERROR –– The index is not in the range 1 .. NBR_RAW_VALUES(ADU) –– RAW_VALUE_TYPE_MISMATCH –– The RAW_VALUE on this index is not INT

procedure SET_RAW_VALUE(ADU : in out T_ADU; INDEX : in T_NBR_STRUCTURED_ITEMS; VALUE : in NUMERIC_TYPES.SINGLE_FLOAT); –– DESCRIPTION –– Sets a raw value for an STRUCTURED ADU at the given index –– with an unsigned value if the corresponding RAW_VALUE_ALTERNATIVE –– in the ADU description was FLOAT_EGSE –– EXCEPTIONS: –– ADU_TYPE_MISMATCH –– The ADU alternative is not STRUCTURED –– INDEX_ERROR

Page 187: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

178

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– The index is not in the range 1 .. NBR_RAW_VALUES(ADU) –– RAW_VALUE_TYPE_MISMATCH –– The RAW_VALUE onm this index is not FLOAT_EGSE

procedure SET_RAW_VALUE(ADU : in out T_ADU; INDEX : in T_NBR_STRUCTURED_ITEMS; VALUE : in NUMERIC_TYPES.DOUBLE_FLOAT); –– DESCRIPTION –– Sets a raw value for an STRUCTURED ADU at the given index –– with an unsigned value if the corresponding RAW_VALUE_ALTERNATIVE –– in the ADU description was DOUBLE_FLOAT_EGSE –– EXCEPTIONS: –– ADU_TYPE_MISMATCH –– The ADU alternative is not STRUCTURED –– INDEX_ERROR –– The index is not in the range 1 .. NBR_RAW_VALUES(ADU) –– RAW_VALUE_TYPE_MISMATCH –– The RAW_VALUE onm this index is not DOUBLE_FLOAT_EGSE

procedure SET_RAW_VALUE(ADU : in out T_ADU; INDEX : in T_NBR_STRUCTURED_ITEMS; VALUE : in STRING); –– DESCRIPTION –– Sets a raw value for an STRUCTURED ADU at the given index –– with an unsigned value if the corresponding RAW_VALUE_ALTERNATIVE –– in the ADU description was BYTE_STREAM –– EXCEPTIONS: –– ADU_TYPE_MISMATCH –– The ADU alternative is not STRUCTURED –– INDEX_ERROR –– The index is not in the range 1 .. NBR_RAW_VALUES(ADU) –– RAW_VALUE_TYPE_MISMATCH –– The RAW_VALUE on this index is not BYTE_STREAM

procedure SET_BINARY_BUFFER(ADU : in out T_ADU; BUFFER : in T_BINARY_BUFFER); –– DESCRIPTION –– Writes the binary data to the unstructured ADU –– EXCEPTIONS –– ADU_TYPE_MISMATCH –– The ADU alternative is not UNSTRUCTURED –– SIZE_ERROR –– The size of the buffer differs from the binary –– buffer size of the ADU

procedure SET_CCSDS_PACKET(ADU : in out T_ADU; PACKET : in ADT_CCSDS_PACKET.T_CCSDS_PACKET); –– DESCRIPTION –– Writes a complet CCSDS packet to the ADU –– EXCEPTIONS –– ADU_TYPE_MISMATCH –– The ADU alternative is not CCSDS_PACKET

––––––––––––––––––––– –– Read Operations –––––––––––––––––––––

function IS_DATA_INTERRUPTION(ADU : in T_ADU) return BOOLEAN;

Page 188: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

179

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– DESCRIPTION –– Returns TRUE if the DATA_INTERRUPR flag is set, –– FALSE otherwise –– EXCEPTIONS

function ID(ADU: in T_ADU) return MPS_DEFINITIONS.SID;

–– DESCRIPTION –– Get the Identifier of the ADU –– EXCEPTIONS

function LOCAL_TIME_TAG(ADU: in T_ADU) returnCGS_CALENDAR.CGS_DATE_AND_TIME; function SMT_TIME_TAG(ADU: in T_ADU) return CGS_CALENDAR.CGS_DATE_AND_TIME;

–– DESCRIPTION –– Get the time tag of the ADU –– EXCEPTIONS

function SEQUENCE_NUMBER(ADU: in T_ADU) return NATURAL;

–– DESCRIPTION –– Get the sequence number of the ADU –– EXCEPTIONS

function SAS_NAME(ADU: in T_ADU) return VICOS_DEFINITIONS.T_SAS_NAME;

–– DESCRIPTION –– Get the SAS Name of the ADU –– EXCEPTIONS

function ALTERNATIVE(ADU : in T_ADU) returnVICOS_DEFINITIONS.T_ADU_ALTERNATIVES;

–– DESCRIPTION –– Get the alternative of the ADU –– EXCEPTIONS

function NBR_RAW_VALUES(adu : in t_adu) return T_NBR_STRUCTURED_ITEMS;

–– DESCRIPTION –– Get the number of raw values contained in the structured ADU –– EXCEPTIONS –– ADU_TYPE_MISMATCH –– The ADU alternative is not STRUCTURED

function BLOCK_SIZE (ADU : in T_ADU) return T_BINARY_BUFFER_SIZE;

–– DESCRIPTION –– Get the size of the binary data from a structured ADU –– EXCEPTIONS –– ADU_TYPE_MISMATCH –– The ADU alternative is not STRUCTURED

function BINARY_BUFFER_SIZE(ADU : in T_ADU) return T_BINARY_BUFFER_SIZE;

–– DESCRIPTION

Page 189: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

180

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– Get the size of the binary data from a structured ADU –– EXCEPTIONS –– ADU_TYPE_MISMATCH –– The ADU alternative is not UNSTRUCTURED

function RAW_VALUE(ADU : in T_ADU; INDEX : in T_NBR_STRUCTURED_ITEMS) returnNUMERIC_TYPES.UNSIGNED_INTEGER32; –– DESCRIPTION –– Get a raw value from a structured ADU –– EXCEPTIONS –– ADU_TYPE_MISMATCH –– The ADU alternative is not STRUCTURED –– INDEX_ERROR –– The index is not in the range 1 .. NBR_RAW_VALUES(ADU) –– RAW_VALUE_TYPE_MISMATCH –– The RAW_VALUE is not U_INT

function RAW_VALUE(ADU : in T_ADU; INDEX : in T_NBR_STRUCTURED_ITEMS) returnNUMERIC_TYPES.INTEGER32; –– DESCRIPTION –– Get a raw value from a structured ADU –– EXCEPTIONS –– ADU_TYPE_MISMATCH –– The ADU alternative is not STRUCTURED –– INDEX_ERROR –– The index is not in the range 1 .. NBR_RAW_VALUES(ADU) –– RAW_VALUE_TYPE_MISMATCH –– The RAW_VALUE is not INT

function RAW_VALUE(ADU : in T_ADU; INDEX : in T_NBR_STRUCTURED_ITEMS) returnNUMERIC_TYPES.SINGLE_FLOAT; –– DESCRIPTION –– Get a raw value from a structured ADU –– EXCEPTIONS –– ADU_TYPE_MISMATCH –– The ADU alternative is not STRUCTURED –– INDEX_ERROR –– The index is not in the range 1 .. NBR_RAW_VALUES(ADU) –– RAW_VALUE_TYPE_MISMATCH –– The RAW_VALUE is not FLOAT_EGSE

function RAW_VALUE(ADU : in T_ADU; INDEX : in T_NBR_STRUCTURED_ITEMS) returnNUMERIC_TYPES.DOUBLE_FLOAT; –– DESCRIPTION –– Get a raw value from a structured ADU –– EXCEPTIONS –– ADU_TYPE_MISMATCH –– The ADU alternative is not STRUCTURED –– INDEX_ERROR –– The index is not in the range 1 .. NBR_RAW_VALUES(ADU) –– RAW_VALUE_TYPE_MISMATCH –– The RAW_VALUE is not DOUBLE_FLOAT_EGSE

function RAW_VALUE(ADU : in T_ADU;

Page 190: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

181

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

INDEX : in T_NBR_STRUCTURED_ITEMS) return STRING; –– DESCRIPTION –– Get a raw value from a structured ADU –– EXCEPTIONS –– ADU_TYPE_MISMATCH –– The ADU alternative is not STRUCTURED –– INDEX_ERROR –– The index is not in the range 1 .. NBR_RAW_VALUES(ADU) –– RAW_VALUE_TYPE_MISMATCH –– The RAW_VALUE is not BYTE_STREAM

procedure GET_RAW_VALUE(ADU : in T_ADU; INDEX : in T_NBR_STRUCTURED_ITEMS; LENGTH : out NATURAL; VALUE : in out MPS_DEFINITIONS.T_RAW_STRING); –– DESCRIPTION –– Get a raw value from a structured ADU –– EXCEPTIONS –– ADU_TYPE_MISMATCH –– The ADU alternative is not STRUCTURED –– INDEX_ERROR –– The index is not in the range 1 .. NBR_RAW_VALUES(ADU) –– RAW_VALUE_TYPE_MISMATCH –– The RAW_VALUE is not BYTE_STREAM

–– new raw_value operations function RAW_UNSTRUCTURED_VALUE (ADU : in T_ADU; BIT_LOCATION : in NATURAL; NUMBER_OF_BITS : in NATURAL) returnNUMERIC_TYPES.UNSIGNED_INTEGER32; function RAW_UNSTRUCTURED_VALUE (ADU : in T_ADU; BIT_LOCATION : in NATURAL; NUMBER_OF_BITS : in NATURAL) return NUMERIC_TYPES.INTEGER32; function RAW_UNSTRUCTURED_VALUE (ADU : in T_ADU; BIT_LOCATION : in NATURAL) return NUMERIC_TYPES.SINGLE_FLOAT; function RAW_UNSTRUCTURED_VALUE (ADU : in T_ADU; BIT_LOCATION : in NATURAL) return NUMERIC_TYPES.DOUBLE_FLOAT; procedure GET_RAW_UNSTRUCTURED_VALUE (ADU : in T_ADU; BIT_LOCATION : in NATURAL; NUMBER_OF_BYTES : in NATURAL; VALUE : in out MPS_DEFINITIONS.T_RAW_STRING); –– DESCRIPTION –– Get a raw value from an unstructured ADU –– EXCEPTIONS –– ADU_TYPE_MISMATCH –– The ADU alternative is not UNSTRUCTURED –– DATA_LENGTH_ERROR –– raised if the offset + the length of the value is –– exceeding the length of the packet

–– new raw_value operations function RAW_CCSDS_VALUE

Page 191: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

182

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

(ADU : in T_ADU; BIT_LOCATION : in NATURAL; NUMBER_OF_BITS : in NATURAL; PACKET_PART : in ADT_CCSDS_PACKET.T_PACKET_PART := ADT_CCSDS_PACKET.DATA; Header2_Type : in ADT_CCSDS_PACKET.T_Secondary_Header := ADT_CCSDS_PACKET.Standard_Cof) return NUMERIC_TYPES.UNSIGNED_INTEGER32;

function RAW_CCSDS_VALUE (ADU : in T_ADU; BIT_LOCATION : in NATURAL; NUMBER_OF_BITS : in NATURAL; PACKET_PART : in ADT_CCSDS_PACKET.T_PACKET_PART := ADT_CCSDS_PACKET.DATA; Header2_Type : in ADT_CCSDS_PACKET.T_Secondary_Header := ADT_CCSDS_PACKET.Standard_Cof) return NUMERIC_TYPES.INTEGER32;

function RAW_CCSDS_VALUE (ADU : in T_ADU; BIT_LOCATION : in NATURAL; PACKET_PART : in ADT_CCSDS_PACKET.T_PACKET_PART := ADT_CCSDS_PACKET.DATA; Header2_Type : in ADT_CCSDS_PACKET.T_Secondary_Header := ADT_CCSDS_PACKET.Standard_Cof) return NUMERIC_TYPES.SINGLE_FLOAT;

function RAW_CCSDS_VALUE (ADU : in T_ADU; BIT_LOCATION : in NATURAL; PACKET_PART : in ADT_CCSDS_PACKET.T_PACKET_PART := ADT_CCSDS_PACKET.DATA; Header2_Type : in ADT_CCSDS_PACKET.T_Secondary_Header := ADT_CCSDS_PACKET.Standard_Cof) return NUMERIC_TYPES.DOUBLE_FLOAT;

procedure GET_RAW_CCSDS_VALUE (ADU : in T_ADU; BIT_LOCATION : in NATURAL; NUMBER_OF_BYTES : in NATURAL; VALUE : in out MPS_DEFINITIONS.T_RAW_STRING; PACKET_PART : in ADT_CCSDS_PACKET.T_PACKET_PART := ADT_CCSDS_PACKET.DATA; Header2_Type : in ADT_CCSDS_PACKET.T_Secondary_Header := ADT_CCSDS_PACKET.Standard_Cof); –– DESCRIPTION –– Get a raw value from a CCSDS ADU –– EXCEPTIONS –– ADU_TYPE_MISMATCH –– The ADU alternative is not CCSDS –– DATA_LENGTH_ERROR –– raised if the offset + the length of the value is –– exceeding the length of the packet

function RAW_VALUE_TYPE(ADU : in T_ADU; INDEX : T_NBR_STRUCTURED_ITEMS) return VICOS_DEFINITIONS.T_RAW_VALUE_ALTERNATIVES; –– DESCRIPTION

Page 192: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

183

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– Get a raw value type from a structured ADU –– EXCEPTIONS –– ADU_TYPE_MISMATCH –– The ADU alternative is not STRUCTURED –– INDEX_ERROR –– The index is not in the range 1 .. NBR_RAW_VALUES(ADU)

procedure GET_BLOCK (ADU : in T_ADU; BLOCK : out T_BINARY_BUFFER); –– DESCRIPTION –– Get the binary data from a structured ADU –– EXCEPTIONS –– ADU_TYPE_MISMATCH –– The ADU alternative is not STRUCTURED –– SIZE_ERROR –– The size of the block differs from the block –– size of the ADU

procedure GET_BINARY_BUFFER(ADU : in T_ADU; BUFFER : in out T_BINARY_BUFFER); –– DESCRIPTION –– Get the binary data from a structured ADU –– EXCEPTIONS –– ADU_TYPE_MISMATCH –– The ADU alternative is not UNSTRUCTURED –– SIZE_ERROR –– The size of the buffer differs from the binary –– buffer size of the ADU

function CCSDS_PACKET(ADU : in T_ADU) returnADT_CCSDS_PACKET.T_CCSDS_PACKET; –– DESCRIPTION –– Get a complete CCSDS packet from a –– structured ADU –– EXCEPTIONS –– ADU_TYPE_MISMATCH –– The ADU alternative is not CCSDS_PACKET

procedure DEALLOCATE(ADU : in out T_A_ADU); –– DESCRIPTION –– free memory allocated by new(T_ADU) –– EXCEPTIONS ––

––––––––––––––––––––––––– packing and unpacking operations––––––––––––––––––––––– procedure PACK(ADU : in T_ADU; BLOCK : in out ADT_PACKING.T_BLOCK); –– DESCRIPTION –– Pack an ADU into a T_BLOCK; The block must have been –– initialised before –– EXCEPTIONS

procedure UNPACK(BLOCK : in out ADT_PACKING.T_BLOCK; ADU : out T_ADU);

Page 193: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

184

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– DESCRIPTION –– Unpack a block into an ADU –– EXCEPTIONS

procedure UNPACK2(BLOCK : in out ADT_PACKING.T_BLOCK; ADU : in out T_ADU); –– DESCRIPTION –– Unpack a block into an ADU –– Defining the ADU as –in out– parameter allows more efficient –– unpacking (on HP at least: suppress additional heap usage or –– memory copy) –– EXCEPTIONS

––––––––––––––––––––– –– Exceptions –––––––––––––––––––––

INDEX_ERROR : exception; ADU_TYPE_MISMATCH : exception; SIZE_ERROR : exception; RAW_VALUE_TYPE_MISMATCH : exception; DATA_LENGTH_ERROR : exception;

––––––––––––––––––––– –– Private Part –––––––––––––––––––––

private

subtype T_POSITION is NUMERIC_TYPES.INTEGER16;

type T_ITEM is record POSITION : T_POSITION := 0; BYTE_PAD1 : NUMERIC_TYPES.UNSIGNED_INTEGER8; –– pad to fill gap RAW_TYPE : VICOS_DEFINITIONS.T_RAW_VALUE_ALTERNATIVES := VICOS_DEFINITIONS.UNDEFINED; end record;

for T_ITEM use record at mod 2; POSITION at 0 range 0 .. 15; BYTE_PAD1 at 2 range 0 .. 7; RAW_TYPE at 3 range 0 .. 7; end record;

ITEM_SIZE : constant := 4; for T_ITEM’SIZE use ITEM_SIZE * 8;

type T_TABLE is array(T_NBR_STRUCTURED_ITEMS range <>) of T_ITEM; –– pragma PACK(T_TABLE);

MAX_RAW_VALUE_SIZE : constant INTEGER := VICOS_DEFINITIONS.MAX_BYTE_STREAM_LENGTH + 4;

–– length field

type T_ELEMENT is array(1 .. MAX_RAW_VALUE_SIZE) of NUMERIC_TYPES.UNSIGNED_INTEGER8;

Page 194: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

185

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– pragma PACK(T_ELEMENT);

type T_ADU(ALTERNATIVE : VICOS_DEFINITIONS.T_ADU_ALTERNATIVES := VICOS_DEFINITIONS.UNDEFINED) is record ID : MPS_DEFINITIONS.SID; SAS_NAME : VICOS_DEFINITIONS.T_SAS_NAME; TIME_TAG_LT : CGS_CALENDAR.CGS_DATE_AND_TIME :=CGS_CALENDAR.NULL_DATE_AND_TIME; TIME_TAG_SMT : CGS_CALENDAR.CGS_DATE_AND_TIME :=CGS_CALENDAR.NULL_DATE_AND_TIME; SEQUENCE_NUMBER : INTEGER := 0; INTERRUPTION_FLAG : BOOLEAN := FALSE; BYTE_PAD1 : NUMERIC_TYPES.UNSIGNED_INTEGER8; –– pad to mod 4address. required on HP BYTE_PAD2 : NUMERIC_TYPES.UNSIGNED_INTEGER8; case ALTERNATIVE is when VICOS_DEFINITIONS.STRUCTURED => BLOCK : T_BINARY_BUFFER(1 ..ADT_ADU_DESCRIPTION.MAX_BINARY_BUFFER_SIZE); BLOCK_LENGTH : INTEGER := 0; TABLE : T_TABLE(1 ..ADT_ADU_DESCRIPTION.MAX_NBR_STRUCTURED_ITEMS); TABLE_LENGTH : INTEGER := 0; BYTE_PAD3 : NUMERIC_TYPES.UNSIGNED_INTEGER8; –– pad to mod 4size BYTE_PAD4 : NUMERIC_TYPES.UNSIGNED_INTEGER8; when VICOS_DEFINITIONS.UNSTRUCTURED => BYTE_BUFFER : T_BINARY_BUFFER(1 ..ADT_ADU_DESCRIPTION.MAX_BINARY_BUFFER_SIZE); BUFFER_LENGTH : NATURAL := 33; when VICOS_DEFINITIONS.CCSDS_PACKET => PACKET : ADT_CCSDS_PACKET.T_CCSDS_PACKET; when VICOS_DEFINITIONS.PUS_PACKET => PUS_PACKET : ADT_CCSDS_PACKET.T_CCSDS_PACKET; when VICOS_DEFINITIONS.UNDEFINED => null; end case; end record;

for T_ADU use record at mod 4; ALTERNATIVE at 64 range 0 .. 7; ID at 0 range 0 .. 31; SAS_NAME at 4 range 0 .. 191; TIME_TAG_LT at 28 range 0 .. 127; TIME_TAG_SMT at 44 range 0 .. 127; SEQUENCE_NUMBER at 60 range 0 .. 31; INTERRUPTION_FLAG at 65 range 0 .. 7; BYTE_PAD1 at 66 range 0 .. 7; BYTE_PAD2 at 67 range 0 .. 7;

Page 195: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

186

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– structured BLOCK at 476 range 0 .. 32815; BLOCK_LENGTH at 68 range 0 .. 31; TABLE at 76 range 0 .. 3199; TABLE_LENGTH at 72 range 0 .. 31; BYTE_PAD3 at 4578 range 0 .. 7; BYTE_PAD4 at 4579 range 0 .. 7;

–– unstructured BYTE_BUFFER at 72 range 0 .. 32815; BUFFER_LENGTH at 68 range 0 .. 31;

–– ccsds_packet PACKET at 68 range 0 .. 32815;

–– pus_ccsds_packet PUS_PACKET at 68 range 0 .. 32815; end record;

ADU_SIZE : constant := 1145 * 4;

for T_ADU’SIZE use ADU_SIZE * 8;

end ADT_ADU;

Page 196: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

187

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.6.7 ADT GDU Description

Informal Interface Description

A GDU Description is the set of information describing the format of the data send by VICOS towards front–endequipment or UUT. It is normally predefined in the mission/configuration database, and loaded from the corre-sponding end–item, in test system configuration and set–up phase. It is then interpreted by VICOS to elaboratea GDU to be supplied to the dedicated SAS at test execution time.

There are four different classes of GDU descriptions, depending on the target device to be triggered, which arecovered by this ADT :

– a analog stimulus description allows to send data via an analog output line;

– a discrete stimulus description allows to send data via an output line;

– a telecommand description allows to send data via the ground/onboard link;

– a binary packet description allows to send data via the ground/onboard link;

A GDU Description is a composite type containing the following attributes :

– an GDU description alternative, which modifies the structure of this item;

– an database sid, which is the identifier allocated by the MPS when the corresponding end–item iscreated;

– an SAS’s short name i.e. the one in charge of the data transfer (see EGSE Software);

– a physical address, indicating where to generate the data (see Physical Address);

– a number of retries, indicating the number of times the GDU can be resend, in case of previoustransmission failure;

– a priority indicating, if they are buffered, the order in which GDU are to be sent;

– an inhibiting flag indicating whether the GDU has to be explicitly unlocked before sending;

– a default value, if GDU description alternative is STIMULI;

– a TC packet, if GDU description alternative is PREDEFINED_TC or PUS_TC;

– a binary packet, if GDU description alternative is BINARY_PACKET;

– a formal parameter list, describing the authorised nature of the actual parameters, which values willbe placed in the GDU.

– a TC precondition part composed of a set of up to 20 measurements (or software variables or derivedvalues) to be checked before the command is sent.

– a TC verification part composed of an activation delay, a verification timeout and a set of up to 20measurements (or software variables or derived values) to be checked after the command is sent.

– a critical command flag indicating whether the GDU has to be explicitly authorized before sending.

– a password for authorization of critical command;

A Table type is also provided, which allows to define indexed lists of this ADT.

Page 197: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

188

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Formal Interface Description

–––– ADT_GDU_DESCRIPTION spec––––****************************************************************************––ABSTRACT–––––––– Provides definition of a GDU description as an ADT–––– This ADT describes a stimulus / a packet to be generated by VICOS as a–– general description of an Generation Data Unit (GDU)–––– Due to used structures from other ADTs / MPS_DEFINITIONS, the ADT structure–– provides a dynamicly allocated datatype !––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––IDENTIFICATION–––– PROJECT NAME : CGS–– PRODUCT NAME : TES–– CI–NUMBER : 1216 843–– OBJECT NAME : ADT_GDU_DESCRIPTION––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––CONTENTS–––– COMPILER : SunAda 1.1 /Alsys Ada 5.5.1–– LANGUAGE : Ada–– SPECIAL CONTENTS: ––– CHANGE HISTORY–––– #IRN 8218_1B : TC Precondition–– Author: N. Soelter–– Date: 29.08.2001–––– #IRN 8129: Extension of MPS_DEFINITIONS.T_SW_TYPES (IRN 8126)–– extended T_ALLOWED_GDU_PARAM_TYPES accordingly–– Author: W. Tammen–– Date: 29.03.2001–––– #IRN 8218: add Pus_Packet to T_GDU_DESCRIPTION data structure–– add Packet_Part to T_GDU_PARAMETER data structure–– Author: N. Soelter–– Date: 20.05.2001–––– #IRN 8110: Critical command authorization–– Author: St.Marz–– Date: 25.07.00–––– #IRN 8085: TC Verification–– Author: P.Hartmann–– Date: 25.08.99–––– #IRN 8038: allow for 255 parameters in CCSDS and binary packets–– Author: P.Hartmann–– Date: 05.11.98–––– #IRN 6020/B: modify bynary packet” interface and SPR 2888–– Author: P.Hartmann–– Date: 09.04.97–––– #IRN 6020: Add new GDU alternative ”binary packet”–– Author: P.Athmann–– Date: 8.3.97–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V16.1 at Central Repository at DASA RI–– creator: tommy (on host aiv_3)–– creation date: 09.12.96 17:13:58–– comment:

Page 198: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

189

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V5.3 at Central Repository at DASA RI–– creator: grotheer (on host mps_s)–– creation date: 21.11.96 16:41:26–– comment:–– COL–RIBRE–IRN–CGS–4013: T_ALLOWED_GDU_PARAM_TYPES extended, ENG_VALUE_UNIT added––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V5.2 at Central Repository at DASA RI–– creator: grotheer (on host ada_s)–– creation date: 23.09.96 17:51:49–– comment:–– COL–RIBRE–IRN–CGS–4013 decalibration added––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.4 at Central Repository at DASA RI (CGS V3 development)–– creator: adt_1 (on host vicos2s)–– creation date: 15.06.95 15:48:22–– comment:––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.3 at Central Repository at DASA RI (CGS V3 development)–– creator: adt_1 (on host vicos2s)–– creation date: 15.06.95 09:44:33–– comment:–– Build 2 basesline, PIRN 3043 1/D––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.2 at Central Repository at DASA RI (CGS V3 development)–– creator: adt_1 (on host vicos2–3)–– creation date: 01.06.95 11:07:52–– comment:–– Parameter ALTYRNATIVE in procedure SET_ALTERANTIVE renamed to ALTERNATIVE––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V3.2 at DASA CGS engineering–– creator: maron (on host vicos2–2)–– creation date: 22.05.95 14:00:00–– comment:–– Build 2 baseline, PIRN 3043–––– V3.1 at Central Repository V2.2 (CGS V3 development)–– creator: grotheer (on host vicos2s)–– creation date: 29.07.94 14:22:41–– comment:–– COL–ERN–VIC–IRN–2125: PACK/UNPACK added––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V2.3 at ERNO ; VICOS development–– creator: maron (on host vicos_6)–– creation date: 20.07.92 15:33:08–– VCS–spadm & COL–MBER–ZU1–TN–0026/92–– V2.2 at ERNO ; VICOS development–– creator: athmann (on host vicos_5)–– creation date: 10.07.92 17:27:11–– Update ac.. to VCS SPADM DNs–– V2.1 at ERNO ; VICOS development–– creator: vicos (on host vicos_s)–– creation date: 30.06.92 15:57:27–– added Standard Header by command create_file–– END HISTORY––****************************************************************************––

with NUMERIC_TYPES;with VICOS_DEFINITIONS;with MPS_DEFINITIONS;with ADT_PACKING;with ADT_PHYSICAL_ADDRESS;with ADT_CCSDS_PACKET;with CALIBRATION;with ADT_ENGINEERING_VALUE;

Page 199: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

190

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

package ADT_GDU_DESCRIPTION is

––––––––––––––––––––––––––––––– public types and constants–––––––––––––––––––––––––––––

SCCSID_ADS : constant STRING := ”%Z%%M% %I% %G% %Z%”;

MAX_GDU_PARAMETER : constant integer:= 255; –– max number of parameters for –– GDU of type PREDEFINED_TC –– GDU of type BINARY_PACKET

MAX_BINARY_PACKET_SIZE : constant integer := 4096;

subtype T_ALLOWED_GDU_PARAM_TYPES is MPS_DEFINITIONS.T_SW_TYPE range MPS_DEFINITIONS.STRING_TYPE .. MPS_DEFINITIONS.BYTE_STRING_TYPE;

type T_GDU_PARAMETER (SW_TYPE : T_ALLOWED_GDU_PARAM_TYPES := MPS_DEFINITIONS.INTEGER_TYPE; OPTIONAL : BOOLEAN := FALSE) is private;

type T_GDU_DESCRIPTION (ALTERNATIVE : VICOS_DEFINITIONS.T_GDU_ALTERNATIVES := VICOS_DEFINITIONS.UNDEFINED) is private;

type T_A_GDU_DESCRIPTION is access T_GDU_DESCRIPTION;

type T_CHECK is (EQUAL, NOT_EQUAL, LESS, GREATER, LESS_EQUAL, GREATER_EQUAL, IN_RANGE);

type T_COMMAND_VERIFICATION isrecord SID : MPS_DEFINITIONS.SID; CHECK : T_CHECK; VALUE_1 : ADT_ENGINEERING_VALUE.T_ENGINEERING_VALUE; VALUE_2 : ADT_ENGINEERING_VALUE.T_SCALAR_ENGINEERING_VALUE;end record;

type T_Command_Precondition isrecord Sid : Mps_Definitions.Sid; Check : T_Check; Value_1 : Adt_Engineering_Value.T_Engineering_Value; Value_2 : Adt_Engineering_Value.T_Scalar_Engineering_Value;end record;

––––––––––––––––––––––––––––––––––––– GDU Parameter: Write Operations–––––––––––––––––––––––––––––––––––

procedure SET_PARAMETER_TYPE( GDU_PARAM : in out T_GDU_PARAMETER; PARAM_TYPE: in T_ALLOWED_GDU_PARAM_TYPES );

–– DESCRIPTION –– Sets the type of a GDU parameter –– EXCEPTIONS –– GDU_DESCRIPTION_IS_CONSTRAINED

procedure SET_OPTIONAL( GDU_PARAM: in out T_GDU_PARAMETER; OPTIONAL : in BOOLEAN := FALSE ); –– DESCRIPTION –– Sets the optional / mandatory flag of a GDU parameter –– EXCEPTIONS –– GDU_DESCRIPTION_IS_CONSTRAINED

Page 200: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

191

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

procedure SET_BIT_LENGTH( GDU_PARAM : in out T_GDU_PARAMETER; NUMBER_OF_BITS: in NATURAL ); –– DESCRIPTION –– Sets the number of bits to be replaced by the parameter –– (i.e. in the CCSDS packet data part) –– EXCEPTIONS –– none

procedure SET_BIT_OFFSET( GDU_PARAM: in out T_GDU_PARAMETER; OFFSET : in NATURAL ); –– DESCRIPTION –– Sets the offset to the beginning of the data fiels for bits to be –– replaced by the parameter –– (i.e. in the CCSDS packet data part) –– EXCEPTIONS –– none

procedure Set_Packet_Part (Gdu_Param : in out T_Gdu_Parameter; Packet_Part : in Adt_Ccsds_Packet.T_Packet_Part); –– DESCRIPTION –– Sets the packet part of the GDU parameter –– EXCEPTIONS

procedure SET_MODE( GDU_PARAM: in out T_GDU_PARAMETER; MODE : in MPS_DEFINITIONS.T_FORMAL_PARAMETER_MODE ); –– DESCRIPTION –– Sets the mode (IN, IN_OUT, OUT) of the formal GDU parameter –– EXCEPTIONS –– none

procedure SET_NAME( GDU_PARAM: in out T_GDU_PARAMETER; NAME : in MPS_DEFINITIONS.STATIC_STRING80 ); –– DESCRIPTION –– Sets the name of the formal GDU parameter –– EXCEPTIONS –– none

procedure SET_DECALIBRATION_REQUIRED( GDU_PARAM: in out T_GDU_PARAMETER; REQUIRED : in BOOLEAN := TRUE ); –– DESCRIPTION –– Sets the indication, if a parameter’s actual value –– is to be decalibrated to a raw format before replacement –– is done –– EXCEPTIONS –– none

procedure SET_DECALIBRATION ( GDU_PARAM : in out T_GDU_PARAMETER; DECALIB_INFO: in CALIBRATION.CALIBRATION_DECALIBRATION_TYPE ); –– DESCRIPTION –– Sets the information, how decalibration is to be done –– Info is to be set as expected for the CALIBRATION package –– EXCEPTIONS

procedure SET_DEFAULT_VALUE (GDU_PARAM: in out T_GDU_PARAMETER; SW_VALUE: in MPS_DEFINITIONS.T_SW_SCALAR_VALUE); –– DESCRIPTION –– sets the default value to be applied for the parameter, if the –– parameter is optional, and no value has been given in the command –– EXCEPTIONS –– INVALID_TYPE: Parameter is not optional or SW_TYPE’s not equal

––––––––––––––––––––––––––––––––––––– GDU Parameter: Read Operations–––––––––––––––––––––––––––––––––––

Page 201: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

192

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

function PARAMETER_TYPE (GDU_PARAM: T_GDU_PARAMETER) return T_ALLOWED_GDU_PARAM_TYPES; –– DESCRIPTION –– Returns the type of a GDU parameter –– EXCEPTIONS

function OPTIONAL (GDU_PARAM: T_GDU_PARAMETER) return BOOLEAN; –– DESCRIPTION –– Returns the optional / mandatory flag of a GDU parameter –– EXCEPTIONS

function BIT_LENGTH (GDU_PARAM: T_GDU_PARAMETER) return NATURAL; –– DESCRIPTION –– Returns the number of bits to be replaced by the parameter –– (i.e. in the CCSDS packet data part) –– EXCEPTIONS

function BIT_OFFSET (GDU_PARAM: T_GDU_PARAMETER) return NATURAL; –– DESCRIPTION –– Returns the offset to the beginning of the data fiels for bits to be –– replaced by the parameter –– (i.e. in the CCSDS packet data part) –– EXCEPTIONS

function Packet_Part (Gdu_Param : in T_Gdu_Parameter) return Adt_Ccsds_Packet.T_Packet_Part; –– DESCRIPTION –– returns the packet part of the GDU parameter –– EXCEPTIONS

function MODE (GDU_PARAM: T_GDU_PARAMETER) return MPS_DEFINITIONS.T_FORMAL_PARAMETER_MODE; –– DESCRIPTION –– Returns the mode (IN, IN_OUT, OUT) of the formal GDU parameter –– EXCEPTIONS

function NAME (GDU_PARAM: T_GDU_PARAMETER) return MPS_DEFINITIONS.STATIC_STRING80; –– DESCRIPTION –– Sets the name of the formal GDU parameter –– EXCEPTIONS

function DECALIBRATION_REQUIRED (GDU_PARAM: T_GDU_PARAMETER) return BOOLEAN; –– DESCRIPTION –– Returns the indication, if a parameter’s actual value –– is to be decalibrated to a raw format before replacement –– is done –– EXCEPTIONS

procedure READ_DECALIBRATION (GDU_PARAM: in T_GDU_PARAMETER; DECALIB_INFO: out CALIBRATION.CALIBRATION_DECALIBRATION_TYPE); –– DESCRIPTION –– Returns the information, how decalibration is to be done –– Info is to be set as expected for the CALIBRATION package –– Note: DECALIB_INFO is a dynamically created structure which –– must be destroyed after use (see CALIBRATION package) –– EXCEPTIONS

function DEFAULT_VALUE (GDU_PARAM: T_GDU_PARAMETER) return MPS_DEFINITIONS.T_SW_SCALAR_VALUE;

–– DESCRIPTION

Page 202: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

193

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– Returns the default value to be applied for the parameter, if the –– parameter is optional, and no value has been given in the command –– EXCEPTIONS –– INVALID_TYPE: Parameter is not optional

–––––––––––––––––––––––––––––––––––––– GDU Description: Write Operations––––––––––––––––––––––––––––––––––––

procedure SET_ALTERNATIVE ( GDU_DESCRIPTION : in out T_GDU_DESCRIPTION; ALTERNATIVE: in VICOS_DEFINITIONS.T_GDU_ALTERNATIVES); –– DESCRIPTION –– Sets the alternative of a GDU description –– EXCEPTIONS

procedure SET_SID ( GDU_DESCRIPTION: in out T_GDU_DESCRIPTION; DB_SID: in MPS_DEFINITIONS.SID); –– DESCRIPTION –– Sets the SID of the GDU_Description –– EXCEPTIONS

procedure SET_SAS_NAME ( GDU_DESCRIPTION: in out T_GDU_DESCRIPTION; SAS: in VICOS_DEFINITIONS.T_APPLICATION_NAME); –– DESCRIPTION –– Sets the SAS name in the GDU description –– EXCEPTIONS

procedure SET_PHYSICAL_ADDRESS ( GDU_DESCRIPTION: in out T_GDU_DESCRIPTION; PHYSICAL_ADDRESS: in ADT_PHYSICAL_ADDRESS.T_PHYSICAL_ADDRESS); –– DESCRIPTION –– Sets the physical address of the GDU –– EXCEPTIONS

procedure SET_RETRIES ( GDU_DESCRIPTION: in out T_GDU_DESCRIPTION; RETRIES: in NATURAL); –– DESCRIPTION –– Sets the number of retries applicable for the GDU –– EXCEPTIONS

procedure SET_INHIBITED ( GDU_DESCRIPTION: in out T_GDU_DESCRIPTION); –– DESCRIPTION –– Sets the flag that the GDU is currently inhibited for –– sending –– EXCEPTIONS

procedure RESET_INHIBITED ( GDU_DESCRIPTION: in out T_GDU_DESCRIPTION); –– DESCRIPTION –– Resets the flag that the GDU is currently inhibited for –– sending –– EXCEPTIONS

procedure SET_PRIVATE_ID ( GDU_DESCRIPTION : in out T_GDU_DESCRIPTION; PRIVATE_ID : in VICOS_DEFINITIONS.T_PRIVATE_ID); –– DESCRIPTION –– Sets the private ID an SAS can use to obtain the type of –– GDU description without knowing the SID –– EXCEPTIONS

Page 203: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

194

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

procedure SET_PARAMETER_GENERAL_DESCRIPTION ( GDU_DESCRIPTION: in out T_GDU_DESCRIPTION; AT_INDEX: in POSITIVE; PARAM: in T_GDU_PARAMETER); –– DESCRIPTION –– Sets the formal parameter definition at the specified position. –– EXCEPTIONS –– INVALID_INDEX: –– the value AT_INDEX addresses an undefined parameter: –– ANALOG_STIMULUS : 1 –– DISCRETE_STIMULUS : 1 –– CCSDS_PACKET : MAX_GDU_PARAMETER –– GDU_TYPE_MISMATCH: –– the type in the GDU_DESCRIPTION is not set to –– CCSDS_PACKET or ANALOG_STIMULUS or DISCRETE_STIMULUS

procedure SET_CCSDS_PACKET_DESCRIPTION ( GDU_DESCRIPTION: in out T_GDU_DESCRIPTION; CCSDS_PACKET: in ADT_CCSDS_PACKET.T_CCSDS_PACKET);

–– DESCRIPTION –– Stores a TC packet into the GDU_DESCRIPTION –– EXCEPTIONS –– GDU_TYPE_MISMATCH: the type is not CCSDS_PACKET

procedure SET_BINARY_PACKET_LENGTH ( GDU_DESCRIPTION: in out T_GDU_DESCRIPTION; LENGTH : in NATURAL); –– DESCRIPTION –– Set the number of bytes applicable for the length of binary packet within the GDU –– EXCEPTIONS –– GDU_TYPE_MISMATCH –– The GDU alternative is not BINARY_PACKET

procedure SET_BINARY_PACKET ( GDU_DESCRIPTION: in out T_GDU_DESCRIPTION; BINARY_PACKET: in NUMERIC_TYPES.BYTE_ARRAY);

–– DESCRIPTION –– Stores a binary packet into the GDU_DESCRIPTION –– EXCEPTIONS –– GDU_TYPE_MISMATCH: the alternative is not BINARY_PACKET

––––––––––––––––––––––––––––– TC Verification–––––––––––––––––––––––––––

procedure SET_TC_VERIFICATION ( GDU_DESCRIPTION : in out T_GDU_DESCRIPTION; ACTIVATION_DELAY : in DURATION; VERIFICATION_TIMEOUT : in DURATION; NUMBER_ITEMS : in NATURAL); –– DESCRIPTION –– Stores the timing information and the number of verifications –– for the TC verification

procedure SET_TC_VERIFICATION_ITEM ( GDU_DESCRIPTION : in out T_GDU_DESCRIPTION; AT_INDEX : in POSITIVE; MEASUREMENT : in MPS_DEFINITIONS.SID; CHECK : in T_CHECK; VALUE_1 : in ADT_ENGINEERING_VALUE.T_ENGINEERING_VALUE; VALUE_2 : in ADT_ENGINEERING_VALUE.T_SCALAR_ENGINEERING_VALUE); –– DESCRIPTION –– Stores one item of the TC verification at the index AT_INDEX –– The operation SET_TC_VERIFICATION must have been called before –– EXCEPTIONS –– INVALID_INDEX : AT_INDEX is bigger than the NUMBER_ITEMS specified –– during the operation SET_TC_VERIFICATION

Page 204: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

195

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

––––––––––––––––––––––––––––– TC Precondition–––––––––––––––––––––––––––

procedure Set_TC_Precondition (Gdu_Description : in out T_Gdu_Description; Number_Items : in Natural); –– DESCRIPTION –– Stores the number of preconditions for the TC precondition

procedure Set_TC_Precondition_Item ( Gdu_Description : in out T_Gdu_Description; At_Index : in Positive; Measurement : in Mps_Definitions.Sid; Check : in T_Check; Value_1 : in Adt_Engineering_Value.T_Engineering_Value; Value_2 : in Adt_Engineering_Value.T_Scalar_Engineering_Value); –– DESCRIPTION –– Stores one item of the TC precondition at the index At_Index –– The operation Set_TC_Precondition must have been called before –– EXCEPTIONS –– INVALID_INDEX : At_Index is bigger than the Number_Items specified –– during the operation Set_TC_Precondition

––––––––––––––––––––––––––––– Read Operations–––––––––––––––––––––––––––

function ALTERNATIVE (GDU_DESCRIPTION : in T_GDU_DESCRIPTION) return VICOS_DEFINITIONS.T_GDU_ALTERNATIVES; –– DESCRIPTION –– This function returns the GDU alternative of –– the specified GDU description variable –– EXCEPTION

function DB_SID (GDU_DESCRIPTION: in T_GDU_DESCRIPTION) return MPS_DEFINITIONS.SID; –– DESCRIPTION –– returns the SID of the GDU_DESCRIPTION –– EXCEPTIONS

function PRIVATE_ID (GDU_DESCRIPTION: in T_GDU_DESCRIPTION) return VICOS_DEFINITIONS.T_PRIVATE_ID; –– DESCRIPTION –– returns the private ID an SAS can use to obtain the type of –– GDU description without knowing the SID –– EXCEPTIONS

function SAS_NAME (GDU_DESCRIPTION: in T_GDU_DESCRIPTION) return VICOS_DEFINITIONS.T_APPLICATION_NAME; –– DESCRIPTION –– returns the SAS address of the GDU –– EXCEPTIONS

function PHYSICAL_ADDRESS (GDU_DESCRIPTION: in T_GDU_DESCRIPTION) return ADT_PHYSICAL_ADDRESS.T_PHYSICAL_ADDRESS; –– DESCRIPTION –– returns the physical address of the GDU –– EXCEPTIONS –– IS_UNDEFINED –– – no physical address has been defined

function RETRIES (GDU_DESCRIPTION: in T_GDU_DESCRIPTION) return NATURAL; –– DESCRIPTION –– returns the number of retries of the GDU –– EXCEPTIONS

Page 205: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

196

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

function NUMBER_OF_PARAMETERS (GDU_DESCRIPTION: in T_GDU_DESCRIPTION) return NATURAL; –– DESCRIPTION –– returns the number of parameters defined for the GDU –– EXCEPTIONS

function PARAMETER_GENERAL_DESCRIPTION (OF_GDU_DESCRIPTION: in T_GDU_DESCRIPTION; AT_INDEX: in POSITIVE) return T_GDU_PARAMETER; –– DESCRIPTION –– returns the parameter AT_INDEX from a GDU desription –– EXCEPTIONS –– INVALID_INDEX: the value AT_INDEX addresses an undefined parameter –– STORAGE_ERROR: there is a heap overrun

function IS_ENABLED(GDU_DESCRIPTION : in T_GDU_DESCRIPTION) return BOOLEAN; –– DESCRIPTION –– returns TRUE if the GDU is enabled for sending –– EXCEPTIONS

function CCSDS_PACKET_DESCRIPTION (GDU_DESCRIPTION: in T_GDU_DESCRIPTION) return ADT_CCSDS_PACKET.T_CCSDS_PACKET; –– DESCRIPTION –– returns the CCSDS packet description –– EXCEPTIONS –– GDU_TYPE_MISMATCH: the type given is not CCSDS_PACKET

procedure GET_CCSDS_PACKET_DESCRIPTION ( GDU_DESCRIPTION: in T_GDU_DESCRIPTION; CCSDS_PACKET: in out ADT_CCSDS_PACKET.T_CCSDS_PACKET); –– DESCRIPTION –– returns the CCSDS packet description –– EXCEPTIONS –– GDU_TYPE_MISMATCH: the type given is not CCSDS_PACKET

function BINARY_PACKET_LENGTH (GDU_DESCRIPTION: in T_GDU_DESCRIPTION) return NATURAL; –– DESCRIPTION –– returns the number of bytes denoting the length of the binary packet –– EXCEPTIONS –– GDU_TYPE_MISMATCH: the alternative of the GDU Desscription is not BINARY_PACKET

procedure GET_BINARY_PACKET (GDU_DESCRIPTION : in T_GDU_DESCRIPTION; BINARY_PACKET : in out NUMERIC_TYPES.BYTE_ARRAY); –– DESCRIPTION –– returns the the contents of the binary packet –– EXCEPTIONS –– GDU_TYPE_MISMATCH: the type given is not BINARY_PACKET –– CONSTRAINT_ERROR: the actual parameter BINARY_PACKET is not large enough

––––––––––––––––––––––––––––– TC Verification–––––––––––––––––––––––––––

function NB_TC_VERIFICATION_ITEMS (GDU_DESCRIPTION : in T_GDU_DESCRIPTION) return NATURAL; –– DESCRIPTION –– returns the number of items of the TC verification

procedure GET_TC_VERIFICATION_TIME ( GDU_DESCRIPTION : in T_GDU_DESCRIPTION; ACTIVATION_DELAY : out DURATION; VERIFICATION_TIMEOUT : out DURATION); –– DESCRIPTION –– provides the timing information for the TC verification

procedure GET_TC_VERIFICATION_ITEM ( GDU_DESCRIPTION : in T_GDU_DESCRIPTION;

Page 206: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

197

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

AT_INDEX : in POSITIVE; TC_VERIF_ITEM : out T_COMMAND_VERIFICATION); –– DESCRIPTION –– provide the item of the TC verification at AT_INDEX. –– EXCEPTIONS –– INVALID_INDEX: the value AT_INDEX addresses an undefined item

––––––––––––––––––––––––––––– TC Precondition–––––––––––––––––––––––––––

function Nb_TC_Precondition_Items (Gdu_Description : in T_Gdu_Description) return Natural; –– DESCRIPTION –– returns the number of items of the TC precondition

procedure Get_TC_Precondition_Item ( Gdu_Description : in T_Gdu_Description; At_Index : in Positive; TC_Precon_Item : out T_Command_Precondition); –– DESCRIPTION –– provide the item of the TC precondition at At_Index. –– EXCEPTIONS –– INVALID_INDEX: the value At_Index addresses an undefined item

––––––––––––––––––––––––––––– critical command–––––––––––––––––––––––––––

–– write operation :

procedure SET_CRITICAL (GDU_DESCRIPTION : in out T_GDU_DESCRIPTION); –– DESCRIPTION –– defines the GDU as critical command without password

procedure SET_CRITICAL (GDU_DESCRIPTION : in out T_GDU_DESCRIPTION; PASSWORD : in STRING); –– DESCRIPTION –– defines the GDU as critical command with password

–– read operation :

function IS_CRITICAL (GDU_DESCRIPTION : in T_GDU_DESCRIPTION) return BOOLEAN; –– DESCRIPTION –– indicates if the GDU is a critical command

function GET_PASSWORD (GDU_DESCRIPTION : in T_GDU_DESCRIPTION) return STRING; –– DESCRIPTION –– Indicates if the GDU is a critical command with password. –– Caller must ensure that the GDU is a CRITICAL_COMMAND before. –– The result STRING contains the password. –– In case of empty string (ASCII.NUL), no password is given.

––––––––––––––––––––––––––––––– pack and unpack operations–––––––––––––––––––––––––––––

procedure PACK( VALUE : in T_GDU_DESCRIPTION ; BLOCK : in out ADT_PACKING.T_BLOCK );

–– DESCRIPTION –– This procedure packs the specified GDU description –– variable into a continguous memory block. –– EXCEPTIONS

procedure UNPACK( BLOCK : in out ADT_PACKING.T_BLOCK ;

Page 207: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

198

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

VALUE : out T_GDU_DESCRIPTION );

–– DESCRIPTION –– This procedure unpacks the specified memory block into –– a GDU description variable. –– EXCEPTIONS

function SIZE_NEEDED (VALUE : T_GDU_DESCRIPTION) return ADT_PACKING.T_PACK_INDEX; –– DESCRIPTION –– This function calculates the actual size needed for packing the supplied –– VALUE –– EXCEPTIONS

procedure DEALLOCATE(GDU_DESC : in out T_A_GDU_DESCRIPTION); –– DESCRIPTION –– free memory allocated for the GDU description declared as –– an access type –– EXCEPTIONS ––

procedure DEALLOCATE(GDU_DESC : in out T_GDU_DESCRIPTION); –– DESCRIPTION –– free memory allocated for the GDU description –– EXCEPTIONS ––

––––––––––––––– exceptions–––––––––––––

GDU_TYPE_MISMATCH : exception;INVALID_TYPE : exception;INVALID_INDEX : exception;GDU_DESCRIPTION_IS_CONSTRAINED : exception;

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

private

type T_GDU_PARAMETER (SW_TYPE : T_ALLOWED_GDU_PARAM_TYPES := MPS_DEFINITIONS.INTEGER_TYPE; OPTIONAL : BOOLEAN := FALSE) is record BIT_LENGTH : NATURAL; BIT_OFFSET : NATURAL; Packet_Part : Adt_Ccsds_Packet.T_Packet_Part := Adt_Ccsds_Packet.Data; MODE : MPS_DEFINITIONS.T_FORMAL_PARAMETER_MODE; NAME : MPS_DEFINITIONS.STATIC_STRING80; DECALIBRATION_REQUIRED : BOOLEAN := FALSE; –– indicates if for this parameter decalibration is required –– if not, the value of the actual parameter has to entered –– without modification into the GDU/packet DECALIBRATION : CALIBRATION.CALIBRATION_DECALIBRATION_TYPE; –– defines the decalibration for a parameter –– must conform to the parameter type case OPTIONAL is when FALSE => null; when TRUE => SW_VALUE: MPS_DEFINITIONS.T_SW_SCALAR_VALUE(SW_TYPE); –– holds the default value for an optional parameter end case ;

end record;

type T_GDU_PARAMETER_ACCESS is access T_GDU_PARAMETER;

type T_GDU_PARAMETER_LIST is array (1 .. MAX_GDU_PARAMETER) of T_GDU_PARAMETER_ACCESS;

Page 208: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

199

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

type T_COMMAND_VERIFICATION_ARRAY is array (INTEGER range <>) of T_COMMAND_VERIFICATION;type T_A_COMMAND_VERIFICATION_ARRAY is access T_COMMAND_VERIFICATION_ARRAY;

type T_Command_Precondition_Array is array (Integer range <>) of T_Command_Precondition;type T_A_Command_Precondition_Array is access T_Command_Precondition_Array;

type T_GDU_DESCRIPTION (ALTERNATIVE : VICOS_DEFINITIONS.T_GDU_ALTERNATIVES := VICOS_DEFINITIONS.UNDEFINED) is record DB_SID : MPS_DEFINITIONS.SID; PRIVATE_ID : VICOS_DEFINITIONS.T_PRIVATE_ID; SAS_ADDRESS : VICOS_DEFINITIONS.T_APPLICATION_NAME; INHIBITED : BOOLEAN; –– inhibited for sending RETRIES : NATURAL; –– number of retries in case of failures PHYSICAL_ADDRESS : ADT_PHYSICAL_ADDRESS.T_PHYSICAL_ADDRESS; NUMBER_OF_PARAMETERS : NATURAL := 0;

CRITICAL_COMMAND : BOOLEAN := FALSE; PASSWORD : STRING (1..8) := (others => ASCII.NUL);

ACTIVATION_DELAY : DURATION := 0.0; VERIFICATION_TIMEOUT : DURATION := 0.0; COMMAND_VERIFICATION : T_A_COMMAND_VERIFICATION_ARRAY; Command_Precondition : T_A_Command_Precondition_Array;

case ALTERNATIVE is

when VICOS_DEFINITIONS.ANALOG_STIMULUS => ANALOG_PARAMETER : T_GDU_PARAMETER;

when VICOS_DEFINITIONS.DISCRETE_STIMULUS => DISCRETE_PARAMETER : T_GDU_PARAMETER;

when VICOS_DEFINITIONS.CCSDS_PACKET => DEFAULT_TC : ADT_CCSDS_PACKET.T_CCSDS_PACKET; FORMAL_PARAMETERS : T_GDU_PARAMETER_LIST := (others => null);

when VICOS_DEFINITIONS.PUS_PACKET => PUS_DEFAULT_TC : ADT_CCSDS_PACKET.T_CCSDS_PACKET; PUS_FORMAL_PARAMETERS : T_GDU_PARAMETER_LIST := (others => null);

when VICOS_DEFINITIONS.BINARY_PACKET => PACKET_LENGTH : NATURAL; –– defines length of binary packet in bytes DEFAULT_PACKET : NUMERIC_TYPES.BYTE_ARRAY (1..MAX_BINARY_PACKET_SIZE); BINARY_PACKET_PARAMETERS : T_GDU_PARAMETER_LIST := (others => null);

when VICOS_DEFINITIONS.UNDEFINED => null;

end case ;

end record;

end ADT_GDU_DESCRIPTION;

Page 209: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

200

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.6.8 ADT GDU

Informal Interface Description

An GDU is the standardized format in which any stimuli/TC is send by VICOS. It is a packet of stimulus valueswhich are packed according to the list given in the corresponding GDU Description. GDUs are generated byVICOS and delivered to SASs which task is to interpret it for further propagation.

A GDU Description is a composite type containing the following attributes :

– a GDU sid,

– a GDU alternative,

– a time tag, indicating when the stimuli/TC have to be really sent;

– a sequence number, which indicates the number of GDUs, of this type, already sent;

– a priority indicating, if they are buffered, the order in which GDU are to be sent;

– a number of retries, indicating the number of times the GDU can be resend, in case of previoustransmission failure;

– an SAS short name;

– a physical address, indicating where to send the stimuli/TC (see Physical Address);

– a TC packet, if GDU description alternative is PREDEFINED_TC;

– a discrete value if GDU is of type DISCRETE_STIMULI,

– an analog value if GDU is of type ANALOG_STIMULI.

A Table type is also provided, which allows to define indexed lists of this ADT.

Page 210: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

201

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Formal Interface Description

––IDENTIFICATION–––– PROJECT NAME : CGS–– PRODUCT NAME : TES–– CI–NUMBER : 1216 843–– OBJECT NAME : ADT_GDU––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––CONTENTS–––– COMPILER : SunAda 1.1 /Alsys Ada 5.5.1–– LANGUAGE : ADA–– SPECIAL CONTENTS:–– CHANGE HISTORY–––– #IRN 8218: add PUS_PACKET to T_GDU data structure–– Author: N. Soelter–– Date: 20.05.2001–––– #IRN 7062: replacing DOUBLE_FLOAT by SINGLE_FLOAT for ANALOG_STIMULI–– Author: P.Hartmann–– Date: 27.01.97–––– #IRN 6020/B: interface for the ”bynary packet”–– Author: P.Hartmann–– Date: 09.04.97–––– #IRN 6020: Add new GDU alternative ”binary packet”–– Author: P.Athmann–– Date: 14.2.97–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.3 at Central Repository at DASA RI (CGS V3 development)–– creator: adt_1 (on host vicos2–3)–– creation date: 15.06.95 15:24:07–– comment:–– Build 2 baseline, PIRN 3044 1/C––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V3.0 at ERNO ; CGS engineering–– creator: maron (on host vicos2–2)–– creation date: 22.05.95 11:00:00–– Build 2 baseline, PIRN 3044–––– V2.8 at ERNO ; VICOS development–– creator: athmann (on host vicos_5)–– creation date: 03.03.93 20:06:45–– Version as delivered by SRO1216843b (IK ADTs)–––– END HISTORY––––****************************************************************************––with NUMERIC_TYPES;with MPS_DEFINITIONS;with VICOS_DEFINITIONS;with CGS_CALENDAR;with ADT_PACKING;with ADT_PHYSICAL_ADDRESS;with ADT_CCSDS_PACKET;with ADT_GDU_DESCRIPTION;

package ADT_GDU is

SCCSID_ADS : constant STRING := ”@(#) adt_gdu.ads /main/cgs_4.0/cgs_4.1.1/cgs_5.0/205/23/01 10:53:24@(#)”;

––––––––––––––––––––––––––––– ADT Types–––––––––––––––––––––––––––

Page 211: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

202

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

type T_GDU(ALTERNATIVE : VICOS_DEFINITIONS.T_GDU_ALTERNATIVES := VICOS_DEFINITIONS.UNDEFINED) is private;type T_PRIORITY is (HIGH,LOW);

––––––––––––––––––––––––––––– Write Operations–––––––––––––––––––––––––––

procedure SET_ALTERNATIVE( GDU : in out T_GDU; ALTERNATIVE : in VICOS_DEFINITIONS.T_GDU_ALTERNATIVES); –– DESCRIPTION –– Set the alternative of the GDU; must be set before values are –– written to the GDU. –– EXCEPTIONS –– GDU_IS_CONSTRAINED –– alternative is already set

procedure SET_ID(GDU : in out T_GDU; ID : in MPS_DEFINITIONS.SID); –– DESCRIPTION –– Set the identifier for the GDU –– EXCEPTIONS

procedure SET_PRIVATE_ID(GDU : in out T_GDU; ID : in VICOS_DEFINITIONS.T_PRIVATE_ID); –– DESCRIPTION –– Set the private identifier for the GDU –– EXCEPTIONS

procedure SET_TIME_TAG(GDU : in out T_GDU; TIME_TAG : in CGS_CALENDAR.CGS_DATE_AND_TIME; TIME_TYPE : in CGS_CALENDAR.T_TIME_TYPE);–– DESCRIPTION–– Set the time tag of the GDU–– EXCEPTIONS–– none

procedure SET_SEQUENCE_COUNT( GDU : in out T_GDU; SEQUENCE_NUMBER : in ADT_CCSDS_PACKET.T_CCSDS_SEQUENCE_COUNT);–– DESCRIPTION–– Set the sequence number of a CCSDS packet if the–– GDU is a CCSDS packet–– EXCEPTIONS–– GDU_TYPE_MISMATCH–– The GDU alternative is not CCSDS_PACKET

procedure SET_PRIORITY(GDU : in out T_GDU; PRIORITY : in T_PRIORITY);–– DESCRIPTION–– Set the priority of the GDU–– EXCEPTIONS–– none

procedure SET_RETRIES(GDU : in out T_GDU; RETRIES : in NATURAL); –– DESCRIPTION –– Set the number of retries applicable for the GDU –– EXCEPTIONS

procedure SET_SAS_NAME(GDU : in out T_GDU; SAS_NAME : in VICOS_DEFINITIONS.T_SAS_NAME); –– DESCRIPTION –– This procedure sets the short name of the SAS in charge of –– the specified GDU variable –– EXCEPTIONS –– None

procedure SET_PHYSICAL_ADDRESS( GDU : in out T_GDU; PHYSICAL_ADDRESS : in ADT_PHYSICAL_ADDRESS.T_PHYSICAL_ADDRESS); –– DESCRIPTION

Page 212: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

203

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– Set the physical address of the GDU –– EXCEPTIONS

procedure SET_CCSDS_PACKET(GDU : in out T_GDU; CCSDS_PACKET : in ADT_CCSDS_PACKET.T_CCSDS_PACKET); –– DESCRIPTION –– Write a complete CCSDS packet to the GDU –– EXCEPTIONS –– GDU_TYPE_MISMATCH –– The GDU alternative is not CCSDS_PACKET

procedure SET_BINARY_PACKET_LENGTH (GDU : in out T_GDU; LENGTH : in NATURAL); –– DESCRIPTION –– Set the number of bytes applicable for the length of binary packet within the GDU –– EXCEPTIONS –– GDU_TYPE_MISMATCH –– The GDU alternative is not BINARY_PACKET

procedure SET_BINARY_PACKET(GDU : in out T_GDU; BINARY_PACKET : in NUMERIC_TYPES.BYTE_ARRAY); –– DESCRIPTION –– Write a complete binary packet to the GDU –– EXCEPTIONS –– GDU_TYPE_MISMATCH –– The GDU alternative is not BINARY_PACKET

–––––––––––––––––––––––––––––––––––––––––– operations for parameter substitution––––––––––––––––––––––––––––––––––––––––procedure SET_VALUE(GDU : in out T_GDU; VALUE : in NUMERIC_TYPES.SINGLE_FLOAT); –– DESCRIPTION –– Write an analog value of type FLOAT to the GDU if the –– alternative is ANALOG_STIMULUS –– EXCEPTIONS –– GDU_TYPE_MISMATCH –– The GDU alternative is not ANALOG_STIMULUS

procedure SET_VALUE(GDU : in out T_GDU; VALUE : in NUMERIC_TYPES.INTEGER32); –– DESCRIPTION –– Write a discrete value to the GDU if the type is –– DISCRETE_STIMULUS –– EXCEPTIONS –– GDU_TYPE_MISMATCH –– The GDU alternative is not DISCRETE_STIMULUS

––––––––––––––––––––– read operations–––––––––––––––––––

function ALTERNATIVE(GDU : in T_GDU) return VICOS_DEFINITIONS.T_GDU_ALTERNATIVES; –– DESCRIPTION –– return the alternative from a GDU –– EXCEPTIONS

function SHORT_ID(GDU : in T_GDU) return MPS_DEFINITIONS.SID; –– DESCRIPTION –– return the identifier for the GDU –– EXCEPTIONS

function PRIVATE_ID(GDU : in T_GDU) return VICOS_DEFINITIONS.T_PRIVATE_ID; –– DESCRIPTION –– return the identifier for the GDU –– EXCEPTIONS

function PRIORITY(GDU: in T_GDU) return T_PRIORITY; –– DESCRIPTION –– return the priority of the GDU –– EXCEPTIONS

function IS_TIME_TAGGED(GDU: in T_GDU) return boolean;

Page 213: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

204

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– DESCRIPTION –– return TRUE if a GDU has a time tag, else FALSE –– EXCEPTIONS

procedure GET_TIME_TAG(GDU : in T_GDU; TIME : out CGS_CALENDAR.CGS_DATE_AND_TIME; TIME_TYPE : out CGS_CALENDAR.T_TIME_TYPE); –– DESCRIPTION –– return the time_tag from the GDU –– EXCEPTIONS

function SEQUENCE_COUNT(GDU: in T_GDU) return ADT_CCSDS_PACKET.T_CCSDS_SEQUENCE_COUNT; –– DESCRIPTION –– return the sequence count from the GDU –– EXCEPTIONS –– GDU_TYPE_MISMATCH –– The GDU alternative is not CCSDS_PACKET

function RETRIES(GDU: in T_GDU) return NATURAL; –– DESCRIPTION –– return the number of retries applicable for the GDU –– EXCEPTIONS

function PHYSICAL_ADDRESS(GDU : in T_GDU) return ADT_PHYSICAL_ADDRESS.T_PHYSICAL_ADDRESS; –– DESCRIPTION –– return the physical address of the GDU –– EXCEPTIONS

function SAS_NAME(GDU : in T_GDU) return VICOS_DEFINITIONS.T_SAS_NAME; –– DESCRIPTION –– return the sas name of the gdu –– EXCEPTIONS

function CCSDS_PACKET(GDU : in T_GDU) return ADT_CCSDS_PACKET.T_CCSDS_PACKET; –– DESCRIPTION –– return a complete CCSDS packet from the GDU –– all parameters have been substituted –– EXCEPTIONS –– GDU_TYPE_MISMATCH –– The GDU alternative is not CCSDS_PACKET

procedure GET_CCSDS_PACKET(GDU : in T_GDU; CCSDS_PACKET: in out ADT_CCSDS_PACKET.T_CCSDS_PACKET); –– DESCRIPTION –– return a complete CCSDS packet from the GDU –– all parameters have been substituted –– EXCEPTIONS –– GDU_TYPE_MISMATCH –– The GDU alternative is not CCSDS_PACKET

function BINARY_PACKET_LENGTH (GDU: in T_GDU) return NATURAL; –– DESCRIPTION –– returns the number of bytes denoting the length of the binary packet –– EXCEPTIONS –– GDU_TYPE_MISMATCH: the alternative of the GDU is not BINARY_PACKET

procedure GET_BINARY_PACKET(GDU : in T_GDU; BINARY_PACKET : in out NUMERIC_TYPES.BYTE_ARRAY); –– DESCRIPTION –– return a complete binary packet from the GDU –– all parameters have been substituted –– EXCEPTIONS –– GDU_TYPE_MISMATCH –– The GDU alternative is not BINARY_PACKET –– CONSTRAINT_ERROR: the actual parameter BINARY_PACKET is not large enough

function VALUE_OF(GDU : in T_GDU) return NUMERIC_TYPES.SINGLE_FLOAT; –– DESCRIPTION –– Returns the analog value of type FLOAT to the GDU if the –– alternative is ANALOG_STIMULUS –– EXCEPTIONS –– GDU_TYPE_MISMATCH –– The GDU alternative is not ANALOG_STIMULUS

Page 214: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

205

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

function VALUE_OF(GDU : in T_GDU) return NUMERIC_TYPES.DOUBLE_FLOAT; –– DESCRIPTION –– Analog to the previous operation. kept in this version of the ADT –– for compatibility with the old generated softwares (e.g. SAS). –– The double float that is returned is a type conversion from the –– single float data of the GDU. –– This version will be removed in the future, so any new application –– should not use it and applications using it should foresee to switch –– to the single float version of the operation.

function VALUE_OF(GDU : in T_GDU) return NUMERIC_TYPES.INTEGER32; –– DESCRIPTION –– Returns the discrete value to the GDU if the type is –– DISCRETE_STIMULUS –– EXCEPTIONS –– GDU_TYPE_MISMATCH –– The GDU alternative is not DISCRETE_STIMULUS

–––––––––––––––––––––– –– packing operations ––––––––––––––––––––––

procedure PACK(GDU : in T_GDU; BLOCK : in out ADT_PACKING.T_BLOCK); –– DESCRIPTION –– pack the GDU into a T_BLOCK –– convert to machine independent format where applicable –– EXCEPTIONS

procedure UNPACK(BLOCK : in out ADT_PACKING.T_BLOCK; GDU : out T_GDU); –– DESCRIPTION –– unpack the GDU from a T_BLOCK –– convert from machine independent format where applicable –– EXCEPTIONS

procedure UNPACK2(BLOCK : in out ADT_PACKING.T_BLOCK; GDU : in out T_GDU); –– DESCRIPTION –– unpack the GDU from a T_BLOCK –– convert from machine independent format where applicable –– EXCEPTIONS

procedure UNPACK_FROM_OLD_ARCHIVE(BLOCK : in out ADT_PACKING.T_BLOCK; GDU : in out T_GDU); –– DESCRIPTION –– This operation is only to be used by the ADT archive file. –– Its aim is to transform a GDU read from an archive file containing –– GDU’s from former CGS versions into the current GDU structure. –– EXCEPTIONS

––––––––––––––––––––––––––– Exceptions–––––––––––––––––––––––––

GDU_TYPE_MISMATCH : exception; GDU_IS_CONSTRAINED : exception;

––––––––––––––––––––––––––– Private Part–––––––––––––––––––––––––

private

type T_GDU(ALTERNATIVE : VICOS_DEFINITIONS.T_GDU_ALTERNATIVES :=VICOS_DEFINITIONS.UNDEFINED) is record ID : MPS_DEFINITIONS.SID; PRIVATE_ID : VICOS_DEFINITIONS.T_PRIVATE_ID; SAS_NAME : VICOS_DEFINITIONS.T_SAS_NAME; TIME_TAG : CGS_CALENDAR.CGS_DATE_AND_TIME := CGS_CALENDAR.NULL_DATE_AND_TIME; TIME_TYPE : CGS_CALENDAR.T_TIME_TYPE;

Page 215: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

206

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

RETRIES : NATURAL; PRIORITY : T_PRIORITY; PHYSICAL_ADDRESS : ADT_PHYSICAL_ADDRESS.T_PHYSICAL_ADDRESS; BYTE_PAD1 : NUMERIC_TYPES.UNSIGNED_INTEGER8 := 255; –– pad to mod 4address. BYTE_PAD2 : NUMERIC_TYPES.UNSIGNED_INTEGER8 := 255; BYTE_PAD3 : NUMERIC_TYPES.UNSIGNED_INTEGER8 := 255; case ALTERNATIVE is when VICOS_DEFINITIONS.ANALOG_STIMULUS => ANALOG_VALUE : NUMERIC_TYPES.SINGLE_FLOAT := 0.0; when VICOS_DEFINITIONS.DISCRETE_STIMULUS => DISCRETE_VALUE : NUMERIC_TYPES.INTEGER32 := 0; when VICOS_DEFINITIONS.CCSDS_PACKET => CCSDS_PACKET : ADT_CCSDS_PACKET.T_CCSDS_PACKET; BYTE_PAD4 : NUMERIC_TYPES.UNSIGNED_INTEGER8 := 255; –– pad to mod 4size BYTE_PAD5 : NUMERIC_TYPES.UNSIGNED_INTEGER8 := 255; when VICOS_DEFINITIONS.PUS_PACKET => PUS_CCSDS_PACKET : ADT_CCSDS_PACKET.T_CCSDS_PACKET; PUS_BYTE_PAD4 : NUMERIC_TYPES.UNSIGNED_INTEGER8 := 255; PUS_BYTE_PAD5 : NUMERIC_TYPES.UNSIGNED_INTEGER8 := 255; when VICOS_DEFINITIONS.BINARY_PACKET => PACKET_LENGTH : NATURAL := 0; –– length of binary packet in bytes BINARY_PACKET : NUMERIC_TYPES.BYTE_ARRAY (1..ADT_GDU_DESCRIPTION.MAX_BINARY_PACKET_SIZE); when VICOS_DEFINITIONS.UNDEFINED => null; end case; end record;

for T_GDU use record at mod 4; ALTERNATIVE at 328 range 0 .. 7; ID at 0 range 0 .. 31; PRIVATE_ID at 329 range 0 .. 79; SAS_NAME at 4 range 0 .. 191; TIME_TAG at 28 range 0 .. 127; TIME_TYPE at 339 range 0 .. 7; RETRIES at 44 range 0 .. 31; PRIORITY at 340 range 0 .. 7; PHYSICAL_ADDRESS at 48 range 0 .. 2239; BYTE_PAD1 at 341 range 0 .. 7; BYTE_PAD2 at 342 range 0 .. 7; BYTE_PAD3 at 343 range 0 .. 7; ANALOG_VALUE at 344 range 0 .. 31; DISCRETE_VALUE at 344 range 0 .. 31; CCSDS_PACKET at 344 range 0 .. 32815; BYTE_PAD4 at 4446 range 0 .. 7; BYTE_PAD5 at 4447 range 0 .. 7; PUS_CCSDS_PACKET at 344 range 0 .. 32815; PUS_BYTE_PAD4 at 4446 range 0 .. 7; PUS_BYTE_PAD5 at 4447 range 0 .. 7; PACKET_LENGTH at 344 range 0 .. 31; BINARY_PACKET at 348 range 0 .. ADT_GDU_DESCRIPTION.MAX_BINARY_PACKET_SIZE*8–1;

end record;

GDU_SIZE : constant := 1112 * 4;

for T_GDU’SIZE use GDU_SIZE * 8;

end ADT_GDU;

Page 216: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

207

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.7 TES Application Programmer Interface

Informal Interface Description

The role of the TES Application Programmer Interface (TES_API) is to exchange data with TES, in the formof ADU for data entering TES, and of GDU for data issued by TES.

It is presented as a standard interface for Special Application Software (SAS) for access to the TES kernel. (Notethat the SAS may not execute within the same operating system process).

It is implemented as a package of ’Ada’ functions which can be linked to applications requiring these services.

These procedural interfaces enable TES to be local or physically remote from the software needing to accessits services.

The TES_API concept is based on the idea that TES sends commands to a SAS through exactly one commandchannel in a strictly sequential way, whenever TES wants something from the SAS, i.e. when TES takes the initi-ative. The SAS itself is provided with a set of operations to read commands and parse them plus another set ofoperations to issue data or requests to TES, in this case the SAS taking the initiative.

The central point in this concept is that there exists only one procedure READ_COMMAND that waits for com-mands from TES and then provides these to the SAS. In the command, the various types of subcommands canbe implemented, e.g. ADU requests, GDUs etc...

With this concept, a SAS must not necessarily be designed with several tasks, though it is still allowed. As longas the SAS in its processing of the commands is fast enough, then no tasking is needed.

Within this concept, a data interface SAS directly enters ”running” mode after the INIT_LINK command hasbeen received.

A number of access services are supplied, these shall be summarised.

• Connection/disconnection to TES

To enable connection to the TES kernel and to enable subsequent access, connection services are pro-vided. Disconnection services are also supplied.

• SAS commanding

To enable commands to be received from SAS, a procedural interface is provided for transferring CGScommands (e.g. originating as UCL/HLCL commands) associated with test execution to TES, this inter-face also provides functions to write responses from the SAS.

This service provides the handling of the basic command reception functions only. The parsing of thecommand itself is not a function of this API. The necessary procedures are provided in an abstract datatype T_COMMAND in ADT_TES_TO_SAS_COMMAND package.

• Message service

Services are provided for reading messages from and passing messages to APs executing under the con-trol of TES.

Error message services are provided for passing Error Messages from the active SAS on to TES (andhence on to the CGS User).

• Time service

Timing services are provided for test execution these include, reading of system time and Wait (suspendcaller until the Wake Up time).

• ADU/GDU service

During test execution, data can be acquired from different sources. Acquisition services are applied toAcquisition Data Units (ADUs) and Generation Data Units (GDUs). ADUs are associated with End

Page 217: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

208

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Items in the Mission Database, the definition of measurement include the calibration and monitoringspecification in addition to the raw data source (e.g. SAS for TM packet).

An ADU can contain raw measurement values which can be extracted and calibrated. An ADU can besent within a Delivery Packet or constructed and sent separately. ADU requests are therefore used totrigger data and information generation e.g. from the Unit Under Test, SAS etc. GDUs provide data suchas TC packets, HW Stimuli etc to other products. These then are used to manage commanding of theUUT. A GDU can contain Telecommands (TCs) or Stimuli.

Services provide facilities for managing such data constructs e.g.: Enable/Disable ADU Construction,Read ADU, Enable/Disable ADU Acquisition, Enable/Disable ADU Redirection, Announce ADU/GDU, Disconnect ADU/GDU, Issue (for End Item Command), Put GDU (ready for sending to a des-tination).

The extraction of an ADU description from a command itself is not a function provided by this API butthis function, as well as all the type definitions for raw values come from abstract data typesADT_COMMAND, ADT_ADU_DESCRIPTION, ADT_ADU and ADT_RAW_VALUE.

The extraction of an GDU from a command itself is not a function provided by this API but this functioncomes from abstract data types ADT_COMMAND, ADT_GDU and ADT_RAW_VALUE.

In connection with the ADU/GDU services, Exchange Services are provided for sending/receiving ofADUs. These include: Read ADU Stream, Get/Ack GDU and Get/Ack ADU Request.

• Raw/engineering value processing

The data processing service provides the operations for raw and calibrated data exchange with TES. Thetype definitions for raw and engineering values come from abstract data types ADT_RAW_VALUE andADT_ENGINEERING_VALUE.

• TRDB Access (Result Files)

SAS may create their own result files. To deliver the files to the currently open test session in the TRDB,or to retrieve the file names, proceures are provided.

• Translation operations

SAS may translate pathnames to a MDB enditem in it corrosponding short identifier (SID), or to thedefined nickname.

• Get telecommand description

SAS may ask for a telecommand (GDU) description.

Finally, services are provided to enable the active SAS to retrieve Flight SW (e.g. SWRUs) from the MissionDatabase for up–link (passing onto Flight Hardware) during check–out operations.

All operations of this API are constraint because they will use operations that are protected against parallel ac-cess, e.g. operations that check the presence of a connection or the send operation of the underlying networksoftware. That means that all operations may be accessed in parallel without external synchronization by theclient, but the control flow of a caller may be suspended if more than one caller (task) reaches the same synchron-ization point.

Page 218: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

209

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Formal Interface Description

–––– ADT_TES_TO_SAS_COMMAND spec––––****************************************************************************––ABSTRACT–––––– This package defines and handles types related to commands exchanged–– between VICOS TES and Special Application Software (SAS)––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––IDENTIFICATION–––– PROJECT NAME : CGS–– PRODUCT NAME : TES–– CI–NUMBER : 1216 843–– OBJECT NAME : ADT_TES_TO_SAS_COMMAND––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––CONTENTS–––– COMPILER : SunAda 1.1 /Alsys Ada 5.5.1–– LANGUAGE : ADA–– SPECIAL CONTENTS:–– CHANGE HISTORY–– V3.0 at ERNO ; CGS engineering–– creator: maron (on host vicos2–2)–– creation date: 14.03.95 10:00:00–– Build 2 baseline, PIRN 3049–– V2.4 at ERNO ; VICOS development–– creator: athmann (on host vicos_5)–– creation date: 03.03.93 20:21:43–– Version as delivered by SRO1216843b (IK ADTs)

––****************************************************************************––

with ADT_PACKING; –– type T_BLOCK

with VICOS_DEFINITIONS; –– type T_APPLICATION_NAME

with ADT_ADU_DESCRIPTION; –– type T_ADU_DESCRIPTION

with ADT_GDU; –– type T_GDU

package ADT_TES_TO_SAS_COMMAND is

–––––––––––––––––––––––––––––– –– public types and constants –––––––––––––––––––––––––––––– type T_DOWNLOAD_SW_TYPE is (

DATA_FILE,EXECUTABLE);

type T_DESTINATION is (FRONT_END_EQUIPMENT,UNIT_UNDER_TEST);

type T_COMMAND_ALTERNATIVES is ( UNDEFINED, INIT_APPLICATION, START_APPLICATION, RESET_APPLICATION, STATUS_REQUEST, AP_MESSAGE, ADU_REQUEST, GDU_REQUEST, UNLOAD_APPLICATION, DOWNLOAD, NO_COMMAND);

–– The command alternatives indicates to the SAS: –– – that the command alternative is undefined,

Page 219: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

210

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– – to put itself into an ’initiate’ state, i.e. ready to run, –– – to start its execution, –– – to abort the execution and to return to ’idle’ state, i.e. wait –– for an ’initiate’ command, –– – that a status is requested (SAS errors, statistics, ...), –– – that the command contains a message coming from an AP, –– – to start the data acquisition from UUT, –– – to start the data generation to UUT, –– – to make a complete termination, i.e. unload from memory, –– – to support downloading of files –– – the variable is not set–up, i.e. contains nothing.

type T_COMMAND ( COMMAND_ALTERNATIVE : T_COMMAND_ALTERNATIVES := UNDEFINED) is private; –––––––––––––––––––– –– write operations –––––––––––––––––––– procedure SET_COMMAND_ALTERNATIVE ( OF_COMMAND : in out T_COMMAND; WITH_ALTERN : in T_COMMAND_ALTERNATIVES); –– DESCRIPTION –– This procedure sets the command alternative of the –– given command. –– EXCEPTIONS –– COMMAND_IS_CONSTRAINED : –– The provided command is constrained and the alternative –– can therefore not be changed.

procedure SET_TIMEOUT ( OF_COMMAND : in out T_COMMAND; WITH_TIMEOUT_MILLISECS : in POSITIVE); –– DESCRIPTION –– This procedure sets the timeout period in milliseconds a SAS –– has to acknowledge the command. –– EXCEPTIONS –– None.

procedure SET_INIT_PARAMS ( OF_COMMAND : in out T_COMMAND; WITH_INIT_PARAMS : in STRING); –– DESCRIPTION –– In case the type of command is the INIT_APPLICATION command, –– this procedure can be used to set the parameter string –– supplied to the UCL library procedure INIT_APPLICATION. –– The maximum length of the string is 255 characters. –– EXCEPTIONS –– COMMAND_TYPE_MISMATCH : –– the command is not an INIT_APPLICATION command –– INIT_PARAMS_ILLEGAL : –– the passed initialisation parameter string had a length –– that exeeded 255 characters.

procedure SET_MESSAGE ( OF_COMMAND : in out T_COMMAND; WITH_MESSAGE : in STRING); –– DESCRIPTION –– In case the type of command is the AP_MESSAGE command, –– this procedure can be used to set the message string –– supplied to the UCL library procedure WRITE_MESSAGE_TO_APPLICATION. –– The maximum length of the string is 255 characters. –– EXCEPTIONS –– COMMAND_TYPE_MISMATCH : –– the command is not an AP_MESSAGE command –– MESSAGE_ILLEGAL : –– the passed message string had a length –– that exeeded 255 characters.

procedure SET_ADU_DESCRIPTION ( OF_COMMAND : in out T_COMMAND; ENABLE : in BOOLEAN; WITH_ADU_DESCRIPTION : in ADT_ADU_DESCRIPTION.T_ADU_DESCRIPTION); –– DESCRIPTION

Page 220: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

211

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– In case the type of command is the ADU_REQUEST command, –– this procedure can be used to set the ADU_DESCRIPTION. –– ENABLE specifies if the ADU has to be enabled (ENABLE => true) –– or disabled (ENABLE => false) –– EXCEPTIONS –– COMMAND_TYPE_MISMATCH : –– the command is not an ADU_REQUEST command

procedure SET_GDU ( OF_COMMAND : in out T_COMMAND; WITH_GDU : in ADT_GDU.T_GDU); –– DESCRIPTION –– In case the type of command is a GDU_REQUEST command, –– this procedure can be used to set the GDU. –– EXCEPTIONS –– COMMAND_TYPE_MISMATCH : –– the command is not an GDU_REQUEST command procedure SET_DOWNLOAD_PARAMS ( OF_COMMAND : in out T_COMMAND; FILE_TYPE : in T_DOWNLOAD_SW_TYPE; FILE_ID : in VICOS_DEFINITIONS.T_NAME_STRING; FILE_NAME : in VICOS_DEFINITIONS.T_FILE_NAME; DESTINATION_TYPE : in T_DESTINATION; DESTINATION_ID : in VICOS_DEFINITIONS.T_NAME_STRING); –– DESCRIPTION –– In case the type of command is a DOWNLOAD command, –– this procedure sets the parameters needed by the SAS. –– EXCEPTIONS –– COMMAND_TYPE_MISMATCH : –– the command is not a DOWNLOAD command

––––––––––––––––––– –– read operations –––––––––––––––––––

function COMMAND_ALTERNATIVE ( COMMAND : T_COMMAND) return T_COMMAND_ALTERNATIVES; –– DESCRIPTION –– This function takes a command received as an input –– and returns the type of that command. –– EXCEPTIONS –– None.

function COMMAND_TIMEOUT ( COMMAND : T_COMMAND) return POSITIVE; –– DESCRIPTION –– This function takes a command and –– returns the timeout period in milliseconds an SAS has –– to acknowledge the command. –– EXCEPTIONS –– None.

function NEEDS_ACKNOWLEDGE( COMMAND : T_COMMAND) return BOOLEAN; –– DESCRIPTION –– This function returns TRUE if a command needs an acknowledge by the SAS. –– The following coomands need an acknowledge at present:

–– INIT_APPLICATION,–– START_APPLICATION,–– RESET_APPLICATION,–– STATUS_REQUEST,–– ADU_REQUEST, –– GDU_REQUEST,–– UNLOAD_APPLICATION,–– DOWNLOAD,

–– EXCEPTIONS –– None. function STRING_LENGTH ( COMMAND : T_COMMAND) return NATURAL;

Page 221: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

212

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– DESCRIPTION –– In case the command provided is of type INIT_APPLICATION or –– AP_MESSAGE this procedure returns the length of the –– string stored by these commands. –– EXCEPTIONS –– COMMAND_TYPE_MISMATCH : –– the command is not of type INIT_APPLICATION or AP_MESSAGE.

function INIT_PARAMS ( COMMAND : T_COMMAND) return STRING; –– DESCRIPTION –– In case the type of command received is the INIT_APPLICATION –– command, this procedure can be used to obtain the parameter –– string supplied to the UCL library procedure INIT_APPLICATION. –– EXCEPTIONS –– COMMAND_TYPE_MISMATCH : –– the command is not an INIT_APPLICATION command

function MESSAGE ( COMMAND : T_COMMAND) return STRING; –– DESCRIPTION –– In case the type of command received is the AP_MESSAGE –– command, this procedure can be used to obtain the message –– string supplied to the UCL library procedure –– WRITE_MESSAGE_TO_APPLICATION. –– EXCEPTIONS –– COMMAND_TYPE_MISMATCH : –– the command is not an AP_MESSAGE command

procedure GET_ADU_DESCRIPTION ( OF_COMMAND : in T_COMMAND; ENABLE : out BOOLEAN; ADU_DESCRIPTION : out ADT_ADU_DESCRIPTION.T_ADU_DESCRIPTION); –– DESCRIPTION –– In case the type of command received is the ADU_REQUEST –– command, this procedure can be used to obtain the –– ADU_DESCRIPTION supplied. –– ENABLE specifies if the ADU has to be enabled (ENABLE => true) –– or disabled (ENABLE => false) –– EXCEPTIONS –– COMMAND_TYPE_MISMATCH : –– the command is not an ADU_REQUEST command

function GDU ( COMMAND : T_COMMAND) return ADT_GDU.T_GDU; –– DESCRIPTION –– In case the type of command received is the GDU_REQUEST –– command, this procedure can be used to obtain the GDU supplied. –– EXCEPTIONS –– COMMAND_TYPE_MISMATCH : –– the command is not an GDU_REQUEST command procedure GET_DOWNLOAD_PARAMS ( OF_COMMAND : in out T_COMMAND; FILE_TYPE : out T_DOWNLOAD_SW_TYPE; FILE_ID : out VICOS_DEFINITIONS.T_NAME_STRING; FILE_NAME : out VICOS_DEFINITIONS.T_FILE_NAME; DESTINATION_TYPE : out T_DESTINATION; DESTINATION_ID : out VICOS_DEFINITIONS.T_NAME_STRING); –– DESCRIPTION –– In case the type of command is a DOWNLOAD command, –– this procedure returns the parameters needed by the SAS. –– EXCEPTIONS –– COMMAND_TYPE_MISMATCH : –– the command is not a DOWNLOAD command

–––––––––––––––––––––– –– packing operations ––––––––––––––––––––––

procedure PACK ( COMMAND : in T_COMMAND; BLOCK : in out ADT_PACKING.T_BLOCK);

Page 222: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

213

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– DESCRIPTION –– This procedure packs the specified command variable into –– a contiguous memory block. –– EXCEPTIONS –– None.

procedure UNPACK ( BLOCK : in out ADT_PACKING.T_BLOCK; COMMAND : out T_COMMAND); –– DESCRIPTION –– This procedure unpacks the specified memory block into –– a command variable. –– EXCEPTIONS –– None.

––––––––––––––––––– –– exceptions –––––––––––––––––––

COMMAND_TYPE_MISMATCH : exception; INIT_PARAMS_ILLEGAL : exception; MESSAGE_ILLEGAL : exception; COMMAND_IS_CONSTRAINED : exception; private

MAX_STRING_LENGTH : constant := 255; type T_CALIBRATED_STRING is record STR : STRING (1..MAX_STRING_LENGTH) := (others => ’ ’);

LENGTH : INTEGER range 0..MAX_STRING_LENGTH := 0; end record; type T_COMMAND ( COMMAND_ALTERNATIVE : T_COMMAND_ALTERNATIVES := UNDEFINED) is record TIMEOUT_VALUE : POSITIVE; case COMMAND_ALTERNATIVE is when UNDEFINED =>

null; when INIT_APPLICATION =>

INIT_STRING : T_CALIBRATED_STRING; when START_APPLICATION =>

null; when RESET_APPLICATION =>

null; when STATUS_REQUEST =>

null; when AP_MESSAGE =>

MESSAGE : T_CALIBRATED_STRING; when ADU_REQUEST =>

DESCRIPTION : ADT_ADU_DESCRIPTION.T_ADU_DESCRIPTION; ENABLED : BOOLEAN;

when GDU_REQUEST => GDU : ADT_GDU.T_GDU;

when UNLOAD_APPLICATION => null;

when DOWNLOAD => FILE_TYPE : T_DOWNLOAD_SW_TYPE; FILE_ID : VICOS_DEFINITIONS.T_NAME_STRING; FILE_NAME : VICOS_DEFINITIONS.T_FILE_NAME; DESTINATION_TYPE : T_DESTINATION; DESTINATION_ID : VICOS_DEFINITIONS.T_NAME_STRING;

when NO_COMMAND => null;end case;

end record;

end ADT_TES_TO_SAS_COMMAND;

Page 223: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

214

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Formal Interface Description

––

–– TES_API

––

––****************************************************************************

––ABSTRACT––

–– Provides the Application Program Interface to TES on Test Nodes for

–– Specific Application Software (SAS)

––

–– Constraints:

–– The package receives internally the SIGIO Sigpoll signal for the process

–– and handles it. It ignores the Sigpipe signal.

––

––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––IDENTIFICATION––

–– PROJECT NAME : CGS

–– PRODUCT NAME : TES

–– CI–NUMBER : 1216 843

–– OBJECT NAME : TES_API

––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––CONTENTS––

–– COMPILER : SunAda 1.1 Alsys Ada 5.5.1

–– LANGUAGE : Ada

–– CHANGE HISTORY

–– V5.0 at Astrium ; TES engineering

–– creator: Baldewein

–– creation date: 20.06.01

–– CGS 5.0 baseline, PIRN 8222:

–– Add operations to translate SID/PATHNAME/NICKNAME.

–– Add operations for read long float and unsigned interger values.

–– Add operation for write long float engineering values.

–– Add operation for get GDU from SID or PATH.

–– This operations have a configurable TIMEOUT parameter in the

–– TES_CONFIG_FILE, called API_CONTROLLER.TIMEOUT_FOR_READ

–– Add operations for read and recieve TRDB files.

–– V4.3 at DASA ; TES engineering

–– creator: Hartmann

–– creation date: 07.01.00

–– CGS 4.3 baseline, PIRN 8096:

–– Add operation to inform TES about ADU interruption

––

–– V4.2 at DASA ; TES engineering

–– creator: Athmann

Page 224: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

215

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– creation date: 2.11.98

–– CGS 4.2 baseline, PIRN 8035:

–– Document Use of Signal Handling instead of Polling

––

–– V4.1 at DASA ; TES engineering

–– creator: hartmann

–– creation date: 29.10.97

–– CGS 4.1 baseline, PIRN 7050/A

––

–– V4.1 at DASA ; TES engineering

–– creator: maron (on host aiv–1)

–– creation date: 08.10.97 12:00:00

–– CGS 4.1 baseline, PIRN 7050

––

–– V3.0 at ERNO ; CGS emgineering

–– creator: maron (on host vicos2–2)

–– creation date: 17.03.95 12:00:00

–– Build 2 baseline, PIRN 3058

––

–– V2.5 at ERNO ; VICOS development

–– creator: athmann (on host vicos_5)

–– creation date: 03.03.93 21:02:57

–– Update acc. to COL–MBER–VIC–IRN–2047

––

–– V2.4 at ERNO ; VICOS development

–– creator: vicos (on host prime_1)

–– creation date: 18.09.92 12:12:22

–– modifications according to FINAL ICD REVIEW DNs (see list)

–– V2.3 at ERNO ; VICOS development

–– creator: vicos (on host vicos_8)

–– creation date: 22.07.92 16:04:00

–– Alignment to SPADM and TN COL_MBER_ZU1_TN_0026_92

–– V2.1 at ERNO ; VICOS development

–– creator: vicos (on host vicos_4)

–– creation date: 25.06.92 11:09:36

–– INCREMENT_VERSION v1_0_0

–– V1.5 at ERNO ; VICOS development

–– creator: vicos (on host vicos_4)

–– creation date: 25.06.92 09:09:02

–– deleted old VICOS HEADER

–– V1.4 at ERNO ; VICOS development

–– creator: vicos (on host vicos_4)

–– creation date: 25.06.92 08:21:11

–– added new header

––****************************************************************************

––

with CGS_CALENDAR;

–– type T_DATE_AND_TIME

Page 225: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

216

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– type T_TIME_TYPE

with NUMERIC_TYPES;

–– type UNSIGNED_INTEGER32

–– type INTEGER32

–– type SINGLE_FLOAT

–– type DOUBLE_FLOAT

with VICOS_DEFINITIONS;

–– type T_APPLICATION_NAME

–– type T_LOG_TYPE

–– type T_LOG_TEXT_SHORT

–– type T_LOG_TEXT_LONG

–– type T_RAW_VALUE_ALTERNATIVES

–– type T_FILE_NAME

with MPS_DEFINITIONS;

–– type SID

–– type DYNAMIC_STRING

–– type T_SW_TYPE

–– type STATE_CODE

with TES_DEFINITIONS;

–– type T_APPLICATION_ID

–– type T_RETURN_STATUS

–– type T_IDENTIFIER

–– type T_LINK_STATUS

–– type T_AP_MESSAGE

–– type T_ACQUISITION_STATUS

–– type T_MONITOR_STATUS

with ADT_TES_TO_SAS_COMMAND;

–– type T_COMMAND

with ADT_ADU;

–– type T_ADU

with ADT_GDU_DESCRIPTION;

–– type T_GDU_DESCRIPTION

package TES_API is

SCCSID_ADS : constant STRING := ”@(#) tes_api.ads /

main/cgs_4.1/cgs_4.2/cgs_4.3/cgs_5.0/6 06/28/01 14:27:12@(#)”;

type T_SMT_STATUS is (NOT_INITIALISED,STOPPED,RUNNING);

Page 226: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

217

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

procedure CONNECT

(

SAS_NAME : in VICOS_DEFINITIONS.T_APPLICATION_NAME;

CGS_PARENT : in VICOS_DEFINITIONS.T_APPLICATION_NAME

:= VICOS_DEFINITIONS.EMPTY_NAME_STRING;

APPLICATION_ID : out TES_DEFINITIONS.T_APPLICATION_ID;

STATUS : out TES_DEFINITIONS.T_RETURN_STATUS);

–– DESCRIPTION

–– This procedure establishes a connection between a SAS and the CGS product

–– TES.

–– It tries to connect to the TES instance locally being available on a

–– testnode if the SAS is started on a testnode. Then, the parameter

–– CGS_PARENT can be the empty name string provided by default.

–– If the SAS has been started by CGS on a workstation then the CGS_PARENT

–– has to be set explicitely by the SAS. Normally, TES should pass the

–– parent application name to the SAS via the command line interface.

–– The parameter SAS_NAME is the name of the executable image of the SAS.

–– Also, this name has to correspond exactly to the definition of this SAS

–– as a database enditem of type EGSE_SW.

–– This is required since TES needs to correlate the name of an application

–– started through a UCL library command with the ones trying to connect.The

–– Application_ID is returned by TES. It is the unique handle to be used in

–– all future calls to the TES–API for this specific instance of TES.

–– Status is the error status returned by this call

–– RETURN STATES

–– SUCCESS : the call was successfull

–– CURRENT_MODE_WRONG : TES is in idle or error mode or it is currently not

–– running

–– COMMUNICATION_ERROR : some communication problem exists, carefully look

–– into your system topology table

–– SAS_UNKNOWN : The SAS_NAME is wrong, this SAS has not been

–– started by the CGS_PARENT

–– OTHER_ERROR : an unexpected error occurred or the SAS has not

–– called READ_COMMAND in time, i.e. the time–out

–– has expired (configurable in the TES_CONFIG_FILE)

procedure DISCONNECT

(

APPLICATION_ID : in TES_DEFINITIONS.T_APPLICATION_ID;

STATUS : out TES_DEFINITIONS.T_RETURN_STATUS);

–– DESCRIPTION

–– This procedure releases a connection between a SAS and TES. It tries to

–– disconnect from TES.The Application_ID is the handle provide by TES in

–– the connect operation. Status is the error status returned by this call.

–– RETURN STATES

Page 227: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

218

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– SUCCESS : the call was successfull

–– NOT_CONNECTED : the SAS is not yet connected

–– COMMUNICATION_ERROR : some communication problem exists, carefully look

–– into your system topology table, maybe TES died

–– in the meantime

–– INVALID_APPLICATION_ID : The identifier is wrong, perhaps an old one is

–– used?

–– OTHER_ERROR : an unexpected error occurred or the SAS has not

–– called READ_COMMAND in time, i.e. the time–out

–– has expired (configurable in the TES_CONFIG_FILE)

procedure READ_COMMAND

(

APPLICATION_ID : in TES_DEFINITIONS.T_APPLICATION_ID;

COMMAND : in out ADT_TES_TO_SAS_COMMAND.T_COMMAND;

COMMAND_ID : in out TES_DEFINITIONS.T_IDENTIFIER;

STATUS : out TES_DEFINITIONS.T_RETURN_STATUS;

BLOCK : in BOOLEAN := FALSE);

–– DESCRIPTION

–– This procedure reads a command from TES. It needs the application id

–– returned during the connect operation in order to check that this SAS

–– is properly connected to TES.

–– The command received from TES is returned in

–– ADT_TES_TO_SAS_COMMAND.T_COMMAND. The procedures and function of package

–– ADT_TES_TO_SAS_COMMAND can be used to further process the command and

–– find out what type of caommand it is. Also, the ADT provides all

–– necessary data associated with the command. Each command also comes with

–– a COMMAND_ID which is lateron used to e.g. acknowledge the command.

–– The parameter BLOCK indicates whether the procedure shall block in the

–– call untilthere is a command from TES (if set to TRUE). In case it is

–– FALSE, the procedure will immediately return. The command is then either

–– a meaningful one or the NULL command.

––

–– It is important to notice that commands have to be acknowledged within a

–– given time interval which can be obtained from the command itself through

–– function ADT_COMMAND.COMMAND_TIMEOUT

–– RETURN STATES

–– SUCCESS : the call was successfull

–– CURRENT_MODE_WRONG : TES is in idle or error mode or it is currently

–– not running

–– COMMUNICATION_ERROR : some communication problem exists, carefully

–– look into your system topology table, maybe TES

–– died in the meantime

–– INVALID_APPLICATION_ID : The identifier is wrong, perhaps an old one is

–– used?

–– OTHER_ERROR : an unexpected error occurred or the SAS has not

–– called READ_COMMAND in time, i.e. the time–out

Page 228: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

219

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– has expired (configurable in the TES_CONFIG_FILE)

procedure ACKNOWLEDGE_COMMAND

(

APPLICATION_ID : in TES_DEFINITIONS.T_APPLICATION_ID;

COMMAND_ID : in TES_DEFINITIONS.T_IDENTIFIER;

ACKNOWLEDGED : in BOOLEAN;

STATUS : out TES_DEFINITIONS.T_RETURN_STATUS);

–– DESCRIPTION

–– This procedure acknowledges a command received from TES. Use

–– ADT_TES_TO_SAS_COMMAND to find out which commands need explicite

–– acknowledgement.

–– It needs the application id returned during the connect operation in

–– order to check that this SAS is still connected to TES.

–– The command id as received from TES during READ_COMMAND is an input

–– parameter also.

–– If SAS wants to acknowledge the command, parameter ACKNOWLEDGED is set

–– to TRUE, else to FALSE.

–– RETURN STATES

–– SUCCESS : the call was successfull

–– CURRENT_MODE_WRONG : TES is in idle or error mode or it is currently

–– not running

–– COMMUNICATION_ERROR : some communication problem exists, carefully

–– look into your system topology table, maybe TES

–– died in the meantime

–– INVALID_APPLICATION_ID : The identifier is wrong, perhaps an old one is

–– used?

–– INVALID_COMMAND_ID : The identifier is wrong, perhaps an old one is

–– used?

–– COMMAND_TIMEOUT : The acknowledge comes too late, sorry...

–– COMMAND_NEEDS_NO_ACK : The command needs no acknowledge

–– OTHER_ERROR : an unexpected error occurred or the SAS has not

–– called READ_COMMAND in time, i.e. the time–out

–– has expired (configurable in the TES_CONFIG_FILE)

procedure ACKNOWLEDGE_COMMAND

(

APPLICATION_ID : in TES_DEFINITIONS.T_APPLICATION_ID;

COMMAND_ID : in TES_DEFINITIONS.T_IDENTIFIER;

ACKNOWLEDGED : in BOOLEAN;

ACK_CODE : in INTEGER;

ACK_LOT : in CGS_CALENDAR.CGS_DATE_AND_TIME

:= CGS_CALENDAR.NULL_DATE_AND_TIME;

ACK_SMT : in CGS_CALENDAR.CGS_DATE_AND_TIME

:= CGS_CALENDAR.NULL_DATE_AND_TIME;

STATUS : out TES_DEFINITIONS.T_RETURN_STATUS);

Page 229: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

220

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– DESCRIPTION

–– This procedure acknowledges a command received from TES. It works similar

–– to the other ACKNOWLEDGE_COMMAND procedure above but it allows the SAS to

–– specify in addition:

–– – an ACK_CODE, identifying more precisely the success or type of error

–– occurred when executing the command.

–– – an ACK_LOT, identifying precisely when the command has been executed

–– (based on LOT)

–– – an ACK_SMT, identifying precisely when the command has been executed

–– (based on SMT)

–– It needs the application id returned during the connect operation in

–– order to check that this SAS is still connected to TES.

–– The command id as received from TES during READ_COMMAND is an input

–– parameter also.

–– If SAS wants to acknowledge the command, parameter ACKNOWLEDGED is set

–– to TRUE, else to FALSE.

–– RETURN STATES

–– SUCCESS : the call was successfull

–– CURRENT_MODE_WRONG : TES is in idle or error mode or it is currently

–– not running

–– COMMUNICATION_ERROR : some communication problem exists, carefully

–– look into your system topology table, maybe TES

–– died in the meantime

–– INVALID_APPLICATION_ID : The identifier is wrong, perhaps an old one is

–– used?

–– INVALID_COMMAND_ID : The identifier is wrong, perhaps an old one is

–– used?

–– COMMAND_TIMEOUT : The acknowledge comes too late, sorry...

–– COMMAND_NEEDS_NO_ACK : The command needs no acknowledge

–– OTHER_ERROR : an unexpected error occurred or the SAS has not

–– called READ_COMMAND in time, i.e. the time–out

–– has expired (configurable in the TES_CONFIG_FILE)

procedure ACKNOWLEDGE_COMMAND_WITH_STATUS

(

APPLICATION_ID : in TES_DEFINITIONS.T_APPLICATION_ID;

COMMAND_ID : in TES_DEFINITIONS.T_IDENTIFIER;

SAS_STATUS : in TES_DEFINITIONS.T_LINK_STATUS;

SAS_ERRORS : in INTEGER;

STATUS : out TES_DEFINITIONS.T_RETURN_STATUS;

SAS_LAST_ERROR : in VICOS_DEFINITIONS.T_LOG_TEXT_LONG);

–– DESCRIPTION

–– This procedure is the answer to a STATUS_REQUEST command received from

–– TES. A SAS must call this procedure within the defined timeout interval,

–– otherwise TES will detect a time out.

Page 230: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

221

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– The application id is the ID returned by TES during the connect operation.

–– The command id is the one returned during READ_COMMAND.

–– SAS_STATUS is the current state of the SAS. The SAS_ERRORS is the

–– accumulated number of errors detected in this SAS. It is up to the SAS

–– to decide how this counter is maintained. The SAS_LAST_ERROR is a string

–– providing more subtle information on the last error encountered.

–– RETURN STATES

–– SUCCESS : the call was successfull

–– CURRENT_MODE_WRONG : TES is in idle or error mode or it is currently

–– not running

–– COMMUNICATION_ERROR : some communication problem exists, carefully

–– look into your system topology table, maybe TES

–– died in the meantime

–– INVALID_APPLICATION_ID : The identifier is wrong, perhaps an old one is

–– used?

–– INVALID_COMMAND_ID : The identifier is wrong, perhaps an old one is

–– used?

–– COMMAND_TIMEOUT : The acknowledge comes too late, sorry...

–– COMMAND_NEEDS_NO_ACK : The command needs no acknowledge

–– OTHER_ERROR : an unexpected error occurred or the SAS has not

–– called READ_COMMAND in time, i.e. the time–out

–– has expired (configurable in the TES_CONFIG_FILE)

procedure SEND_MESSAGE_TO_AP

(

APPLICATION_ID : in TES_DEFINITIONS.T_APPLICATION_ID;

AP_NAME : in STRING;

MESSAGE : in TES_DEFINITIONS.T_AP_MESSAGE;

MESSAGE_LENGTH : in POSITIVE;

STATUS : out TES_DEFINITIONS.T_RETURN_STATUS);

–– DESCRIPTION

–– This procedure sends a message to an AP’s message buffer. The application

–– id is the ID returned by TES during the connect operation.The AP name is

–– the pathname of the AP the message shall be sent to. In case several

–– instances of the AP are running, TES will put the message into all input

–– buffers.

–– The message is a string to be sent to the TES AP. The length is given in

–– parameter MESSAGE_LENGTH.

–– RETURN STATES

–– SUCCESS : the call was successfull

–– CURRENT_MODE_WRONG : TES is in idle or error mode or it is currently

–– not running

–– COMMUNICATION_ERROR : some communication problem exists, carefully

–– look into your system topology table, maybe TES

–– died in the meantime

–– INVALID_APPLICATION_ID : The identifier is wrong, perhaps an old one is

Page 231: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

222

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– used?

–– AP_NOT_FOUND : The AP does not exist on the testnode

–– OTHER_ERROR : an unexpected error occurred or the SAS has not

–– called READ_COMMAND in time, i.e. the time–out

–– has expired (configurable in the TES_CONFIG_FILE)

procedure SEND_ERROR_MESSAGE

(

APPLICATION_ID : in TES_DEFINITIONS.T_APPLICATION_ID;

ERROR_MESSAGE_SHORT : in VICOS_DEFINITIONS.T_LOG_TEXT_SHORT;

ERROR_MESSAGE_LONG : in VICOS_DEFINITIONS.T_LOG_TEXT_LONG;

ERROR_TYPE : in VICOS_DEFINITIONS.T_LOG_TYPE;

LOCAL_TIME_TAG : in CGS_CALENDAR.CGS_DATE_AND_TIME

:= CGS_CALENDAR.NULL_DATE_AND_TIME;

SMT_TIME_TAG : in CGS_CALENDAR.CGS_DATE_AND_TIME

:= CGS_CALENDAR.NULL_DATE_AND_TIME;

SHOW_IT : in BOOLEAN := TRUE;

STATUS : out TES_DEFINITIONS.T_RETURN_STATUS);

–– DESCRIPTION

–– This procedure sends an error message to the CGS product TES. The error

–– message is always written into the CGS test result database. By default,

–– it is also shown to the user on workstations. Only if the parameter

–– SHOW_IT is set to FALSE, then it is not shown but only logged.

–– The APPLICATION_ID is the ID returned by TES during the connect operation.

–– ERROR_MESSAGE_SHORT and ERROR_MESSAGE_LONG are two text fields of the

–– message. The short text is always immediately shown on the screen of the

–– workstation (provided SHOW_IT is TRUE) whereas the long text is only

–– visible if the user double–clicks to the error message on the screen.

–– Thus short and long texts should be carefully chosen.

–– The ERROR_TYPE can be set by the SAS as needed. ”WRN” for warnings, ”MSG”

–– or ”INFO” for messages providing just information to the user and ”ERR”

–– for reports on error shall be used (refer to VICOS_DEFINITIONS for resp.

–– constants).

–– The group code for the error message is set by CGS to ”SAS ”.

–– Two time_tags can be provided with each error message, being local time

–– and SMT. If the NULL_DATE_AND_TIME is given, CGS will add the actual time

–– as the time tag.

–– RETURN STATES

–– SUCCESS : the call was successfull

–– CURRENT_MODE_WRONG : TES is in idle or error mode or it is currently

–– not running

–– COMMUNICATION_ERROR : some communication problem exists, carefully

–– look into your system topology table, maybe TES

–– died in the meantime

–– INVALID_APPLICATION_ID : The identifier is wrong, perhaps an old one is

–– used?

–– OTHER_ERROR : an unexpected error occurred or the SAS has not

Page 232: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

223

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– called READ_COMMAND in time, i.e. the time–out

–– has expired (configurable in the TES_CONFIG_FILE)

procedure READ_TIME

(

APPLICATION_ID : in TES_DEFINITIONS.T_APPLICATION_ID;

LOCAL_TIME : out CGS_CALENDAR.CGS_DATE_AND_TIME;

SMT : out CGS_CALENDAR.CGS_DATE_AND_TIME;

SMT_RUNNING : out BOOLEAN;

STATUS : out TES_DEFINITIONS.T_RETURN_STATUS);

–– DESCRIPTION

–– This procedure returns the actual local time and SMT as well as the

–– current state of the SMT, i.e. whether it is running or not.

–– The application id is the one returned by TES during the connect

–– operation.

–– RETURN STATES

–– SUCCESS : the call was successfull

–– TSS_ERROR : the time synchronisation sw could not provide timing

–– information for unknown reasons

procedure READ_SMT_DETAILS

(

APPLICATION_ID : in TES_DEFINITIONS.T_APPLICATION_ID;

SMT : out CGS_CALENDAR.CGS_DATE_AND_TIME;

SYNC_SW_STATUS : out BOOLEAN;

SYNC_SW_LOCKED : out BOOLEAN;

SYNC_SW_IN_LIMIT : out BOOLEAN;

SMT_SERVER : out BOOLEAN;

MTU_PRESENT : out BOOLEAN;

SMT_STATUS : out T_SMT_STATUS;

SMT_OFFSET : out INTEGER;

MTU_STATUS : out INTEGER;

STATUS : out TES_DEFINITIONS.T_RETURN_STATUS);

–– DESCRIPTION

–– This procedure returns the detailed status of the SMT.

–– The application id is the one returned by TES during the connect

–– operation.

–– SYNC_SW_STATUS returns, whether the NTP Status file, which is updated

–– every, minute by a crontab job if NTP is running, was read and has the

–– correct format

–– SYNC_SW_LOCKED returns, whether synchronisation source for the local NTP

–– process is considered as reliable.

–– SYNC_SW_IN_LIMIT returns, whether the time deviation between the NTP

–– client and its synchronisation source is in the allowed limit

–– SMT_SERVER returns, whether the local machine is SMT server (TRUE) or not

Page 233: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

224

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– MTU_PRESENT returns, whether a MTU is present (TRUE) or not

–– SMT_STATUS returns the actual SMT status

–– SMT_OFFSET returns the actual SMT offset

–– MTU_STATUS returns the actual MTU status

–– RETURN STATES

–– SUCCESS : the call was successfull

–– TSS_ERROR : the time synchronisation sw could not provide timing

–– information for unknown reasons

procedure WAIT_UNTIL

(

APPLICATION_ID : in TES_DEFINITIONS.T_APPLICATION_ID;

WAKE_UP_TIME : in CGS_CALENDAR.CGS_DATE_AND_TIME;

TIME_TYPE : in CGS_CALENDAR.T_TIME_TYPE;

STATUS : out TES_DEFINITIONS.T_RETURN_STATUS);

–– DESCRIPTION

–– This procedure waits until a given wake up time which can be either local

–– time or SMT depending on parameter Time_Type.

–– The application id is the one returned by TES during the connect

–– operation.

–– RETURN STATES

–– SUCCESS : the call was successfull

–– SMT_RESET : the SMT has been reset so the wake up time may not be correct.

–– TSS_ERROR : the time synchronisation sw could not provide timing

–– information for unknown reasons

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–– ADU SERVICES

––––––––––––––––––––––––––––––––––––––––––––––––––––

procedure ANNOUNCE_ADU_SERVICE

(

APPLICATION_ID : in TES_DEFINITIONS.T_APPLICATION_ID;

STATUS : out TES_DEFINITIONS.T_RETURN_STATUS);

–– DESCRIPTION

–– This procedure announces to CGS that the SAS is now able to handle ADUs

–– respectively ADU requests.The application id is the ID returned by TES

–– during the connect operation.

–– RETURN STATES

–– SUCCESS : the call was successfull

–– CURRENT_MODE_WRONG : TES is in idle or error mode or it is currently

–– not running

–– COMMUNICATION_ERROR : some communication problem exists, carefully

Page 234: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

225

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– look into your system topology table, maybe TES

–– died in the meantime

–– INVALID_APPLICATION_ID : The identifier is wrong, perhaps an old one is

–– used?

–– OTHER_ERROR : an unexpected error occurred or the SAS has not

–– called READ_COMMAND in time, i.e. the time–out

–– has expired (configurable in the TES_CONFIG_FILE)

procedure WITHDRAW_ADU_SERVICE

(

APPLICATION_ID : in TES_DEFINITIONS.T_APPLICATION_ID;

STATUS : out TES_DEFINITIONS.T_RETURN_STATUS);

–– DESCRIPTION

–– This procedure announces to CGS that the SAS is no longer able to handle

–– ADUs respectively ADU requests.The application id is the ID returned by

–– TES during the connect operation.

–– RETURN STATES

–– SUCCESS : the call was successfull

–– CURRENT_MODE_WRONG : TES is in idle or error mode or it is currently

–– not running

–– COMMUNICATION_ERROR : some communication problem exists, carefully

–– look into your system topology table, maybe TES

–– died in the meantime

–– INVALID_APPLICATION_ID : The identifier is wrong, perhaps an old one is

–– used?

–– OTHER_ERROR : an unexpected error occurred or the SAS has not

–– called READ_COMMAND in time, i.e. the time–out

–– has expired (configurable in the TES_CONFIG_FILE)

procedure SUPPLY_ADU

(

APPLICATION_ID : in TES_DEFINITIONS.T_APPLICATION_ID;

ADU : in ADT_ADU.T_ADU;

STATUS : out TES_DEFINITIONS.T_RETURN_STATUS);

–– DESCRIPTION

–– This procedure sends an ADU to TES.The application id is the ID returned

–– by TES during the connect operation.The ADU is the ADU to be sent to TES.

–– RETURN STATES

–– SUCCESS : the call was successfull

–– CURRENT_MODE_WRONG : TES is in idle or error mode or it is currently

–– not running

–– COMMUNICATION_ERROR : some communication problem exists, carefully

–– look into your system topology table, maybe TES

–– died in the meantime

Page 235: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

226

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– INVALID_APPLICATION_ID : The identifier is wrong, perhaps an old one is

–– used?

–– OTHER_ERROR : an unexpected error occurred or the SAS has not

–– called READ_COMMAND in time, i.e. the time–out

–– has expired (configurable in the TES_CONFIG_FILE)

procedure SUSPEND_ADU

(

APPLICATION_ID : in TES_DEFINITIONS.T_APPLICATION_ID;

ADU_SID : in MPS_DEFINITIONS.SID;

STATUS : out TES_DEFINITIONS.T_RETURN_STATUS);

–– DESCRIPTION

–– This procedure indicates to TES that the ADU is from now on suspended

–– until a new ADU is sent. The application id is the ID returned

–– by TES during the connect operation.

–– RETURN STATES

–– SUCCESS : the call was successfull

–– CURRENT_MODE_WRONG : TES is in idle or error mode or it is currently

–– not running

–– COMMUNICATION_ERROR : some communication problem exists, carefully

–– look into your system topology table, maybe TES

–– died in the meantime

–– INVALID_APPLICATION_ID : The identifier is wrong, perhaps an old one is

–– used?

–– OTHER_ERROR : an unexpected error occurred or the SAS has not

–– called READ_COMMAND in time, i.e. the time–out

–– has expired (configurable in the TES_CONFIG_FILE)

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–– GDU SERVICES

––––––––––––––––––––––––––––––––––––––––––––––––––––

procedure ANNOUNCE_GDU_SERVICE

(

APPLICATION_ID : in TES_DEFINITIONS.T_APPLICATION_ID;

STATUS : out TES_DEFINITIONS.T_RETURN_STATUS);

–– DESCRIPTION

–– This procedure announces to CGS that the SAS is now able to handle

–– GDUs.The application id is the ID returned by TES during the connect

–– operation.

–– RETURN STATES

–– SUCCESS : the call was successfull

–– CURRENT_MODE_WRONG : TES is in idle or error mode or it is currently

–– not running

Page 236: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

227

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– COMMUNICATION_ERROR : some communication problem exists, carefully

–– look into your system topology table, maybe TES

–– died in the meantime

–– INVALID_APPLICATION_ID : The identifier is wrong, perhaps an old one is

–– used?

–– OTHER_ERROR : an unexpected error occurred or the SAS has not

–– called READ_COMMAND in time, i.e. the time–out

–– has expired (configurable in the TES_CONFIG_FILE)

procedure WITHDRAW_GDU_SERVICE

(

APPLICATION_ID : in TES_DEFINITIONS.T_APPLICATION_ID;

STATUS : out TES_DEFINITIONS.T_RETURN_STATUS);

–– DESCRIPTION

–– This procedure announces to TES that the SAS is no longer able to handle

–– GDUs.The application id is the ID returned by TES during the connect

–– operation.

–– RETURN STATES

–– SUCCESS : the call was successfull

–– CURRENT_MODE_WRONG : TES is in idle or error mode or it is currently

–– not running

–– COMMUNICATION_ERROR : some communication problem exists, carefully

–– look into your system topology table, maybe TES

–– died in the meantime

–– INVALID_APPLICATION_ID : The identifier is wrong, perhaps an old one is

–– used?

–– OTHER_ERROR : an unexpected error occurred or the SAS has not

–– called READ_COMMAND in time, i.e. the time–out

–– has expired (configurable in the TES_CONFIG_FILE)

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–– DATA PROCESSING SERVICES

––––––––––––––––––––––––––––––––––––––––––––––––––––

–– SPECIAL NOTE for all read and write operation

–– –––––––––––––––––––––––––––––––––––––––––––––

–– All read, write and translation operation have a configurable TIMEOUT

–– parameter. It will be set in the TES_CONFIG_FILE with

–– ”API_CONTROLLER.TIMEOUT_FOR_READ”.

procedure READ_RAW_VALUE

(

APPLICATION_ID : in TES_DEFINITIONS.T_APPLICATION_ID;

Page 237: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

228

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

ENDITEM_PATHNAME : in STRING;

VALUE_ALTERNATIVE : out VICOS_DEFINITIONS.T_RAW_VALUE_ALTERNATIVES;

INT_VALUE : out NUMERIC_TYPES.INTEGER32;

UINT_VALUE : out NUMERIC_TYPES.UNSIGNED_INTEGER32;

FLOAT_VALUE : out NUMERIC_TYPES.SINGLE_FLOAT;

DFLOAT_VALUE : out NUMERIC_TYPES.DOUBLE_FLOAT;

BYTESTREAM_VALUE : in out MPS_DEFINITIONS.DYNAMIC_STRING;

STATUS : out TES_DEFINITIONS.T_RETURN_STATUS);

–– DESCRIPTION

–– This procedure read the current raw value of an enditem from CGS. Since

–– enditems can have several raw value alternatives, the procedure returns

–– the type of raw value in parameter VALUE_ALTERNATIVE. Depending on the

–– value of this parameter, the other ..._VALUE parameter will hold the

–– actual raw value returned. The other ones will be zeroed or empty.

–– APPLICATION_ID is the ID returned by TES during the connect operation.

–– The enditem is identified through its database pathname. For simplicity

–– reasons this is a string

–– RETURN STATES

–– SUCCESS : the call was successfull

–– CURRENT_MODE_WRONG : TES is in idle or error mode or it is currently

–– not running

–– COMMUNICATION_ERROR : some communication problem exists, carefully

–– look into your system topology table, maybe TES

–– died in the meantime

–– INVALID_APPLICATION_ID : The identifier is wrong, perhaps an old one is

–– used?

–– ENDITEM_NOT_ACQUIRED : the enditem is currently not acquired, so there

–– is no raw value

–– ENDITEM_UNKNOWN : the enditem is unknown, so the pathname is wrong

–– or the item is maintained on another test node.

–– COMMAND_TIMEOUT : the time–out has expired (configurable in the

–– TES_CONFIG_FILE)

–– TYPE_MISMATCH

–– OTHER_ERROR : an unexpected error occurred

procedure READ_ENGINEERING_VALUE

(

APPLICATION_ID : in TES_DEFINITIONS.T_APPLICATION_ID;

ENDITEM_Pathname : in STRING;

VALUE_ALTERNATIVE : out MPS_DEFINITIONS.T_SW_TYPE;

INT_VALUE : out NUMERIC_TYPES.INTEGER32;

UINT_VALUE : out NUMERIC_TYPES.UNSIGNED_INTEGER32;

FLOAT_VALUE : out NUMERIC_TYPES.SINGLE_FLOAT;

DFLOAT_VALUE : out NUMERIC_TYPES.DOUBLE_FLOAT;

STATECODE_VALUE : out MPS_DEFINITIONS.STATE_CODE;

BYTESTREAM_VALUE : in out MPS_DEFINITIONS.DYNAMIC_STRING;

STATUS : out TES_DEFINITIONS.T_RETURN_STATUS);

Page 238: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

229

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– DESCRIPTION

–– This procedure read the current engineering value of an enditem from CGS.

–– Since enditems can have several value alternatives, the procedure returns

–– the type of value in parameter VALUE_ALTERNATIVE. Depending on the value

–– of this parameter, the other ..._VALUE parameter will hold the actual

–– engineering value returned. The other ones will be zeroed or empty.

–– Note that although MPS_DEFINITIONS.T_SW_TYPE provides many more

–– alternatives only integer, unsigned_integer, float, double_float,

–– statecode or bytestream values can be returned since these correspond

–– to the list of allowed CGS database measurement or SW variable enditems.

–– APPLICATION_ID is the ID returned by TES during the connect operation.

–– The enditem is identified through its database pathname. For simplicity

–– reasons this is a string

–– RETURN STATES

–– SUCCESS : the call was successfull

–– CURRENT_MODE_WRONG : TES is in idle or error mode or it is currently

–– not running

–– COMMUNICATION_ERROR : some communication problem exists, carefully

–– look into your system topology table, maybe TES

–– died in the meantime

–– INVALID_APPLICATION_ID : The identifier is wrong, perhaps an old one is

–– used?

–– ENDITEM_NOT_ACQUIRED : the enditem is currently not acquired, so there

–– is no value

–– ENDITEM_UNKNOWN : the enditem is unknown, so the pathname is wrong

–– or the item is maintained on another test node.

–– COMMAND_TIMEOUT : the time–out has expired (configurable in the

–– TES_CONFIG_FILE)

–– TYPE_MISMATCH

–– OTHER_ERROR : an unexpected error occurred

–– Reading Measurements

procedure READ_MEASUREMENT

(APPLICATION_ID : in TES_DEFINITIONS.T_APPLICATION_ID;

SID : in MPS_DEFINITIONS.SID;

RAW_ALTERNATIVE : out VICOS_DEFINITIONS.T_RAW_VALUE_ALTERNATIVES;

RAW_INT_VALUE : out NUMERIC_TYPES.INTEGER32;

RAW_UNIT_VALUE : out NUMERIC_TYPES.UNSIGNED_INTEGER32;

RAW_FLOAT_VALUE : out NUMERIC_TYPES.SINGLE_FLOAT;

RAW_DFLOAT_VALUE : out NUMERIC_TYPES.DOUBLE_FLOAT;

RAW_BYTESTREAM_VALUE : in out MPS_DEFINITIONS.DYNAMIC_STRING;

VALUE_ALTERNATIVE : out MPS_DEFINITIONS.T_SW_TYPE;

INTEGER_VALUE : out NUMERIC_TYPES.INTEGER32;

UINTEGER_VALUE : out NUMERIC_TYPES.UNSIGNED_INTEGER32;

FLOAT_VALUE : out NUMERIC_TYPES.SINGLE_FLOAT;

DFLOAT_VALUE : out NUMERIC_TYPES.DOUBLE_FLOAT;

Page 239: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

230

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

STATECODE_VALUE : out MPS_DEFINITIONS.STATE_CODE;

BYTESTREAM_VALUE : in out MPS_DEFINITIONS.DYNAMIC_STRING;

TIME_TAG : out CGS_CALENDAR.CGS_DATE_AND_TIME;

ENDITEM_ACQ_STATUS : out TES_DEFINITIONS.T_ACQUISITION_STATUS;

MONITORING_STATUS : out TES_DEFINITIONS.T_MONITOR_STATUS;

STATUS : out TES_DEFINITIONS.T_RETURN_STATUS);

–– DESCRIPTION

–– This procedure read the current raw and engineering value of an enditem from CGS.

–– Since enditems can have several value alternatives, the procedure returns

–– the type of value in parameter RAW_ALTERNATIVE and VALUE_ALTERNATIVE.

–– Depending on the value

–– of this parameter, the other ..._VALUE parameter will hold the actual

–– engineering value returned. The other ones will be zeroed or empty.

–– Note that although MPS_DEFINITIONS.T_SW_TYPE provides many more

–– alternatives only integer, unsigned_integer, float, double_float,

–– statecode or bytestream values can be returned since these correspond

–– to the list of allowed CGS database measurement or SW variable enditems.

–– APPLICATION_ID is the ID returned by TES during the connect operation.

–– The enditem is identified through its database SID.

–– Return status values:

––

–– C_SUCCESS

–– C_OTHER_ERROR

–– C_ENDITEM_UNKNOWN

–– C_CURRENT_MODE_WRONG

–– C_TYPE_MISMATCH

–– C_COMMUNICATION_ERROR

–– C_COMMAND_TIMEOUT

–– C_INVALID_APPLICATION_ID

procedure READ_MEASUREMENT

(APPLICATION_ID : in TES_DEFINITIONS.T_APPLICATION_ID;

ENDITEM_PATHNAME : in STRING;

RAW_ALTERNATIVE : out VICOS_DEFINITIONS.T_RAW_VALUE_ALTERNATIVES;

RAW_INT_VALUE : out NUMERIC_TYPES.INTEGER32;

RAW_UNIT_VALUE : out NUMERIC_TYPES.UNSIGNED_INTEGER32;

RAW_FLOAT_VALUE : out NUMERIC_TYPES.SINGLE_FLOAT;

RAW_DFLOAT_VALUE : out NUMERIC_TYPES.DOUBLE_FLOAT;

RAW_BYTESTREAM_VALUE : in out MPS_DEFINITIONS.DYNAMIC_STRING;

VALUE_ALTERNATIVE : out MPS_DEFINITIONS.T_SW_TYPE;

INTEGER_VALUE : out NUMERIC_TYPES.INTEGER32;

UINTEGER_VALUE : out NUMERIC_TYPES.UNSIGNED_INTEGER32;

FLOAT_VALUE : out NUMERIC_TYPES.SINGLE_FLOAT;

DFLOAT_VALUE : out NUMERIC_TYPES.DOUBLE_FLOAT;

STATECODE_VALUE : out MPS_DEFINITIONS.STATE_CODE;

BYTESTREAM_VALUE : in out MPS_DEFINITIONS.DYNAMIC_STRING;

TIME_TAG : out CGS_CALENDAR.CGS_DATE_AND_TIME;

ENDITEM_ACQ_STATUS : out TES_DEFINITIONS.T_ACQUISITION_STATUS;

Page 240: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

231

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

MONITORING_STATUS : out TES_DEFINITIONS.T_MONITOR_STATUS;

STATUS : out TES_DEFINITIONS.T_RETURN_STATUS);

–– DESCRIPTION

–– This procedure read the current raw and engineering value of an enditem from CGS.

–– Since enditems can have several value alternatives, the procedure returns

–– the type of value in parameter RAW_ALTERNATIVE and VALUE_ALTERNATIVE.

–– Depending on the value

–– of this parameter, the other ..._VALUE parameter will hold the actual

–– engineering value returned. The other ones will be zeroed or empty.

–– Note that although MPS_DEFINITIONS.T_SW_TYPE provides many more

–– alternatives only integer, unsigned_integer, float, double_float,

–– statecode or bytestream values can be returned since these correspond

–– to the list of allowed CGS database measurement or SW variable enditems.

–– APPLICATION_ID is the ID returned by TES during the connect operation.

–– The enditem is identified through its database pathname. For simplicity

–– reasons this is a string.

–– Return status values:

––

–– C_SUCCESS

–– C_OTHER_ERROR

–– C_ENDITEM_UNKNOWN

–– C_CURRENT_MODE_WRONG

–– C_TYPE_MISMATCH

–– C_COMMUNICATION_ERROR

–– C_COMMAND_TIMEOUT

–– C_INVALID_APPLICATION_ID

procedure WRITE_ENGINEERING_VALUE

(APPLICATION_ID : in TES_DEFINITIONS.T_APPLICATION_ID;

ENDITEM_PATHNAME : in STRING;

VALUE : in NUMERIC_TYPES.INTEGER32;

STATUS : out TES_DEFINITIONS.T_RETURN_STATUS);

procedure WRITE_ENGINEERING_VALUE (

APPLICATION_ID : in TES_DEFINITIONS.T_APPLICATION_ID;

ENDITEM_PATHNAME : in STRING;

VALUE : in NUMERIC_TYPES.UNSIGNED_INTEGER32;

STATUS : out TES_DEFINITIONS.T_RETURN_STATUS);

procedure WRITE_ENGINEERING_VALUE (

APPLICATION_ID : in TES_DEFINITIONS.T_APPLICATION_ID;

ENDITEM_PATHNAME : in STRING;

VALUE : in NUMERIC_TYPES.SINGLE_FLOAT;

STATUS : out TES_DEFINITIONS.T_RETURN_STATUS);

procedure WRITE_ENGINEERING_VALUE (

APPLICATION_ID : in TES_DEFINITIONS.T_APPLICATION_ID;

Page 241: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

232

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

ENDITEM_PATHNAME : in STRING;

VALUE : in NUMERIC_TYPES.DOUBLE_FLOAT;

STATUS : out TES_DEFINITIONS.T_RETURN_STATUS);

procedure WRITE_ENGINEERING_VALUE (

APPLICATION_ID : in TES_DEFINITIONS.T_APPLICATION_ID;

ENDITEM_PATHNAME : in STRING;

VALUE : in MPS_DEFINITIONS.STATE_CODE;

STATUS : out TES_DEFINITIONS.T_RETURN_STATUS);

procedure WRITE_ENGINEERING_VALUE (

APPLICATION_ID : in TES_DEFINITIONS.T_APPLICATION_ID;

ENDITEM_PATHNAME : in STRING;

VALUE : in MPS_DEFINITIONS.DYNAMIC_STRING;

STATUS : out TES_DEFINITIONS.T_RETURN_STATUS);

–– DESCRIPTION

–– This procedure writes an engineering value of an enditem of type

–– EGSE_...SW_VARIABLE.

–– The application id is the ID returned by TES during the connect

–– operation.

–– The pathname is the pathname of the enditem to be written. For

–– simplicity reasons this is a string.

–– The procedure comes in overloaded versions for the different types of

–– values to be written.

–– RETURN STATES

–– SUCCESS : the call was successfull

–– CURRENT_MODE_WRONG : TES is in idle or error mode or it is currently

–– not running

–– COMMUNICATION_ERROR : some communication problem exists, carefully

–– look into your system topology table, maybe TES

–– died in the meantime

–– INVALID_APPLICATION_ID : The identifier is wrong, perhaps an old one is

–– used?

–– ENDITEM_UNKNOWN : the enditem is unknown, so the pathname is wrong

–– or the item is maintained on another test node.

–– NOT_A_SW_VALUE : the enditem exists but is not a SW variable

–– TYPE_MISMATCH : the enditem’s type defined in the database and

–– the data supplied do not match.

–– COMMAND_TIMEOUT : the time–out has expired (configurable in the

–– TES_CONFIG_FILE)

–– OTHER_ERROR : an unexpected error occurred

procedure STORE_USER_FILE

(FILE_NAME : in STRING;

FILE_TYPE : in STRING := ”ANY ”;

STATUS : out TES_DEFINITIONS.T_RETURN_STATUS);

–– DESCRIPTION

Page 242: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

233

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– This operation will store the specified file into the TRDB.

–– Note: no session has to be specified. The file is stored beneath the

–– currently opened session.

–– FILE_NAME : Full location of the file to archive.

–– FILE_TYPE : the type of user file.

–– RETURN STATES

–– C_SUCCESS : the call was successfull

–– C_DBS_CONNECTION_PROBLEM : any problems with the DBS

–– C_COMMAND_TIMEOUT : Communication Time out occured (configurable in the

–– dbs_configuration_file.def), with TES_CMD_REPLY_TIME_OUT

–– C_OTHER_ERROR : an unexpected error occurred

procedure RETRIEVE_USER_FILE (

SESSION_NAME : in STRING;

FILE_NAME : in STRING;

LOCATION : out VICOS_DEFINITIONS.T_FILE_NAME;

STATUS : out TES_DEFINITIONS.T_RETURN_STATUS);

–– DESCRIPTION

–– This procedure retrieves a file from the TRDB.

–– SESSION_NAME : The session name.

–– No null value is accepted.

–– FILE_NAME : User file name of a previously stored file.

–– Note: the file name must only contain the basename of

–– the file.

–– LOCATION : The TRDB location (full pathname) of the file to

–– retrieve. The filename will be composed using the names

–– of the TRDB directory, the session and the specified

–– file.

–– RETURN STATES

–– C_SUCCESS : the call was successfull

–– C_DBS_CONNECTION_PROBLEM : any problems with the DBS

–– C_COMMAND_TIMEOUT : Communication Time out occured (configurable in the

–– dbs_configuration_file.def), with TES_CMD_REPLY_TIME_OUT

–– C_OTHER_ERROR : an unexpected error occurred

–– Translation SID – Pathname/Nickname

–– The translation functions have no RETURN STATES, in case of errors or

–– any problems NULL_PATHNAME or NULL_SID returns. The error will be reported.

function PATHNAME_TO_SID

(APPLICATION_ID : in TES_DEFINITIONS.T_APPLICATION_ID;

ENDITEM_PATHNAME : in STRING)

return MPS_DEFINITIONS.SID;

Page 243: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

234

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

function NICKNAME_TO_SID

(APPLICATION_ID : in TES_DEFINITIONS.T_APPLICATION_ID;

NICKNAME : in STRING)

return MPS_DEFINITIONS.SID;

function GET_PATHNAME

(APPLICATION_ID : in TES_DEFINITIONS.T_APPLICATION_ID;

SID : in MPS_DEFINITIONS.SID)

return STRING;

function GET_NICKNAME

(APPLICATION_ID : in TES_DEFINITIONS.T_APPLICATION_ID;

ENDITEM_PATHNAME : in STRING)

return STRING;

function GET_NICKNAME

(APPLICATION_ID : in TES_DEFINITIONS.T_APPLICATION_ID;

SID : in MPS_DEFINITIONS.SID)

return STRING;

––

–– The GET_GDU functions have no RETURN STATES, in case of errors or

–– any problems the alternative undefined will returns.

function GET_GDU

(ENDITEM_PATHNAME: STRING)

return ADT_GDU_DESCRIPTION.T_GDU_DESCRIPTION;

function GET_GDU

(SID: MPS_DEFINITIONS.SID)

return ADT_GDU_DESCRIPTION.T_GDU_DESCRIPTION;

–– Returns a GDU description. This GDU can be used for constructing

–– Upload TCs.

–– EXCEPTIONS

–– GDU_TYPE_MISMATCH :

–– the ENDITEM_PATHNAME is not a GDU end item (EGSE_PREDEFINED_TC, EGSE_PUS_TC, etc)

–– Start AP without parameter

procedure START_AP

(APPLICATION_ID : in TES_DEFINITIONS.T_APPLICATION_ID;

AP_NAME : in STRING;

STATUS : out TES_DEFINITIONS.T_RETURN_STATUS);

–– RETURN STATES

Page 244: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

235

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– C_SUCCESS : the call was successfull

–– C_ENDITEM_UNKNOWN : the enditem is unknown, so the pathname is wrong

–– or the item is maintained on another test node.

–– C_CURRENT_MODE_WRONG : TES is in idle or error mode or it is currently not

–– running

–– C_COMMAND_TIMEOUT : Communication Time out occured (configurable in the

–– TES_CONFIG_FILE)

–– C_OTHER_ERROR : an unexpected error occurred

–– C_INVALID_PARAMETER

–– C_AP_NOT_STOPPED

–– C_TOO_MANY_APS

–– C_AP_NOT_COMPILED

end TES_API;

Page 245: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

236

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.8 VICOS Housekeeping Values

Informal Interface Description

VICOS shall internally maintain a set of housekeeping data and make these available as end–items to the user.These housekeeping data are local state information about the current test node as well as database server nodestatus information (provided by exactly one test node: the MTP).

These end–items are defined in the mission data base in the subtree that is loaded into a test node with theload_scoe operation.

When defining the database end–item the reference to a housekeeping value is made by inclusion of the house-keeping values’ ID number in the end–item’s definition. Also, a default value has to be defined for the end–item.In case the actual housekeeping value cannot be provided, then the default value will be provided.

Typically, housekeeping data are ”updated” when something significant or relevant happens. However, someof the variables are ”computed” cyclically, i.e. the values 10, 90, 202, 207, 212 and so on, 1001 ... 1051. Number12 is updated each time a record is read from the archive file. The cyclically computed HK values can in certaininstances be updated also in the middle of a cycle where they would not be updated normally.

Formal Interface Description

In the formal part of this interface (Interface Definition section), the detailed list of housekeeping values is given.

Page 246: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Daimler–Benz Aerospace

Raumfahrt Infrastruktur

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

237

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

Daimler–Benz Aerospace – All Rights Reserved – Copyright per DIN 34

237

TES shall internally maintain a set of housekeeping data and make these available to the user. These housekeeping data are local state informationabout the current test node as well as database server node status information (provided by exactly one test node: the MTP).

The information maintained in housekeeping values is made available to the user by means of the S/W variable construct, i.e. for each housekeep-ing value the user wants to use he has to define a Software variable of appropriate type in his/her configuration database. Thus, the user is freeto choose appropriate names for his/her values. Reference to a certain housekeeping value is made through its ID in the Software variable defini-tion.

In the following, the list of housekeeping values is given.

Page 247: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Daimler–Benz Aerospace

Raumfahrt Infrastruktur

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

238

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

Daimler–Benz Aerospace – All Rights Reserved – Copyright per DIN 34

238

ID_Number Name Purpose Format Initial ValueVersion

1 Init_Path Pathname used for LOAD_SCOE, i.e. the subtree initially loaded String ”” 3.1.22 TES_Mode Current Test Execution Mode: Discrete $NONE 3.2

Alternatives: NONE, NORMAL, REPLAY, SIMULATE3 TN_Status TN Status: Discrete $IDLE 3.2

Alternatives: IDLE, RUNNING, SUSPEND, ERROR4 MTP_Mode The value for the MTP mode Discrete $SCOE 3.2

Alternatives: SCOE, MTP5 CCU internal version MDA internal identifier of the CCU version used INTEGER 0 4.26 Replay_Speed The replay speed INTEGER 100 4.17 Archive_Time The cycle time in minutes an archive file will be closed automatically INTEGER 0 3.28 Archive_State The current state of archiving: Discrete $DISABLED 3.2

Alternatives: DISABLED, ENABLED10 Local_Time Actual Local Clock Value STRING (*) 3.211 SMT Actual Simulated Mission Time STRING (*) 3.212 RLT Recorded Local Time as read from time tags of archived data STRING (*) 4.120 Active_APs Number of started (but not terminated) APs INTEGER 0 3.221 Susp._APs Number of APs explicitely suspended via system. lib. call INTEGER 0 3.230 RPL_Begin_Time Replay begin time selected during init String (*) 4.131 RPL_End_Time Replay end time selected during init String (*) 4.190 Free_Disk Number of free KBytes on local disk INTEGER 0 3.2

Note: RSMT is not used anylonger since in replay mode RSMT is identical to SMT.(*) Format of the time string is as defined in package CGS_CALENDAR.CGS_DATE_STRING + 1 blank char + CGS_CALENDAR.CGS_TIME_STRING. Initial value is CGS_CALENDAR.NULL_DATE_AND_TIME.

Page 248: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Daimler–Benz Aerospace

Raumfahrt Infrastruktur

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

239

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

Daimler–Benz Aerospace – All Rights Reserved – Copyright per DIN 34

239

ID_Number Name Purpose Format Initial ValueVersion

100 SAS1_Name Name of Appl. Progr. 1 (Pathname) that has connected to TES String ”” 3.2101 SAS1_Service The service announced by the SAS: Discrete $NONE 3.2

Alternatives: NONE, ADU_SERV, GDU_SERV, ADU+GDU102 SAS1_Errors The number of error messages sent by this SAS INTEGER 0 3.2103 SAS1_Last_Err The last error message sent by this SAS String ”” 3.2104 SAS1_Link_ID The Link ID for the SAS number 1 INTEGER 0 3.2...195 SAS20_Name Name of Appl. Progr. 20 (Pathname) that has connected to TES String ”” 3.2196 SAS20_Service The service announced by the SAS (see 101) Discrete $NONE 3.2197 SAS20_Errors The number of error messages sent by this SAS INTEGER 0 3.2198 SAS20_Last_E. The last error message sent by this SAS String ”” 3.2199 SAS20_Link_ID The Link ID for the SAS number 20 INTEGER 0 3.2

200 AP_1_Name Pathname of AP1 String ”” 3.2201 AP_1_Status Status of AP 1: Discrete $NOT_RUN 3.2

Alternatives: NOT_RUN, INITIAL, RUNNING, SUSPEND, TERMINAT202 AP_1_Stmt. Current UCL Statement of AP INTEGER 0 3.2203 AP_1_HCI_ID The identification of the HCI that has started this AP or the parent AP STRING ”” 3.2204 AP_1_ID The AP identifier INTEGER 0 3.2. . .295 AP_20_Name Pathname of AP20 String ”” 3.2296 AP_20_Status Status of AP 20 (see 201) Discrete $NOT_RUN 3.2297 AP_20_Stmt. Current UCL Statement of AP INTEGER 0 3.2298 AP_20_HCI_ID The identification of the HCI that has started this AP or the parent AP STRING ”” 3.2299 AP_20_ID The AP identifier INTEGER 0 3.2

Page 249: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Daimler–Benz Aerospace

Raumfahrt Infrastruktur

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

240

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

Daimler–Benz Aerospace – All Rights Reserved – Copyright per DIN 34

240

ID_Number Name Purpose Format Initial ValueVersion

301 Nb._Enditems Number of enditems that can be monitored (loaded from MDB) INTEGER 0 3.2302 Nb._Enabled Number of enditems enabled for monitoring INTEGER 0 3.2303 Nb._Discrete No. of discrete enditems that can be monitored (loaded from MDB) INTEGER 0 3.2305 Nb._Analog No. of analog enditems that can be monitored (loaded from MDB) INTEGER 0 3.2306 Nb._bytestream No. of bytestream enditems that can be monitored (loaded from MDB) INTEGER 0 3.2310 Nb_Soft OOL Number of enditems currently out of soft limit (1) INTEGER 0 3.2311 Nb_Hard OOL Number of enditems currently out of hard limit (1) INTEGER 0 3.2312 Nb._Soft_exceptions Number of soft limit violations since last START (1) INTEGER 0 3.2313 Nb._Hard_exceptions Number of hard limit violations since last START (1) INTEGER 0 3.2320 Nb. Acquired Number of measurements currently acquired INTEGER 0 4.2321 Nb. EVL Nb of acquired measurements or SW variables or derived values with EVL INTEGER 0 4.2322 Nb. Measurements Number of meaurements defined INTEGER 0 4.3323 Nb. SW_Variables Number of software variables defined INTEGER 0 4.3324 Nb. Derived_Values Number of derived values defined INTEGER 0 4.3

400 Nb._stimuli Number of GDUs sent out since last START incl. erroneous ones INTEGER 0 3.2401 Stimuli_Errors Number of GDUs with errors in SAS/FEE since last START INTEGER 0 3.2402 Wrong_Stimulus Pathname of last stimulus that resulted in an error String ” 3.2404 Destination Destination of last erroneous stimulus (SAS name) String ” 3.2410 Nb._of_digital_GDUs Number of digital output GDUs (discreteStimuli) (loaded from MDB) INTEGER 0 3.2411 Nb._of_analog_GDUs Number of analog output GDUs (analog Stimuli) (loaded from MDB) INTEGER 0 3.2412 Nb._of_TC_GDUs Number of GDUs with CCSDS TCs (loaded from MDB) INTEGER 0 3.2413 Nb._of_GDUs Total number of GDUs (loaded from MDB) INTEGER 0 3.2414 Nb._of_bin.pack.GDUs Number of binary packet GDUs (loaded from MDB) INTEGER 0 4415 Nb.GDU_Verif_Succ Number of GDUs sent with successful verification INTEGER 0 4.3416 Nb.GDU_Verif_Fail Number of GDUs sent with failed verification INTEGER 0 4.3

420 Nb. of SW cmd. sent Number of SW commands sent INTEGER 0 4.1421 Nb. of rtn. packets Number of return packets received for SW commands INTEGER 0 4.1

500 AP_21_Name Pathname of AP21 String ”” 4.3501 AP_21_Status Status of AP 21 (see 201) Discrete $NOT_RUN 4.3502 AP_21_Stmt. Current UCL Statement of AP INTEGER 0 4.3503 AP_21_HCI_ID The identification of the HCI that has started this AP or the parent AP STRING ”” 4.3504 AP_21_ID The AP identifier INTEGER 0 4.3

Page 250: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Daimler–Benz Aerospace

Raumfahrt Infrastruktur

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

241

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

Daimler–Benz Aerospace – All Rights Reserved – Copyright per DIN 34

241

. . .595 AP_40_Name Pathname of AP40 String ”” 4.3596 AP_40_Status Status of AP 40 (see 201) Discrete $NOT_RUN 4.3597 AP_40_Stmt. Current UCL Statement of AP INTEGER 0 4.3598 AP_40_HCI_ID The identification of the HCI that has started this AP or the parent AP STRING ”” 4.3599 AP_40_ID The AP identifier INTEGER 0 4.3

REMARKS:(1) an enditem is out–of–limit if it is enabled for monitoring and its value is outside the defined range, independently from any monitoring exception and from alarmcounter, e.g. going from out of high hard limit to out of high nominal limit will set the HK value Nb._Soft_exceptions but will not lead to any monitoring exception.

Page 251: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Daimler–Benz Aerospace

Raumfahrt Infrastruktur

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

242

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

Daimler–Benz Aerospace – All Rights Reserved – Copyright per DIN 34

242

ID_Number Name Purpose Format Initial ValueVersion

601 Served_WSs Number of connected workstations (HCI) INTEGER 0 3.2

700 Nb_COND_ENDITEMS number of conditions defined INTEGER 0 4.1

701 Nb_CONDITIONS Number of enditems carrying INTEGER 0 4.1

conditions

702 Nb_TRIGGERED_COND Number of actions triggered INTEGER 0 4.1

from conditions since last start

900 TIME_OF_EXCEPTION time (in seconds since midnight) FLOAT 0.0 4.1 of detection of a monitoring exception

901 TIME_OF_START_AP time (in seconds since midnight) FLOAT 0.0 4.1

of the last start of an AP

902 TIME_OF_RESUME_AP time (in seconds since midnight) FLOAT 0.0 4.1 of the last resume of an AP

Page 252: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Daimler–Benz Aerospace

Raumfahrt Infrastruktur

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

243

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

Daimler–Benz Aerospace – All Rights Reserved – Copyright per DIN 34

243

ID_Number Name Purpose Format Initial ValueVersion

1001 PR1_Status The status of printer1: Discrete $DISABLED 3.2Alternatives: DISABLED, ENABLED

1002 PR2_Status The status of printer 2 (see 1001) Discrete $DISABLED 3.21003 PQ1_Status The status of print queue 1: Discrete $OFF 3.2

Alternatives: OFF, READY, PRINTING, NO_PAPER, NO_TONER1004 PQ2_Status The status of print queue 2 (see 1003) Discrete $OFF 3.21005 PQ1_Jobs The number of jobs in print queue 1 INTEGER 0 3.21006 PQ2_Jobs The number of jobs in print queue 2 INTEGER 0 3.2

1011 MD_Free_Spac The free disc space on the magnetic disc in kilobytes INTEGER 0 3.21012 FA_1_Dev_Status The device status of the long term storage medium Discrete $OK 3.2

Alternatives:OK, NOT_OK1020 TRBD_Overall_status The overal status of the test result data base: Discrete $OK 3.2

Alternatives: OK, NOT_OK1050 Session_Name The name of the current test execution session String ”” 3.21051 TRDB_Eval_U The number of evaluation users connected to TRDB INTEGER 0 3.21060 TRDB_Event_Usage The percentage of event table space used INTEGER 0 4.11061 TRDB_MA_Usage The percentage of master archive table space used INTEGER 0 4.11062 TRDB_Misc_Usage he percentage of miscellaneous table space used INTEGER 0 4.11100 T_SYNC The local clock of this machine is synchronised with the NTP server Discrete $FALSE 3.2

Alternative: TRUE, FALSE1101 MTU_PRESENT The machine has an external master time unit (MTU) Discrete $FALSE 3.2

Alternative: TRUE, FALSE1102 SMT_STATUS The status of the SMT Discrete $NOT_INIT 3.2

Alternative: NOT_INIT, STOPPED, RUNNING1103 SYSTEM_LT_SYNC_STATUS

The system synchronisation status of the LT (only on Master valid) Discrete $UNDEFINE 4.4Alternative meaning UNDEFINE no valid statement possibleTRUE system is synchronizedFALSE system is not synchronizedConnLost one (or more) client don’t answerNoUpdate the local information will not be updatedNoMaster the current node is not time domain master

Page 253: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9 System Libraries

6.9.1 UCL System Library: GROUND_COMMON

The GROUND_COMMON Library contains all declarations common to CGS System Libraries

Library Id (Body_Id): (any: no body associated)

6.9.1.1 Routines Summary

The GROUND_COMMON UCL library does not provide any routine but only type and constantdeclarations

Page 254: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.1.2 UCL System Library Specification GROUND_COMMON

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– *******************************************–– GROUND_COMMON UCL System Library–– *******************************************––––ABSTRACT–––– Contains common definitions for all ground system libraries –– Must be compiled for ground and with Body Id = 999 (or any other unused body id) –– Must be inserted into MDB with Nickname: ”GROUND_COMMON”––––IDENTIFICATION–––– PROJECT NAME : CGS–– OBJECT NAME : GRD_COMMON System Library–– VERSION : ##V##CGS_5.1.0–– CGS CM : ”@(#) ground_common_.ucl /main/cgs_5.0/2 01/15/02 17:34:53@(#)”

––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––CONTENTS–––– COMPILER : UCLC –– LANGUAGE : UCL––CHANGE HISTORY–– PIRN 8224, Issue 1/A for CGS V5.1.0: –– Restructure System Libraries–– Extend with new constants for UCL Return (for TC Construction)––END HISTORY–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

library GROUND_COMMON;

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– TYPES–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

type USER_MESSAGE = STRING (255);

type MSG_GROUP = STRING(4); type MSG_TYPE = STRING(4);

type VALUE_STRING = STRING (255);

type ACQUISITION_COLLECTION = PATHNAME (EGSE_INTEGER_MEASUREMENT, UNSIGNED_INTEGER_MEASUREMENT, EGSE_FLOAT_MEASUREMENT, DOUBLE_FLOAT_MEASUREMENT, EGSE_DISCRETE_MEASUREMENT, EGSE_BYTE_STREAM_MEASUREMENT, EGSE_INTEGER_SW_VARIABLE, UNSIGNED_INTEGER_SW_VARIABLE, EGSE_FLOAT_SW_VARIABLE, DOUBLE_FLOAT_SW_VARIABLE, EGSE_DISCRETE_SW_VARIABLE, EGSE_BYTE_STREAM_SW_VARIABLE, EGSE_INTEGER_DERIVED_VALUE, UNSIGNED_INT_DERIVED_VALUE, EGSE_FLOAT_DERIVED_VALUE,

Page 255: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

DOUBLE_FLOAT_DERIVED_VALUE, EGSE_DISCRETE_DERIVED_VALUE, EGSE_STRING_DERIVED_VALUE, EGSE_MONITOR_LIST, ADU_DESCRIPTION, CDU, VIRTUAL);

type ADU_NAME = PATHNAME (ADU_DESCRIPTION); –– ADU_DESCRIPTION covers the MDB enditem types –– CCSDS_ADU_DESCRIPTION, UNSTRUCTURED_ADU_DESCRIPTION, –– STRUCTURED_ADU_DESCRIPTION and PUS_ADU_DESCRIPTION –– (used with this meaning also in other type definitions)

type ROUTE_SAS_ITEM_NAME = PATHNAME (GDU_DESCRIPTION_LIST, EGSE_ANALOG_STIMULUS, EGSE_DISCRETE_STIMULUS, EGSE_BINARY_PACKET, EGSE_PREDEFINED_TC,

PUS_TC, ADU_DESCRIPTION, CDU, VIRTUAL);

type CCSDS_ITEM_NAME = PATHNAME (GDU_DESCRIPTION_LIST, EGSE_PREDEFINED_TC, PUS_TC, PUS_ADU_DESCRIPTION, ADU_DESCRIPTION, CDU, VIRTUAL);

type AP_STATE = (AP_RUNNING, AP_SUSPENDED, –– AP still exists in the system; current state AP_UNKNOWN, –– no such AP (may be terminated) AP_SUCCESS, AP_FAILURE, AP_ABORTED); –– result of synchronize with AP

type AP_EXECUTION_STATE = AP_STATE (AP_RUNNING .. AP_UNKNOWN); –– see AP_STATE comment

type AP_COMPLETION_STATE = AP_STATE (AP_UNKNOWN .. AP_ABORTED); –– see AP_STATE comment

type AP_ID = INTEGER;

type AP_ID_LIST = ARRAY (1..20) OF AP_ID;

type AP_NAME = PATHNAME (UCL_AUTOMATED_PROCEDURE);

type APPLICATION_ERROR_MESSAGE = USER_MESSAGE;

type APPLICATION_ID = INTEGER;

type APPLICATION_NAME = STRING (20);

type APPLICATION_STATE = (SAS_UNLOADED, SAS_RESET, SAS_INIT, SAS_RUNNING, SAS_ABORTED);

type BIT_COUNT = INTEGER (1 .. 32);

Page 256: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

type DOWNLOAD_ITEM_NAME = PATHNAME (EGSE_SOFTWARE);

type ISSUE_ITEM_NAME = PATHNAME (GDU_DESCRIPTION_LIST, EGSE_ANALOG_STIMULUS, EGSE_DISCRETE_STIMULUS, EGSE_BINARY_PACKET, PUS_TC, EGSE_PREDEFINED_TC);

type SINGLE_GDU_NAME = PATHNAME (EGSE_ANALOG_STIMULUS, EGSE_DISCRETE_STIMULUS, EGSE_BINARY_PACKET, PUS_TC, EGSE_PREDEFINED_TC);

type MONITOR_ITEM_NAME = PATHNAME (EGSE_INTEGER_MEASUREMENT, UNSIGNED_INTEGER_MEASUREMENT, EGSE_FLOAT_MEASUREMENT, DOUBLE_FLOAT_MEASUREMENT, EGSE_DISCRETE_MEASUREMENT, EGSE_BYTE_STREAM_MEASUREMENT, EGSE_INTEGER_SW_VARIABLE, UNSIGNED_INTEGER_SW_VARIABLE, EGSE_FLOAT_SW_VARIABLE, DOUBLE_FLOAT_SW_VARIABLE, EGSE_DISCRETE_SW_VARIABLE, EGSE_BYTE_STREAM_SW_VARIABLE, EGSE_INTEGER_DERIVED_VALUE, UNSIGNED_INT_DERIVED_VALUE, EGSE_FLOAT_DERIVED_VALUE, DOUBLE_FLOAT_DERIVED_VALUE, EGSE_DISCRETE_DERIVED_VALUE, EGSE_STRING_DERIVED_VALUE);

type MONITOR_COLLECTION = PATHNAME (EGSE_INTEGER_MEASUREMENT, UNSIGNED_INTEGER_MEASUREMENT, EGSE_FLOAT_MEASUREMENT, DOUBLE_FLOAT_MEASUREMENT, EGSE_DISCRETE_MEASUREMENT, EGSE_BYTE_STREAM_MEASUREMENT, EGSE_INTEGER_SW_VARIABLE, UNSIGNED_INTEGER_SW_VARIABLE, EGSE_FLOAT_SW_VARIABLE, DOUBLE_FLOAT_SW_VARIABLE, EGSE_DISCRETE_SW_VARIABLE, EGSE_BYTE_STREAM_SW_VARIABLE, EGSE_INTEGER_DERIVED_VALUE, UNSIGNED_INT_DERIVED_VALUE, EGSE_FLOAT_DERIVED_VALUE, DOUBLE_FLOAT_DERIVED_VALUE, EGSE_DISCRETE_DERIVED_VALUE, EGSE_STRING_DERIVED_VALUE, EGSE_MONITOR_LIST, CDU, VIRTUAL);

Page 257: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

type FLOAT_ENDITEM= PATHNAME (EGSE_FLOAT_MEASUREMENT, EGSE_ANALOG_STIMULUS);

type INTEGER_ENDITEM = PATHNAME (EGSE_INTEGER_MEASUREMENT);

type DISCRETE_ENDITEM= PATHNAME (EGSE_DISCRETE_MEASUREMENT, EGSE_DISCRETE_STIMULUS); type ANALOG_MONITOR_ITEM_NAME = PATHNAME (EGSE_INTEGER_MEASUREMENT, UNSIGNED_INTEGER_MEASUREMENT, EGSE_FLOAT_MEASUREMENT, DOUBLE_FLOAT_MEASUREMENT, EGSE_INTEGER_SW_VARIABLE, UNSIGNED_INTEGER_SW_VARIABLE, EGSE_FLOAT_SW_VARIABLE, DOUBLE_FLOAT_SW_VARIABLE, EGSE_INTEGER_DERIVED_VALUE, UNSIGNED_INT_DERIVED_VALUE, DOUBLE_FLOAT_DERIVED_VALUE, EGSE_FLOAT_DERIVED_VALUE);

type INTEGER_MONITOR_ITEM_NAME = PATHNAME (EGSE_INTEGER_MEASUREMENT, EGSE_INTEGER_SW_VARIABLE, EGSE_INTEGER_DERIVED_VALUE);

type FLOAT_MONITOR_ITEM_NAME = PATHNAME (EGSE_FLOAT_MEASUREMENT, EGSE_FLOAT_SW_VARIABLE, EGSE_FLOAT_DERIVED_VALUE);

type UNSIGNED_MONITOR_ITEM_NAME = PATHNAME (UNSIGNED_INTEGER_MEASUREMENT, UNSIGNED_INTEGER_SW_VARIABLE, UNSIGNED_INT_DERIVED_VALUE);

type DOUBLE_FLOAT_MONITOR_ITEM_NAME = PATHNAME (DOUBLE_FLOAT_MEASUREMENT, DOUBLE_FLOAT_SW_VARIABLE, DOUBLE_FLOAT_DERIVED_VALUE);

type BYTE_STREAM_MONITOR_ITEM_NAME = PATHNAME (EGSE_BYTE_STREAM_MEASUREMENT, EGSE_BYTE_STREAM_SW_VARIABLE, EGSE_STRING_DERIVED_VALUE);

type DISCRETE_MONITOR_ITEM_NAME = PATHNAME (EGSE_DISCRETE_MEASUREMENT, EGSE_DISCRETE_SW_VARIABLE, EGSE_DISCRETE_DERIVED_VALUE);

type ENDITEM_WITH_RAW_VALUE = PATHNAME (EGSE_INTEGER_MEASUREMENT,

Page 258: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

EGSE_FLOAT_MEASUREMENT, EGSE_DISCRETE_MEASUREMENT, DOUBLE_FLOAT_MEASUREMENT, UNSIGNED_INTEGER_MEASUREMENT, EGSE_BYTE_STREAM_MEASUREMENT );

type ENDITEM_WITH_UNSIGNED_RAW_VALUE = PATHNAME (EGSE_INTEGER_MEASUREMENT, EGSE_FLOAT_MEASUREMENT, DOUBLE_FLOAT_MEASUREMENT, UNSIGNED_INTEGER_MEASUREMENT, EGSE_DISCRETE_MEASUREMENT);

type ENDITEM_WITH_SIGNED_RAW_VALUE = PATHNAME (EGSE_INTEGER_MEASUREMENT, DOUBLE_FLOAT_MEASUREMENT, EGSE_FLOAT_MEASUREMENT);

type ENDITEM_WITH_FLOAT_RAW_VALUE = PATHNAME (EGSE_FLOAT_MEASUREMENT);

type ENDITEM_WITH_DOUBLE_FLOAT_RAW_VALUE = PATHNAME (DOUBLE_FLOAT_MEASUREMENT);

type ENDITEM_WITH_BYTESTREAM_RAW_VALUE = PATHNAME (EGSE_BYTE_STREAM_MEASUREMENT);

type ENDITEM_WITH_ENG_VALUE = PATHNAME (EGSE_INTEGER_MEASUREMENT, EGSE_FLOAT_MEASUREMENT, EGSE_DISCRETE_MEASUREMENT, EGSE_BYTE_STREAM_MEASUREMENT, DOUBLE_FLOAT_MEASUREMENT, UNSIGNED_INTEGER_MEASUREMENT, EGSE_INTEGER_SW_VARIABLE, UNSIGNED_INTEGER_SW_VARIABLE, EGSE_FLOAT_SW_VARIABLE, DOUBLE_FLOAT_SW_VARIABLE, EGSE_DISCRETE_SW_VARIABLE, EGSE_BYTE_STREAM_SW_VARIABLE, EGSE_INTEGER_DERIVED_VALUE, UNSIGNED_INT_DERIVED_VALUE, EGSE_FLOAT_DERIVED_VALUE, DOUBLE_FLOAT_DERIVED_VALUE, EGSE_DISCRETE_DERIVED_VALUE, EGSE_STRING_DERIVED_VALUE);

type DISCRETE_VALUE = PATHNAME (EGSE_DISCRETE_MEASUREMENT);

type NODE_NAME = PATHNAME (EGSE_NODE);

type USER_MESSAGE_NAME = PATHNAME (EGSE_USER_MESSAGE); type UCL_ITEM_NAME = PATHNAME (UCL_AUTOMATED_PROCEDURE, UCL_USER_LIBRARY);

Page 259: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

type CMD_VERIFICATION_STATUS = (STARTED, –– Verification is started –– (i.e. is in Activation Delay) IN_PROGRESS, –– Verification is in progress –– (i.e. is in Verification Timeout) TC_VERIF_OK, –– Verification performed with success TC_VERIF_FAILED, –– Verification performed with no success –– (i.e. Verification Timeout elapsed) ERROR, –– Error during Verification Timeout NO_VERIFICATION, –– No Verification defined for this enditem ABORTED, –– Verification is aborted due to new issue of same –– command or stop of remote TES UNDEFINED); –– The verifcation status is not defined –– (sending aborted due to error, –– no command sent yet etc)

type ACQUISITION_STATUS = (VALID, –– the item is valid NOT_ACQ, –– the item is not acquired NOT_RECVD, –– the item hasn’t been received yet after start of acquisition NOT_MAINTAINED, –– the item is not known on the test node DISAB, –– processing (calibration) is disabled for the item INVALID, –– the value of the item is invalid STATIC); –– there is no update to the item at the moment

type MONITOR_STATUS = (MONITORING_DISABLED, IN_LIMITS, OUT_OF_LIMITS);

type LIMIT_SET_NUMBER = INTEGER (0..5); type BYTE_ARRAY = ARRAY (1..64) of WORD; –– up to 256 bytes

type COEFFICIENT_RANGE = INTEGER (1..5); type POINT_PAIR_RANGE = INTEGER (1..20); type STATECODE_PAIR_RANGE = INTEGER (0..256); –– 0 = UNDEFINED_VALUE statecode

type RAW_VALUE_TYPE = (R_SIGNED, R_UNSIGNED, R_FLOAT, R_DOUBLE_FLOAT, R_BYTE_STREAM); type ENG_VALUE_TYPE = (E_SIGNED, E_UNSIGNED, E_FLOAT, E_DOUBLE_FLOAT, E_STATE_CODE, E_STRING); type PICTURE_ID = INTEGER;

type PICTURE_NAME = PATHNAME (WDU_GROUND_SYNOPTIC_DISPLAY);

type PRIORITY = (LOW, HIGH);

type TIME_BASE = (GUARANTEED_LOCAL_TIME, LOCAL_TIME, SMT);

type UCL_RETURN = INTEGER; type UCL_STATUS_TEXT = STRING(120); type UCL_STATUS_CODES = ARRAY (1..130) OF UCL_STATUS_TEXT;

Page 260: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– CONSTANTS–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

constant NULL: CHARACTER := CHARACTER (0); constant NULL_APPLICATION_NAME : APPLICATION_NAME := ””;

constant DEFAULT_ARCH_FILE_OPEN_PERIOD: DURATION := 1800.0 [s];

constant DEFAULT_ISSUE_TIMEOUT: DURATION := 0.5 [s]; constant DEFAULT_ADU_WAIT_TIMEOUT: DURATION := 0.0 [s]; –– 0.0 means: wait forever

constant DEFAULT_MESSAGE: USER_MESSAGE := ””;

constant OK: UCL_RETURN := 1; constant AP_IS_EXECUTING: UCL_RETURN := 2; constant INVALID_PARAMETER: UCL_RETURN := 3; constant DISC_FULL: UCL_RETURN := 4; constant INVALID_AP_ID: UCL_RETURN := 5; constant INVALID_AT_TIME: UCL_RETURN := 6; constant INVALID_CYCLE: UCL_RETURN := 7; constant INVALID_EXC_COUNT: UCL_RETURN := 8; constant INVALID_ITEM_NAME: UCL_RETURN := 9; constant INVALID_LIMIT: UCL_RETURN := 10; constant INVALID_LIMIT_SET: UCL_RETURN := 11; constant INVALID_APPLICATION_ID: UCL_RETURN := 12; constant INVALID_NODE_NAME: UCL_RETURN := 13; constant INVALID_OFFSET: UCL_RETURN := 14; constant INVALID_PICTURE_ID: UCL_RETURN := 15; constant INVALID_PICTURE_NAME: UCL_RETURN := 16; constant INVALID_SIZE: UCL_RETURN := 17; constant ITEM_IS_DISABLED: UCL_RETURN := 18; constant ITEMS_NOT_ACQUIRED: UCL_RETURN := 19; constant MESSAGE_TOO_BIG: UCL_RETURN := 20; constant NO_ADU_SERVICE: UCL_RETURN := 21; constant NO_DELTA_LIMIT: UCL_RETURN := 22; constant APPLICATION_NACK: UCL_RETURN := 23; constant INVALID_APPLICATION_NAME: UCL_RETURN := 24; constant APPLICATION_NOT_READY: UCL_RETURN := 25; constant TIMEOUT: UCL_RETURN := 26; constant TOO_MANY_SYNOPTICS: UCL_RETURN := 27; constant TOO_MANY_APS: UCL_RETURN := 28; constant URT_UNKNOWN: UCL_RETURN := 29; constant INVALID_ADU_TYPE: UCL_RETURN := 30; constant INVALID_TESTNODE_MODE: UCL_RETURN := 31; constant ITEM_NOT_SAS_COMPATIBLE: UCL_RETURN := 32; constant ITEM_NOT_FEE_COMPATIBLE: UCL_RETURN := 33; constant ITEM_NOT_UUT_COMPATIBLE: UCL_RETURN := 34; constant NO_GDU_SERVICE: UCL_RETURN := 35; constant ITEM_IS_ENABLED: UCL_RETURN := 36; constant INVALID_TIME: UCL_RETURN := 37; constant TIME_SERVICE_FAILED: UCL_RETURN := 38; constant OPERATION_ABORTED: UCL_RETURN := 39; constant NOT_MTP: UCL_RETURN := 40; constant ARCHIVE_FILE_ERROR: UCL_RETURN := 41; constant AP_NOT_COMPILED: UCL_RETURN := 42; constant AP_IS_SUSPENDED: UCL_RETURN := 43; constant ARCHIVING_IS_DISABLED: UCL_RETURN := 44;

Page 261: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

constant WORKSTATION_NOT_CONNECTED: UCL_RETURN := 45; constant WORKSTATION_NOT_READY: UCL_RETURN := 46; constant INPUT_CANCELLED: UCL_RETURN := 47; constant PROTOCOL_ERROR: UCL_RETURN := 48; constant SYNOPTIC_RESOURCES_EXCEEDED: UCL_RETURN := 49; constant CONNECTION_TIMEOUT: UCL_RETURN := 50; constant CONNECTION_ABORTED: UCL_RETURN := 51; constant APPLICATION_LOAD_FAILED: UCL_RETURN := 52; constant APPLICATION_IS_CONNECTED: UCL_RETURN := 53; constant COMMUNICATION_ERROR: UCL_RETURN := 54; constant INVALID_FILE_TYPE: UCL_RETURN := 55; constant INVALID_NODE_TYPE: UCL_RETURN := 56; constant NOT_OK: UCL_RETURN := 57; –– for values 58–60: see GROUND_TO_OB_LIB constant AUTHORIZATION_FAILED: UCL_RETURN := 61; constant PRECONDITION_CHECK_FAILED: UCL_RETURN := 62; constant RUNTIME_ERROR: UCL_RETURN := 100; constant CAL_ERROR : UCL_RETURN := 101; constant ITEM_UNKNOWN : UCL_RETURN := 102; constant NOT_YET_IMPLEMENTED : UCL_RETURN := 103; constant ACQUISITION_ENABLED : UCL_RETURN := 104; constant INVALID_TC_HANDLE : UCL_RETURN := 120; constant TC_NOT_YET_DEFINED : UCL_RETURN := 121; constant NO_HEADER_FOR_BINARY_TC : UCL_RETURN := 122; constant NO_PUS_TC : UCL_RETURN := 123; constant NO_FREE_HANDLE : UCL_RETURN := 124;

constant MIN_APPL_ERROR_CODE: UCL_RETURN := 1000; constant MAX_APPL_ERROR_CODE: UCL_RETURN := 9999;

–– reserved range for applications–– Note: Applications (SAS) may return –– their own ”ACK–Code” to TES. This code–– is given to the caller in case of–– no error situation in the STATUS –– parameter of each procedure (i.e. instead of OK)–– or in a separate return parameter

–– Constants to allow for easy conversion of UCL Status code to readable text

constant UCL_DEFAULT_TEXT: UCL_STATUS_TEXT := ”Undefined UCL Status Code”;

constant STATUS_STRING: UCL_STATUS_CODES:= ( ”OK”, –– 1) ”AP_IS_EXECUTING/BUSY: Function could not be executed: is currently/already execut-ing”, –– 2) ”INVALID_PARAMETER: A parameter is invalid or in conflict with another parameter”, –– 3) ”DISC_FULL: The disc of the test node or the DB Server is full”, –– 4) ”INVALID_AP_ID: The ID for the Automated Procedure is invalid / The addressed AP isnot running (anymore)”, –– 5) ”INVALID_AT_TIME: The value given for the AT_TIME parameter is invalid”, –– 6) ”INVALID_CYCLE: The value given for the CYCLE parameter is invalid, range is 1 min-ute to 23 hours 59 minutes”, –– 7) ”INVALID_EXC_COUNT:The value given for the Exception Count parameter is invalid”,

Page 262: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

–– 8) ”INVALID_ITEM_NAME: The name for the item is invalid/not existing/of wrong type”, –– 9) ”INVALID_LIMIT: The value for the limit is invalid”, –– 10) ”INVALID_LIMIT_SET: The limit set number must be in range 0..5”, –– 11) ”INVALID_APPLICATION_ID: The application id is not known”, –– 12) ”INVALID_NODE_NAME: The name for the node is invalid”, –– 13) ”INVALID_OFFSET: Offset is not in valid range”, –– 14) ”INVALID_PICTURE_ID”, –– 15) ”INVALID_PICTURE_NAME”, –– 16) ”INVALID_SIZE”, –– 17) ”ITEM_IS_DISABLED: Function could not be executed, because item is disabled”, –– 18) ”ITEMS_NOT_ACQUIRED: Function could not be executed, because item is not acquired”, –– 19) ”MESSAGE_TOO_BIG: (e.g.: Parameter List for SWOPs do not fit into CCSDS packet)”, –– 20) ”NO_ADU_SERVICE: The addressed SAS has not announced its ADU service yet”, –– 21) ”NO_DELTA_LIMIT”, –– 22) ”APPLICATION_NACK: The SAS has given a negative acknowledge”, –– 23) ”INVALID_APPLICATION_NAME: SAS name not known / not related / not connected ”, –– 24) ”APPLICATION_NOT_READY: Something went wrong when preparing/sending a cmd/request toSAS or when receiving the acknowlege”,–– 25) ”TIMEOUT: The acknowlegement of the SAS was not received in time”, –– 26) ”TOO_MANY_SYNOPTICS: The number of synoptics already loaded exceeds the allowablelimit”, –– 27) ”TOO_MANY_APS: The number of APs already loaded exceeds the allowable limit”, –– 28) ”URT_UNKNOWN”, –– 29) ”INVALID_ADU_TYPE: The type of the ADU is not compatible with the called function orthe ADU is not simulated/acquired”,–– 30) ”INVALID_TESTNODE_MODE: The mode of the testnode (TES) does not allow for this func-tion”, –– 31) ”ITEM_NOT_SAS_COMPATIBLE: Error when downloading file to SAS”, –– 32) ”ITEM_NOT_FEE_COMPATIBLE”, –– 33) ”ITEM_NOT_UUT_COMPATIBLE”, –– 34) ”NO_GDU_SERVICE:The addressed SAS has not announced its GDU service yet”, –– 35) ”ITEM_IS_ENABLED: Function could not be executed, because item is enabled”, –– 36) ”INVALID_TIME: Time parameter or time in CCSDS Header invalid”, –– 37) ”TIME_SERVICE_FAILED: The access to the time service failed”, –– 38) ”OPERATION_ABORTED: Operation was aborted (e.g. by forced_stop of test node or byabort_ap)”, –– 39) ”NOT_MTP: The addressed test node requires to be the MTP”, –– 40) ”ARCHIVE_FILE_ERROR: The access to an archive file failed”, –– 41) ”AP_NOT_COMPILED: The addressed AP needs to be compiled in the MDB”, –– 42) ”AP_IS_SUSPENDED: Function could not be executed, because AP is suspended”, –– 43) ”ARCHIVING_IS_DISABLED: Function could not be executed, because archiving is (al-ready) disabled”, –– 44) ”WORKSTATION_NOT_CONNECTED: Addressed workstation (HCI) is not connected to the testnode”, –– 45)

Page 263: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

”WORKSTATION_NOT_READY:Addressed workstation (HCI) is not ready”, –– 46) ”INPUT_CANCELLED”, –– 47) ”PROTOCOL_ERROR: Something went wrong when communicating with other software / In-valid Response Packet for SWOP”, –– 48) ”SYNOPTIC_RESOURCES_EXCEEDED or PARAMETER_ERROR: Parameter List of SWOP has wrongdata / wrong types”, –– 49) ”CONNECTION_TIMEOUT”, –– 50) ”CONNECTION_ABORTED”, –– 51) ”APPLICATION_LOAD_FAILED: The loading of the SAS executable failed”, –– 52) ”APPLICATION_IS_CONNECTED: The SAS is already connected”, –– 53) ”COMMUNICATION_ERROR: Error on the communication channel”, –– 54) ”INVALID_FILE_TYPE”, –– 55) ”INVALID_NODE_TYPE”, –– 56) ”NOT_OK: For Operations on Lists: Some of the items could not be processed / execut-ed”, –– 57) ”SW_COMMAND_NOT_FOUND: The addressed Software Command was not found”, –– 58) ”RESPONSE_TOO_SHORT: The response packet for a Software Command did not contain allexpected parameters”, –– 59) ”RESPONSE_TIMEOUT: The response packet for a Software Command was not received intime”, –– 60) ”AUTHORIZATION_FAILED: A critical command (GDU) was not authorized”,–– 61) ”PRECONDITION_CHECK_FAILED: The check of command (GDU) preconditions failed”,–– 62) UCL_Default_Text,UCL_Default_Text, –– 63..64 UCL_Default_Text,UCL_Default_Text,UCL_Default_Text,UCL_Default_Text,UCL_De-fault_Text,–– 65..99 UCL_Default_Text,UCL_Default_Text,UCL_Default_Text,UCL_Default_Text,UCL_De-fault_Text,–– 70..74 UCL_Default_Text,UCL_Default_Text,UCL_Default_Text,UCL_Default_Text,UCL_De-fault_Text,–– 75..79 UCL_Default_Text,UCL_Default_Text,UCL_Default_Text,UCL_Default_Text,UCL_De-fault_Text,–– 80..84 UCL_Default_Text,UCL_Default_Text,UCL_Default_Text,UCL_Default_Text,UCL_De-fault_Text,–– 85..89 UCL_Default_Text,UCL_Default_Text,UCL_Default_Text,UCL_Default_Text,UCL_De-fault_Text,–– 90..94 UCL_Default_Text,UCL_Default_Text,UCL_Default_Text,UCL_Default_Text,UCL_De-fault_Text,–– 95..99 ”RUNTIME_ERROR: Something went wrong in the software”, –– 100 ”CAL_ERROR: Error during (de–)calibration”, –– 101 ”ITEM_UNKNOWN: Referenced item is not known in the test node’s local data struc-tures”, –– 102 ”NOT_IMPLEMENTED: Addressed procedure/function is not yet implemented in the execut-ing software”, –– 103 ”ACQUISITION_ENABLED: Error during modification/access of Calibration Info: Item isin wrong state (acquired)”, –– 104 UCL_Default_Text,UCL_Default_Text,UCL_Default_Text,UCL_Default_Text,UCL_De-fault_Text,UCL_Default_Text,–– 105..110 UCL_Default_Text,UCL_Default_Text,UCL_Default_Text,UCL_Default_Text,UCL_De-fault_Text,–– 111..115 UCL_Default_Text,UCL_Default_Text,UCL_Default_Text,UCL_Default_Text,–– 116..119 ”INVALID_TC_HANDLE: TC Handle is not in specified range”, –– 120 ”TC_NOT_YET_DEFINED: TC packet addressed which is not existing”, –– 121 ”NO_HEADER_FOR_BINARY_TC: No header existing for Binary_Packets”, –– 122 ”NO_PUS_TC: No PUS Telecommand”, –– 123 –– currently unused ”NO_FREE_HANDLE: Maximum Number of TCs already reached”, –– 124 UCL_Default_Text,UCL_Default_Text,UCL_Default_Text,UCL_Default_Text,UCL_De-fault_Text,UCL_Default_Text);––125..130

END GROUND_COMMON;

Page 264: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.1.3 Interface Description

The interface is as defined by the UCL Specification

Page 265: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2 UCL System Library: GROUND_LIBRARY

The GROUND_LIBRARY contains standard ground commands used for control of the ground system.

Library Id (Body_Id): 2

6.9.2.1 Routines Summary

The Ground UCL library routines are:

ADD_USER_FILE_TO_TEST_SESSION READ_MESSAGE_FROM_USER*CLOCK READ_NUMBER_FROM_USER*CLOSE_AP_OUTPUT_WINDOW* REMOVE_PICTURECLOSE_ARCHIVE RESET_APPLICATIONDELAY RESUME_APDISABLE_ARCHIVING ROUTE_TO_SASDISABLE_ENDITEM SEND_SIMULATED_ADUDISPLAY_PICTURE SET_BITS_IN_SIMULATED_ADUDOWNLOAD SET_CCSDS_APID

SET_DEFAULT_WORKSTATIONENABLE_ARCHIVING SET_SIMULATED_ENDITEM_VALUEENABLE_ENDITEM SET_SMTEXECUTE_AP SIGNAL_PROGRAM

START_ACQUISITIONSTART_APPLICATION

GET_APPLICATION_ID START_PROGRAMGET_AP_ID START_SMTGET_AP_STATUS START_SMT_WITH_OFFSETGET_APPLICATION_NAME STOP_ACQUISITIONGET_APPLICATION_STATUS STOP_SMTGET_VERIFICATION_STATUS SUSPEND_APINIT_APPLICATION SYNCHRONISE_WITH_APIS_LOCAL_NODEISSUE UNLOAD_APPLICATIONISSUE_AND_VERIFY USER_EVENTLOAD_APPLICATIONLOAD_UCL WAIT_FOR_ADULOG WAIT_UNTILOPEN_AP_OUTPUT_WINDOW* WRITE_MESSAGE_TO_AP*OWN_AP_ID* WRITE_MESSAGE_TO_APPLICATION*READ_MESSAGE_FROM_AP* WRITE_MESSAGE_TO_USER*READ_MESSAGE_FROM_APPLICATION*

NOTE: The routines marked with asterisks (*) cannot be called from HLCL, neither interactively norout of HLCL sequences.

Page 266: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2.2 UCL Ground System Library Specification

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– *******************************************–– GROUND_LIBRARY UCL System Library–– *******************************************––––ABSTRACT–––– Defines Procedures to control the execution of CGS/VICOS –– Must be compiled for ground and with Body Id = 2 ––––IDENTIFICATION–––– PROJECT NAME : CGS–– OBJECT NAME : GROUND_LIBRARY System Library–– VERSION : ##V##CGS_5.1.0–– CGS CM : ”%Z%%M% %I% %G% %Z%” ––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––CONTENTS–––– COMPILER : UCLC –– LANGUAGE : UCL––CHANGE HISTORY–– PIRN 8224, Issue 1/A for CGS V5.1.0: –– Reorganize System Libraries: Move ground value related procedures –– (acquisition, monitoring, evl, conditions) to GROUND_VALUES library–– Move common definitions to GROUND_COMMON library–– Move conversion functions to GRD_CONVERSION library–– Update ISSUE/ISSUE_AND_VERIFY command to extend with –– Application Return Status (SAS_ACK_CODE/SAS_ACK_TIME/SEQU_COUNT)–– Include new command ADD_USER_FILE_TO_TEST_SESSION–– Extend CCSDS_ITEM_NAME by PUS_ADU_DESCRIPTION–– Add START/SIGNAL_PROGRAMand OPEN/CLOSE_AP_MESSAGE_WINDOW–– PIRN 8217, Issue 1/– for CGS V5.0.1: –– Extend Pathname definitions for new enditem types–– PUS_ADU,PUS_TC,..._DOUBLE_FLOAT_..., ...UNSIGNED_INTEGER_...–– PIRN 8105, Issue 1/B for CGS V4.5.0: –– Add new SET_SMT command –– Add new timeout parameter to WAIT_FOR_ADU–– PIRN 8105, Issue 1/A for CGS V4.4.0: –– Add ’options’ as new parameter to DISPLAY_PICTURE–– Add ’options’ as new parameter to READ_MESSAGE_FROM_USER and–– READ_NUMBER_FROM_USER–– Add new parameter to WRITE_MESSAGE_TO_USER and LOG–– Add new command: SET_DEFAULT_WORKSTATION–– Add new command: SET_CCSDS_APID–– Add new command: START_SMT_WITH_OFFSET–– PIRN 8076, Issue 1/– for CGS V4.3.0: –– Add derived values to type definitions–– Add Command Verification Status–– Add procedures ISSUE_AND_VERIFY,GET_VERIFICATION_STATUS,ENABLE_CONDITION,–– DISABLE_CONDITION–– Allow virtual trees for set_limit_set operations–– Update acquisition status–– PIRN 8003, Issue 1/C for CGS V4.2.0.9: Add new procedures –– Add new procedures GET_ACQUISITION_STATUS, GET_values–– GET_APPLICATION_ID, GET_APPLICATION_NAME–– Add CDU to all Virtual Pathname definitions–– Add constants/array for UCL Status Text–– Add conversion routines for pathnames to text / statecode to text–– PIRN 8003, Issue 1/B for CGS V4.1.1.9:–– update types and operations for the control of conditions

Page 267: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

–– add UCL return constant NOT_OK–– PIRN 8003, Issue 1/A for CGS V4.1.1.9:–– Include operation ROUTE_TO_SAS–– Include types and operations for control of conditions–– Add additional parameter ”ADU” to commands START_ACQUISITION,–– STOP_ACQUISITION and ENABLE_MONITORING–– PIRN 8003, Issue 1/– for CGS V4.1.1.8:–– Include interfaces for setting / reading integer limits–– Provide the value of the alarm counter for all monitor end–items–– Include operation to identify the EGSE node–– Include operation to get the AP_ID–– Handling of default limit set in ENABLE_MONITORING–– PIRN 6012, Issue 1/D for CGS V4.0:–– Include command GET_FULL_ENDITEM_MONITOR_STATUS–– Extend ISSUE_ITEM_NAME: add EGSE_BINARY_PACKET–– Modified AP_EXECUTION_STATE / AP_COMPLETION_STATE––END HISTORY–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

library GROUND_LIBRARY;

import GROUND_COMMON; –– reference by Nickname

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– TYPES–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–– see imported library

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– CONSTANTS–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–– see imported library

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– PROCEDURES & FUNCTIONS–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– Time Management–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

function CLOCK (in BASE: TIME_BASE := LOCAL_TIME) : TIME; –– #1

procedure DELAY (in DELAY: DURATION; in BASE: TIME_BASE := LOCAL_TIME); –– #2

procedure WAIT_UNTIL (in DUE_TIME: TIME; in BASE: TIME_BASE := LOCAL_TIME; out STATUS: UCL_RETURN); –– #3

procedure START_SMT (in VALUE: TIME := ~:~ ; out STATUS: UCL_RETURN); –– #4

procedure START_SMT_WITH_OFFSET (in OFFSET: INTEGER;

Page 268: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

out STATUS: UCL_RETURN); –– #5

procedure STOP_SMT (out STATUS: UCL_RETURN); –– #6

procedure SET_SMT (in VALUE: TIME; out STATUS: UCL_RETURN); –– #7

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– AP Handling–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

procedure EXECUTE_AP (in AP: AP_NAME (); in PRIO: PRIORITY := LOW; in NODE: NODE_NAME := \\; out ID: AP_ID; out STATUS: UCL_RETURN); –– #8

procedure SYNCHRONISE_WITH_AP (in AP: AP_ID; in NODE: NODE_NAME := \\; out COMPLETION: AP_COMPLETION_STATE; out STATUS: UCL_RETURN); –– #9

procedure SUSPEND_AP (in AP: AP_ID; in NODE: NODE_NAME := \\; out STATUS: UCL_RETURN); –– #10

procedure RESUME_AP (in AP: AP_ID; in NODE: NODE_NAME := \\; out STATUS: UCL_RETURN); –– #11

function OWN_AP_ID : AP_ID; –– #12

procedure GET_AP_ID (in AP: AP_NAME; in NODE: NODE_NAME := \\; out NUMBER: INTEGER; out ID_LIST: AP_ID_LIST; out STATUS: UCL_RETURN); –– #13

procedure GET_AP_STATUS (in AP: AP_ID; in NODE: NODE_NAME := \\; out EXEC_STATE: AP_EXECUTION_STATE; out STATUS: UCL_RETURN); –– #14

procedure READ_MESSAGE_FROM_AP (in BLOCK: BOOLEAN := TRUE; out AP: AP_ID; out NODE_NAME: USER_MESSAGE; out MESSAGE : USER_MESSAGE; out STATUS: UCL_RETURN); –– #15

procedure WRITE_MESSAGE_TO_AP (in AP: AP_ID;

Page 269: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

in NODE: NODE_NAME := \\; in MESSAGE: USER_MESSAGE := DEFAULT_MESSAGE; out STATUS: UCL_RETURN); –– #16

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– Application Handling–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

procedure LOAD_APPLICATION (in NAME: APPLICATION_NAME; in NODE: NODE_NAME := \\; in PARAMS: USER_MESSAGE := DEFAULT_MESSAGE; out APPL: APPLICATION_ID; out STATUS: UCL_RETURN); –– #17

procedure UNLOAD_APPLICATION (in APPL: APPLICATION_ID; out STATUS: UCL_RETURN); –– #18

procedure INIT_APPLICATION (in APPL: APPLICATION_ID; in MESSAGE: USER_MESSAGE := DEFAULT_MESSAGE; out STATUS: UCL_RETURN); –– #19

procedure START_APPLICATION (in APPL: APPLICATION_ID; out STATUS: UCL_RETURN); –– #20

procedure RESET_APPLICATION (in APPL: APPLICATION_ID; out STATUS: UCL_RETURN); –– #21

procedure GET_APPLICATION_STATUS (in APPL: APPLICATION_ID; out STATE: APPLICATION_STATE; out ERROR_COUNT: INTEGER; out ERROR_MESSAGE: APPLICATION_ERROR_MESSAGE; out STATUS: UCL_RETURN); –– #22

procedure READ_MESSAGE_FROM_APPLICATION (in BLOCK: BOOLEAN := TRUE; out APPL: APPLICATION_ID; out MESSAGE: USER_MESSAGE; out STATUS: UCL_RETURN); –– #23

procedure WRITE_MESSAGE_TO_APPLICATION (in APPL: APPLICATION_ID; in MESSAGE: USER_MESSAGE; out STATUS: UCL_RETURN); –– #24

procedure GET_APPLICATION_NAME (in APPL: APPLICATION_ID; out NAME: APPLICATION_NAME; out STATUS: UCL_RETURN); –– #25procedure GET_APPLICATION_ID (in NAME: APPLICATION_NAME; out APPL: APPLICATION_ID; out STATUS: UCL_RETURN); –– #26––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– Issue of HW Stimuli & Downloading

Page 270: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

procedure ISSUE (in ITEM: ISSUE_ITEM_NAME(); in PRIO: PRIORITY := LOW; in AT_TIME: TIME := ~:~; in BASE: TIME_BASE := LOCAL_TIME; in ONBOARD_EXECUTION_TIME: TIME := ~:~; in TIMEOUT: DURATION := default_issue_timeout; out SAS_ACK_CODE: INTEGER; –– Status Code returned by SAS out SAS_ACK_TIME: TIME; –– Time when SAS acknowledged the command out CCSDS_SEQUENCE_COUNT: INTEGER;–– Sequence Count used for CCSDS Packet out STATUS: UCL_RETURN); –– #27

procedure ISSUE_AND_VERIFY(in ITEM: SINGLE_GDU_NAME();

in PRIO: PRIORITY := LOW; in AT_TIME: TIME := ~:~; in BASE: TIME_BASE := LOCAL_TIME; in ONBOARD_EXECUTION_TIME: TIME := ~:~; in TIMEOUT: DURATION := default_issue_timeout; in ACTIVATION_DELAY: DURATION := –1.0 [s]; in VERIFICATION_TIMEOUT : DURATION := –1.0 [s]; in WAIT_TIL_END: BOOLEAN := FALSE; out SAS_ACK_CODE: INTEGER; –– Status Code returned by SAS out SAS_ACK_TIME: TIME; –– Time when SAS acknowledged the command out VERIFICATION_STATUS: CMD_VERIFICATION_STATUS; out CCSDS_SEQUENCE_COUNT: INTEGER;–– Sequence Count used for CCSDS Packet out STATUS: UCL_RETURN); –– #28

procedure GET_VERIFICATION_STATUS(in ITEM: SINGLE_GDU_NAME; out VERIFICATION_STATUS: CMD_VERIFICATION_STATUS; out STATUS: UCL_RETURN); –– #29

procedure ENABLE_ENDITEM (in ENDITEM: ISSUE_ITEM_NAME; out STATUS: UCL_RETURN); –– #30

procedure DISABLE_ENDITEM (in ENDITEM: ISSUE_ITEM_NAME; out STATUS: UCL_RETURN); –– #31

procedure DOWNLOAD (in APPL: APPLICATION_ID; in ITEM: DOWNLOAD_ITEM_NAME; in NODE: NODE_NAME := \\; out SAS_ACK_CODE: INTEGER; –– Status Code returned by SAS out STATUS: UCL_RETURN); –– #32

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– Raw Data Handling–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

procedure START_ACQUISITION (in ITEM: ACQUISITION_COLLECTION; in ADU: ADU_NAME := \\; out STATUS: UCL_RETURN); –– #33

procedure STOP_ACQUISITION

Page 271: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

(in ITEM: ACQUISITION_COLLECTION; in ADU: ADU_NAME := \\; out STATUS: UCL_RETURN); –– #34

procedure SEND_SIMULATED_ADU (in ADU: ADU_NAME; out STATUS: UCL_RETURN); –– #35

procedure WAIT_FOR_ADU (in ADU: ADU_NAME; in TIMEOUT: DURATION := default_adu_wait_timeout; out TIME_TAG: TIME; out SEQUENCE_NUMBER: INTEGER; out STATUS: UCL_RETURN); –– #36

procedure SET_BITS_IN_SIMULATED_ADU (in ADU: ADU_NAME; in OFFSET: INTEGER; in SIZE: BIT_COUNT; in VALUE: BITSET; out STATUS: UCL_RETURN); –– #37

procedure SET_SIMULATED_ENDITEM_VALUE (in ITEM: MONITOR_ITEM_NAME; in BOOL_VALUE: BOOLEAN := FALSE; in INT_VALUE: INTEGER := 0; in BITSET_VALUE: BITSET := {}; in REAL_VALUE: REAL := 0.0; in STR_VALUE: USER_MESSAGE := ””; out STATUS: UCL_RETURN); –– #38

procedure ROUTE_TO_SAS (in ITEM: ROUTE_SAS_ITEM_NAME ; in SAS_NAME: APPLICATION_NAME; in OLD_SAS_NAME: APPLICATION_NAME := NULL_APPLICATION_NAME; out STATUS: UCL_RETURN); –– #39

procedure SET_CCSDS_APID (in ITEM: CCSDS_ITEM_NAME ; in CCSDS_APID: INTEGER; in OLD_CCSDS_APID: INTEGER := –1; out STATUS: UCL_RETURN); –– #40––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– Log Event Handling–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

procedure LOG (in MESSAGE : USER_MESSAGE; in LONG_TEXT: USER_MESSAGE := ””; out STATUS : UCL_RETURN); –– #41

procedure USER_EVENT (in MESSAGE: USER_MESSAGE; out STATUS : UCL_RETURN); –– #42

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– Archiving–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

procedure ENABLE_ARCHIVING (in CYCLE: DURATION := DEFAULT_ARCH_FILE_OPEN_PERIOD;

Page 272: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

out STATUS: UCL_RETURN); –– #43

procedure DISABLE_ARCHIVING; –– #44

procedure CLOSE_ARCHIVE (out CLOSE_TIME : TIME; out STATUS: UCL_RETURN); –– #45

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– TRDB Access–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

procedure ADD_USER_FILE_TO_TEST_SESSION (in FILE_NAME : STRING; in FILE_TYPE : STRING := ”ANY ”; out STATUS: UCL_RETURN); –– #46 ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– User Input & Output–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

procedure READ_MESSAGE_FROM_USER (in PROMPT: USER_MESSAGE; in WORKSTATION: NODE_NAME := \\; in OPTIONS: VALUE_STRING := ””; out USER_ENTRY: USER_MESSAGE; out STATUS: UCL_RETURN); –– #47

procedure WRITE_MESSAGE_TO_USER (in MESSAGE: USER_MESSAGE; in SUPPLEMENT: USER_MESSAGE := ””; in MESSAGE_GROUP: MSG_GROUP := ””; in MESSAGE_TYPE: MSG_TYPE := ”MSG ”; in WORKSTATION: NODE_NAME :=\\; in ALL_WORKSTATIONS : BOOLEAN := FALSE; out STATUS: UCL_RETURN); –– #48 procedure READ_NUMBER_FROM_USER (in PROMPT_MESSAGE: USER_MESSAGE; in WORKSTATION: NODE_NAME := \\; in OPTIONS: VALUE_STRING := ””; out USER_ENTRY: REAL; out STATUS: UCL_RETURN); –– #49

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– Synoptic Display and Workstation Program Control–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

procedure DISPLAY_PICTURE (in PICTURE: PICTURE_NAME; in WORKSTATION: NODE_NAME := \\; in OPTIONS: VALUE_STRING := ””; out ID: PICTURE_ID; out STATUS: UCL_RETURN); –– #50

procedure REMOVE_PICTURE (in ID: PICTURE_ID; in WORKSTATION: NODE_NAME := \\; out STATUS: UCL_RETURN); –– #51

Page 273: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

procedure START_PROGRAM

(in WORKSTATION: NODE_NAME := \\; in PROGRAM: STRING; out PID: INTEGER; out STATUS: UCL_RETURN); –– #52

procedure SIGNAL_PROGRAM (in WORKSTATION: NODE_NAME := \\; in PID: INTEGER; in SIGNAL: STRING; out STATUS: UCL_RETURN); –– #53

procedure OPEN_AP_OUTPUT_WINDOW (in WORKSTATION: NODE_NAME := \\; in WINDOW_PROPERTIES: STRING := ””; out PID: INTEGER; out STATUS: UCL_RETURN); –– #54

procedure CLOSE_AP_OUTPUT_WINDOW (in WORKSTATION: NODE_NAME := \\; in PID: INTEGER; out STATUS: UCL_RETURN); –– #55

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– UCL Code Reloading from MDB–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

procedure LOAD_UCL (in ITEM: UCL_ITEM_NAME; out STATUS: UCL_RETURN); –– #56

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– Test Node management–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

function IS_LOCAL_NODE (in NODE : NODE_NAME) : BOOLEAN; –– #57

procedure SET_DEFAULT_WORKSTATION (in WORKSTATION: NODE_NAME :=\\; out STATUS: UCL_RETURN); –– #58

END GROUND_LIBRARY;

Page 274: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2.3 Interface Description

6.9.2.3.1 Time Management

6.9.2.3.1.1 CLOCK

Specificationfunction CLOCK

(in BASE: TIME_BASE: = LOCAL_TIME) : TIME;

Description / ParametersReturns the actual local time or SMT

BASE (optional) : time_base to use; by default, local time.

Examplemy_time_variable : = CLOCK;

6.9.2.3.1.2 DELAY

Specificationprocedure DELAY

(in DELAY: DURATION;in BASE: TIME_BASE:= LOCAL_TIME);

Description / ParametersWaits the given time interval. Returns nothing.

DELAY : duration to delay, expressed as a fixed–point number in seconds.

BASE : time base to use; by default, local time.

ExampleDELAY (4.6 [s]);

6.9.2.3.1.3 WAIT_UNTIL

Specificationprocedure WAIT_UNTIL

(in DUE_TIME : TIME;in BASE: TIME_BASE: = LOCAL_TIME;out STATUS: UCL_RETURN);

Description / ParametersWaits until the given time is reached.

DUE_TIME : time to wait until.

BASE (optional) : time base to use; by default, local time.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleWAIT_UNTIL (3:00:00.000, LOCAL_TIME, stat);

Page 275: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2.3.1.4 START_SMT

Specification procedure START_SMT

(in VALUE: TIME: ~:~ ;out STATUS: UCL_RETURN);

Description / ParametersStarts Simulated Mission Time (SMT), and optionally sets it to a given value. If SMT is already running,the new VALUE is immediately set, and time is incremented accordingly thereafter.

VALUE (optional) : new SMT; by default current SMT is resumed.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleSTART_SMT (10.01.95 20:00:00, STATUS : stat);

6.9.2.3.1.5 START_SMT_WITH_OFFSET

Specification procedure START_SMT_WITH_OFFSET

(in OFFSET: INTEGER ;out STATUS: UCL_RETURN);

Description / ParametersStarts Simulated Mission Time (SMT) relative to local time. If SMT is already running, the new time acc.to OFFSET is immediately set, and time is incremented accordingly thereafter.

OFFSET : number of seconds relative to Local Time (LOT). A negative number means number ofseconds before (earlier) than LOT.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleSTART_SMT_WITH_OFFSET (3600, STATUS : stat); –– start SMT with one hour later than LOT

Page 276: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2.3.1.6 STOP_SMT

Specificationprocedure STOP_SMT

(out STATUS: UCL_RETURN);

Description / ParametersStop the running Simulated Mission Time.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleSTOP_SMT (stat);

6.9.2.3.1.7 SET_SMT

Specification procedure START_SMT

(in VALUE: TIME: ~:~ ;out STATUS: UCL_RETURN);procedure SET_SMT(in VALUE: TIME: ~:~ ;out STATUS: UCL_RETURN);

Description / ParametersSets Simulated Mission Time (SMT) to a given value. If SMT is already running, the new VALUE isimmediately set, and time is incremented accordingly thereafter.

VALUE (optional) : new SMT

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleSET_SMT (10.01.01 20:00:00, STATUS : stat);

Page 277: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2.3.2 GTAP Handling

In the following, the term GTAP (Ground Test Automated Procedure) is used for Automated

Procedures running in the Ground System (to differentiate from Automated Procedures running in the

Onboard System)

6.9.2.3.2.1 EXECUTE_AP

Specificationprocedure EXECUTE_AP

(in AP: AP_NAME ();in PRIO: PRIORITY: = LOW;in NODE: NODE_NAME : = \\;out ID: AP_ID;out STATUS: UCL_RETURN);

Description / ParametersStarts execution of a GTAP. If the procedure is called from within a GTAP, the called GTAP runsasynchronously unless SYNCHRONISE_WITH_AP is also called.

AP : name of GTAP to run; optionally including its list of parameters.

PRIO (optional) : the GTAP’s priority (HIGH or LOW).

NODE (optional) : node on which the GTAP is to be executed: by default the current node.

ID : returns the new GTAP’s identifier, if it could be started; otherwise –1.RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleEXECUTE_AP

(\apm\dms\start_up(A,B,C), low_priority, \apm\dms, my_AP_ID, exec_stat);

6.9.2.3.2.2 SYNCHRONISE_WITH_AP

Specificationprocedure SYNCHRONISE_WITH_AP

(in AP: AP_ID;in NODE: NODE_NAME : = \\;out COMPLETION: AP_COMPLETION_STATE;out STATUS: UCL_RETURN);

Description / ParametersForces the calling GTAP to synchronise with the called GTAP (by default, EXECUTE_AP starts thecalled GTAP asynchronously). SYNCHRONISE_WITH_AP blocks until the called GTAP has finished.

AP : internal GTAP identifier, from EXECUTE_AP.

NODE (optional) : node on which the GTAP is to be executed; by default the current node.

COMPLETION : returns the called GTAP’s completion state.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleSYNCHRONISE_WITH_AP (my_AP_ID, \DMS\SCOE, my_completion_state, stat);

Page 278: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2.3.2.3 SUSPEND_AP

Specificationprocedure SUSPEND_AP

(in AP: AP_ID;in NODE: NODE_NAME : = \\;out STATUS: UCL_RETURN);

Description / ParametersSuspends execution of a GTAP on a given test node.

AP : internal GTAP identifier, given to it when started by EXECUTE_AP.

NODE (optional) : the node running the GTAP : by default, the current node.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleSUSPEND_AP (power_down_AP_ID,\\, stat);

6.9.2.3.2.4 RESUME_AP

Specificationprocedure RESUME_AP

(in AP: AP_ID;in NODE: NODE_NAME : = \\;out STATUS: UCL_RETURN);

Description / ParametersResumes execution of a suspended GTAP.

AP : internal GTAP identifier, given to it when started by EXECUTE_AP.

NODE (optional) : the node running the GTAP : by default the local node.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleRESUME_AP (my_AP_reference, \\, stat);

6.9.2.3.2.5 OWN_AP_ID

Specification;function OWN_AP_ID : AP_ID

Description / ParametersReturns the GTAP identifier of the AP calling that function. This function is not available from HLCL asthe system library commands executed from HLCL do not have a GTAP identifier.

ExampleMY_AP_ID := OWN_AP_ID;

Page 279: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2.3.2.6 GET_AP_ID

Specificationprocedure GET_AP_ID

(in AP: AP_NAME;in NODE: NODE_NAME : = \\;out NUMBER: INTEGER;out ID_LIST: AP_ID_LIST;out STATUS: UCL_RETURN);

Description / ParametersReturns all GTAP identifiers for a given automated procedure name on a given test node. Sinceseveral instances of a GTAP may run in parallel on one test node, a list of GTAP identifiers is returned.

AP : name of GTAP to find.

NODE (optional) : node to search; by default, the local node.

NUMBER : returns the number of GTAP identifiers in the ID_List for this GTAP.

ID_LIST : returns list of AP_IDs found. Unused fields of the ID_List are filled with zeroes.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleGET_AP_ID

(\apm\power\control_program, \apm\dms, my_number_of_APs, my_AP_list, stat);

6.9.2.3.2.7 GET_AP_STATUS

Specificationprocedure GET_AP_STATUS

(in AP: AP_ID;in NODE: NODE_NAME : = \\;out EXEC_STATE: AP_EXECUTION_STATE;out STATUS: UCL_RETURN);

Description / ParametersReturns the current status of a GTAP.

AP : AP_ID of the GTAP whose status is required.

NODE (optional) : node to search; by default, the current node.

EXEC_STATE : returns the execution state of the GTAP.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleGET_AP_STATUS (\apm\power\off\procedure, \apm\dms, my_AP_status, stat);

Page 280: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2.3.2.8 READ_MESSAGE_FROM_AP

Specificationprocedure READ_MESSAGE_FROM_AP

(in BLOCK: BOOLEAN : = TRUE;out AP: AP_ID;out NODE_NAME: USER_MESSAGE;out MESSAGE : USER_MESSAGE;out STATUS: UCL_RETURN);

Description / ParametersReads a message asynchronously from another GTAP.

BLOCK (optional) : boolean flag controlling the source of the message, as follows:

– TRUE : waits until a GTAP really sends a message (by default)

– FALSE : reads the next message buffered, or if none, returns an empty string.

AP : returns identifier of the GTAP sending the message.

NODE_NAME : returns string identifying node on which other GTAP is running.

MESSAGE : returns string from the other GTAP.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleREAD_MESSAGE_FROM_AP (FALSE, the_AP_ID, the_AP_message, stat);

6.9.2.3.2.9 WRITE_MESSAGE_TO_AP

Specificationprocedure WRITE_MESSAGE_TO_AP

(in AP: AP_ID;in NODE: NODE_NAME : = \\;in MESSAGE: USER_MESSAGE : = DEFAULT_MESSAGE;out STATUS: UCL_RETURN);

Description / ParametersSends a message asynchronously from one GTAP to another, i.e. without waiting for the receiving APto accept the message. The caller simply sends the message and continues.

AP : AP_ID of GTAP to receive the message.

NODE (optional) : processor node running receiving GTAP; by default, the current node.

MESSAGE : string to send.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleWRITE_MESSAGE_TO_AP

(dms_control_AP_ID, \DMS\SCOE, ”EMERGENCY STOP”, stat);

Page 281: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2.3.3 Application Handling

unloaded

idle

running

aborted

Figure: Relationship of Application Handling Primitives

LOAD_APPLICATION

UNLOAD_APPLICATION

RESET_APPLICATION

START_APPLICATION

initialisedINIT_APPLICATION

(crashes)

UNLOAD_APPLICATION

6.9.2.3.3.1 LOAD_APPLICATION

Specification;

Description / ParametersLoads an application on to the local test node or on a workstation.

NAME : the name of the executable image in the predefined application directory.

NODE : the name of the node where the SAS shall execute. By default the empty pathname denotesthe local testnode. The workstations are referenced by their EGSE node entry in MDA. Starting a SASon another testnode is prohibited.

PARAMS (optional) : parameter string up to 255 characters to pass to the application.

APPL : returns the application’s ID to be used for subsequent control operations.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleLOAD_APPLICATION (”exp_monitor”, ”Exp=123”, my_appl_ID, stat);

6.9.2.3.3.2 UNLOAD_APPLICATION

Specificationprocedure UNLOAD_APPLICATION

(in APPL: APPLICATION_ID;out STATUS: UCL_RETURN);

Description / ParametersUnloads the specified application from memory.

APPL : APPLICATION_ID as returned from LOAD_APPLICATION (section NO TAG).

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleUNLOAD_APPLICATION (smives_appl_ID, stat);

Page 282: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2.3.3.3 INIT_APPLICATION

Specificationprocedure INIT_APPLICATION

(in APPL: APPLICATION_ID;in MESSAGE: USER_MESSAGE: = DEFAULT_MESSAGE;out STATUS: UCL_RETURN);

Description / ParametersInitialises the specified application.

APPL : APPLICATION_ID as returned from LOAD_APPLICATION (section NO TAG).

MESSAGE (optional) : string up to 255 characters to send to the application.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleINIT_APPLICATION (my_appl_ID, ”GNC_RECEIVER_ON”, stat);

6.9.2.3.3.4 START_APPLICATION

Specificationprocedure START_APPLICATION

(in APPL: APPLICATION_ID;out STATUS: UCL_RETURN);

Description / ParametersStarts the application running.

APPL : APPLICATION_ID as returned from LOAD_APPLICATION (section NO TAG).

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleSTART_APPLICATION (my_appl_ID, stat);

6.9.2.3.3.5 RESET_APPLICATION

Specificationprocedure RESET_APPLICATION

(in APPL: APPLICATION_ID;out STATUS: UCL_RETURN);

Description / ParametersResets the specified application.

APPL : APPLICATION_ID as returned from LOAD_APPLICATION (section NO TAG).

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleRESET_APPLICATION (my_appl_ID, stat);

Page 283: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2.3.3.6 GET_APPLICATION_STATUS

Specificationprocedure GET_APPLICATION_STATUS

(in APPL: APPLICATION_ID;out STATE: APPLICATION_STATE;out ERROR_COUNT: INTEGER;out ERROR_MESSAGE: APPLICATION_ERROR_MESSAGE;out STATUS: UCL_RETURN);

Description / ParametersReturns the status of an application, including error status and statistics.

APPL : APPLICATION_ID as returned from LOAD_APPLICATION (section NO TAG).

STATE : returns state of application.

ERROR_COUNT : returns integer count of errors in the application.

ERROR_MESSAGE : returns error message from the application.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleGET_APPLICATION_STATUS (appl_ID, appl_state, err_count, appl_error_mess, stat);

Page 284: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2.3.3.7 GET_APPLICATION_ID

Specification procedure GET_APPLICATION_ID (in NAME: APPLICATION_NAME; out APPL: APPLICATION_ID; out STATUS: UCL_RETURN);

Description / ParametersReturns the Application ID of an application, if the application is loaded

NAME : The name of the application.

APPL : APPLICATION_ID as returned from LOAD_APPLICATION (section NO TAG).

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleGET_APPLICATION_ID (appl_name, appl_id, stat);

6.9.2.3.3.8 GET_APPLICATION_NAME

Specificationprocedure GET_APPLICATION_NAME (in APPL: APPLICATION_ID; out NAME: APPLICATION_NAME; out STATUS: UCL_RETURN);

Description / ParametersReturns the name of an application

APPL : APPLICATION_ID as returned from LOAD_APPLICATION (section NO TAG).

NAME : returns the name of the application.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleGET_APPLICATION_NAME (appl_ID, appl_name, stat);

Page 285: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2.3.3.9 READ_MESSAGE_FROM_APPLICATION

Specificationprocedure READ_MESSAGE_FROM_APPLICATION

(in BLOCK: BOOLEAN: = TRUE;out APPL: APPLICATION_ID;out MESSAGE : USER_MESSAGE;out STATUS: UCL_RETURN);

Description / ParametersReads a message from an application.

BLOCK : boolean flag, controlling the source of the read:

– TRUE, waits until an application really sends a message;

– FALSE, reads the next message buffered. If none, returns an empty string and a null application ID.

APPL : returns APPLICATION_ID of the application sending the message.

MESSAGE : returns a string containing the message

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleREAD_MESSAGE_FROM_APPLICATION (FALSE, appl_ID, appl_message, stat)

6.9.2.3.3.10 WRITE_MESSAGE_TO_APPLICATION

Specificationprocedure WRITE_MESSAGE_TO_APPLICATION

(in APPL: APPLICATION_ID;in MESSAGE : USER_MESSAGE;out STATUS: UCL_RETURN);

Description / ParametersSends a message to an application.

APPL : the APPLICATION_ID as returned from LOAD_APPLICATION.

MESSAGE : string of up to 255 characters to be sent.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleWRITE_MESSAGE_TO_APPLICATION (smives_appl_ID, ”IEEE_BUS_1_INIT”, stat);

Page 286: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2.3.4 Issue of HW Stimuli

6.9.2.3.4.1 ISSUE

Specificationprocedure ISSUE

(in ITEM: ISSUE_ITEM_NAME();in PRIO: PRIORITY := LOW;in AT_TIME: TIME: = ~:~; in BASE: TIME_BASE: = LOCAL_TIME;in ONBOARD_EXECUTION_TIME: TIME := ~:~; in TIMEOUT: DURATION: = DEFAULT_ISSUE_TIMEOUT ;

out SAS_ACK_CODE: INTEGER; out SAS_ACK_TIME: TIME; out CCSDS_SEQUENCE_COUNT: INTEGER;

out STATUS: UCL_RETURN)

Description / ParametersIssues a stimulus (or Telecommand).

ITEM : the database enditem describing what has to be issued. It can denote a parameter list, asdefined for the enditem.Note: (1) the enditem may also be maintained by a remote node

(2) The enditem may have additional attributes such as command verification or command authorization – specified in the MDB. These attributes are taken into account before and after sending the generated GDU to the addressed SAS. If specific values for TC verification are to be set online, the command ISSUE_AND_VERIFY can be used (see also description there for behaviour on TC verification)

PRIO : the priority to be used for issuing the item (HIGH or LOW)

AT_TIME (optional) : The time to issue the stimulus;

Default: ”~:~” = ”00.00.01”, i.e. the default ”no time”.

The purpose of the AT_TIME parameter shall be the same for all GDU alternatives:

For MDB enditems of type EGSE_ANALOGUE_STIMULUS, EGSE_DISCRETE_STIMULUS,EGSE_BINARY_PACKET and EGSE_PREDEFINED_TC, the time value is written as theTIME_TAG into the GDU generated by the command and sent to the SAS. The SAS then has to extractthe TIME_TAG from the GDU and execute the stimulus at the given time.

For MDB enditems of type GDU_DESCRIPTION_LIST the AT_TIME value will be written into thetime tasg field of the GDU header of each stimulus referenced within the GDU list.

Page 287: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

ONBOARD_EXECUTION_TIME (optional): The time to execute the telecommand onboard

Default: ”~:~” = ”00.00.01”, i.e. the default ”no time”.

For MDB Enditems of type EGSE_PREDEFINED_TC, the ONBOARD_EXECUTION _TIME valuewill be written to the TIME field of the secondary header of the corresponding CCSDS packet. In thiscase, the TIME_ID field of the secondary header shall be set to ’10’B, which means: a time tag is present.No interpretation of TIME_BASE will be done by CGS in this case. The TIME_TAG of the GDU headergenerated by the command will be independent from this.

If no ONBOARD_EXECUTION _TIME parameter is given, i.e. the default value is applied , theTIME_ID and TIME field shall be set to ’10’B (= time tagged command: the execution of the commandis scheduled by the onboard system to the specified time)

For MDB enditems of type GDU_DESCRIPTION_LIST the ONBOARD_EXECUTION _TIMEvalue will be written into the TIME field of the secondary header of each CCSDS packet referencedwithin the GDU list.

Remark: If the TIME_ID is of value ’00’B (UNDEFINED) or ’11’B (NO_TIME_TAG), the TIME fieldin the secondary header shall be set to zero via the database default entry, in case noONBOARD_EXECUTION_TIME parameter is given.

BASE (optional) : specifies if AT_TIME is local time or SMT; by default, local time.

TIMEOUT : the maximum time to wait for acknowledgement of this stimulus or telecommand

SAS_ACK_CODE : the return code received from SAS on command execution

SAS_ACK_TIME : the time received from SAS for command execution

CCSDS_SEQUENCE_COUNT : the value used as sequence counter in a issued CCSDS Packet

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleISSUE (\apm\ecls\main_temperature(21.1), AT_TIME : 10:00:00, SAS_ACK_CODE: ack_code, SAS_ACK_TIME: sas_time, CCSDS_SEQUENCE_COUNT: sequ_count, STATUS : stat);

Page 288: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2.3.4.2 ISSUE_AND_VERIFY

Specificationprocedure ISSUE_AND_VERIFY

(in ITEM: SINGLE_GDU_NAME(); in PRIO: PRIORITY := LOW; in AT_TIME: TIME := ~:~; in BASE: TIME_BASE := LOCAL_TIME; in ONBOARD_EXECUTION_TIME: TIME := ~:~; in TIMEOUT: DURATION := default_issue_timeout; in ACTIVATION_DELAY: DURATION := –1.0 [s]; in VERIFICATION_TIMEOUT : DURATION := –1.0 [s]; in WAIT_TIL_END: BOOLEAN := FALSE;

out SAS_ACK_CODE: INTEGER; out SAS_ACK_TIME: TIME; out CCSDS_SEQUENCE_COUNT: INTEGER; out VERIFICATION_STATUS: CMD_VERIFICATION_STATUS;

out STATUS: UCL_RETURN);

Description / ParametersIssues a stimulus (or Telecommand/Binary packet) and verifies expected values for measurements,defined as part of the enditem definition in the MDB. The verification starts after the command hasbeen acknowledged and a specified time (ACTIVATION_DELAY) has elapsed. If in theVERIFICATION_TIMEOUT period all specified expected values have been verified, the verificationstatus is set to OK, otherwise to FAILED. A message is generated accordingly.If during the verification an error occurs, the verification status is set to ERROR.If WAIT_TIL_END is set, the procedure waits until the end of the verification and the verification status isreturned in VERIFICATION_STATUS; otherwise the status can be read by the procedureGET_VERIFICATION_STATUS at any time.

Activation_delay

Send GDUtimeVerification Timeout

Verification Status: OK

all values OK:report failuremin 1 value NOK:

Acknowledge

Verification Status: FAILEDreport OK

NACK:Verif. Status: undefined

ITEM : the database enditem (GDU) describing what has to be issued. It can denote a parameter list,as defined for the enditem.Notes: (1) the enditem may also be maintained by a remote node

PRIO : the priority to be used for issuing the GDU (HIGH or LOW)

AT_TIME (optional) : The time to issue the GDU; ––> see procedure ISSUE

ONBOARD_EXECUTION_TIME (optional): The time to execute the telecommand onboard

Page 289: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

––> see procedure ISSUE

BASE (optional) : specifies if AT_TIME is local time or SMT; by default, local time.

TIMEOUT : the maximum time to wait for acknowledgement of this GDU

ACTIVATION_DELAY: the time to wait after sending of the GDU until the verification of the measure-ments is started. If this value is set to 0.0, the checking is performed immediately after the commandhas been acknowledged. If the default value (–1.0) is given, the activation delay is taken from the MDBdefinition.

VERIFICATION_TIMEOUT: the time to wait after the ACTIVATION_DELAY has expired and beforethe verification of the measurements is finished. If in this period the verification of the value(s) formeasurement(s) defined in the MDB is successful, a message is generated and the verification statusis set to OK. If VERIFICATION_TIMEOUT has elapsed and the verification of at least one measurmentis not successful, a message is generated indicating failure and the verification status is set toFAILED.

If VERIFICATION_TIMEOUT is set to 0.0, the checking is performed immediately after the ACTIVA-TION_DELAY and then is finished.If the default value (–1.0) is given, the activation delay is taken fromthe MDB definition.

WAIT_TIL_END: If true, the procedure returns after the verification has finished. If false, theprocedure returns immediately after the GDU has been acknowledged resp. after TIMEOUT. In thiscase, the VERIFICATION_STATUS is set to IN_PROGRESS.

SAS_ACK_CODE : the return code received from SAS on command execution

SAS_ACK_TIME : the time received from SAS for command execution

CCSDS_SEQUENCE_COUNT : the value used as sequence counter in a issued CCSDS Packet

VERIFICATION_STATUS: Status of the verification

STARTED, Verification is started, i.e. Activation Delay is currently runningIN_PROGRESS, Verification is in progress, i.e Verification Timeout is running

and not all measurements have expected values yetTC_VERIF_OK, Verification performed with success. All measurements had expected

values.TC_VERIF_FAILED, Verification performed with no success, i.e. Verification

Timeout elapsed and at least one measurement had no expected valueERROR, Error during Verification Timeout. During the verification timeout

an internal error occuredNO_VERIFICATION No Verification defined for this enditem (i.e. in MDB there are no

measurements specified which to verify for this command)ABORTED Verification aborted due to issue of same command or stop of remote

TESUNDEFINED The verifcation status is not defined, i.e. the sending of the

command aborted due to error or negative acknowledge or timeout

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleISSUE_AND_VERIFY(\apm\eps\power_on, VERIFICATION_TIMEOUT: 3.0[s],WAIT_TIL_END: true, SAS_ACK_CODE: ack_code, SAS_ACK_TIME: sas_time, VERIFICATION_STATUS: v_stat,CCSDS_SEQUENCE_COUNT: count, STATUS : stat);

Page 290: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2.3.4.3 GET_VERIFICATION_STATUS

Specificationprocedure GET_VERIFICATION_STATUS

(in ITEM: GDU_ITEM_NAME; out VERIFICATION_STATUS: CMD_VERIFICATION_STATUS; out STATUS: UCL_RETURN);

ENDITEM : name of stimulus or telecommand for which the verification status is to be fetched. Enditem may be defined on local or remote node.

VERIFICATION_STATUS: Status of the verification. Applies to the last command (GDU) successfullysent or just being sent.

STARTED, Verification is started, i.e. Activation Delay is currently runningIN_PROGRESS, Verification is in progress, i.e Verification Timeout is running

and not all measurements have expected values yetTC_VERIF_OK, Verification performed with success. All measurments had expected

values.TC_VERIF_FAILED, Verification performed with no success, i.e. Verification

Timeout elapsed and at least one measurement had no expected valueERROR, Error during Verification Timeout. During the verification timeout

an internal error occuredNO_VERIFICATION No Verification defined for this enditem (i.e. in MDB there are no

measurements specified which to verify for this command)ABORTED Verification aborted due to issue of same command or stop of remote

TESUNDEFINED The verifcation status is not defined, i.e. the sending of the

command aborted due to error or negative acknowledge or timeout

6.9.2.3.4.4 ENABLE_ENDITEM

Specificationprocedure ENABLE_ENDITEM

(in ENDITEM: ISSUE_ITEM_NAME;out STATUS: UCL_RETURN);

Description / ParametersEnables an enditem that has been disabled, either temporarily through DISABLE_ENDITEM, orpermanently through definition in the configuration database.

ENDITEM : name of stimulus or telecommand to be enabled.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleENABLE_ENDITEM (\apm\power\off, stat);

Page 291: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2.3.4.5 DISABLE_ENDITEM

Specificationprocedure DISABLE_ENDITEM

(in ENDITEM: ISSUE_ITEM_NAME;out STATUS: UCL_RETURN);

Description / ParametersDisables an enditem that has been enabled temporarily or permanently.

ENDITEM : name of stimulus or telecommand to be disabled.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleDISABLE_ENDITEM (\apm\power\off, stat);

6.9.2.3.4.6 DOWNLOAD

Specificationprocedure DOWNLOAD

(in APPL: APPLICATION_ID;in ITEM: DOWNLOAD_ITEM_NAME;in NODE: NODE_NAME :=\\;out STATUS: UCL_RETURN);

Description / ParametersDownloads a file to a SAS, the corresponding frontend equipment managed by the SAS or the unitunder test through a SAS.

APPL : name of the SAS which is doing the download

ITEM : name of the item to be downloaded

NODE : name of the node into which the item has to be downloaded. An empty pathname indicatessome kind of default for the SAS.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleDISABLE_ENDITEM (\apm\power\off, stat);

Page 292: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2.3.5 Raw Data Handling

6.9.2.3.5.1 START_ACQUISITION

Specificationprocedure START_ACQUISITION

(in ITEM: ACQUISITION_COLLECTION;in ADU: ADU_NAME := \\;out STATUS: UCL_RETURN)

Description / ParametersStarts data acquisition on the local test node for the given enditem(s).

ITEM : individual enditem or group of enditems to be acquired.

ADU (optional) : the ADU Descriptor to be applied. If there is only one ADU Descriptor defined forITEM, the parameter may be omitted. If more than one ADU Descriptor is defined and the parameteris omitted, the command starts acquisition for all ADUs (TBC). If ITEM is already of typeADU_DESCRIPTION, the parameter is ignored.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleSTART_ACQUISITION (\apm\dms\link\statistics, stat);

6.9.2.3.5.2 STOP_ACQUISITION

Specificationprocedure STOP_ACQUISITION

(in ITEM: ACQUISITION_COLLECTION;in ADU: ADU_NAME := \\;out STATUS: UCL_RETURN);

Description / ParametersStops data acquisition on the local test node for the given enditems.

ITEM : individual enditem or group of enditems no longer to be acquired.

ADU (optional) : the ADU Descriptor to be applied. If only one ADU Descriptor is active for ITEM,the parameter may be omitted. If more than one ADU Descriptor is defined and the parameter isomitted, the command stops acquisition for all ADUs. If ITEM is already of type ADU_DESCRIPTION,the parameter is ignored.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleSTOP_ACQUISITION (\apm\dms\link\statistics, stat);

Page 293: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2.3.5.3 SEND_SIMULATED_ADU

Specificationprocedure SEND_SIMULATED_ADU

(in ADU: ADU_NAME;out STATUS: UCL_RETURN);

Description / ParametersSends a specific ADU internally to the TES input buffers, in simulation mode. For example, triggerssending or simulation of a non–cyclic ADU.

ADU : name of simulated packet to be sent.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleSEND_SIMULATED_ADU (\apm\dms_scoe\ADU_3, stat);

6.9.2.3.5.4 WAIT_FOR_ADU

Specificationprocedure WAIT_FOR_ADU

(in ADU: ADU_NAME;out TIME_TAG: TIME;out SEQUENCE_NUMBER: INTEGER;out STATUS: UCL_RETURN);

Description / ParametersWaits for an ADU to be supplied to this test node.

ADU : name of packet to be received.

TIMEOUT : the maximum time to wait for reception of the ADU.

If value is 0, the procedure waits forever.

TIME_TAG : returns the time tag from the received packet.

SEQUENCE_NUMBER : returns the current sequence number from the received packet.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleWAIT_FOR_ADU

(\apm\dms\housekeeping\packet, 30.0 [s], the_time_tag, the_sequence_number, stat);

Page 294: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2.3.5.5 SET_BITS_IN_SIMULATED_ADU

Specificationprocedure SET_BITS_IN_SIMULATED_ADU

(in ADU: ADU_NAME;in OFFSET: INTEGER;in SIZE: BIT_COUNT;in VALUE: BITSET;out STATUS: UCL_RETURN);

Description / ParametersModifies the bit–contents of a simulated ADU directly in simulation mode. The operation can only beapplied on unstructured ADUs or telemetry ADUs.

ADU : name of the ADU to be modified.

OFFSET : location in bits in this ADU where bits are to be modified.

SIZE : the number of bits to modify. The upper limit is 32 bits.

VALUE : the new value of the set of bits to be modified.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleSET_BITS_IN_SIMULATED_ADU (\apm\dms\hk_packet_1, 1234, 3, [0,1,2], stat);

6.9.2.3.5.6 SET_SIMULATED_ENDITEM_VALUE

SpecificationPROCEDURE SET_SIMULATED_ENDITEM_VALUE

(in ITEM: MONITOR_ITEM_NAME;in BOOL_VALUE: BOOLEAN : = FALSE;in INT_VALUE: INTEGER : = 0;in BITSET_VALUE: BITSET : = {};in REAL_VALUE: REAL : = 0.0;in STR_VALUE: USER_MESSAGE : = ””;out STATUS: UCL_RETURN);

Description / ParametersModifies the value of an enditem in simulated ADUs.The operation can only be applied on measurements provided by structured ADUs.

ITEM : name of item to be modified.

Other parameters : To cope with the different data types a value can have, several parameters areprovided. By selecting the appropriate parameter, eg INT_VALUE: 7, the desired value is set. Theoperation can only be applied on items provided by structured ADUs.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleSET_SIMULATED_ENDITEM_VALUE

(\apm\dms\input_current, REAL_VALUE : 5.6, STATUS : stat);

Page 295: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2.3.5.7 ROUTE_TO_SAS

Specificationprocedure ROUTE_TO_SAS

(in ITEM: ROUTE_SAS_ITEM_NAME ;in SAS_NAME: APPLICATION_NAME;in OLD_SAS_NAME: APPLICATION_NAME := NULL_APPLICATION_NAME;out STATUS: UCL_RETURN);

Description / ParametersRoutes all items specified in ITEM which have an SAS Reference to the new SAS specified bySAS_NAME. ITEMs must be in state ’not acquired’ if of type ADU_DESCRIPTION.

ITEM : The item to be re–defined in the local memory of the test node. ITEM can be

– a single enditem

– a incomplete pathname pointing to a virtual node, thus redefining all in that subtree of the types indicatedin the type ROUTE_SAS_ITEM_NAME;

– a GDU_DESCRIPTION_LIST list, thus enabling all items in that list.

SAS_NAME: The new short name of the SAS to be applied for ITEM. The SAS must run on the local test node .

OLD_SAS_NAME: The old short name of the SAS.Only items specified in ITEM having a SAS Referencematching this SAS name are changed .If NULL_APPLICATION_NAME is given, all items specified in ITEM are changed.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleROUTE_TO_SAS (\apm\cc_bus1\tc, ”VTC_SAS”, ”SSMB_SAS”, stat);

Page 296: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2.3.5.8 SET_CCSDS_APID

Specificationprocedure SET_CCSDS_APID (in ITEM: CCSDS_ITEM_NAME ; in CCSDS_APID: INTEGER; in OLD_CCSDS_APID: INTEGER := –1; out STATUS: UCL_RETURN);

Description / ParametersRoutes all items specified in ITEM. ITEMs must be in state ’not acquired’ if of typeADU_DESCRIPTION.

ITEM : The item to be re–defined in the local memory of the test node. ITEM can be

– a single enditem

– a incomplete pathname pointing to a virtual node, thus redefining all in that subtree of the types indicatedin the type CCSDS_ITEM_NAME;

– a GDU_DESCRIPTION_LIST list, thus switching all items in that list.

CCSDS_APID: The new CCSDS_APID to be applied for the CCSDS Primary Header contained in ITEM.

OLD_CCSDS_APID: The old APID of the item.Only items specified in ITEM having an APID matching thisOLD_CCSDS_APID are changed .If a negative value is given, all items specified in ITEM are changed.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleSET_CCSDS_APID (\apm\cc_bus1\tc, 1234, 1235, stat);

Page 297: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2.3.6 Event Handling

6.9.2.3.6.1 LOG

Specificationprocedure LOG

(in MESSAGE: USER_MESSAGE;out STATUS: UCL_RETURN);

Description / ParametersLogs an event message to the test result database. Logged events have group–code LOG and type–code MSG.

MESSAGE : string of up to 255 characters containing the message to be logged.First 40 characters of string will appear in the Short_Text field of logged event.

Note: If message is longer than 40 characters, and LONG_TEXT is empty, whole MESSAGE will beduplicated to appear as well in long text field of logged event .

LONG_TEXT : Additional message to be sent to user. Appears in the Long_Text field of the loggedevent.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleLOG (”Captain’s log, stardate 1 January 2137”,”No major events today”, stat);

6.9.2.3.6.2 USER_EVENT

Specificationprocedure USER_EVENT

(in MESSAGE: USER_MESSAGE;out STATUS: UCL_RETURN);

Description / ParametersLogs an user event message to the test result database. User events are special log event with the group–code UEVT and type–code MSG.

MESSAGE : string of up to 255 characters containing the message to be logged.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleUSER_EVENT (”Begin_of_Test”, stat);

Page 298: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2.3.7 Archiving

6.9.2.3.7.1 ENABLE_ARCHIVING

Specificationprocedure ENABLE_ARCHIVING

(in CYCLE: DURATION: = DEFAULT_ARCH_FILE_OPEN_PERIOD;out STATUS: UCL_RETURN);

Description / ParametersEnables archiving; creates a new archive file.

CYCLE : the time interval (1 minute to 24 hours exclusive) at which archive files are closedautomatically. If archiving is already enabled and the cycle time of this call differs from the cycle timespecified in the last call of this procedure, the current archive file is closed, and a new one is opened.Archiving periodically closes the archive file using the new cycle time.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleENABLE_ARCHIVING( 45 [min], stat);

6.9.2.3.7.2 DISABLE_ARCHIVING

Specificationprocedure DISABLE_ARCHIVING;

Description / ParametersStops archiving on the local test node. If archiving was enabled the current archive file is closed.

ExampleDISABLE_ARCHIVING;

6.9.2.3.7.3 CLOSE_ARCHIVE

Specificationprocedure CLOSE_ARCHIVE

(out CLOSE_TIME : TIME;out STATUS: UCL_RETURN);

Description / ParametersCloses the currently open archive file and opens a fresh one, provided archiving is enabled.

CLOSE_TIME : returns the local time the archive file was closed.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleCLOSE_ARCHIVE (my_time_value, stat);

Page 299: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2.3.8 User Input & Output

6.9.2.3.8.1 READ_MESSAGE_FROM_USER

Specification procedure READ_MESSAGE_FROM_USER

(in PROMPT: USER_MESSAGE;in WORKSTATION: NODE_NAME: = \\;out USER_ENTRY: USER_MESSAGE;out STATUS: UCL_RETURN);

Description / ParametersReads a message from the user; issues a prompt and blocks until the user enters a message.

PROMPT : prompt string of up to 255 characters, on Workstation’s screen.

WORKSTATION (optional) : node to display the prompt; by default, the workstation that started thisGTAP.

OPTIONS (optional): options specifying attributes for Pop–Up window

Syntax: –position X Y –size W H– foreground <colour>– background <colour>

X,Y: coordinates; W: Width, H: Height <colour>: colour name or hexadecimal specification

Example: ”–position 100 200 –size 600 150 –background red”

USER_ENTRY : returns what the user enters in a 255 character string, padded with NULLs.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleREAD_MESSAGE_FROM_USER (”Continue?”, \apm\egse\test_ws\, ””, buffer, stat);

Page 300: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2.3.8.2 WRITE_MESSAGE_TO_USER

Specificationprocedure WRITE_MESSAGE_TO_USER

(in MESSAGE: USER_MESSAGE;in WORKSTATION: NODE_NAME:=\\;out STATUS: UCL_RETURN);

Description / ParametersSends a message to the user of a given or all workstation(s).

MESSAGE : Message to be sent to user. Appears in the (short) text field of the message handlerwindow. Is abbreviated to first 40 characters.Note: If message is longer than 40 characters, and SUPPLEMENT is empty, whole MESSAGE willbe duplicated to appear as well in supplement text field of message handler window .

SUPPLEMENT : Additional message to be sent to user. Appears in the supplement text field of themessage handler window.

MSG_GROUP : A string of 4 character defining the message group. Might be one of the predefinedCGS message groups, or defined by the user .

MSG_TYPE : A string of 4 character defining the message type. Message Types are mappedto the message class of the message handler.The following are defined:”INFO”: mapped to ADVISORY”MSG ”: mapped to ADVISORY”ERR ”: mapped to ORDINARY”WRN ”: mapped to ADVISORY”EXC ”: mapped to SEVERE (to be used only for monitoring exceptions)”ALRM”: mapped to FATALany other: mapped to ADVISORY

WORKSTATION (optional) : name of node to display message; by default the workstation where thisGTAP (or its ancestors) was started.

ALL_WORKSTATIONS (optional) : if TRUE, MESSAGE is sent to all workstations connected to thetest node. Parameter WORKSTATION is ignored in this case.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleWRITE_MESSAGE_TO_USER (”STEP 3”, , , , \apm\egse\test_ws, ,stat);WRITE_MESSAGE_TO_USER (”SERIOUS ERROR”, ”NO DOWNLINK indicated anymore”,

”TM ”, ”ALRM”, \apm\egse\test_ws, ,stat);

Page 301: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2.3.8.3 READ_NUMBER_FROM_USER

Specificationprocedure READ_NUMBER_FROM_USER

(in PROMPT_MESSAGE: USER_MESSAGE;in WORKSTATION: NODE_NAME: = \\;out USER_ENTRY: REAL;out STATUS: UCL_RETURN);

Description / ParametersReads a real number; issues a prompt and blocks until the user enters one at the workstation.

PROMPT : prompt string displayed on user’s screen, up to 255 characters.

WORKSTATION (optional) : the workstation to use; by default that started this GTAP (or one of itsancestors).OPTIONS (optional): options specifying attributes for Pop–Up window

Syntax: –position X Y –size W H– foreground <colour>– background <colour>

X,Y: coordinates; W: Width, H: Height <colour>: colour name or hexadecimal specification

Example: ”–position 100 200 –size 600 150 –foreground red”

USER_ENTRY : returns the number entered by the user.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleREAD_NUMBER_FROM_USER

(”Which Table ?”, \apm\egse\test_ws\, , my_number, stat);

Page 302: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2.3.9 HCI Display Control

6.9.2.3.9.1 DISPLAY_PICTURE

Specificationprocedure DISPLAY_PICTURE

(in PICTURE: PICTURE_NAME;in WORKSTATION: NODE_NAME := \\ ;out ID: PICTURE_ID;out STATUS: UCL_RETURN);

Description / ParametersDisplays a synoptic display on a specific workstation.

PICTURE : name of synoptic display (pathname).

WORKSTATION (optional): the work station (pathname) to show the synoptic display: by default thework station from which the command originates, directly or via a GTAP.

OPTIONS (optional): options specifying attributes for window where picture is displayed

Syntax: –position X Y –size W H

X,Y: coordinates; W: Width, H: Height Example: ”–position 100 200 – size 600 150”

ID : returns identifier to be used by REMOVE_PICTURE when removing this synoptic display.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleDISPLAY_PICTURE

(\apm\power\total_overview, \apm\egse\test_conductor\workstation, ”–position 100 200 –size 600 150”, my_synoptic_ID, stat);

6.9.2.3.9.2 REMOVE_PICTURE

Specificationprocedure REMOVE_PICTURE

(in ID: PICTURE_ID;in WORKSTATION: NODE_NAME := \\;out STATUS: UCL_RETURN);

Description / ParametersRemove a synoptic display from the screen of a specific workstation.

ID : the picture’s identifier, as returned from DISPLAY_PICTURE (section NO TAG).

WORKSTATION (optional): the work station showing the synoptic display: by default the work stationfrom which the command originates, directly or via a GTAP.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleREMOVE_PICTURE (my_synoptic_ID, \apm\egse\test_conductor\workstation, stat);

Page 303: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2.3.9.3 START_PROGRAM

Specificationprocedure START_PROGRAM

(in WORKSTATION: NODE_NAME := \\;

in PROGRAM: STRING;

out PID: INTEGER;

out STATUS: UCL_RETURN);

Description / ParametersStarts a UNIX program (application) on a workstation (via HCI)It is further possible to start an HCI application (i.e. one of the windows within HCI).

WORKSTATION (optional): the work station where the program is to be started resp. HCI is running

PROGRAM : The file name of the program plus (optional) start up parameters according to UNIXconventions resp. acc. to the program’s startup profile.

For a list of allowed HCI application names refer to chapter 8.3.2.3.3 (Screen Setup Maintenenace)of the CGS User Manual. The application name has to be given with the prefix “HCI.” (see example).

For the parameters that are allowed for HCI applications refer also to chapter 8.3.2.3.3

PID : the ID of the UNIX process / HCI window created

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleSTART_PROGRAM (\\, “HCI.GRAPH_FACILITY –measutrement \apm\measurem_1 –graph 3”, pid, status);

Page 304: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2.3.9.4 SIGNAL_PROGRAM

Specificationprocedure SIGNAL_PROGRAM

(in WORKSTATION: NODE_NAME := \\;

in PID: INTEGER;

in SIGNAL: STRING;

out STATUS: UCL_RETURN)

Description / ParametersSends a UNIX signal to a program (application) on a workstation (via HCI) or to an HCI window.

WORKSTATION (optional): the work station where the program is to be started

PID : the ID of the UNIX process or HCI window (as received in START_PROGRAM)

SIGNAL : The name the signal(s) to be sent

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

The following is a selection of useful signals (for a complete list see POSIX 1003.1):

SIGABRT Termination Signal

SIGTERM Termination Signal

SIGQUIT Interactive Termination Signal

SIGINT Interrupt Signal (UNIX shell: ”CTRL–C”)

SIGKILL Termination Signal (cannot be caught or ignored / UNIX shell: “kill –9”)

SIGUSR1 Application defined signal 1

SIGUSR2 Application defined signal 2

ExampleSIGNAL_PROGRAM (\\, 123, “SIGINT”, status);

Page 305: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2.3.9.5 OPEN_AP_OUTPUT_WINDOW

Specificationprocedure OPEN_AP_OUTPUT_WINDOW

(in WORKSTATION: NODE_NAME := \\;

in WINDOW_PROPERTIES: STRING := ””;

out PID: INTEGER;

out STATUS: UCL_RETURN);

Description / ParametersStarts the message handler on a workstation (via HCI), which opens the message window with a filterto select only messages generated by the AP calling this procedure

WORKSTATION (optional): the work station where the message handler is to be started resp. HCIis running

WINDOW_PROPERTIES: The name of the predefined (saved) tool properties, which the messagehandler shall apply when opening the message window.

In case the default (””) is given, the message handler starts with standard properties

The filter to select the AP messages is overriding the filter defined in the properties for the field “extra”.

PID : the ID of the UNIX process which was created for the message handler

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleOPEN_AP_OUTPUT_WINDOW (\\, “my_message_props”, pid, status);

6.9.2.3.9.6 CLOSE_AP_OUTPUT_WINDOW

Specificationprocedure CLOSE_AP_OUTPUT_WINDOW

(in WORKSTATION: NODE_NAME := \\;

in PID: INTEGER;

out STATUS: UCL_RETURN);

Description / ParametersStops the message handler on a workstation (via HCI) which has the PID assigned

WORKSTATION (optional): the work station where the message handler was started

PID : the ID of the UNIX process which was created for the message handler (refer toOPEN_AP_OUTPUT_WINDOW)

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleCLOSE_AP_OUTPUT_WINDOW(\\, pid, status);

Page 306: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2.3.10 Reloading from MDB

6.9.2.3.10.1 LOAD_UCL

Specificationprocedure LOAD_UCL

(in ITEM: UCL_ITEM_NAME;out STATUS: UCL_RETURN);

Description / ParametersLoads the I–code of an AP or UCL User library into memory. This procedure can be used for twopurposes: Either to preload the i–code to speed up the start–up of the AP/USER_LIB or to reload anAP/USER_LIB which has been recompiled in MDB and which has already been preloaded.

ITEM : the pathname of the item to be loaded.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleLOAD_UCL (\apm\egse\emergency_ap, stat);

Page 307: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.2.3.11 Test Node management

6.9.2.3.11.1 IS_LOCAL_NODE

Specificationfunction IS_LOCAL_NODE (in NODE : NODE_NAME) : BOOLEAN;

Description / ParametersReturns TRUE if executed on the test node NODE, otherwise FALSE.

NODE : name of EGSE node

ExampleBOOL := IS_LOCAL_NODE (\apm\egse\mtp);

6.9.2.3.11.2 SET_DEFAULT_WORKSTATION

Specificationprocedure SET_DEFAULT_WORKSTATION

(in WORKSTATION: NODE_NAME := \\;out STATUS: UCL_RETURN);

Description / ParametersSets the default workstation for a test node. The default workstation(s) is/are used by all APs that are not started via interactive commands (e.g.APs started via monitoring exceptions/conditions).By default (i.e. \\) the workstation from which the command originates, directly or via a GTAP.

WORKSTATION : node name indicating the workstation that shall become the default workstation.

RETURN_STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

ExampleSET_DEFAULT_WORKSTATION ( \apm\egse\main_ws, stat);

Page 308: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Add a new section 4.7.3 by the following (procedures are moved fromGROUND_LIBRARY)

6.9.3 UCL System Library: GRD_CONVERSION

The GRD_CONVERSION Library contains all standard procedures used for conversion of items within theGround Automated Procedures / Sequences

Library Id (Body_Id): 11

6.9.3.1 Routines Summary

The GRD_CONVERSION UCL library routines are:

CODEPATHPATHNAME_TO_STRINGSTATECODE_TO_STRING

NOTE: The routines marked with asterisks (*) cannot be called from HLCL, neither interactively norout of HLCL sequences.

Page 309: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.3.2 UCL Ground System Library Specification: GRD_CONVERSION

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– *******************************************–– GRD_CONVERSION UCL System Library–– *******************************************––––ABSTRACT–––– Defines Procedures to convert items within the GROUND system –– Must be compiled for ground and with Body Id = 11 ––––IDENTIFICATION–––– PROJECT NAME : CGS–– OBJECT NAME : GRD_CONVERSION System Library–– VERSION : ##V##CGS_5.1.0–– CGS CM : ”%Z%%M% %I% %G% %Z%” ––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––CONTENTS–––– COMPILER : UCLC –– LANGUAGE : UCL––CHANGE HISTORY–– PIRN 8224, Issue 1/– for CGS V5.1.0: –– Reorganize System Libraries: –– – Move conversion functions from GROUND_LIBRARY to this library––––END HISTORY–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

library GRD_CONVERSION;

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– TYPES–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– PROCEDURES & FUNCTIONS–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– Pathname Conversion –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

procedure PATHNAME_TO_STRING (in PATH : PATHNAME; out NAME: STRING); –– #1

–– convert the pathname type into a string type –– If PATH is not existing, an empty string is returned –– If NAME is too short to hold resulting string, the string is truncated

function PATH(in NAME: STRING) : PATHNAME; –– #2

–– convert the string type into a pathname type –– returns Null–Pathname in case the path is not existing

procedure STATECODE_TO_STRING (in CODE : STATECODE; out CODE_TEXT: STRING); –– #3

Page 310: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

–– convert the statecode type into a string type –– CODE_TEXT should have a length of 8 –– If CODE_TEXT is too short to hold resulting string, the string is truncated –– If CODE_TEXT is longer than 8 characters, it is filled with blanks

function CODE(in CODE_TEXT : STRING) : STATECODE; –– #4

–– convert the string type into a statecode type –– If CODE_TEXT is longer than 8 characters, the string is truncated –– If CODE_TEXT is shorter than 8 characters, the STATECODE is extended by blanks

END GRD_CONVERSION;

Page 311: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.3.3 Interface Description

6.9.3.3.1 General Conversion Routines

6.9.3.3.1.1 PATHNAME_TO_STRING

Specificationprocedure PATHNAME_TO_STRING

(in PATH : PATHNAME; out NAME: STRING);

Description / Parameters Convert the pathname type into a string type

PATH : the pathname to be converted.

NAME : the pathname returned as a string If PATH is not existing, an empty string is returned If NAME is too short to hold resulting string, the string is truncated

Example VARIABLE NAME_STRING : STRING(255); VARIABLE STATUS: INTEGER; PATHNAME_TO_STRING(\EURECA\EGSE\TEST\LIBS\SAS_ITEM, NAME_STRING); WRITE_MESSAGE_TO_APPLICATION (1234, NAME_STRING, STATUS);

6.9.3.3.1.2 PATH

Specificationfunction PATH(in NAME: STRING) : PATHNAME;

Description / Parameters Convert the string type into a pathname type

NAME : the pathname as a string returns Null–Pathname in case the path is not existing

Example VARIABLE NAME_STRING : STRING(255); VARIABLE SAS_PATH: PATHNAME; VARIABLE STATUS: INTEGER;

READ_MESSAGE_FROM_APPLICATION (TRUE, 1234, NAME_STRING, STATUS); SAS_PATH := PATH( NAME_STRING);

Page 312: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

6.9.3.3.1.3 STATE_CODE_TO_STRING

Specificationprocedure STATECODE_TO_STRING (in CODE : STATECODE;

out CODE_TEXT: STRING);

Description / Parameters Convert the statecode type into a string type CODE_TEXT should have a length of 8 If CODE_TEXT is too short to hold resulting string, the string is truncated If CODE_TEXT is longer than the statecode, it is filled with blanks

CODE : the statecode returns Null–Pathname in case the path is not existing

CODE_TEXT : the statecode as a string (without ”$” as prefix)

Example VARIABLE CODE_STRING : STRING(8); STATECODE_TO_STRING( $OFF, CODE_STRING);

6.9.3.3.1.4 CODE

Specification function CODE(in CODE_TEXT : STRING) : STATECODE;

Description / Parameters Convert the string type into a statecode type If CODE_TEXT is longer than 8 characters, the string is truncated If CODE_TEXT is invalid in term of a STATECODE, the statecode returned is either an ”empty”startecode (i.e. has no characters) if the first character is invalid or a statecode corresponding to theCODE_TEXT truncated at the first illegal character. If CODE_TEXT is shorter than 8 characters, the STATECODE is extended by blanks

CODE_TEXT : the statecode (without ”$”) as a string;

Example VARIABLE S_CODE : STATECODE; S_CODE := CODE( ”OFF”);

Page 313: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

304

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.4 UCL GROUND_TO_OB_LIB System Library

This library contains procedures that enables the user to send SW Commands to the COLUMBUS DMSsystem.

Library Id (Body_Id): 4

6.9.4.1 Routines Summary

DISABLE_SW_COMMANDENABLE_SW_COMMANDEXECUTE_FLAPEXECWAIT_FLAPISSUE_SW_COMMANDROUTE_SWOP_TO_SASSET_CCSDS_END_POINTSET_DEVICE_ADDRESSGET_CCSDS_PACKET_TYPESET_CCSDS_PACKET_TYPE

6.9.4.2 UCL GROUND_TO_OB_LIB System Library Specification

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––

––*******************************************

–– GROUND_TO_OB_LIB System Library

––*******************************************

––ABSTRACT––

–– Defines Procedures to send commands to the onboard system

–– Must be compiled with body ID = 4

––

––IDENTIFICATION––

–– PROJECT NAME : CGS

–– OBJECT NAME : GROUND_TO_OB_LIB System Library

–– CGS CM : ”@(#) ground_commands_to_onboard_.ucl /main/

cgs_4.1/cgs_4.1.1patches/cgs_4.2/cgs_4.4/1”

––*––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––CONTENTS––

–– COMPILER : UCLC

–– LANGUAGE : UCL

––CHANGE HISTORY

–– IRN–8121/SPR–8714: Modify for EXECUTE_FLAP

––

–– IRN 8101 1/A: provide max_data_length and received_data_length for

–– issue_sw_command; new UCL_RETURN RESPONSE_TOO_SHORT

–– (SPRs 7288. Cleanup of inconsistencies in return codes in

–– ISSUE_SW_COMMAND, EXECUTE_FLAP and EXECWAIT_FLAP.

–– new UCL_RETURN RESPONSE_TIMEOUT.

Page 314: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

305

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– add operations to set/get the packet type.

–– change library name to GROUND_TO_OB_LIB (SPR–7826)

–– PIRN 8011 1/A: provide operation ROUTE_SWOP_TO SAS to set the SAS for an

–– SW Command or the response packet.

–– PIRN 8011 1/–: provide operation to set the DEVICE_ADDRESS for an

–– APPLICATION_ID identified by the source and destination.

–– PIRN 7004 for CGS V4.1.0: Add ENABLE/DISABLE_SW_COMMAND

–– Add Ground_Node parameter to

–– ISSUE_SW_COMMAND and EXEC..._FLAP

–– Add new return stati

–– Add onboard_execution node, onb_priority,

–– time_tag

–– PIRN 6012 for CGS V4.0.0: Add SET_CCSDS_END_POINT /

–– update cmds

––END HISTORY

––

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

library GROUND_TO_OB_LIB;

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–– CONSTANTS AND TYPES

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

type INSTANCE = PATHNAME (SWOP_INSTANCE); ––– SPR–8714

type END_POINT = PATHNAME (CCSDS_END_POINT);

type FLAP_NAME = PATHNAME (UCL_AUTOMATED_PROCEDURE);

type SW_COMMAND = PATHNAME (SWOP_COMMAND);

type SW_COMMANDS_AND_RESPONSES = PATHNAME (SWOP_COMMAND,

RESPONSE_PACKET,

VIRTUAL);

––

–– Type and Constants defining priority

––

type PRIORITY = (LOW, HIGH);

constant ONBOARD_LOW: INTEGER := 1;

constant ONBOARD_HIGH: INTEGER := 2;

constant DEFAULT_ONBOARD_PRIORITY: INTEGER := 0; ––– SPR–8714

type ONBOARD_PRIORITY = INTEGER (DEFAULT_ONBOARD_PRIORITY .. ONBOARD_HIGH);

––– SPR–8714

––

–– Constants defining timeouts

Page 315: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

306

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

––

constant DEFAULT_SW_COMMAND_TIMEOUT: DURATION := 10.0 [s];

constant DEFAULT_FLAP_TIMEOUT: DURATION := 30.0 [s];

––

–– Type and Constants defining the status returned for UCL procedures

––

type UCL_RETURN = INTEGER;

constant OK: UCL_RETURN := 1;

constant BUSY: UCL_RETURN := 2;

constant INVALID_ITEM_NAME: UCL_RETURN := 9;

constant INVALID_APPLICATION_ID: UCL_RETURN := 12;

constant INVALID_NODE_NAME: UCL_RETURN := 13;

constant ITEM_IS_DISABLED: UCL_RETURN := 18;

constant MESSAGE_TOO_BIG: UCL_RETURN := 20;

constant NO_ADU_SERVICE: UCL_RETURN := 21;

constant APPLICATION_NACK: UCL_RETURN := 23;

constant INVALID_APPLICATION_NAME: UCL_RETURN := 24;

constant APPLICATION_NOT_READY: UCL_RETURN := 25;

constant TIMEOUT: UCL_RETURN := 26;

constant INVALID_ADU_TYPE: UCL_RETURN := 30;

constant INVALID_TESTNODE_MODE: UCL_RETURN := 31;

constant ITEM_NOT_SAS_COMPATIBLE: UCL_RETURN := 32;

constant NO_GDU_SERVICE: UCL_RETURN := 35;

constant INVALID_TIME: UCL_RETURN := 37;

constant OPERATION_ABORTED: UCL_RETURN := 39;

constant PROTOCOL_ERROR: UCL_RETURN := 48;

constant PARAMETER_ERROR: UCL_RETURN := 49;

constant COMMUNICATION_ERROR: UCL_RETURN := 54;

constant INVALID_NODE_TYPE: UCL_RETURN := 56;

constant SW_COMMAND_NOT_FOUND: UCL_RETURN := 58;

constant RESPONSE_TOO_SHORT: UCL_RETURN := 59;

constant RESPONSE_TIMEOUT: UCL_RETURN := 60;

constant RUNTIME_ERROR: UCL_RETURN := 100;

––

–– Types and Constants defining the status returned in the response packet

––

type FLAP_RETURN = INTEGER;

type ONBOARD_RETURN = INTEGER;

type FLAP_ID = PATHNAME (EGSE_BYTE_STREAM_MEASUREMENT); ––– SPR–8714

constant ONB_RESULT_SUCCESS: ONBOARD_RETURN := 0;

constant ONB_RESULT_SEQUENCE_COUNT_ANOMALY: ONBOARD_RETURN := 1;

constant ONB_RESULT_NOT_AUTHORIZED: ONBOARD_RETURN := 2;

constant ONB_RESULT_UNKNOWN_COMMAND: ONBOARD_RETURN := 3;

Page 316: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

307

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

constant ONB_RESULT_COMMAND_NOT_VALID: ONBOARD_RETURN := 4;

constant ONB_RESULT_PARAMETERS_INCOMPLETE: ONBOARD_RETURN := 5;

constant ONB_RESULT_PARAMETERS_NOT_VALID: ONBOARD_RETURN := 6;

constant ONB_RESULT_SEQUENCE_COUNT_REPETITION: ONBOARD_RETURN := 7;

constant ONB_RESULT_SEQUENCE_COUNT_MISMATCH: ONBOARD_RETURN := 8;

constant ONB_RESULT_CHECKSUM_ERROR: ONBOARD_RETURN := 9;

constant ONB_RESULT_TWO_STAGE_BUF_FULL: ONBOARD_RETURN := 10;

constant ONB_RESULT_TWO_STAGE_SOURCE_MISMATCH: ONBOARD_RETURN := 11;

constant ONB_RESULT_OTHER: ONBOARD_RETURN := 63;

––

–– Type for setting the device address linked to an application id

––

type DEVICE_ADDRESS = STRING (20);

––

–– Type for setting the SAS name defined for SWOP and Response packets

––

type SAS_NAME = STRING (20);

constant NULL_SAS_NAME : SAS_NAME := ””;

constant NO_DATA_LENGTH_LIMIT : INTEGER := 4081;

–– maximum length of data field + 1;

type DATA_LENGTH_RANGE = INTEGER (0 .. NO_DATA_LENGTH_LIMIT);

––

–– type for setting the packet type of a swop command

––

constant CCSDS_DEFAULT_PACKET : INTEGER := 0;

constant CCSDS_MEMORY_DUMP_PACKET : INTEGER := 1;

constant CCSDS_DATA_SEGMENT_PACKET : INTEGER := 2;

constant CCSDS_ESSENTIAL_HK_PACKET : INTEGER := 3;

constant CCSDS_SYSTEM_HK_PACKET : INTEGER := 4;

constant CCSDS_PAYLOAD_HK_PACKET : INTEGER := 5;

constant CCSDS_SCIENCE_PACKET : INTEGER := 6;

constant CCSDS_SSMB_ANCILLIARY_PACKET : INTEGER := 7;

constant CCSDS_ESSENTIAL_COMMAND_PACKET : INTEGER := 8;

constant CCSDS_SYSTEM_COMMAND_PACKET : INTEGER := 9;

constant CCSDS_PAYLOAD_COMMAND_PACKET : INTEGER := 10;

constant CCSDS_MEMORY_LOAD_PACKET : INTEGER := 11;

constant CCSDS_RESPONSE_PACKET : INTEGER := 12;

constant CCSDS_REPORT_PACKET : INTEGER := 13;

Page 317: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

308

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

constant CCSDS_EXCEPTION_PACKET : INTEGER := 14;

constant CCSDS_ACKNOWLEDGE_PACKET : INTEGER := 15;

type CCSDS_PACKET_TYPE

= INTEGER (CCSDS_DEFAULT_PACKET .. CCSDS_ACKNOWLEDGE_PACKET);

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–– Onboard Software Commanding / Flight Application Control

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

procedure SET_CCSDS_END_POINT

(in GROUND_NODE : END_POINT;

out STATUS : UCL_RETURN);

procedure ISSUE_SW_COMMAND

(in SW_CMD : SW_COMMAND ();

in ONBOARD_NODE : END_POINT;

in GROUND_NODE : END_POINT := \\;

in PRIO : PRIORITY := LOW;

in TIMEOUT : DURATION := default_sw_command_timeout;

in MAX_DATA_LENGTH : DATA_LENGTH_RANGE := NO_DATA_LENGTH_LIMIT;

out RECEIVED_DATA_LENGTH : DATA_LENGTH_RANGE;

out TRANSACTION_ID : INTEGER;

out RESULT : ONBOARD_RETURN;

out STATUS : UCL_RETURN);

procedure ENABLE_SW_COMMAND

(in SW_CMD : SW_COMMAND;

out STATUS : UCL_RETURN);

procedure DISABLE_SW_COMMAND

(in SW_CMD : SW_COMMAND;

out STATUS : UCL_RETURN);

procedure EXECUTE_FLAP

(in FLAP : FLAP_NAME ();

in ONBOARD_RECEPTION_NODE : END_POINT;

in ONBOARD_EXECUTION_NODE : INSTANCE := \\; ––– SPR–8714

in GROUND_NODE : END_POINT := \\;

in GROUND_PRIO : PRIORITY := LOW;

in ONBOARD_PRIO : ONBOARD_PRIORITY := default_onboard_priority;

in TIME_TAG : TIME := ~:~;

in TIMEOUT : DURATION := default_flap_timeout;

out TRANSACTION_ID : INTEGER;

out RESULT : ONBOARD_RETURN;

out FLAP_EXEC_STATUS : FLAP_RETURN; ––– SPR–8714

––– contains DMS SYSTEM_ERROR

out ID : FLAP_ID; ––– SPR–8714

out STATUS : UCL_RETURN);

Page 318: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

309

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

procedure EXECWAIT_FLAP

(in FLAP : FLAP_NAME ();

in ONBOARD_RECEPTION_NODE : END_POINT;

in ONBOARD_EXECUTION_NODE : END_POINT := \\;

in GROUND_NODE : END_POINT := \\;

in GROUND_PRIO : PRIORITY := LOW;

in ONBOARD_PRIO : ONBOARD_PRIORITY := default_onboard_priority;

in TIME_TAG : TIME := ~:~;

in TIMEOUT : DURATION := default_flap_timeout;

out TRANSACTION_ID : INTEGER;

out RESULT : ONBOARD_RETURN;

out ID : FLAP_ID;

out FLAP_EXEC_STATUS : FLAP_RETURN;

out STATUS : UCL_RETURN);

procedure SET_DEVICE_ADDRESS

(in SOURCE : END_POINT;

in DESTINATION : END_POINT;

in ADDRESS : DEVICE_ADDRESS;

out STATUS : UCL_RETURN);

procedure ROUTE_SWOP_TO_SAS

(in ITEM : SW_COMMANDS_AND_RESPONSES;

in SAS : SAS_NAME;

in OLD_SAS : SAS_NAME := NULL_SAS_NAME;

out STATUS : UCL_RETURN);

procedure GET_CCSDS_PACKET_TYPE

(in SW_CMD : SW_COMMAND;

out PACKET_TYPE : CCSDS_PACKET_TYPE;

out STATUS : UCL_RETURN);

procedure SET_CCSDS_PACKET_TYPE

(in SW_CMD : SW_COMMAND;

in PACKET_TYPE : CCSDS_PACKET_TYPE;

out STATUS : UCL_RETURN);

End GROUND_TO_OB_LIB;

Page 319: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

310

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.4.3 Interface Description

These procedures control the emission of CCSDS command packets (Protocol Data Units or PDUs)from ground (e.g. AP) to onboard application (SWOP). The structure and the format of these packetsare predefined in the database.

6.9.4.3.1 Test Node Initialization

6.9.4.3.1.1 SET_CCSDS_END_POINT

Specificationprocedure SET_CCSDS_END_POINT

(in GROUND_NODE: END_POINT;

out STATUS: UCL_RETURN);

Description / ParametersSets up the CCSDS ground destination (End Point), which is simulated by the test node. From this endpoint, the addressing parameter for the CCSDS packets are derived when sending commands toonboard (e.g. sw–commands or FLAP execution requests) and receiving responses.

GROUND_NODE: pathname of the CCSDS End Point which shall be simulated by the test node.

STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

Possible Return Codes: OK The procedure was successful INVALID_NODE_NAME GROUND_NODE refers to an unknown item INVALID_TESTNODE_MODE The test node is not in the right mode

(NORMAL,SIMULATION) RUNTIME_ERROR Unexpected error

Page 320: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

311

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.4.3.2 Software Commanding to Onboard

6.9.4.3.2.1 ISSUE_SW_COMMAND

Specification procedure ISSUE_SW_COMMAND

(in SW_CMD: SW_COMMAND ();

in ONBOARD_NODE: END_POINT;

in GROUND_NODE: END_POINT := \\;

in PRIO: PRIORITY := LOW;

in TIMEOUT: DURATION := default_sw_command_timeout;

in MAX_DATA_LENGTH: DATA_LENGTH_RANGE := NO_DATA_LENGTH_LIMIT;

out RECEIVED_DATA_LENGTH: DATA_LENGTH_RANGE;

out TRANSACTION_ID: INTEGER;

out RESULT: ONBOARD_RETURN;

out STATUS: UCL_RETURN);

Description / ParametersBuilds a Telecommand – CCSDS Protocol Data Unit (PDU) – and initiates the uplink of the SWOPcommand. Onboard the command with the given input parameter will be executed.

NOTE: When setting the time–out to zero, only a GDU with the SW command in a CCSDS packet willbe sent to SAS using a time–out value defined in the TES_CONFIG_FILE (under $TES_HOME/con-fig) for the acknowledge of the GDU. The configurable value is defined under the name SW_OR-DER.ISSUE_TIMEOUT_WHEN_NO_DELAY and has a predefined value of 5 sec (that can be confi-gured by the user). No response will be acquired if the timeout is set to zero.

SW_CMD : name of the SW–command to be executed onboard, followed by its list of actual parameters (if any)

ONBOARD_NODE : Onboard node (CCSDS_End_Point) where the command is sent to.

GROUND_NODE : Ground node which is simulated by CGS and where the response has to be returned to. If ”\\” is given, the value defined by SET_CCSDS_END_POINT is applicable.

PRIO (optional) : indicates the priority at which the SW–Command is to be executed within the Ground System.

TIMEOUT (optional) : the maximum time to wait for acknowledgement of this command (i.e. the time to wait until the onboard FLAP has finished)

MAX_DATA_LENGTH (optional) : the maximum length in octets of the packet data field (withoutchecksum and headers). The data is truncated whenever the parameters imply a longer data field.as follows: For INTEGER the MSB of the integer and for STRING the maximum length will be written,string length is set accordingly to the truncated part. For other types, no data will be written.

Page 321: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

312

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

RECEIVED_DATA_LENGTH : the length in octets of the out parameter part of the resonse packet(without checksum, headers, transaction id , onboard result). In case the received response packetis shorter than requested by the set of out parameters the remaining out parameters shall be set totheir type respective null value (ie. INTEGER –> 0, REAL –> 0.0, TIME –>~:~, PATHNAME –> \\,STRING –> ””, STATECODE –> $OTHER). The STATUS will be set to RESPONSE_TOO_SHORTin this case. If a parameter cannot be filled completely then the parameter is also set to the null valuesas described above, except for INTEGER the remaining bytes are used as MSB of the integer andSTRING which are truncated, ie. length is set to truncated string length.

TRANSACTION_ID: Returns the ID as received from the response packet: the primary header of the CCSDS uplink packet without the length field

RESULT: Returns the status of the execution as received from onboard (returned in response packet)

STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

Possible Return Codes: OK The procedure was successful BUSY The system (test node) is currently busy with another SW command, try again later if necessary INVALID_ITEM_NAME The name of the SW Command is unknown INVALID_NODE_NAME The ID in ONBOARD_NODE or GROUND_NODE is unknown INVALID_TESTNODE_MODE The test node is not in the right mode (NORMAL, SIMULATION) ITEM_IS_DISABLED The SW command is disabled TIMEOUT There was no response from the SAS or from the onboard system (response packet) NO_GDU_SERVICE The SAS did not announce the GDU Service NO_ADU_SERVICE The SAS did not announce the ADU Service INVALID_APPLICATION_NAME The SAS is not known APPLICATION_NOT_READY The SAS is not connected APPLICATION_NACK There was a negative response from the SAS INVALID TIME The timetag given in the GDU header or CCSDS header was not correct PARAMETER_ERROR When processing the parameter list of the SW command an error occurred COMMUNICATION_ERROR There was a problem in the communication to the SAS RUNTIME_ERROR There was an error during the interpretation of the UCL Intermediate Code RESPONSE_TOO_SHORT Response packet data length was shorter than expected. MESSAGE_TOO_BIG Parameter list too big. OPERATION_ABORTED Aborted (eg. through ABORT_AP, STOP_TES) INVALID_ADU_TYPE ADU of wrong type (e.g. not CCSDS pack-

Page 322: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

313

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

et) has been received as response PROTOCOL_ERROR Incorrect length of response packet or incorrect checksum in case when the checksum is checked, see configuration parameters TES.CHECK_CHECKSUM and TES.PROCESS_ON_INCORRECT_CHECKSUM

Example CallISSUE_SW_COMMAND (SW_CMD: \a\b\load_mon_tab (\x\mon_tab), ONBOARD_NODE: \apm\dms_1,

GROUND_NODE: \apm\cc, TRANSACTION_ID: t_id,

RESULT: onboard_status, STATUS:stat);

Page 323: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

314

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.4.3.2.2 ENABLE_SW_COMMAND

Description / ParametersEnables a SWOP Command for execution

Specificationprocedure ENABLE_SW_COMMAND

(in SW_CMD: SW_COMMAND;

out STATUS: UCL_RETURN);

SW_CMD : name of the SW–command to enabled.

STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

Possible Return Codes: OK The procedure was successful This status is also returned if the item was

already enabled INVALID_ITEM_NAME The name of the SW Command is unknown INVALID_TESTNODE_MODE The test node is not in the right mode

(NORMAL,SIMULATION) RUNTIME_ERROR Unexpected error

Example CallENABLE_SW_COMMAND (\a\b\load_mon_tab, STATUS:stat);

Page 324: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

315

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.4.3.2.3 DISABLE_SW_COMMAND

Description / ParametersDisables a SWOP Command for execution (i.e. ISSUE command will be rejected for it)

Specificationprocedure DISABLE_SW_COMMAND

(in SW_CMD: SW_COMMAND;

out STATUS: UCL_RETURN);

SW_CMD : name of the SW–command to enabled.

STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

Possible Return Codes: OK The procedure was successful. This status is also returned if the item was

already disabled INVALID_ITEM_NAME The name of the SW Command is unknown INVALID_TESTNODE_MODE The test node is not in the right mode

(NORMAL,SIMULATION) RUNTIME_ERROR Unexpected error

Example CallDISABLE_SW_COMMAND (\a\b\load_mon_tab, STATUS:stat);

Page 325: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

316

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.4.3.3 FLAP Execution

6.9.4.3.3.1 EXECUTE_FLAP

Specificationprocedure EXECUTE_FLAP

(in FLAP : FLAP_NAME ();

in ONBOARD_RECEPTION_NODE : END_POINT;

in ONBOARD_EXECUTION_NODE : INSTANCE := \\;

in GROUND_NODE : END_POINT := \\;

in GROUND_PRIO : PRIORITY := LOW;

in ONBOARD_PRIO: ONBOARD_PRIORITY := default_onboard_priority;

in TIME_TAG : TIME := ~:~;

in TIMEOUT : DURATION := default_flap_timeout;

out TRANSACTION_ID : INTEGER;

out RESULT : ONBOARD_RETURN;

out FLAP_EXEC_STATUS : FLAP_RETURN;

––– contains DMS SYSTEM_ERROR

out ID : FLAP_ID;

out STATUS : UCL_RETURN);

Description / ParametersBuilds a Telecommand – CCSDS Protocol Data Unit (PDU) – and initiates the uplink of the command.Onboard the command instantiates and starts a flight application program (FLAP) .Waits for the response packet and returns the parameter (packet is returned after initiation of theFLAP)

NOTE: When setting the time–out to zero, only a GDU with the SW command in a CCSDS packet willbe sent to SAS using a time–out value defined in the TES_CONFIG_FILE (under $TES_HOME/con-fig) for the acknowledge of the GDU. The configurable value is defined under the name SW_OR-DER.ISSUE_TIMEOUT_WHEN_NO_DELAY and has a predefined value of 5 sec (that can be confi-gured by the user). No response will be acquired if the timeout is set to zero.

FLAP : name of the FLAP to be started, followed by its list of actual parameters (if any)

ONBOARD_RECEPTION_NODE : onboard node (CCSDS End Point) to which the command is to be sent to

ONBOARD_EXECUTION_NODE : onboard node (Instance) on which the FLAP shall be executed.

GROUND_NODE (optional) : Ground node which is simulated by CGS and where the response has to be returned to. If ”\\” is given, the value defined by SET_CCSDS_END_POINT is applicable.

GROUND_PRIO (optional) : indicates the priority at which the command is to be sent in the Ground System

ONBOARD_PRIO (optional) : indicates the priority at which the FLAP is to be executed in the onboard system

TIME_TAG (optional) : indicates the time when to execute the FLAP. The default value (~:~) indicates immediate execution (timetag is set to 0 in the uplink packet). The time value is processed by the onboard system

Page 326: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

317

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

TIMEOUT (optional) : the maximum time to wait for acknowledgement of this command (i.e. the time until the response packet has been received).

ID : returns a unique identifier of this instance of the FLAP; 0 if the FLAP could not be started.

TRANSACTION_ID: Returns the ID as received from the response packet: the primary header of the CCSDS uplink packet without the length field

RESULT: Returns the status of the execution as received from onboard (returned in response packet)

FLAP_EXEC_STATUS: Returns the status of the execution as received from onboard UCL Interpreter (returned in response packet)

Contains the DMS SYSTEM_ERROR value

STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

Possible Return Codes: OK The procedure was successful BUSY The system (test node) is currently busy with another SW command, try again later if necessary INVALID_ITEM_NAME The name of the FLAP is unknown INVALID_NODE_NAME The ID in ONBOARD_NODE or GROUND_NODE is unknown INVALID_TESTNODE_MODE The test node is not in the right mode (NORMAL, SIMULATION) ITEM_IS_DISABLED The SW command defined for EXEC_FLAP is disabled TIMEOUT There was no response from the SAS or from the onboard system (response packet) NO_GDU_SERVICE The SAS did not announce the GDU Service NO_ADU_SERVICE The SAS did not announce the ADU Service INVALID_APPLICATION_NAME The SAS is not known APPLICATION_NOT_READY The SAS is not connected APPLICATION_NACK There was a negative response from the SAS INVALID TIME The timetag given in the GDU header or CCSDS header was not correct COMMUNICATION_ERROR There was a problem in the communication to the SAS SW_COMMAND_NOT_FOUND The SW Command, whose name/SID is defined in the Configuration File, is not found in the SW Command table, or it is even not defined in the Configuration File PARAMETER_ERROR When processing the parameter list of the FLAP command an error occurred RUNTIME_ERROR There was an error during the interpretation of the UCL Intermediate Code MESSAGE_TOO_BIG Parameters to be put into CCSDS packet are too bigPROTOCOL_ERROR Incorrect length of response packet or incorrect checksum in case when the checksum

Page 327: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

318

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

is checked, see configuration parameters TES.CHECK_CHECKSUM and TES.PROCESS_ON_INCORRECT_CHECKSUM

Example Call EXECUTE_FLAP (FLAP:\ecls\fan1\start_fan (slow),

ONBOARD_RECEPTION_NODE: \apm\ node, ID: flap_id, TRANSACTION_ID: t_id, RESULT: onboard_status, FLAP_EXEC_STATUS: flap_stat, ID: flap_id; STATUS: stat);

Page 328: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

319

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.4.3.3.2 EXECWAIT_FLAP

Specificationprocedure EXECWAIT_FLAP

(in FLAP: FLAP_NAME ();

in ONBOARD_RECEPTION_NODE: END_POINT;

in ONBOARD_EXECUTION_NODE: END_POINT := \\;

in GROUND_NODE: END_POINT := \\;

in GROUND_PRIO: PRIORITY := LOW;

in ONBOARD_PRIO: ONBOARD_PRIORITY := default_onboard_priority;

in TIME_TAG: TIME := ~:~;

in TIMEOUT: DURATION := default_flap_timeout;

out TRANSACTION_ID: INTEGER;

out RESULT: ONBOARD_RETURN;

out ID: FLAP_ID;

out FLAP_EXEC_STATUS: FLAP_RETURN;

out STATUS: UCL_RETURN);

Description / ParametersBuilds a Telecommand – a GDU containing a CCSDS Protocol Data Unit– and initiates the uplink of thecommand. Onboard the command instantiates and starts a flight application program (FLAP) . Waitsfor the response packet and returns the parameter (packet is returned after completion of the FLAP).

NOTE: When setting the time–out to zero, only a GDU with the SW command in a CCSDS packet willbe sent to SAS using a time–out value defined in the TES_CONFIG_FILE (under $TES_HOME/con-fig) for the acknowledge of the GDU. The configurable value is defined under the name SW_OR-DER.ISSUE_TIMEOUT_WHEN_NO_DELAY and has a predefined value of 5 sec (that can be confi-gured by the user). No response will be acquired if the timeout is set to zero.

FLAP : name of the FLAP to be started, optionally followed by its list of actual parameters.

ONBOARD_RECEPTION_NODE : onboard node (CCSDS End Point) to which the command is to be sent to

ONBOARD_EXECUTION_NODE : onboard node (CCSDS End Point) on which the FLAP shall be executed.

GROUND_NODE (optional) : Ground node which is simulated by CGS and where the response has to be returned to. If ”\\” is given, the value defined by

SET_CCSDS_END_POINT is applicable.

GROUND_PRIO (optional) : indicates the priority at which the command is to be sent in the Ground System

ONBOARD_PRIO (optional) : indicates the priority at which the FLAP is to be executed in the onboard system

TIME_TAG (optional) : indicates the time when to execute the FLAP. The default value (~:~) indicates immediate execution (timetag is set to 0 in the uplink packet). The time value is processed by the onboard system

TIMEOUT (optional) : the maximum time to wait for acknowledgement of this command (i.e. the time to wait until the response packet has been received)

Page 329: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

320

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

ID : returns a unique identifier of this instance of the FLAP; 0 if the FLAP could not be started.

TRANSACTION_ID: Returns the ID as received from the response packet: the primary header of the CCSDS uplink packet without the length field

RESULT: Returns the status of the execution as received from onboard (returned in response packet)

FLAP_EXEC_STATUS: Returns the status of the execution as received from onboard UCL Interpreter (returned in response packet)

STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

Possible Return Codes: OK The procedure was successful BUSY The system (test node) is currently busy with another SW command, try again later if necessary INVALID_ITEM_NAME The name of the FLAP is unknown INVALID_NODE_NAME The ID in ONBOARD_NODE or GROUND_NODE is unknown INVALID_TESTNODE_MODE The test node is not in the right mode (NORMAL, SIMULATION) ITEM_IS_DISABLED The SW command defined for EXECWAIT_FLAP is disabled TIMEOUT There was no response from the SAS or from the onboard system (response packet) NO_GDU_SERVICE The SAS did not announce the GDU Service NO_ADU_SERVICE The SAS did not announce the ADU Service INVALID_APPLICATION_NAME The SAS is not known APPLICATION_NOT_READY The SAS is not connected APPLICATION_NACK There was a negative response from the SAS INVALID TIME The timetag given in the GDU header or CCSDS header was not correct COMMUNICATION_ERROR There was a problem in the communication to the SAS SW_COMMAND_NOT_FOUND The SW Command, whose name/SID is defined in the Configuration File, is not found in the SW Command table, or it is even not defined in the Configuration File PARAMETER_ERROR When processing the parameter list of the FLAP command an error occurred RUNTIME_ERROR There was an error during the interpretation of the UCL Intermediate Code MESSAGE_TOO_BIG Parameters to be put into CCSDS packet are too bigPROTOCOL_ERROR Incorrect length of response packet or incorrect checksum in case when the checksum is checked, see configuration parameters TES.CHECK_CHECKSUM and

Page 330: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

321

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

TES.PROCESS_ON_INCORRECT_CHECKSUM

Example Call EXECWAIT_FLAP (FLAP:\ecls\fan1\start_fan (slow),

ONBOARD_RECEPTION_NODE:\apm\ node, GROUND_PRIO:low, TRANSACTION_ID: t_id, RESULT: onboard_status, ID:flap_id, FLAP_EXEC_STATUS: flap_return, STATUS:stat);

Page 331: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

322

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.4.3.3.3 SET_DEVICE_ADDRESS

Specification procedure SET_DEVICE_ADDRESS

(in SOURCE : END_POINT;

in DESTINATION : END_POINT;

in ADDRESS : DEVICE_ADDRESS;

out STATUS : UCL_RETURN);

Description / ParametersSet a new device address for the application id identified by the source node and the destination node.This device address will then be set in the physical address of the SWOP commands and responsepackets that are generated with that application id.

SOURCE : name of the source end point for identifying the application id.

DESTINATION : name of the destination end point for identifying the application id.

ADDRESS : string (up to 20 characters) to be set in the device_address field of the physical_address.

STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

Possible Return Codes: OK The procedure was successful INVALID_NODE_NAME There is no application id defined for the end point pair (SOURCE, DESTINATION) RUNTIME_ERROR There was an error during the interpretation of the UCL Intermediate Code

Example Call SET_DEVICE_ADDRESS (SOURCE: \apm\node,

DESTINATION: \ground\node, ADDRESS: ”CC_BUS1”, STATUS: stat);

Page 332: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

323

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.4.3.3.4 ROUTE_SWOP_TO_SAS

Specification procedure ROUTE_SWOP_TO_SAS

(in ITEM: SW_COMMANDS_AND_RESPONSES;in SAS: SAS_NAME;in OLD_SAS: SAS_NAME

:= NULL_SAS_NAME;out STATUS: UCL_RETURN)

Description / ParametersRoutes all items specified in ITEM which have the OLD_SAS_NAME assigned, to the new SASspecified by SAS_NAME.

ITEM : The item to be re–defined in the local memory of the test node. ITEM can be

– a single enditem of type SWOP_COMMAND or RESPONSE_PACKET

– an incomplete pathname pointing to a virtual node, thus redefining all SWOP_COMMANDor RESPONSE_PACKET in that subtree;

SAS: The short name (20 character) of the SAS (Specific Application Software) to be assigned to the ITEM. The SAS must run on the local test node .

OLD_SAS: The short name (20 character) of the SAS currently specified for item.Only those items are taken into account for the route change, which match this SAS name. If OLD_SASis equal to NULL_SAS_NAME, all enditems specified in ITEM are changed, regardless of their currentSAS name.

STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

Possible Return Codes: OK The procedure was successful INVALID_ITEM_NAME End Item is unknown INVALID_APPLICATION_NAME A single item is provided with the OLD_SAS_NAME specified but this does not match the actual SAS name RUNTIME_ERROR There was an error during the interpretation of the UCL Intermediate Code

Example CallROUTE_SWOP_TO_SAS (\apm\cc_bus1\swops, ”CC_BUS_2_SAS”, ”CC_BUS_1_SAS”, stat);

Page 333: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

324

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.4.3.3.5 GET_CCSDS_PACKET_TYPE

Specification procedure GET_CCSDS_PACKET_TYPE

(in SW_CMD : SW_COMMAND;out PACKET_TYPE : CCSDS_PACKET_TYPE;out STATUS : UCL_RETURN)

Description / ParametersGets the CCSDS packet type of a SW command.

SW_CMD : name of the SW–command

PACKET_TYPE: type of the CCSDS packet

STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

Possible Return Codes: OK The procedure was successful INVALID_ITEM_NAME SWOP command is unknown RUNTIME_ERROR There was an error during the interpretation of the UCL Intermediate Code

Example CallGET_CCSDS_PACKET_TYPE (\a\b\load_mon_tab, packet_type,stat);

Page 334: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

325

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.4.3.3.6 SET_CCSDS_PACKET_TYPE

Specification procedure SET_CCSDS_PACKET_TYPE

(in SW_CMD : SW_COMMAND;in PACKET_TYPE : CCSDS_PACKET_TYPE;out STATUS : UCL_RETURN);

Description / ParametersSets the CCSDS packet type of a SW command.

SW_CMD : name of the SW–command

PACKET_TYPE: type of the packet

STATUS : returns an integer, the UCL return status (see definition under CONSTANTS).

Possible Return Codes: OK The procedure was successful INVALID_ITEM_NAME SWOP command is unknown RUNTIME_ERROR There was an error during the interpretation of the UCL Intermediate Code

Example CallSET_CCSDS_PACKET_TYPE (\a\b\load_mon_tab, CCSDS_Memory_Load_Packet , stat);

Page 335: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

326

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.5 UCL Mathematical System Libraries

The UCL Mathematical System Libraries contain some standard mathematical functions.

MATH_LIB Library Id: 6MATH_LIB_LONG Library Id: 7

6.9.5.1 Routines Summary

Each Mathematical UCL library contains following functions:

Last_Exception *SqrtLog LogLnExpPower SinSin2 CosCos2 TanTan2 CotCot2 Arcsin Arcsin2 ArccosArccos2 Arctan Arctan2 Arccot Arccot2 SinhCoshTanhCoth ArsinhArcoshArtanhArcothRandomRandom_I

NOTE: The functions marked with asterisks (*) cannot be called from HLCL, neither interactively norout of HLCL sequences.

6.9.5.2 UCL Mathematical System Library Specification for Real type (MATH_LIB)

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– *******************************************–– MATH_LIB UCL System Library–– *******************************************

Page 336: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

327

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–––– ABSTRACT–– Defines Functions for basic mathematic operations–– for Real type. –– Must be compiled for ground and with Body Id = 6 –––– IDENTIFICATION–– PROJECT NAME : CGS–– OBJECT NAME : MATH_LIB System Library–– VERSION : CGS 5.0.0–– CGS CM : ”%Z%%M% %I% %G% %Z%” ––*––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– CONTENTS–– COMPILER : UCLC –– LANGUAGE : UCL–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

library MATH_LIB;

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–– GENERAL: –– –––––––– –– 1. The functions have their usual mathematical meanings. The Log function –– computes the logarithm to the given base; LogLn computes the natural –– logarithm. When the Cycle parameter is specified, the parameter X –– of the forward trigonometric functions (Sin2, Cos2, Tan2, and Cot2) –– and the results of the inverse trigonometric functions (Arcsin2, –– Arccos2, Arctan2, and Arccot2) are measured in units such that a –– full cycle of revolution has the given value; otherwise (Sin, Cos, –– Tan, Cot, Arcsin, Arccos, Arctan, Arccot,Sinh, Cosh, Tanh, Coth , –– Arsinh, Arcosh, Artanh and Arcoth), they are measured in radians. –– 2. The computed results of the mathematically multivalued functions are –– rendered single–valued by the following conventions, which are meant to –– imply the principal branch: –– 1.The results of the Sqrt and Arcosh functions and that of the –– exponentiation operator are nonnegative. –– 2.The result of the Arcsin function is in the quadrant containing the –– point (1.0, x), where x is the value of the parameter X. This –– quadrant is I or IV; thus, the range of the Arcsin function is –– approximately –Pi/2.0 to Pi/2.0 (–Cycle/4.0 to Cycle/4.0, if the –– parameter Cycle is specified). –– 3.The result of the Arccos function is in the quadrant containing the –– point (x, 1.0), where x is the value of the parameter X. This –– quadrant is I or II; thus, the Arccos function ranges from 0.0 to –– approximately Pi (Cycle/2.0, if the parameter Cycle is specified). –– 4.The results of the Arctan and Arccot functions are in the quadrant –– containing the point (x, y), where x and y are the values of the –– parameters X and Y, respectively. This may be any quadrant –– (I through IV) when the parameter X (resp., Y) of Arctan (resp., –– Arccot) is specified, but it is restricted to quadrants I and IV –– (resp., I and II) when that parameter is omitted. Thus, the range –– when that parameter is specified is approximately –Pi to Pi –– (–Cycle/2.0 to Cycle/2.0, if the parameter Cycle is specified); when –– omitted, the range of Arctan (resp., Arccot) is that of –– Arcsin (resp., Arccos), as given above. When the point (x, y) lies –– on the negative x–axis, the result approximates Pi (resp., –Pi) when –– the sign of the parameter Y is positive (resp., negative) –– –– –– (In the case of the inverse trigonometric functions, in which a result –– lying on or near one of the axes may not be exactly representable, the –– approximation inherent in computing the result may place it –– in an adjacent quadrant, close to but on the wrong side of the axis.) –– –– 3. The random functions returns a value in integer range (Random_I) –– or in range 0.0 .. 1.0 (Random).

Page 337: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

328

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– –– 4. The function Last_Exception returns the exception of the last math lib –– function call. In case of Not_Exception the value returned by the last math –– lib function call was valid. In case of any other value the value returned –– by the last math lib function call was invalid. –– –– Dynamic Semantics: –– –––––––––––––––––– –– 2.The exception Argument_Error (function Last_Exception) is raised, –– signaling a parameter value outside the domain of the corresponding –– mathematical function, in the following cases: –– 1.by any forward or inverse trigonometric function with specified –– cycle, when the value of the parameter Cycle is zero or negative; –– 2.by the Log function with specified base, when the value of the –– parameter Base is zero, one, or negative; –– 3.by the Sqrt and Log functions, when the value of the parameter –– X is negative; –– 4.by the exponentiation operator, when the value of the left –– operand is negative or when both operands have the value zero; –– 5.by the Arcsin, Arccos, and Artanh functions, when the absolute –– value of the parameter X exceeds one; –– 6.by the Arctan and Arccot functions, when the parameters X and Y –– both have the value zero; –– 7.by the Arcosh function, when the value of the parameter X is –– less than one; and –– 8.by the Arcoth function, when the absolute value of the parameter –– X is less than one. –– –– 1.The exception Constraint_Error (function Last_Exception) is raised, –– signaling a pole of the mathematical function (analogous to dividing –– by zero), in the following cases: –– 1.by the Log, Cot, and Coth functions, when the value of the parameter –– X is zero; –– 2.by the exponentiation operator, when the value of the left operand –– is zero and the value of the exponent is negative; –– 3.by the Tan function with specified cycle, when the value of the –– parameter X is an odd multiple of the quarter cycle; –– 4.by the Cot function with specified cycle, when the value of the –– parameter X is zero or a multiple of the half cycle; and –– 5.by the Artanh and Arcoth functions, when the absolute value –– of the parameter X is one. –– –– Constraint_Error can also be raised when a finite result overflows; –– this may occur for parameter values sufficiently near poles, –– and, in the case of some of the functions, for parameter values with –– sufficiently large magnitudes. –– –– When one parameter of a function with multiple parameters represents a –– pole and another is outside the function’s domain, the latter takes –– precedence.

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– TYPES–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

Type Exception = (Not_Exception, Argument_Error, Constraint_Error, Other_Error);

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– CONSTANTS–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

constant Pi : Real := 3.141592653589793238462643383279; constant e : Real := 2.718281828459045235360287471352;

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

Page 338: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

329

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– FUNCTIONS–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–– The function Last_Exception returns the exception of the last –– math lib function call. –– –– In case of Not_Exception the value returned by the last math –– lib function call was valid. –– –– In case of any other value the value returned by the last math –– lib function call was invalid. –– –– The function Last_Exception is allowed from UCL only.

function Last_Exception : Exception; –– # 1

–– In case of an exception in a math lib function the return value –– of the math lib function is set to 0.0! –– This means, only if the return value is equal to zero, you need –– to check the previous function call.

function Sqrt (X : Real) : Real; –– # 2 function Log (X : Real; Base : Real) : Real; –– # 3 function LogLn (X : Real) : Real; –– # 4 –– function Exp (X : Real) : Real; –– # 5 function Power (Left : Real; Right : Real) : Real; –– # 6 –– function Sin (X : Real) : Real; –– # 7 function Sin2 (X : Real; Cycle : Real) : Real; –– # 8 function Cos (X : Real) : Real; –– # 9 function Cos2 (X : Real; Cycle : Real) : Real; –– # 10 function Tan (X : Real) : Real; –– # 11 function Tan2 (X : Real; Cycle : Real) : Real; –– # 12 function Cot (X : Real) : Real; –– # 13 function Cot2 (X : Real; Cycle : Real) : Real; –– # 14 –– function Arcsin (X : Real) : Real; –– # 15 function Arcsin2 (X : Real; Cycle : Real) : Real; –– # 16 function Arccos (X : Real) : Real; –– # 17 function Arccos2 (X : Real; Cycle : Real) : Real; –– # 18 function Arctan (Y : Real; X : Real := 1.0) : Real; –– # 19 function Arctan2 (Y : Real; X : Real := 1.0; Cycle : Real) : Real; –– # 20 function Arccot (X : Real; Y : Real := 1.0) : Real; –– # 21 function Arccot2 (X : Real; Y : Real := 1.0; Cycle : Real) : Real; –– # 22 –– function Sinh (X : Real) : Real; –– # 23 function Cosh (X : Real) : Real; –– # 24 function Tanh (X : Real) : Real; –– # 25 function Coth (X : Real) : Real; –– # 26 function Arsinh (X : Real) : Real; –– # 27 function Arcosh (X : Real) : Real; –– # 28 function Artanh (X : Real) : Real; –– # 29 function Arcoth (X : Real) : Real; –– # 30

Page 339: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

330

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– function Random : Real; –– from 0.0 to 1.0 # 31 function Random_I : Integer; –– full range # 32

end MATH_LIB;

6.9.5.3 UCL Mathematical System Library Specification for Long_Real type(MATH_LIB_LONG)

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– *******************************************–– MATH_LIB_LONG UCL System Library–– *******************************************–––– ABSTRACT–– Defines Functions for basic mathematic operations–– for Long_Real type. –– Must be compiled for ground and with Body Id = 7 –––– IDENTIFICATION–– PROJECT NAME : CGS–– OBJECT NAME : MATH_LIB_LONG System Library–– VERSION : CGS 5.0.0–– CGS CM : ”%Z%%M% %I% %G% %Z%” ––*––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– CONTENTS–– COMPILER : UCLC –– LANGUAGE : UCL–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

library MATH_LIB_LONG;

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–– GENERAL: –– –––––––– –– 1. The functions have their usual mathematical meanings. The Log function –– computes the logarithm to the given base; LogLn computes the natural –– logarithm. When the Cycle parameter is specified, the parameter X –– of the forward trigonometric functions (Sin2, Cos2, Tan2, and Cot2) –– and the results of the inverse trigonometric functions (Arcsin2, –– Arccos2, Arctan2, and Arccot2) are measured in units such that a –– full cycle of revolution has the given value; otherwise (Sin, Cos, –– Tan, Cot, Arcsin, Arccos, Arctan, Arccot,Sinh, Cosh, Tanh, Coth , –– Arsinh, Arcosh, Artanh and Arcoth), they are measured in radians. –– 2. The computed results of the mathematically multivalued functions are –– rendered single–valued by the following conventions, which are meant to –– imply the principal branch: –– 1.The results of the Sqrt and Arcosh functions and that of the –– exponentiation operator are nonnegative. –– 2.The result of the Arcsin function is in the quadrant containing the –– point (1.0, x), where x is the value of the parameter X. This –– quadrant is I or IV; thus, the range of the Arcsin function is –– approximately –Pi/2.0 to Pi/2.0 (–Cycle/4.0 to Cycle/4.0, if the –– parameter Cycle is specified). –– 3.The result of the Arccos function is in the quadrant containing the –– point (x, 1.0), where x is the value of the parameter X. This –– quadrant is I or II; thus, the Arccos function ranges from 0.0 to –– approximately Pi (Cycle/2.0, if the parameter Cycle is specified). –– 4.The results of the Arctan and Arccot functions are in the quadrant –– containing the point (x, y), where x and y are the values of the –– parameters X and Y, respectively. This may be any quadrant –– (I through IV) when the parameter X (resp., Y) of Arctan (resp., –– Arccot) is specified, but it is restricted to quadrants I and IV –– (resp., I and II) when that parameter is omitted. Thus, the range

Page 340: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

331

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– when that parameter is specified is approximately –Pi to Pi –– (–Cycle/2.0 to Cycle/2.0, if the parameter Cycle is specified); when –– omitted, the range of Arctan (resp., Arccot) is that of –– Arcsin (resp., Arccos), as given above. When the point (x, y) lies –– on the negative x–axis, the result approximates Pi (resp., –Pi) when –– the sign of the parameter Y is positive (resp., negative) –– –– –– (In the case of the inverse trigonometric functions, in which a result –– lying on or near one of the axes may not be exactly representable, the –– approximation inherent in computing the result may place it –– in an adjacent quadrant, close to but on the wrong side of the axis.) –– –– 3. The random functions returns a value in integer range (Random_I) –– or in range 0.0 .. 1.0 (Random). –– –– 4. The function Last_Exception returns the exception of the last math lib –– function call. In case of Not_Exception the value returned by the last math –– lib function call was valid. In case of any other value the value returned –– by the last math lib function call was invalid. –– –– Dynamic Semantics: –– –––––––––––––––––– –– 2.The exception Argument_Error (function Last_Exception) is raised, –– signaling a parameter value outside the domain of the corresponding –– mathematical function, in the following cases: –– 1.by any forward or inverse trigonometric function with specified –– cycle, when the value of the parameter Cycle is zero or negative; –– 2.by the Log function with specified base, when the value of the –– parameter Base is zero, one, or negative; –– 3.by the Sqrt and Log functions, when the value of the parameter –– X is negative; –– 4.by the exponentiation operator, when the value of the left –– operand is negative or when both operands have the value zero; –– 5.by the Arcsin, Arccos, and Artanh functions, when the absolute –– value of the parameter X exceeds one; –– 6.by the Arctan and Arccot functions, when the parameters X and Y –– both have the value zero; –– 7.by the Arcosh function, when the value of the parameter X is –– less than one; and –– 8.by the Arcoth function, when the absolute value of the parameter –– X is less than one. –– –– 1.The exception Constraint_Error (function Last_Exception) is raised, –– signaling a pole of the mathematical function (analogous to dividing –– by zero), in the following cases: –– 1.by the Log, Cot, and Coth functions, when the value of the parameter –– X is zero; –– 2.by the exponentiation operator, when the value of the left operand –– is zero and the value of the exponent is negative; –– 3.by the Tan function with specified cycle, when the value of the –– parameter X is an odd multiple of the quarter cycle; –– 4.by the Cot function with specified cycle, when the value of the –– parameter X is zero or a multiple of the half cycle; and –– 5.by the Artanh and Arcoth functions, when the absolute value –– of the parameter X is one. –– –– Constraint_Error can also be raised when a finite result overflows; –– this may occur for parameter values sufficiently near poles, –– and, in the case of some of the functions, for parameter values with –– sufficiently large magnitudes. –– –– When one parameter of a function with multiple parameters represents a –– pole and another is outside the function’s domain, the latter takes –– precedence.

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– TYPES

Page 341: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

332

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

Type Exception = (Not_Exception, Argument_Error, Constraint_Error, Other_Error);

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– CONSTANTS–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

constant Pi : Long_Real := 3.141592653589793238462643383279; constant e : Long_Real := 2.718281828459045235360287471352;

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– FUNCTIONS–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–– The function Last_Exception returns the exception of the last –– math lib function call. –– –– In case of Not_Exception the value returned by the last math –– lib function call was valid. –– –– In case of any other value the value returned by the last math –– lib function call was invalid. –– –– The function Last_Exception is allowed from UCL only.

function Last_Exception : Exception; –– # 1

–– In case of an exception in a math lib function the return value –– of the math lib function is set to 0.0! –– This means, only if the return value is equal to zero, you need –– to check the previous function call.

function Sqrt (X : Long_Real) : Long_Real; –– # 2 function Log (X : Long_Real; Base : Long_Real) : Long_Real; –– # 3 function LogLn (X : Long_Real) : Long_Real; –– # 4 –– function Exp (X : Long_Real) : Long_Real; –– # 5 function Power (Left : Long_Real; Right : Long_Real) : Long_Real; –– # 6 –– function Sin (X : Long_Real) : Long_Real; –– # 7 function Sin2 (X : Long_Real; Cycle : Long_Real) : Long_Real; –– # 8 function Cos (X : Long_Real) : Long_Real; –– # 9 function Cos2 (X : Long_Real; Cycle : Long_Real) : Long_Real; –– # 10 function Tan (X : Long_Real) : Long_Real; –– # 11 function Tan2 (X : Long_Real; Cycle : Long_Real) : Long_Real; –– # 12 function Cot (X : Long_Real) : Long_Real; –– # 13 function Cot2 (X : Long_Real; Cycle : Long_Real) : Long_Real; –– # 14 –– function Arcsin (X : Long_Real) : Long_Real; –– # 15 function Arcsin2 (X : Long_Real; Cycle : Long_Real) : Long_Real; –– # 16 function Arccos (X : Long_Real) : Long_Real; –– # 17 function Arccos2 (X : Long_Real; Cycle : Long_Real) : Long_Real; –– # 18 function Arctan (Y : Long_Real; X : Long_Real := 1.0) : Long_Real; –– # 19 function Arctan2 (Y : Long_Real; X : Long_Real := 1.0;

Page 342: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

333

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Cycle : Long_Real) : Long_Real; –– # 20 function Arccot (X : Long_Real; Y : Long_Real := 1.0) : Long_Real; –– # 21 function Arccot2 (X : Long_Real; Y : Long_Real := 1.0; Cycle : Long_Real) : Long_Real; –– # 22 –– function Sinh (X : Long_Real) : Long_Real; –– # 23 function Cosh (X : Long_Real) : Long_Real; –– # 24 function Tanh (X : Long_Real) : Long_Real; –– # 25 function Coth (X : Long_Real) : Long_Real; –– # 26 function Arsinh (X : Long_Real) : Long_Real; –– # 27 function Arcosh (X : Long_Real) : Long_Real; –– # 28 function Artanh (X : Long_Real) : Long_Real; –– # 29 function Arcoth (X : Long_Real) : Long_Real; –– # 30

–– function Random : Long_Real; –– from 0.0 to 1.0 # 31 function Random_I : Integer; –– full range # 32

end MATH_LIB_LONG;

Page 343: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

334

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6 UCL Ground System Library: GROUND_VALUES

The GROUND_VALUES library contains standard ground commands used for access measurementvalues, softwre variables and derived values.

Library Id (Body_Id): 8

6.9.6.1 Routines Summary

The Ground UCL library routines are:

ACQUISITION_TIME

DISABLE_CONDITIONSDISABLE_EVLDISABLE_MONITORING

DOUBLE_FLOAT_RAW_VALUE

ENABLE_CONDITIONSENABLE_EVL

ENABLE_MONITORINGENABLE_ON_BYTE_STREAMENABLE_ON_FLOATENABLE_ON_STATECODEENABLE_ON_INTEGER

FLOAT_RAW_VALUE

GET_ACQUISITION_STATUSGET_ACQUISITION_TIMEGET_BYTE_STREAMGET_BYTE_STREAM_RAW_VALUEGET_CONDITIONGET_CONDITION_ITEM

GET_DECALIBRATED_INTEGER_VALUE_FOR_REALGET_DECALIBRATED_UNSIGNED_VALUE_FOR_REALGET_DECALIBRATED_REAL_VALUE_FOR_REALGET_DECALIBRATED_INTEGER_VALUE_FOR_INTEGERGET_DECALIBRATED_UNSIGNED_VALUE_FOR_INTEGERGET_DECALIBRATED_VALUE_FOR_STATECODE

GET_DOUBLE_FLOATGET_DOUBLE_FLOAT_RAW_VALUEGET_ENDITEM_MONITOR_STATUSGET_ENGINEERING_TYPEGET_FLOAT

GET_FLOAT_RAW_VALUEGET_FULL_ENDITEM_MONITOR_STATUSGET_INTEGER_RAW_VALUEGET_INTEGERGET_MONITORING_CLASSGET_PROCESSING_STATEGET_RAW_TYPEGET_SAMPLE_COUNT (not implemented)

Page 344: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

335

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

GET_STATE_CODEGET_UNSIGNEDGET_UNSIGNED_RAW_VALUEGET_VALUE_CHANGE_COUNT

INTEGER_RAW_VALUE

NUMBER_OF_CONDITION_ITEMSNUMBER_CONDITIONS

PATH_FOR_PUS_PARAMETER_NUMBERPUS_PARAMETER_NUMBER

SAMPLE_COUNT (not implemented)SET_CALIBRATION_COEFFICIENTSET_CALIBRATION_POINT_PAIRSET_DELTA_LIMITSET_DOUBLE_FLOAT_DELTA_LIMITSET_DOUBLE_FLOAT_HIGH_LIMITSET_DOUBLE_FLOAT_LOW_LIMITSET_EXCEPTION_COUNTSET_EXPECTED_VALUESET_HIGH_LIMITSET_IDENTICAL_CALIBRATIONSET_INTEGER_DELTA_LIMITSET_INTEGER_HIGH_LIMITSET_INTEGER_LOW_LIMITSET_LIMIT_SETSET_LIMIT_SET_ON_INTEGERSET_LIMIT_SET_ON_FLOATSET_LIMIT_SET_ON_STATECODESET_LIMIT_SET_ON_BYTE_STREAMSET_LOW_LIMITSET_NUMBER_OF_CALIBRATION_COEFFICIENTSSET_NUMBER_OF_CALIBRATION_POINT_PAIRSSET_NUMBER_OF_STATE_CODESSET_PROCESSINGSET_STATE_CODESET_UNSIGNED_DELTA_LIMITSET_UNSIGNED_HIGH_LIMITSET_UNSIGNED_LOW_LIMITSTART_AP_ON_BYTE_STREAMSTART_AP_ON_FLOATSTART_AP_ON_INTEGERSTART_AP_ON_STATECODE

UNSIGNED_RAW_VALUE

VALUE_CHANGE_COUNT

WITHDRAW_ALL_CONDITIONSWITHDRAW_CONDITION

Page 345: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

336

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.2 UCL System Library Specification

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– *******************************************–– GROUND_VALUES UCL System Library–– *******************************************––––ABSTRACT–––– Defines Procedures to access acquired values in CGS–– Must be compiled for ground and with Body Id = 8 ––––IDENTIFICATION–––– PROJECT NAME : CGS–– OBJECT NAME : GROUND_VALUES System Library–– VERSION : ##V##CGS_5.1.0–– CGS CM : ”%Z%%M% %I% %G% %Z%” ––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––CONTENTS–––– COMPILER : UCLC –– LANGUAGE : UCL––CHANGE HISTORY–––– PIRN 8216, Issue 1/A for CGS V5.1.0: –– Reorganise System Libraries: Move ground value related procedures –– (acquisition, monitoring, evl, conditions) from GROUND_LIBRARY –– to this library; move common definitions to GROUND_COMMON library–– Extend with new operations required by the CGS V5 Specification –– Extend with Pathname <–> PUS Parameter Number conversion–– SPR–9052: Get type of measurement for pathname:–– Extend with operations on fetching raw/eng value type –– and monitoring class

–– SPR–11017: Correct GET_UNSIGNED––––END HISTORY–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

library GROUND_VALUES;

import GROUND_COMMON; –– reference via Nickname

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– TYPES

Page 346: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

337

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

type INTEG_VARIANT = (SIGNED,UNSIGNED); type REAL_VARIANT = (SINGLE,DOUBLE);

type EXTENDED_MONITOR_STATUS = (DISABLED, NOT_ACQUIRED, NOMINAL, INTERRUPTED, –– for delta limits only NON_NOMINAL, –– for non–numeric items & delta limits OUT_OF_HIGH_LIMIT, –– for numeric absolute limits OUT_OF_LOW_LIMIT); –– dto.

type LIMIT_VALUE = record case IS_INT : BOOLEAN when TRUE : case INT_TYPE: INTEG_VARIANT when SIGNED: I_VALUE : INTEGER; when UNSIGNED: U_VALUE : UNSIGNED_INTEGER; end case; when FALSE : case R_TYPE: REAL_VARIANT when SINGLE: R_VALUE : REAL; when DOUBLE: L_VALUE : LONG_REAL; end case; end case; end record;

type OPTIONAL_NUMERIC_LIMIT = record case DEFINED : BOOLEAN when FALSE : when TRUE : VALUE : LIMIT_VALUE; end case; end record;

type OPTIONAL_STATECODE = record case DEFINED : BOOLEAN when FALSE : when TRUE : VALUE : STATECODE; end case; end record;

type OPTIONAL_VALUE_STRING = record case DEFINED : BOOLEAN when FALSE : when TRUE : VALUE : VALUE_STRING; end case; end record;

type NUMERIC_LIMITS = record

Page 347: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

338

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

HIGH, LOW, DELTA : OPTIONAL_NUMERIC_LIMIT; end record;

type MONITOR_ITEM_CLASS = (NUMERIC, DISCRETE, BYTE_STREAM);

type FULL_MONITOR_STATUS = record case LIMITS_DEFINED : BOOLEAN when FALSE : when TRUE : CURRENT_LIMIT_SET : INTEGER; NOMINAL_STATUS : EXTENDED_MONITOR_STATUS; case ITEM_CLASS : MONITOR_ITEM_CLASS when NUMERIC : DANGER_STATUS, DELTA_STATUS, DELTA_DANGER_STATUS : EXTENDED_MONITOR_STATUS; DANGER, NOMINAL: NUMERIC_LIMITS; when DISCRETE : EXPECTED_STATE : OPTIONAL_STATECODE; when BYTE_STREAM : EXPECTED_STRING : OPTIONAL_VALUE_STRING; end case; ALARM_COUNT : UNSIGNED_INTEGER; end case; end record;

type CONDITION = (EQUAL, NOT_EQUAL, LESS, GREATER, LESS_EQUAL, GREATER_EQUAL, IN_RANGE);

type DISCRETE_CONDITION = CONDITION (EQUAL .. NOT_EQUAL);

type CONDITION_TYPE = (INTEGER_TYPE, REAL_TYPE, STATECODE_TYPE, BYTE_STREAM_TYPE);

type CONDITION_VAL = record case COND_TYPE : CONDITION_TYPE when INTEGER_TYPE : INTEGER_VALUE : INTEGER; when REAL_TYPE : REAL_VALUE : REAL; when STATECODE_TYPE : STATECODE_VALUE : STATECODE; when BYTE_STREAM_TYPE : BYTE_STREAM_VALUE : VALUE_STRING; end case; end record;

type ON_OFF = (ON, OFF);

type ACTION_KIND = (PROCESSING, LIMIT, START_AP);

type ACTION_DESCRIPTION = record

Page 348: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

339

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

case KIND : ACTION_KIND when PROCESSING : PROCESS_ITEM : ACQUISITION_COLLECTION; when LIMIT : LIMIT_ITEM : MONITOR_COLLECTION; LIMIT_SET : LIMIT_SET_NUMBER; when START_AP : AP : AP_NAME; end case; end record;

type CONDITION_STATE = (IS_TRUE, IS_FALSE, IS_UNKNOWN);

–– used for output purposes type UCL_TEXT = STRING(20); type T_RAW_VALUE_STRINGS = ARRAY (RAW_VALUE_TYPE) OF UCL_TEXT; type T_ENG_VALUE_STRINGS = ARRAY (ENG_VALUE_TYPE) OF UCL_TEXT; type T_ACQUISITION_STATUS_STRINGS = ARRAY (ACQUISITION_STATUS) OF UCL_TEXT; type T_ITEM_CLASS_STRINGS = ARRAY (MONITOR_ITEM_CLASS) OF UCL_TEXT; ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– CONSTANTS–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

constant DEFAULT_LIMIT_SET: LIMIT_SET_NUMBER := 0; constant ALL_CONDITIONS : INTEGER := 0;

–– used for output purposes constant RAW_VALUE_STRINGS: T_RAW_VALUE_STRINGS := ( ”R_SIGNED”, ”R_UNSIGNED”, ”R_FLOAT”, ”R_DOUBLE_FLOAT”, ”R_BYTE_STREAM”);

constant ENG_VALUE_STRINGS: T_ENG_VALUE_STRINGS := ( ”E_STATE_CODE”, ”E_SIGNED”, ”E_UNSIGNED”, ”E_FLOAT”, ”E_DOUBLE_FLOAT”, ”E_STRING”);

constant ACQUISITION_STATUS_STRINGS: T_ACQUISITION_STATUS_STRINGS := ( ”VALID”, ”NOT_ACQ”, ”NOT_RECVD”, ”NOT_MAINTAINED”,

Page 349: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

340

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

”DISAB”, ”INVALID”, ”STATIC”);

constant ITEM_CLASS_STRINGS: T_ITEM_CLASS_STRINGS := ( ”NUMERIC”, ”DISCRETE”, ”BYTE_STREAM”); ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– PROCEDURES & FUNCTIONS–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––––––––––––––––––––––––––––––––––– –– Decalibration Functions ––––––––––––––––––––––––––––––––––– ––––––– Decalibration means conversion from raw value to engineering value ––––––– Measurements bear a calibration function, while stimuli ––––––– (i.e. their parameters) bear a decalibration function

procedure GET_DECALIBRATED_INTEGER_VALUE_FOR_REAL (in ITEM: FLOAT_ENDITEM; in ENG_VALUE: REAL; out RAW_VALUE: INTEGER; out STATUS: UCL_RETURN); –– #1

–– Description: –– Returns the raw value of an enditem by applying the decalibration –– (derived from the calibration attributes of the measurement resp. decalibration –– attributes of the stimulus parameter) –– –– STATUS returns the UCL Return Code values –– –– OK :Decalibration successful –– CAL_ERROR :Decalibration Failed –– ITEM_UNKNOWN:Enditem is not known on the executing node

procedure GET_DECALIBRATED_UNSIGNED_VALUE_FOR_REAL (in ITEM: FLOAT_ENDITEM; in ENG_VALUE: REAL; out RAW_VALUE: UNSIGNED_INTEGER; out STATUS: UCL_RETURN); –– #2

–– Description: –– Returns the raw value of an enditem by applying the decalibration –– (derived from the calibration attributes of the measurement resp. decalibration –– attributes of the stimulus parameter) –– –– STATUS returns the UCL Return Code values:

Page 350: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

341

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– OK :Decalibration successful –– CAL_ERROR :Decalibration Failed –– ITEM_UNKNOWN:Enditem is not known on the executing node

procedure GET_DECALIBRATED_REAL_VALUE_FOR_REAL (in ITEM: FLOAT_ENDITEM; in ENG_VALUE: REAL; out RAW_VALUE: REAL; out STATUS: UCL_RETURN); –– #3

–– Description: –– Returns the raw value of an enditem by applying the decalibration –– (derived from the calibration attributes of the measurement resp. decalibration –– attributes of the stimulus parameter) –– –– STATUS returns the UCL Return Code values: –– OK :Decalibration successful –– CAL_ERROR :Decalibration Failed –– ITEM_UNKNOWN:Enditem is not known on the executing node

procedure GET_DECALIBRATED_INTEGER_VALUE_FOR_INTEGER (in ITEM: INTEGER_ENDITEM; in ENG_VALUE: INTEGER; out RAW_VALUE: INTEGER; out STATUS: UCL_RETURN); –– #4

–– Description: –– Returns the raw value of an enditem by applying the decalibration –– (derived from the calibration attributes of the enditem) –– –– STATUS returns the UCL Return Code values: –– OK :Decalibration successful –– CAL_ERROR :Decalibration Failed –– ITEM_UNKNOWN:Enditem is not known on the executing node

procedure GET_DECALIBRATED_UNSIGNED_VALUE_FOR_INTEGER (in ITEM: INTEGER_ENDITEM; in ENG_VALUE: INTEGER; out VALUE: UNSIGNED_INTEGER; out STATUS: UCL_RETURN); –– #5

–– Description: –– Returns the raw value of an enditem by applying the decalibration –– (derived from the calibration attributes of the enditem) –– –– STATUS returns the UCL Return Code values:

Page 351: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

342

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– OK :Decalibration successful –– CAL_ERROR :Decalibration Failed –– ITEM_UNKNOWN:Enditem is not known on the executing node

procedure GET_DECALIBRATED_VALUE_FOR_STATECODE (in ITEM: DISCRETE_ENDITEM; in ENG_VALUE: STATECODE; out RAW_VALUE: UNSIGNED_INTEGER; out STATUS: UCL_RETURN); –– #6

–– Description: –– Returns the raw value of an discrete enditem by applying the decalibration –– (derived from the calibration attributes of the measurement resp. decalibration –– attributes of the stimulus parameter) –– –– STATUS returns the UCL Return Code values : –– OK : Decalibration successful –– CAL_ERROR : Decalibration Failed: Statecode not defined in Discrete Calibration –– ITEM_UNKNOWN: Enditem is not known on the executing node

–––––––––––––––––––––––––––––––––––––––– –– Set Calibration for Measurments ––––––––––––––––––––––––––––––––––––––––

procedure SET_CALIBRATION_COEFFICIENT –– for polynomial calibration (in ITEM: ENDITEM_WITH_RAW_VALUE; in COEFFICIENT_NUMBER: COEFFICIENT_RANGE; in COEFFICIENT_VALUE: REAL; out STATUS: UCL_RETURN); –– #7

–– Description –– Sets one polynomial coefficient for the calibration definition of an enditem –– Type of calibration is automatically changed to ”POLYNOM” –– COEFFICIENT_NUMBER: Number of the coefficient –– COEFFICIENT_VALUE: New value of the coefficient –– STATUS returns the UCL Return Code values as defined in the GROUND_LIBRARY: –– OK : New Coefficient applied –– CAL_ERROR : An exception occured when setting the new coefficient –– ITEM_UNKNOWN : Enditem is not known on the executing node procedure SET_IDENTICAL_CALIBRATION (in ITEM: ENDITEM_WITH_RAW_VALUE; out STATUS: UCL_RETURN); –– #8

Page 352: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

343

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– Description –– Sets the calibration definition of an enditem to ”IDENTICAL” –– i.e. polynom with (0.0,1.0,0.0,0.0,0.0) –– Type of calibration is automatically changed to ”POLYNOM” –– STATUS returns the UCL Return Code values as defined in the GROUND_LIBRARY –– OK : Identical Calibration applied –– CAL_ERROR : An exception occured when setting the new numberr –– ITEM_UNKNOWN : Enditem is not known on the executing node

procedure SET_CALIBRATION_POINT_PAIR (in ITEM: ENDITEM_WITH_RAW_VALUE; in PAIR_NUMBER: POINT_PAIR_RANGE; in RAW_VALUE: LONG_REAL; in ENG_VALUE: LONG_REAL; out STATUS: UCL_RETURN); –– #9

–– Description –– Sets one point pair for the calibration definition of an enditem –– Type of calibration is automatically changed to ”POINT_PAIRS” –– PAIR_NUMBER: Number of the point pair –– RAW_VALUE: New raw value of the point pair –– ENG_VALUE: New engineering value of the point pair –– STATUS returns the UCL Return Code values as defined in the GROUND_LIBRARY –– OK : New point pairs applied –– CAL_ERROR : An exception occured when setting the point pairs –– ITEM_UNKNOWN : Enditem is not known on the executing node

procedure SET_NUMBER_OF_CALIBRATION_POINT_PAIRS (in ITEM: ENDITEM_WITH_RAW_VALUE; in PAIR_NUMBER: POINT_PAIR_RANGE; out STATUS: UCL_RETURN); –– #10

–– Description –– Sets the number of point pairs for the calibration definition of an enditem –– Type of calibration is automatically changed to ”POINT_PAIRS” –– PAIR_NUMBER: New actual number of point pairs –– STATUS returns the UCL Return Code values as defined in the GROUND_LIBRARY –– OK : New number of point pairs applied –– CAL_ERROR : An exception occured when setting the number of point pairs –– ITEM_UNKNOWN : Enditem is not known on the executing node

procedure SET_STATE_CODE (in ITEM: DISCRETE_VALUE; in PAIR_NUMBER: STATECODE_PAIR_RANGE; in RAW_VALUE: UNSIGNED_INTEGER; in ENG_VALUE: STATECODE; out STATUS: UCL_RETURN); –– #11

Page 353: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

344

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– Description –– Sets one statecode pair for the discrete calibration definition of an enditem –– PAIR_NUMBER: Number of the point pair –– RAW_VALUE: New raw value of the pair –– ENG_VALUE: New Stetecode of the pair –– STATUS returns the UCL Return Code values as defined in the GROUND_LIBRARY –– OK : New discrete calibration pair applied –– CAL_ERROR : An exception occured when setting the discrete calibration pair –– ITEM_UNKNOWN : Enditem is not known on the executing node

procedure SET_NUMBER_OF_STATE_CODES (in ITEM: DISCRETE_VALUE; in NUMBER_OF_CODES: STATECODE_PAIR_RANGE; out STATUS: UCL_RETURN); –– #12

–– Description –– Sets the number of statecodes for the discrete calibration of an enditem –– NUMBER_OF_CODES: New actual number of statecodes –– STATUS returns the UCL Return Code values as defined in the GROUND_LIBRARY –– OK : New number of discrete calibration pairs applied –– CAL_ERROR : An exception occured when setting the number –– ITEM_UNKNOWN : Enditem is not known on the executing node

––––––––––––––––––––––––––––––––––––––––––––––– Get Status and other attributes––––––––––––––––––––––––––––––––––––––––

procedure GET_ACQUISITION_STATUS (in ITEM: MONITOR_ITEM_NAME; out ENDITEM_ACQ_STATUS: ACQUISITION_STATUS; out STATUS: UCL_RETURN); –– #13

–– Description–– Return status of aquisition –– ENDITEM_ACQ_STATUS returns the acquisition status of the enditem –– STATUS returns the UCL Return Code values as defined in the GROUND_LIBRARY–– OK : Information returned is valid–– INVALID_PARAMETER: An exception occured when accessing the information –– ITEM_UNKNOWN : Enditem is not known on the executing node

procedure GET_ACQUISITION_TIME–– (not implemented: V5.1.1)

(in ITEM: ENDITEM_WITH_ENG_VALUE; out TIME_TAG: TIME; out ENDITEM_ACQ_STATUS: ACQUISITION_STATUS; out STATUS: UCL_RETURN); –– #14

–– Description

Page 354: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

345

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– Return time of latest aquisition / update–– ENDITEM_ACQ_STATUS returns the acquisition status of the enditem –– TIME_TAG return the time of latest acquisition/update–– STATUS returns the UCL Return Code values as defined in the GROUND_LIBRARY–– OK : Information returned is valid–– INVALID_PARAMETER: An exception occured when accessing the information –– ITEM_UNKNOWN : Enditem is not known on the executing node function ACQUISITION_TIME

–– (not implemented: V5.1.1) (in ITEM: ENDITEM_WITH_ENG_VALUE) : TIME; –– #15

–– Description–– Return time of latest aquisition / update––

procedure GET_SAMPLE_COUNT–– (not implemented: V5.1.1)

(in ITEM: ENDITEM_WITH_ENG_VALUE; out COUNT: INTEGER; out ENDITEM_ACQ_STATUS: ACQUISITION_STATUS; out STATUS: UCL_RETURN); –– #16

–– Description–– Return sample count since aquisition start–– COUNT: number of samples (returns 0 in case of acquisition status = NOT_ACQ)–– ENDITEM_ACQ_STATUS returns the acquisition status of the enditem –– STATUS returns the UCL Return Code values as defined in the GROUND_LIBRARY–– OK : Information returned is valid –– ITEM_UNKNOWN : Enditem is not known on the executing node function SAMPLE_COUNT

–– (not implemented: V5.1.1) (in ITEM: ENDITEM_WITH_ENG_VALUE) : INTEGER; –– #17

–– Description–– Return sample count since aquisition start–– returns 0 in case of acquisition status = NOT_ACQ

––––––––––––––––––––––––––––––––––––––––––––––––– Get Type for Measurement Enditems––––––––––––––––––––––––––––––––––––––––––

procedure GET_RAW_TYPE (in ITEM: ENDITEM_WITH_RAW_VALUE; out R_TYPE: RAW_VALUE_TYPE;

Page 355: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

346

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

out RAW_SIZE_IN_BITS: INTEGER; out STATUS: UCL_RETURN); –– #18 procedure GET_ENGINEERING_TYPE

(in ITEM: ENDITEM_WITH_ENG_VALUE; out E_TYPE: ENG_VALUE_TYPE;

out STATUS: UCL_RETURN); –– #19

––––––––––––––––––––––––––––––––––––––––––––––––––– Get Value and Status––––––– ––––––– Note: the type of the returned TIME_TAG, either local time (LT)––––––– or Simulated Mission Time (SMT), depends on the value of––––––– the TES variable DATA_PROCESSOR.MEASUREMENT_TIME_STAMP_IN_LT––––––– (to be defined via the TES configuration file ––––––– $TES_HOME/config/TES_CONFIG_FILE).––––––––––––––––––––––––––––––––––––––––––––

procedure GET_INTEGER (in ITEM: INTEGER_MONITOR_ITEM_NAME; out VALUE: INTEGER; out TIME_TAG: TIME; out ENDITEM_ACQ_STATUS: ACQUISITION_STATUS; out STATUS: UCL_RETURN); –– #20

procedure GET_UNSIGNED (in ITEM: UNSIGNED_MONITOR_ITEM_NAME; out VALUE: UNSIGNED_INTEGER; out TIME_TAG: TIME; out ENDITEM_ACQ_STATUS: ACQUISITION_STATUS; out STATUS: UCL_RETURN); –– #21

procedure GET_FLOAT (in ITEM: FLOAT_MONITOR_ITEM_NAME; out VALUE: REAL; out TIME_TAG: TIME; out ENDITEM_ACQ_STATUS: ACQUISITION_STATUS; out STATUS: UCL_RETURN); –– #22

procedure GET_DOUBLE_FLOAT (in ITEM: DOUBLE_FLOAT_MONITOR_ITEM_NAME; out VALUE: LONG_REAL; out TIME_TAG: TIME; out ENDITEM_ACQ_STATUS: ACQUISITION_STATUS; out STATUS: UCL_RETURN); –– #23

procedure GET_STATECODE (in ITEM: DISCRETE_MONITOR_ITEM_NAME;

Page 356: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

347

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

out VALUE: STATECODE; out TIME_TAG: TIME; out ENDITEM_ACQ_STATUS: ACQUISITION_STATUS; out STATUS: UCL_RETURN); –– #24

procedure GET_BYTE_STREAM (in ITEM: BYTE_STREAM_MONITOR_ITEM_NAME; out VALUE: STRING; out TIME_TAG: TIME; out ENDITEM_ACQ_STATUS: ACQUISITION_STATUS; out STATUS: UCL_RETURN); –– #25

procedure GET_INTEGER_RAW_VALUE (in ITEM: ENDITEM_WITH_SIGNED_RAW_VALUE; out VALUE: INTEGER; out TIME_TAG: TIME; out ENDITEM_ACQ_STATUS: ACQUISITION_STATUS; out STATUS: UCL_RETURN); –– #26

–– Description:–– Returns the raw value of an enditem with the time tag of the latest update and–– the acquisition status–– STATUS returns the UCL Return Code values as defined in the GROUND_LIBRARY

function INTEGER_RAW_VALUE (in ITEM: ENDITEM_WITH_SIGNED_RAW_VALUE) : INTEGER; –– #27

procedure GET_UNSIGNED_RAW_VALUE (in ITEM: ENDITEM_WITH_UNSIGNED_RAW_VALUE; out VALUE: UNSIGNED_INTEGER; out TIME_TAG: TIME; out ENDITEM_ACQ_STATUS: ACQUISITION_STATUS; out STATUS: UCL_RETURN); –– #28

–– Description:–– Returns the raw value of an enditem with the time tag of the latest update and–– the acquisition status–– STATUS returns the UCL Return Code values as defined in the GROUND_LIBRARY

function UNSIGNED_RAW_VALUE (in ITEM: ENDITEM_WITH_UNSIGNED_RAW_VALUE) : UNSIGNED_INTEGER; –– #29

procedure GET_FLOAT_RAW_VALUE (in ITEM: ENDITEM_WITH_FLOAT_RAW_VALUE; out VALUE: REAL; out TIME_TAG: TIME; out ENDITEM_ACQ_STATUS: ACQUISITION_STATUS; out STATUS: UCL_RETURN); –– #30

Page 357: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

348

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– Description:–– Returns the raw value of an enditem with the time tag of the latest update and–– the acquisition status–– STATUS returns the UCL Return Code values as defined in the GROUND_LIBRARY

function FLOAT_RAW_VALUE (in ITEM: ENDITEM_WITH_FLOAT_RAW_VALUE): REAL; –– #31

procedure GET_DOUBLE_FLOAT_RAW_VALUE (in ITEM: ENDITEM_WITH_DOUBLE_FLOAT_RAW_VALUE; out VALUE: LONG_REAL; out TIME_TAG: TIME; out ENDITEM_ACQ_STATUS: ACQUISITION_STATUS; out STATUS: UCL_RETURN); –– #32

–– Description:–– Returns the raw value of an enditem with the time tag of the latest update and–– the acquisition status–– STATUS returns the UCL Return Code values as defined in the GROUND_LIBRARY

function DOUBLE_FLOAT_RAW_VALUE (in ITEM: ENDITEM_WITH_DOUBLE_FLOAT_RAW_VALUE): LONG_REAL; –– #33

procedure GET_BYTE_STREAM_RAW_VALUE (in ITEM: ENDITEM_WITH_BYTESTREAM_RAW_VALUE; out VALUE: STRING; out TIME_TAG: TIME; out ENDITEM_ACQ_STATUS: ACQUISITION_STATUS; out STATUS: UCL_RETURN); –– #34

–– Description:–– Returns the raw value of an enditem with the time tag of the latest update and–– the acquisition status–– STATUS returns the UCL Return Code values as defined in the GROUND_LIBRARY

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– Monitoring–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

procedure ENABLE_MONITORING (in ITEM: MONITOR_COLLECTION; in LIMIT_SET: LIMIT_SET_NUMBER := DEFAULT_LIMIT_SET; in ADU: ADU_NAME := \\; out STATUS: UCL_RETURN); –– #35

procedure DISABLE_MONITORING

Page 358: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

349

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

(in ITEM: MONITOR_COLLECTION; out STATUS: UCL_RETURN); –– #36

procedure SET_HIGH_LIMIT (in ITEM: ANALOG_MONITOR_ITEM_NAME; in LIMIT: REAL; out STATUS: UCL_RETURN); –– #37

procedure SET_INTEGER_HIGH_LIMIT (in ITEM: INTEGER_MONITOR_ITEM_NAME; in LIMIT: INTEGER; out STATUS: UCL_RETURN); –– #38 procedure SET_UNSIGNED_HIGH_LIMIT (in ITEM: UNSIGNED_MONITOR_ITEM_NAME; in LIMIT: UNSIGNED_INTEGER; out STATUS: UCL_RETURN); –– #39

procedure SET_DOUBLE_FLOAT_HIGH_LIMIT (in ITEM: DOUBLE_FLOAT_MONITOR_ITEM_NAME; in LIMIT: LONG_REAL; out STATUS: UCL_RETURN); –– #40

procedure SET_LOW_LIMIT (in ITEM: ANALOG_MONITOR_ITEM_NAME; in LIMIT: REAL; out STATUS: UCL_RETURN); –– #41

procedure SET_INTEGER_LOW_LIMIT (in ITEM: INTEGER_MONITOR_ITEM_NAME; in LIMIT: INTEGER; out STATUS: UCL_RETURN); –– #42

procedure SET_UNSIGNED_LOW_LIMIT (in ITEM: UNSIGNED_MONITOR_ITEM_NAME; in LIMIT: UNSIGNED_INTEGER; out STATUS: UCL_RETURN); –– #43

procedure SET_DOUBLE_FLOAT_LOW_LIMIT (in ITEM: DOUBLE_FLOAT_MONITOR_ITEM_NAME; in LIMIT: LONG_REAL; out STATUS: UCL_RETURN); –– #44

procedure SET_DELTA_LIMIT (in ITEM: ANALOG_MONITOR_ITEM_NAME; in LIMIT: REAL; out STATUS: UCL_RETURN); –– #45

procedure SET_INTEGER_DELTA_LIMIT

Page 359: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

350

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

(in ITEM: INTEGER_MONITOR_ITEM_NAME; in LIMIT: INTEGER; out STATUS: UCL_RETURN); –– #46

procedure SET_UNSIGNED_DELTA_LIMIT (in ITEM: UNSIGNED_MONITOR_ITEM_NAME; in LIMIT: UNSIGNED_INTEGER; out STATUS: UCL_RETURN); –– #47

procedure SET_DOUBLE_FLOAT_DELTA_LIMIT (in ITEM: DOUBLE_FLOAT_MONITOR_ITEM_NAME; in LIMIT: LONG_REAL; out STATUS: UCL_RETURN); –– #48

procedure SET_EXCEPTION_COUNT (in ITEM: MONITOR_ITEM_NAME; in N_COUNT: INTEGER; out STATUS: UCL_RETURN); –– #49

procedure SET_EXPECTED_STATE (in ITEM: DISCRETE_MONITOR_ITEM_NAME; in STATE: STATECODE; out STATUS: UCL_RETURN); –– #50

procedure SET_EXPECTED_VALUE (in ITEM: BYTE_STREAM_MONITOR_ITEM_NAME; in VALUE: STRING; out STATUS: UCL_RETURN); –– #51

procedure SET_LIMIT_SET (in ITEM: MONITOR_COLLECTION; in LIMIT_SET: LIMIT_SET_NUMBER; out STATUS: UCL_RETURN); –– #52

procedure GET_ENDITEM_MONITOR_STATUS (in ITEM: MONITOR_ITEM_NAME; out MONITORING_STATUS: MONITOR_STATUS; out STATUS: UCL_RETURN); –– #53

procedure GET_FULL_ENDITEM_MONITOR_STATUS (in ITEM: MONITOR_ITEM_NAME; out MONITORING_STATUS: FULL_MONITOR_STATUS; out STATUS: UCL_RETURN); –– #54 procedure GET_MONITORING_CLASS

(in ENDITEM: MONITOR_ITEM_NAME; out CLASS: MONITOR_ITEM_CLASS; out STATUS: UCL_RETURN); –– #55

Page 360: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

351

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– Engineering Value Logging–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

procedure ENABLE_EVL (in ITEM: MONITOR_COLLECTION; out STATUS: UCL_RETURN); –– #56

procedure DISABLE_EVL (in ITEM: MONITOR_COLLECTION; out STATUS: UCL_RETURN); –– #57

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– Conditions–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– Concept : –– ––––––––– –– –– The conditional monitoring will be defined by linking 1 measurement or –– software variable to one or more end items. –– –– Every link can be described by –– –– ”when value of CONDITION_ITEM <<MATCHES> a CONDITION_VALUE” –– ”then <<PERFORM_AN_ACTION> on an ITEM” –– –– where <<MATCHES> can be –– EQUAL, NOT_EQUAL, LESS, GREATER, LESS OR EQUAL, GREATER OR EQUAL –– –– (Note: the IN_RANGE alternative is currently not supported. It is included –– in the definition of the CONDITION type only for MDB compatibility reasons ) –– –– where <<PERFORM_AN_ACTION> can be –– –– ”enable the processing of a measurement / a sw_variable / the –– measurements and sw variables of a –– monitoring list / the measurements of an –– ADU / the measurements and sw variables –– of a subtree” –– ”set a new limit set for a measurement / a sw_variable” –– ”start an AP” –– –– When processing CONDITION_ITEM, all conditions linked to that item will –– be analysed and for those that are true, the defined action will be –– performed.

Page 361: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

352

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– It is necessary to start the acquisition of CONDITION_ITEM to allow the –– condition to be analysed. –– –– For performance reasons, the conditions will only be analysed when the –– value of the CONDITION_ITEM is modified, and not everytime the –– CONDITION_ITEM is processed. –– However, the when defining a condition, it will be checked immediately –– if the CONDITION_ITEM has a valid value. –– –– Note that the order of processing of the data from one ADU is the order of –– the definition of the items in the ADU. –– So if an adu contains an ITEM and its CONDITION_ITEM, to ensure that the –– CONDITION_ITEM is processed before the ITEM, it must be defined in the –– list of items of the ADU description before the ITEM. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– ENABLE/DISABLE CONDITION –– –– –––––––––––––––––––––––– –– Will enable/disable a condition or all conditions of –– measurement(s), sw variable(s) and derived value(s).

–– PARAMETER DESCRIPTION : –– inputs –– –––––– –– ITEM : measurement(s), derived values(s) or software variable(s) carrying the –– condition. –– –– outputs –– ––––––– –– STATUS : the return status of the operation –– OK : operation successfull –– INVALID_TESTNODE_MODE : the test node is not in executing mode –– INVALID_ITEM_NAME : ITEM is not managed locally –– RUNTIME_ERROR : an unexpected error occurred

procedure ENABLE_CONDITIONS (in ITEM: ACQUISITION_COLLECTION; out STATUS: UCL_RETURN); –– #58

procedure DISABLE_CONDITIONS (in ITEM: ACQUISITION_COLLECTION; out STATUS: UCL_RETURN); –– #59

Page 362: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

353

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– ENABLE PROCESSING OF ENDITEMS ––

–– –––––––––––––––––––––––– –– Will enable the processing of ITEM (measurement, software variable, –– monitoring list or measurements of a subtree) when the CONDITION_CHECK –– of the value of CONDITION_ITEM with CONDITION_VALUE is true (the –– condition is true). –– –– If the condition is false, this will disable the processing of ITEM. –– –– By default, all enditems are enabled for processing. Conditions can be –– defined to disable and re–enable the processing of given end–items. –– –– When the processing is enabled, ITEM will be authorised for calibration –– and monitoring. After ITEM has been enabled, it will be calibrated (if –– its acquisition has been started) and monitored (if its monitoring has –– been enabled) on reception of new values. –– –– Enabling the processing of ITEM does not perform an ”initial” –– calibration / monitoring of ITEM in the case where it has already a value. –– –– When the processing is disabled, ITEM will not be calibrated and not be –– monitored, even if its acquisition has been requested and if its –– monitoring is enabled. –– –– CONDITION_ITEM must be maintained locally otherwise an error is generated. –– When the condition is triggered, only those measurements and SW variables –– identified by ITEM that are maintained locally will be processed. –– –– It is not possible to set a condition where the ITEM to enable or disable –– is the CONDITION_ITEM. –– If ITEM is a group of enditems (i.e. monitoring list, ADU or incomplete –– pathname) containing CONDITION_ITEM, the condition will not apply for –– CONDITION_ITEM. –– –– It is not possible to enable or disable the processing of a SW variable –– that is linked to an HK data. ––

–– PARAMETER DESCRIPTION : –– inputs –– –––––– –– ITEM : item(s) to enable. It can be a measurement or software –– variable or all measurements / sw variables contained in a –– monitoring list or all measurements contained in an ADU or –– all measurements / sw variables contained in a subtree. ––

Page 363: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

354

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– CONDITION_ITEM : the measurement or software variable carrying the –– condition. –– –– CONDITION_CHECK : the check to apply on CONDITION_ITEM. –– –– CONDITION_VALUE : the value to use in the check with CONDITION_ITEM. –– –– SINGLE_SHOT : if true, the condition will be withdrawn after having –– being true. –– –– outputs –– ––––––– –– CONDITION_REF : a unique identifier for the condition –– –– STATUS : the return status of the operation –– OK : operation successfull –– INVALID_TESTNODE_MODE : the test node is not in executing mode –– INVALID_ITEM_NAME : CONDITION_ITEM is not managed locally –– INVALID_PARAMETER : ITEM and CONDITION_ITEM are identical –– or ITEM is a SW variable linked to an HK data. –– or CONDITION_CHECK is IN_RANGE (not supported: see above) –– RUNTIME_ERROR : an unexpected error occurred

procedure ENABLE_ON_INTEGER (in ITEM : ACQUISITION_COLLECTION; in CONDITION_ITEM : INTEGER_MONITOR_ITEM_NAME; in CONDITION_CHECK : CONDITION; in CONDITION_VALUE : INTEGER; in SINGLE_SHOT : BOOLEAN; out CONDITION_REF : INTEGER; out STATUS : UCL_RETURN); –– #60

procedure ENABLE_ON_FLOAT (in ITEM : ACQUISITION_COLLECTION; in CONDITION_ITEM : FLOAT_MONITOR_ITEM_NAME; in CONDITION_CHECK : CONDITION; in CONDITION_VALUE : REAL; in SINGLE_SHOT : BOOLEAN; out CONDITION_REF : INTEGER; out STATUS : UCL_RETURN); –– #61

procedure ENABLE_ON_STATECODE (in ITEM : ACQUISITION_COLLECTION; in CONDITION_ITEM : DISCRETE_MONITOR_ITEM_NAME; in CONDITION_CHECK : DISCRETE_CONDITION; in CONDITION_VALUE : STATECODE; in SINGLE_SHOT : BOOLEAN; out CONDITION_REF : INTEGER; out STATUS : UCL_RETURN); –– #62

Page 364: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

355

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

procedure ENABLE_ON_BYTE_STREAM (in ITEM : ACQUISITION_COLLECTION; in CONDITION_ITEM : BYTE_STREAM_MONITOR_ITEM_NAME; in CONDITION_CHECK : DISCRETE_CONDITION; in CONDITION_VALUE : STRING; in SINGLE_SHOT : BOOLEAN; out CONDITION_REF : INTEGER; out STATUS : UCL_RETURN); –– #63

–– –––––––––––––––––––––––– –– Will enable or disable the processing of ITEM. This is overwriting –– an eventual action from a condition. ––

–– PARAMETER DESCRIPTION : –– inputs –– –––––– –– ITEM : item(s) to enable or disable. It can be a measurement or –– software variable or all measurements / sw variables contained –– in a monitoring list or all measurements contained in an ADU or –– all measurements / sw variables contained in a subtree. –– –– SWITCH : ON to enable the processing and OFF to disable the processing. –– –– outputs –– ––––––– –– STATUS : the return status of the operation –– OK : operation successfull –– INVALID_TESTNODE_MODE : the test node is not in executing mode –– INVALID_ITEM_NAME : ITEM is not managed locally –– INVALID_PARAMETER : ITEM is a SW variable linked to an HK data. –– or CONDITION_CHECK is IN_RANGE (not supported: see above) –– RUNTIME_ERROR : an unexpected error occurred

procedure SET_PROCESSING (in ITEM : ACQUISITION_COLLECTION; in SWITCH : ON_OFF; out STATUS : UCL_RETURN); –– #64

–– –––––––––––––––––––––––– –– Indicates if a measurement or software variabled is enabled or disabled –– for processing (as a result of a condition or of a call to SET_PROCESSING) ––

Page 365: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

356

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– PARAMETER DESCRIPTION : –– inputs –– –––––– –– ITEM : item to check. It can be a single measurement or software –– variable. –– –– outputs –– ––––––– –– STATE : ON if the processing is enabled and OFF if the processing is –– disabled. –– –– STATUS : the return status of the operation –– OK : operation successfull –– INVALID_TESTNODE_MODE : the test node is not in executing mode –– INVALID_ITEM_NAME : ITEM is not managed locally –– RUNTIME_ERROR : an unexpected error occurred

procedure GET_PROCESSING_STATE (in ITEM : MONITOR_ITEM_NAME; out STATE : ON_OFF; out STATUS : UCL_RETURN); –– #65

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– SWITCH LIMIT SET ––

–– –––––––––––––––––––––––– –– Will set the LIMIT_SET for ITEM (measurement or software variable) when –– the CONDITION_CHECK of the value of CONDITION_ITEM with CONDITION_VALUE –– is true (the condition is true). –– –– This will not perform an ”initial” monitoring of ITEM in the case where –– it has already a value. The monitoring will be performed on reception of –– the next value (in case the monitoring has been enabled). –– This can lead to a temporary ”inconsistent” output of the procedure –– GET_FULL_ENDITEM_MONITOR_STATUS (result of the monitoring with the old –– limit set with values of the new limit set might be inconsistent). –– –– ITEM and CONDITION_ITEM must be maintained locally on the same node –– otherwise an error is generated. –– –– It is not possible to set a condition where the ITEM identical to the –– CONDITION_ITEM. –– –– The LIMIT_SET must be defined for ITEM, otherwise an error is generated

Page 366: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

357

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

––

–– PARAMETER DESCRIPTION : –– inputs –– –––––– –– ITEM : item for which the limit set is to be switched. It can be a –– measurement or software variable. –– –– LIMIT_SET : the limit set number to select. –– –– CONDITION_ITEM : the measurement or software variable carrying the –– condition. –– –– CONDITION_CHECK : the check to apply on CONDITION_ITEM. –– –– CONDITION_VALUE : the value to use in the check with CONDITION_ITEM. –– –– SINGLE_SHOT : if true, the condition will be withdrawn after having –– being true. –– –– outputs –– ––––––– –– CONDITION_REF : a unique identifier for the condition –– –– STATUS : the return status of the operation –– OK : operation successfull –– INVALID_TESTNODE_MODE : the test node is not in executing mode –– INVALID_ITEM_NAME : ITEM or CONDITION_ITEM are not managed locally –– INVALID_PARAMETER : ITEM and CONDITION_ITEM are identical –– or CONDITION_CHECK is IN_RANGE (not supported: see above) –– INVALID_LIMIT_SET : the limit set is not defined for ITEM –– RUNTIME_ERROR : an unexpected error occurred

procedure SET_LIMIT_SET_ON_INTEGER (in ITEM : MONITOR_COLLECTION; in LIMIT_SET : LIMIT_SET_NUMBER; in CONDITION_ITEM : INTEGER_MONITOR_ITEM_NAME; in CONDITION_CHECK : CONDITION; in CONDITION_VALUE : INTEGER; in SINGLE_SHOT : BOOLEAN; out CONDITION_REF : INTEGER; out STATUS : UCL_RETURN); –– #66

procedure SET_LIMIT_SET_ON_FLOAT (in ITEM : MONITOR_COLLECTION; in LIMIT_SET : LIMIT_SET_NUMBER; in CONDITION_ITEM : FLOAT_MONITOR_ITEM_NAME; in CONDITION_CHECK : CONDITION; in CONDITION_VALUE : REAL;

Page 367: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

358

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

in SINGLE_SHOT : BOOLEAN; out CONDITION_REF : INTEGER; out STATUS : UCL_RETURN); –– #67

procedure SET_LIMIT_SET_ON_STATECODE (in ITEM : MONITOR_COLLECTION; in LIMIT_SET : LIMIT_SET_NUMBER; in CONDITION_ITEM : DISCRETE_MONITOR_ITEM_NAME; in CONDITION_CHECK : DISCRETE_CONDITION; in CONDITION_VALUE : STATECODE; in SINGLE_SHOT : BOOLEAN; out CONDITION_REF : INTEGER; out STATUS : UCL_RETURN); –– #68

procedure SET_LIMIT_SET_ON_BYTE_STREAM (in ITEM : MONITOR_COLLECTION; in LIMIT_SET : LIMIT_SET_NUMBER; in CONDITION_ITEM : BYTE_STREAM_MONITOR_ITEM_NAME; in CONDITION_CHECK : DISCRETE_CONDITION; in CONDITION_VALUE : STRING; in SINGLE_SHOT : BOOLEAN; out CONDITION_REF : INTEGER; out STATUS : UCL_RETURN); –– #69

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– START AUTOMATED PROCEDURE ––

–– –––––––––––––––––––––––– –– Will start an automated procedure when the CONDITION_CHECK of the value –– of CONDITION_ITEM with CONDITION_VALUE is true (the condition is true). –– –– CONDITION_ITEM must be maintained locally on the node otherwise an –– error is generated. –– –– The AP to start must be an AP without parameters, otherwise an error –– message is generated when the condition is triggered. –– When the condition is triggered, if the AP is already running, it will –– not be started and an error message will be generated. –– ––

–– PARAMETER DESCRIPTION : –– inputs –– ––––––

Page 368: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

359

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– AP : the name of the automated procedure to start. This must be an AP –– without parameter or where all parameters have default values. –– –– CONDITION_ITEM : the measurement or software variable carrying the –– condition. –– –– CONDITION_CHECK : the check to apply on CONDITION_ITEM. –– –– CONDITION_VALUE : the value to use in the check with CONDITION_ITEM. –– –– SINGLE_SHOT : if true, the condition will be withdrawn after having –– being true. –– –– outputs –– ––––––– –– CONDITION_REF : a unique identifier for the condition –– –– STATUS : the return status of the operation –– OK : operation successfull –– INVALID_TESTNODE_MODE : the test node is not in executing mode –– INVALID_ITEM_NAME : CONDITION_ITEM is not managed locally –– INVALID_PARAMETER : CONDITION_CHECK is IN_RANGE (not supported: see above) –– RUNTIME_ERROR : an unexpected error occurred

procedure START_AP_ON_INTEGER (in AP : AP_NAME; in CONDITION_ITEM : INTEGER_MONITOR_ITEM_NAME; in CONDITION_CHECK : CONDITION; in CONDITION_VALUE : INTEGER; in SINGLE_SHOT : BOOLEAN; out CONDITION_REF : INTEGER; out STATUS : UCL_RETURN); –– #70

procedure START_AP_ON_FLOAT (in AP : AP_NAME; in CONDITION_ITEM : FLOAT_MONITOR_ITEM_NAME; in CONDITION_CHECK : CONDITION; in CONDITION_VALUE : REAL; in SINGLE_SHOT : BOOLEAN; out CONDITION_REF : INTEGER; out STATUS : UCL_RETURN); –– #71

procedure START_AP_ON_STATECODE (in AP : AP_NAME; in CONDITION_ITEM : DISCRETE_MONITOR_ITEM_NAME; in CONDITION_CHECK : DISCRETE_CONDITION; in CONDITION_VALUE : STATECODE; in SINGLE_SHOT : BOOLEAN; out CONDITION_REF : INTEGER;

Page 369: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

360

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

out STATUS : UCL_RETURN); –– #72

procedure START_AP_ON_BYTE_STREAM (in AP : AP_NAME; in CONDITION_ITEM : BYTE_STREAM_MONITOR_ITEM_NAME; in CONDITION_CHECK : DISCRETE_CONDITION; in CONDITION_VALUE : STRING; in SINGLE_SHOT : BOOLEAN; out CONDITION_REF : INTEGER; out STATUS : UCL_RETURN); –– #73

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– REMOVE CONDITION ––

–– –––––––––––––––––––––––– –– Will remove a condition or all conditions of a CONDITION_ITEM.

–– PARAMETER DESCRIPTION : –– inputs –– –––––– –– CONDITION_ITEM : the measurement or software variable carrying the –– condition. –– –– CONDITION_REF : the unique identifier of the condition to remove –– or the constant ALL_CONDITIONS to remove all conditions –– of CONDITION_ITEM. –– –– outputs –– ––––––– –– STATUS : the return status of the operation –– OK : operation successfull –– INVALID_TESTNODE_MODE : the test node is not in executing mode –– INVALID_ITEM_NAME : CONDITION_ITEM is not managed locally or –– CONDITION_REF does not identify an existing –– condition –– RUNTIME_ERROR : an unexpected error occurred

procedure WITHDRAW_CONDITION (in CONDITION_ITEM : MONITOR_ITEM_NAME; in CONDITION_REF : INTEGER := ALL_CONDITIONS; out STATUS : UCL_RETURN); –– #74

–– –––––––––––––––––––––––– –– Will remove all conditions defined on the test node.

Page 370: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

361

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– PARAMETER DESCRIPTION : –– outputs –– ––––––– –– STATUS : the return status of the operation –– OK : operation successfull –– INVALID_TESTNODE_MODE : the test node is not in executing mode –– RUNTIME_ERROR : an unexpected error occurred

procedure WITHDRAW_ALL_CONDITIONS (out STATUS : UCL_RETURN); –– #75 ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– MANAGE CONDITIONS ––

–– –––––––––––––––––––––––– –– Returns the number of items carrying conditions (CONDITION_ITEMS). –– This number is as well maintained as Housekeeping variable (and can –– be mapped to a software variable).

function NUMBER_OF_CONDITION_ITEMS : INTEGER; –– #76

–– –––––––––––––––––––––––– –– Provide the name of the CONDITION_ITEM identified by an index. –– To get all the CONDITION_ITEM’s, this procedure has to be called –– with all numbers betwee 1 and the value of NUMBER_OF_CONDITION_ITEMS. –– –– Note: –– it can occur that between the time where NUMBER_OF_CONDITION_ITEMS has –– been called and the time where GET_CONDITION_ITEM is called, the number –– of items carrying condition is modified (if new conditions are created –– or removed in parallel).

–– PARAMETER DESCRIPTION : –– inputs –– –––––– –– ITEM_NUMBER : index of the CONDITION_ITEM (between 1 and the value of –– NUMBER_OF_CONDITION_ITEMS). –– –– outputs –– ––––––– –– CONDITION_ITEM : the measurement or software variable carrying the

Page 371: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

362

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– condition. –– –– STATUS : the return status of the operation –– OK : operation successfull –– INVALID_TESTNODE_MODE : the test node is not in executing mode –– INVALID_PARAMETER : There is no (more) CONDITION_ITEM at the index –– ITEM_NUMBER (see above note). –– RUNTIME_ERROR : an unexpected error occurred

procedure GET_CONDITION_ITEM (in ITEM_NUMBER : INTEGER; out CONDITION_ITEM : MONITOR_ITEM_NAME; out STATUS : UCL_RETURN); –– #77

–– –––––––––––––––––––––––– –– Provide the number of conditions carried by a CONDITION_ITEM. –– PARAMETER DESCRIPTION : –– inputs –– –––––– –– CONDITION_ITEM : the name of the item for which the number of conditions –– is to be returned. It must be managed locally, otherwise –– the value 0 is returned.

function NUMBER_CONDITIONS (in CONDITION_ITEM : MONITOR_ITEM_NAME) :INTEGER; –– #78

–– –––––––––––––––––––––––– –– Provide the description of a condition. –– –– Note: –– it can occur that between the time where GET_NUMBER_CONDITIONS has –– been called and the time where GET_CONDITION is called, the number –– of condition carried by CONDITION_ITEM is modified –– (if new conditions are created or removed in parallel).

–– PARAMETER DESCRIPTION : –– inputs –– –––––– –– CONDITION_ITEM : the name of the item carrying the condition. –– –– CONDITION_NUMBER : the index of the condition (between 1 and the value –– of GET_NUMBER_CONDITIONS). –– –– outputs –– ––––––– –– CONDITION_REF : the unique identifier of the condition. ––

Page 372: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

363

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– CONDITION_CHECK : the check to apply on CONDITION_ITEM. –– –– CONDITION_VALUE : the value to use in the check with CONDITION_ITEM. –– –– SINGLE_SHOT : indicates if the condition is to be removed after having –– being true. –– –– STATE : indicate the state of the condition. It can be –– IS_TRUE : the condition is true, the associated action has been –– triggered –– IS_FALSE : the condition is false, the associated action has been –– triggered (only for the enable/disable conditions) –– IS_UNKNOWN : the condition has been set but has not yet been –– analysed (CONDITION_ITEM has not a valid value) –– –– ACTION : provide the description of the condition, i.e: –– – the sid of the item(s) for which the processing is to be –– enabled –– – the sid of the item for which a new limit set is to be set –– and the limit set number –– – the sid of an AP –– –– STATUS : the return status of the operation –– OK : operation successfull –– INVALID_TESTNODE_MODE : the test node is not in executing mode –– INVALID_PARAMETER : There is no (more) condition at the index –– CONDITION_NUMBER (see above note). –– INVALID_ITEM_NAME : CONDITION_ITEM is not managed locally. –– RUNTIME_ERROR : an unexpected error occurred

procedure GET_CONDITION (in CONDITION_ITEM : MONITOR_ITEM_NAME; in CONDITION_NUMBER : INTEGER; out CONDITION_REF : INTEGER; out CONDITION_CHECK : CONDITION; out CONDITION_VALUE : CONDITION_VAL; out SINGLE_SHOT : BOOLEAN; out STATE : CONDITION_STATE; out ACTION : ACTION_DESCRIPTION; out STATUS : UCL_RETURN); –– #79

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–– –– Pathname / PUS Parameter Number Translation ––

function PATH_FOR_PUS_PARAMETER_NUMBER

Page 373: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

364

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

(in PUS_PARAMETER_NUMBER: UNSIGNED_INTEGER): PATHNAME; –– #80 function PUS_PARAMETER_NUMBER (in ENDITEM_PATH: ENDITEM_WITH_RAW_VALUE):UNSIGNED_INTEGER; –– #81

–– Description –– Translates a Pathname to a PUS Parameter Number (as used for onboard reference) –– and vice versa. –– Parameter Number value is derived from the attribute associated with measurements –– in the MDB –– Note: functions will work only for enditems loaded to the local test node –– In case the PUS_PARAMETER_NUMBER is not known/found,PATH_FOR_PUS_PARAMETER_NUMBER –– will return the empty pathname ”\\” –– In case the ENDITEM_PATH is not known/found, a 0 is returned.

END GROUND_VALUES;

Page 374: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

365

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3 Interface Description

6.9.6.3.1 Decalibration Functions

6.9.6.3.1.1 GET_DECALIBRATED_INTEGER_VALUE_FOR_REALprocedure GET_DECALIBRATED_INTEGER_VALUE_FOR_REAL (in ITEM: FLOAT_ENDITEM; in ENG_VALUE: REAL; out RAW_VALUE: INTEGER; out STATUS: UCL_RETURN);

Description / ParametersReturns the raw value for an enditem by applying the (reverse) calibration curve defined for theenditem

Note: Measurements bear a calibration function, while stimuli (i.e. their parameter) bear a decalibrationfunction. Thus for measurements, the function specified in the MDB is converted to a decalibration functionand then applied. For stimuli, the function specified in the MDB is used to calculate RAW_VALUE from theENG_VALUE

ITEM : pathname of enditem (measurement or analog stimulus).

ENG_VALUE : the engineering value for which the raw value is to be calculated.

RAW_VALUE : the raw value of the enditem.

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleGET_DECALIBRATED_INTEGER_VALUE_FOR_REAL (\apm\power\current, 10.0, raw_value, stat);

6.9.6.3.1.2 GET_DECALIBRATED_UNSIGNED_VALUE_FOR_REALprocedure GET_DECALIBRATED_UNSIGNED_VALUE_FOR_REAL (in ITEM: FLOAT_ENDITEM; in ENG_VALUE: REAL; out RAW_VALUE: UNSIGNED_INTEGER; out STATUS: UCL_RETURN);

Description / ParametersReturns the raw value for an enditem by applying the (reverse) calibration curve defined for theenditem

Note: Measurements bear a calibration function, while stimuli (i.e. their parameter) bear a decalibrationfunction. Thus for measurements, the function specified in the MDB is converted to a decalibration functionand then applied. For stimuli, the function specified in the MDB is used to calculate RAW_VALUE from theENG_VALUE

ITEM : pathname of enditem (measurement or analog stimulus).

ENG_VALUE : the engineering value for which the raw value is to be calculated.

RAW_VALUE : the raw value of the enditem.

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleGET_DECALIBRATED_UNSIGNED_VALUE_FOR_REAL (\apm\power\current, 10.0, u_raw_value, stat);

Page 375: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

366

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.1.3 GET_DECALIBRATED_REAL_VALUE_FOR_REAL

procedure GET_DECALIBRATED_REAL_VALUE_FOR_REAL (in ITEM: FLOAT_ENDITEM; in ENG_VALUE: REAL; out RAW_VALUE: REAL; out STATUS: UCL_RETURN);

Description / ParametersReturns the raw value for an enditem by applying the (reverse) calibration curve defined for theenditem

Note: Measurements bear a calibration function, while stimuli (i.e. their parameter) bear a decalibrationfunction. Thus for measurements, the function specified in the MDB is converted to a decalibration functionand then applied. For stimuli, the function specified in the MDB is used to calculate RAW_VALUE from theENG_VALUE

ITEM : pathname of enditem (measurement or analog stimulus).

ENG_VALUE : the engineering value for which the raw value is to be calculated.

RAW_VALUE : the raw value of the enditem.

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleGET_DECALIBRATED_UNSIGNED_VALUE_FOR_REAL (\apm\power\current, 10.0, r_raw_value, stat);

6.9.6.3.1.4 GET_DECALIBRATED_INTEGER_VALUE_FOR_INTEGER

procedure GET_DECALIBRATED_INTEGER_VALUE_FOR_REAL (in ITEM: INTEGER_ENDITEM; in ENG_VALUE: INTEGER; out RAW_VALUE: INTEGER; out STATUS: UCL_RETURN);

Description / ParametersReturns the raw value for an enditem by applying the reverse calibration curve defined for the enditem

ITEM : pathname of enditem (measurement ).

ENG_VALUE : the engineering value for which the raw value is to be calculated.

RAW_VALUE : the raw value of the enditem.

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleGET_DECALIBRATED_INTEGER_VALUE_FOR_INTEGER (\apm\power\count, 20, raw_value, stat);

Page 376: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

367

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.1.5 GET_DECALIBRATED_UNSIGNED_VALUE_FOR_INTEGER

procedure GET_DECALIBRATED_UNSIGNED_VALUE_FOR_REAL (in ITEM: INTEGER_ENDITEM; in ENG_VALUE: INTEGER; out RAW_VALUE: UNSIGNED_INTEGER; out STATUS: UCL_RETURN);

Description / ParametersReturns the raw value for an enditem by applying the reverse calibration curve defined for the enditem

ITEM : pathname of enditem (measurement ).

ENG_VALUE : the engineering value for which the raw value is to be calculated.

RAW_VALUE : the raw value of the enditem.

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleGET_DECALIBRATED_UNSIGNED_VALUE_FOR_INTEGER (\apm\power\count, 20, u_raw_value, stat);

6.9.6.3.1.6 GET_DECALIBRATED_VALUE_FOR_STATECODE

procedure GET_DECALIBRATED_VALUE_FOR_STATECODE (in ITEM: DISCRETE_ENDITEM; in ENG_VALUE: STATECODE; out RAW_VALUE: UNSIGNED_INTEGER; out STATUS: UCL_RETURN);

Description / ParametersReturns the raw value for an enditem by applying the reverse calibration defined for the enditem

Note: Measurements bear a calibration function, while stimuli (i.e. their parameter) bear a decalibrationfunction. Thus for measurements, the function specified in the MDB is converted to a decalibration functionand then applied. For stimuli, the function specified in the MDB is used to calculate RAW_VALUE from theENG_VALUE

ITEM : pathname of enditem (discrete measurement or discrete stimulus).

ENG_VALUE : the engineering value for which the raw value is to be calculated.

RAW_VALUE : the raw value of the enditem.

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleGET_DECALIBRATED_VALUE_FOR_STATECODE (\apm\power\count, $OFF, u_raw_value, stat);

Page 377: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

368

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.2 Calibration Information for Measurements

6.9.6.3.2.1 SET_CALIBRATION_COEFFICIENT

procedure SET_CALIBRATION_COEFFICIENT –– for polynomial calibration (in ITEM: ENDITEM_WITH_RAW_VALUE; in COEFFICIENT_NUMBER: COEFFICIENT_RANGE; in COEFFICIENT_VALUE: REAL; out STATUS: UCL_RETURN);

Description / ParametersSets one polynomial coefficient for the calibration definition of an enditem Type of calibration is automatically changed to ”POLYNOM”

ITEM : pathname of enditem .

COEFFICIENT NUMBER : the index addressing the coefficient (1..5)

COEFFICIENT_VALUE : new value of the coefficient

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleSET_CALIBRATION_COEFFICIENT (\apm\power\current, 1, 3.33, stat);

6.9.6.3.2.2 SET_IDENTICAL_CALIBRATION

procedure SET_IDENTICAL_CALIBRATION (in ITEM: ENDITEM_WITH_RAW_VALUE; out STATUS: UCL_RETURN); –– #8

–– Description –– Sets the calibration definition of an enditem to ”IDENTICAL” –– i.e. polynom with (0.0,1.0,0.0,0.0,0.0) –– Type of calibration is automatically changed to ”POLYNOM” –– STATUS returns the UCL Return Code values as defined in the GROUND_LIBRARY –– OK : Identical Calibration applied –– CAL_ERROR : An exception occured when setting the new numberr –– ITEM_UNKNOWN : Enditem is not known on the executing node

Description / ParametersSets the calibration definition of an enditem to “IDENTICAL”, i.e. polynom with

(0.0,1.0,0.0,0.0,0.0)

Type of calibration is automatically changed to ”POLYNOM”

ITEM : pathname of enditem .

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleSET_IDENTICAL_CALIBRATION (\apm\power\current, stat);

Page 378: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

369

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.2.3 SET_CALIBRATION_POINT_PAIR

procedure SET_CALIBRATION_POINT_PAIR (in ITEM: ENDITEM_WITH_RAW_VALUE; in PAIR_NUMBER: POINT_PAIR_RANGE; in RAW_VALUE: LONG_REAL; in ENG_VALUE: LONG_REAL; out STATUS: UCL_RETURN);

Description / ParametersSets one point pair for the calibration definition of an enditemType of calibration is automatically changed to ”POINT_PAIRS”

ITEM : pathname of enditem .

PAIR_NUMBER : Number (index) of the point pair to be changed

RAW_VALUE : New raw value of the point pair

ENG_VALUE : New engineering value of the point pair

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleSET_CALIBRATION_POINT_PAIR (\apm\power\current, 1, 0.5, 17.0, stat);

6.9.6.3.2.4 SET_NUMBER_OF_CALIBRATION_POINT_PAIRS

procedure SET_NUMBER_OF_CALIBRATION_POINT_PAIRS (in ITEM: ENDITEM_WITH_RAW_VALUE; in PAIR_NUMBER: POINT_PAIR_RANGE; out STATUS: UCL_RETURN);

Description / ParametersSets the number of point pairs for the calibration definition of an enditemType of calibration is automatically changed to ”POINT_PAIRS”

ITEM : pathname of enditem .

PAIR_NUMBER : Number of the point pairs defined

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleSET_NUMBER_OF_CALIBRATION_POINT_PAIR (\apm\power\current, 15, stat);

Page 379: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

370

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.2.5 SET_STATE_CODE

procedure SET_STATE_CODE (in ITEM: DISCRETE_VALUE; in PAIR_NUMBER: STATECODE_PAIR_RANGE; in RAW_VALUE: UNSIGNED_INTEGER; in ENG_VALUE: STATECODE; out STATUS: UCL_RETURN);

Description / ParametersSets a new pair of values for the calibration definition of a discrete enditem

ITEM : pathname of enditem .

PAIR_NUMBER : Number (index) of the statecode pair

RAW_VALUE : New raw value of the state code pair

ENG_VALUE : New state code value of the state code pair

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleSET_STATE_CODE (\apm\power\status, 1, 0, $OFF, stat);

6.9.6.3.2.6 SET_NUMBER_OF_STATE_CODES

procedure SET_NUMBER_OF_STATE_CODES (in ITEM: DISCRETE_VALUE; in NUMBER_OF_CODES: STATECODE_PAIR_RANGE; out STATUS: UCL_RETURN);

Description / ParametersSets the number of statecode pairs for the calibration definition of a discrete enditem

ITEM : pathname of enditem .

PAIR_NUMBER : New actual number of entries of the statecode pair table

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleSET_NUMBER_OF_STATE_CODES (\apm\power\status, 31, stat);

Page 380: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

371

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.3 Value Status and other Attributes

6.9.6.3.3.1 GET_ACQUISITION_STATUS

procedure GET_ACQUISITION_STATUS (in ITEM: MONITOR_ITEM_NAME; out ENDITEM_ACQ_STATUS: ACQUISITION_STATUS; out STATUS: UCL_RETURN);

Description / ParametersReturns the current acquisition status for an enditem. This operation can be called locally on the testnode maintaining the enditem or remotely on another test node.

ITEM : pathname of enditem (measurement or software variable).

ENDITEM_ACQ_STATUS : returns the acquisition status of item.VALID: The enditem has been startet for acquisition and a value has been deliveredNOT_ACQ : The measurement has not been started for acquisitionNOT_RECVD : The measurement has been started for acquisition but no value has been received

up to nowNOT_MAINTAINED: The enditem is not maintained by any test nodeDISAB : The measurement / sw variable has been ”disabled” by a conditionINVALID : No valid value exists for the enditem, e.g. it could not be calibrated STATIC : The SAS has indicated that it currently cannot deliver the end–item

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleGET_ACQUISITION_STATUS (\apm\power\consumption, acq_status, stat);

IF acqu_status = VALID

then my_var := \apm\power\consumption;

END IF;

Page 381: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

372

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.3.2 GET_ACQUISITION_TIME (not yet implemented)

procedure GET_ACQUISITION_TIME (in ITEM: ENDITEM_WITH_ENG_VALUE; out TIME_TAG: TIME; out ENDITEM_ACQ_STATUS: ACQUISITION_STATUS; out STATUS: UCL_RETURN);

Description / ParametersGets the time of last value acquisition for an enditem together with thee acquisition status

ITEM : pathname of enditem .

TIME_TAG: Time of last acquisition / update

ENDITEM_ACQ_STATUS : returns the acquisition status of item.VALID: The enditem has been startet for acquisition and a value has been deliveredNOT_ACQ : The measurement has not been started for acquisitionNOT_RECVD : The measurement has been started for acquisition but no value has been received

up to nowNOT_MAINTAINED: The enditem is not maintained by any test nodeDISAB : The measurement / sw variable has been ”disabled” by a conditionINVALID : No valid value exists for the enditem, e.g. it could not be calibrated STATIC : The SAS has indicated that it currently cannot deliver the end–item

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleGET_ACQUISITION_TIME (\apm\power\status, LATEST_ACCESS, ACQU_STATUS, stat);

6.9.6.3.3.3 ACQUISITION_TIME (not yet implemented)

function ACQUISITION_TIME (in ITEM: ENDITEM_WITH_ENG_VALUE) : TIME;

Description / ParametersGets the time of last value acquisition for an enditem; Function is provided for usage in derived value expressions

ITEM : pathname of enditem .

ExampleLATEST_ACCESS := ACQUISITION_TIME (\apm\power\status);

Page 382: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

373

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.3.4 GET_RAW_TYPE

procedure GET_RAW_TYPE (in ITEM: ENDITEM_WITH_RAW_VALUE; out R_TYPE: RAW_VALUE_TYPE;

out STATUS: UCL_RETURN);

Description / ParametersGets the raw value type for an enditem;

ITEM : pathname of enditem .

R_TYPE : Raw value type of the enditem .

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleGET_RAW_TYPE (\apm\power\current, raw_type, stat);

6.9.6.3.3.5 GET_ENGINEERING_TYPE

procedure GET_ENGINEERING_TYPE (in ITEM: ENDITEM_WITH_ENG_VALUE; out E_TYPE: ENG_VALUE_TYPE;

out STATUS: UCL_RETURN);

Description / ParametersGets the engineering value type for an enditem;

ITEM : pathname of enditem .

E_TYPE : Engineering value type of the enditem .

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleGET_ENGINEERING_TYPE (\apm\power\current, eng_type, stat);

Page 383: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

374

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.3.6 GET_SAMPLE_COUNT (not yet implemented)

procedure GET_SAMPLE_COUNT (in ITEM: ENDITEM_WITH_ENG_VALUE; out COUNT: INTEGER; out ENDITEM_ACQ_STATUS: ACQUISITION_STATUS; out STATUS: UCL_RETURN);

Description / ParametersGets the sample count for an enditem, i.e. the number of times a value has been delivered for theenditem since start of acquisition

ITEM : pathname of enditem .

COUNT: Number of samples. returns 0 in case the enditem is not acquired.

ENDITEM_ACQ_STATUS : returns the acquisition status of item.VALID: The enditem has been startet for acquisition and a value has been deliveredNOT_ACQ : The measurement has not been started for acquisitionNOT_RECVD : The measurement has been started for acquisition but no value has been received

up to nowNOT_MAINTAINED: The enditem is not maintained by any test nodeDISAB : The measurement / sw variable has been ”disabled” by a conditionINVALID : No valid value exists for the enditem, e.g. it could not be calibrated STATIC : The SAS has indicated that it currently cannot deliver the end–item

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleGET_SAMPLE_COUNT (\apm\power\status, COUNT, ACQU_STATUS, stat);

6.9.6.3.3.7 SAMPLE_COUNT (not yet implemented)

function SAMPLE_COUNT (in ITEM: ENDITEM_WITH_ENG_VALUE) : INTEGER;

Description / ParametersGets the sample count for an enditem, i.e. the number of times a value has been delivered for theenditem since start of acquisition . returns 0 in case the enditem is not acquired.Function is provided for usage in derived value expressions

ITEM : pathname of enditem .

ExampleCOUNT := SAMPLE_COUNT (\apm\power\status, stat);

Page 384: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

375

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.4 Get Value together with Status

6.9.6.3.4.1 GET_INTEGER

procedure GET_INTEGER (in ITEM: INTEGER_MONITOR_ITEM_NAME; out VALUE: INTEGER; out TIME_TAG: TIME; out ENDITEM_ACQ_STATUS: ACQUISITION_STATUS; out STATUS: UCL_RETURN);

Description / ParametersReturns the current value for an integer enditem. This operation can be called locally on the test nodemaintaining the enditem or remotely on another test node.

ITEM : pathname of an integer enditem (measurement or software variable/derived value).

VALUE : the value of the enditem. In case the value is not VALID (see ENDITEM_ACQ_STATUS),the last valid value will be returned (or a default null value in case the value has never been set)

TIME_TAG : the time tag (local time) of the last value. In case the value is not VALID (see ENDI-TEM_ACQ_STATUS) the time tag of the last valid value will be returned (or a default null time in casethe value has never been set)

Note: the type of the returned TIME_TAG, either local time (LT) or Simulated Mission Time (SMT), depends on the value of DATA_PROCESSOR.MEASUREMENT_TIME_STAMP_IN_LT (to be defined via the TES configuration file $TES_HOME/config/TES_CONFIG_FILE)

ENDITEM_ACQ_STATUS : returns the acquisition status of item.VALID: The enditem has been startet for acquisition and a value has been deliveredNOT_ACQ : The measurement has not been started for acquisitionNOT_RECVD : The measurement has been started for acquisition but no value has been received

up to nowNOT_MAINTAINED: The enditem is not maintained by any test nodeDISAB : The measurement / sw variable has been ”disabled” by a conditionINVALID : No valid value exists for the enditem, e.g. it could not be calibrated STATIC : The SAS has indicated that it cannot deliver any more the end–item

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleGET_INTEGER (\apm\power\counter, int_value, time_tag, acq_status, stat);

Page 385: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

376

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.4.2 GET_UNSIGNED

procedure GET_INTEGER (in ITEM: UNSIGNED_MONITOR_ITEM_NAME; out VALUE: UNSIGNED_INTEGER; out TIME_TAG: TIME; out ENDITEM_ACQ_STATUS: ACQUISITION_STATUS; out STATUS: UCL_RETURN);

Description / ParametersReturns the current value for an integer enditem. This operation can be called locally on the test nodemaintaining the enditem or remotely on another test node.

ITEM : pathname of an unsigned integer enditem (measurement or software variable/derived value).

VALUE : the value of the enditem. In case the value is not VALID (see ENDITEM_ACQ_STATUS),the last valid value will be returned (or a default null value in case the value has never been set)

TIME_TAG : the time tag (local time) of the last value. In case the value is not VALID (see ENDI-TEM_ACQ_STATUS) the time tag of the last valid value will be returned (or a default null time in casethe value has never been set)

Note: the type of the returned TIME_TAG, either local time (LT) or Simulated Mission Time (SMT), depends on the value of DATA_PROCESSOR.MEASUREMENT_TIME_STAMP_IN_LT (to be defined via the TES configuration file $TES_HOME/config/TES_CONFIG_FILE)

ENDITEM_ACQ_STATUS : returns the acquisition status of item.VALID: The enditem has been startet for acquisition and a value has been deliveredNOT_ACQ : The measurement has not been started for acquisitionNOT_RECVD : The measurement has been started for acquisition but no value has been received

up to nowNOT_MAINTAINED: The enditem is not maintained by any test nodeDISAB : The measurement / sw variable has been ”disabled” by a conditionINVALID : No valid value exists for the enditem, e.g. it could not be calibrated STATIC : The SAS has indicated that it cannot deliver any more the end–item

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleGET_UNSIGNED (\apm\power\counter, int_value, time_tag, acq_status, stat);

Page 386: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

377

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.4.3 GET_FLOAT

procedure GET_FLOAT (in ITEM: FLOAT_MONITOR_ITEM_NAME; out VALUE: REAL; out TIME_TAG: TIME; out ENDITEM_ACQ_STATUS: ACQUISITION_STATUS; out STATUS: UCL_RETURN);

Description / ParametersReturns the current value for a float enditem. This operation can be called locally on the test nodemaintaining the enditem or remotely on another test node.

ITEM : pathname of a float enditem (measurement or software variable/derived value).

VALUE : the value of the enditem. In case the value is not VALID (see ENDITEM_ACQ_STATUS),the last valid value will be returned (or a default null value in case the value has never been set)

TIME_TAG : the time tag (local time) of the last value. In case the value is not VALID (see ENDI-TEM_ACQ_STATUS) the time tag of the last valid value will be returned (or a default null time in casethe value has never been set)

Note: the type of the returned TIME_TAG, either local time (LT) or Simulated Mission Time (SMT), depends on the value of DATA_PROCESSOR.MEASUREMENT_TIME_STAMP_IN_LT (to be defined via the TES configuration file $TES_HOME/config/TES_CONFIG_FILE)

ENDITEM_ACQ_STATUS : returns the acquisition status of item.VALID: The enditem has been startet for acquisition and a value has been deliveredNOT_ACQ : The measurement has not been started for acquisitionNOT_RECVD : The measurement has been started for acquisition but no value has been received

up to nowNOT_MAINTAINED: The enditem is not maintained by any test nodeDISAB : The measurement / sw variable has been ”disabled” by a conditionINVALID : No valid value exists for the enditem, e.g. it could not be calibrated STATIC : The SAS has indicated that it cannot deliver any more the end–item

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleGET_float (\apm\power\consumption, flt_value, time_tag, acq_status, stat);

Page 387: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

378

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.4.4 GET_DOUBLE_FLOAT

procedure GET_FLOAT (in ITEM: DOUBLE_FLOAT_MONITOR_ITEM_NAME; out VALUE: LONG_REAL; out TIME_TAG: TIME; out ENDITEM_ACQ_STATUS: ACQUISITION_STATUS; out STATUS: UCL_RETURN);

Description / ParametersReturns the current value for a float enditem. This operation can be called locally on the test nodemaintaining the enditem or remotely on another test node.

ITEM : pathname of a double float enditem (measurement or software variable/derived value).

VALUE : the value of the enditem. In case the value is not VALID (see ENDITEM_ACQ_STATUS),the last valid value will be returned (or a default null value in case the value has never been set)

TIME_TAG : the time tag (local time) of the last value. In case the value is not VALID (see ENDI-TEM_ACQ_STATUS) the time tag of the last valid value will be returned (or a default null time in casethe value has never been set)

Note: the type of the returned TIME_TAG, either local time (LT) or Simulated Mission Time (SMT), depends on the value of DATA_PROCESSOR.MEASUREMENT_TIME_STAMP_IN_LT (to be defined via the TES configuration file $TES_HOME/config/TES_CONFIG_FILE)

ENDITEM_ACQ_STATUS : returns the acquisition status of item.VALID: The enditem has been startet for acquisition and a value has been deliveredNOT_ACQ : The measurement has not been started for acquisitionNOT_RECVD : The measurement has been started for acquisition but no value has been received

up to nowNOT_MAINTAINED: The enditem is not maintained by any test nodeDISAB : The measurement / sw variable has been ”disabled” by a conditionINVALID : No valid value exists for the enditem, e.g. it could not be calibrated STATIC : The SAS has indicated that it cannot deliver any more the end–item

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleGET_float (\apm\power\consumption, flt_value, time_tag, acq_status, stat);

Page 388: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

379

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.4.5 GET_STATECODE

procedure GET_STATE_CODE (in ITEM: DISCRETE_MONITOR_ITEM_NAME; out VALUE: STATECODE; out TIME_TAG: TIME; out ENDITEM_ACQ_STATUS: ACQUISITION_STATUS; out STATUS: UCL_RETURN);

Description / ParametersReturns the current value for a discrete enditem. This operation can be called locally on the test nodemaintaining the enditem or remotely on another test node.

ITEM : pathname of a discrete enditem (measurement or software variable/derived value).

VALUE : the value of the enditem. In case the value is not VALID (see ENDITEM_ACQ_STATUS),the last valid value will be returned (or a default null value in case the value has never been set)

TIME_TAG : the time tag (local time) of the last value. In case the value is not VALID (see ENDI-TEM_ACQ_STATUS) the time tag of the last valid value will be returned (or a default null time in casethe value has never been set)

Note: the type of the returned TIME_TAG, either local time (LT) or Simulated Mission Time (SMT), depends on the value of DATA_PROCESSOR.MEASUREMENT_TIME_STAMP_IN_LT (to be defined via the TES configuration file $TES_HOME/config/TES_CONFIG_FILE)

ENDITEM_ACQ_STATUS : returns the acquisition status of item.VALID: The enditem has been startet for acquisition and a value has been deliveredNOT_ACQ : The measurement has not been started for acquisitionNOT_RECVD : The measurement has been started for acquisition but no value has been received

up to nowNOT_MAINTAINED: The enditem is not maintained by any test nodeDISAB : The measurement / sw variable has been ”disabled” by a conditionINVALID : No valid value exists for the enditem, e.g. it could not be calibratedSTATIC : The SAS has indicated that it cannot deliver any more the end–item

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleGET_STATECODE (\apm\power\status, disc_value, time_tag, acq_status, stat);

Page 389: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

380

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.4.6 GET_BYTE_STREAM

procedure GET_BYTE_STREAM (in ITEM: BYTE_STREAM_MONITOR_ITEM_NAME; out VALUE: STRING; out TIME_TAG: TIME; out ENDITEM_ACQ_STATUS: ACQUISITION_STATUS; out STATUS: UCL_RETURN);

Description / ParametersReturns the current value for a byte stream enditem. This operation can be called locally on the testnode maintaining the enditem or remotely on another test node.

ITEM : pathname of a byte–stream enditem (measurement or software variable/derived value).

VALUE : the value of the enditem. In case the value is not VALID (see ENDITEM_ACQ_STATUS),the last valid value will be returned (or a default null value in case the value has never been set). Ifthe string given is not large enough, the value is truncated.

TIME_TAG : the time tag (local time) of the last value. In case the value is not VALID (see ENDI-TEM_ACQ_STATUS) the time tag of the last valid value will be returned (or a default null time in casethe value has never been set)

Note: the type of the returned TIME_TAG, either local time (LT) or Simulated Mission Time (SMT), depends on the value of DATA_PROCESSOR.MEASUREMENT_TIME_STAMP_IN_LT (to be defined via the TES configuration file $TES_HOME/config/TES_CONFIG_FILE)

ENDITEM_ACQ_STATUS : returns the acquisition status of item.VALID: The enditem has been startet for acquisition and a value has been deliveredNOT_ACQ : The measurement has not been started for acquisitionNOT_RECVD : The measurement has been started for acquisition but no value has been received

up to nowNOT_MAINTAINED: The enditem is not maintained by any test nodeDISAB : The measurement / sw variable has been ”disabled” by a conditionINVALID : No valid value exists for the enditem, e.g. it could not be calibratedSTATIC : The SAS has indicated that it cannot deliver any more the end–item

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleGET_BYTE_STREAM (\apm\power\message, str_value, time_tag, acq_status, stat);

Page 390: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

381

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.4.7 GET_INTEGER_RAW_VALUE

procedure GET_INTEGER_RAW_VALUE (in ITEM: ENDITEM_WITH_SIGNED_RAW_VALUE; out VALUE: INTEGER; out TIME_TAG: TIME; out ENDITEM_ACQ_STATUS: ACQU_STATUS; out STATUS: UCL_RETURN);

Description / ParametersReturns the current raw value for an enditem having a raw value of type integer. This operation can becalled locally on the test node maintaining the enditem or remotely on another test node.

ITEM : pathname of enditem (measurement ).

VALUE : the raw value of the enditem. In case the value is not VALID (see ENDITEM_ACQ_STATUS),the last valid value will be returned (or a default null value in case the value has never been set)

TIME_TAG : the time tag (local time) of the last value. In case the value is not VALID (see ENDI-TEM_ACQ_STATUS) the time tag of the last valid value will be returned (or a default null time in casethe value has never been set)

Note: the type of the returned TIME_TAG, either local time (LT) or Simulated Mission Time (SMT), depends on the value of DATA_PROCESSOR.MEASUREMENT_TIME_STAMP_IN_LT (to be defined via the TES configuration file $TES_HOME/config/TES_CONFIG_FILE)

ENDITEM_ACQ_STATUS : returns the acquisition status of item.VALID: The enditem has been startet for acquisition and a value has been deliveredNOT_ACQ : The measurement has not been started for acquisitionNOT_RECVD : The measurement has been started for acquisition but no value has been received

up to nowNOT_MAINTAINED: The enditem is not maintained by any test nodeDISAB : The measurement has been ”disabled” by a conditionINVALID : No valid value exists for the enditem, e.g. it could not be calibrated STATIC : The SAS has indicated that it cannot deliver any more the end–item

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleGET_INTEGER_RAW_VALUE (\apm\power\counter, int_value, time_tag, acq_status, stat);

6.9.6.3.4.8 INTEGER_RAW_VALUEfunction INTEGER_RAW_VALUE (in ITEM: ENDITEM_WITH_SIGNED_RAW_VALUE) : INTEGER;

Description / ParametersReturns the current raw value for an enditem having a raw value of type integer. This operation can becalled locally on the test node maintaining the enditem or remotely on another test node.

ITEM : pathname of enditem (measurement ).

ExampleMY_INTEGER := INTEGER_RAW_VALUE (\apm\power\counter);

Page 391: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

382

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.4.9 GET_UNSIGNED_RAW_VALUEprocedure GET_UNSIGNED_RAW_VALUE (in ITEM: ENDITEM_WITH_UNSIGNED_RAW_VALUE; out VALUE: UNSIGNED_INTEGER; out TIME_TAG: TIME; out ENDITEM_ACQ_STATUS: ACQU_STATUS; out STATUS: UCL_RETURN);

Description / ParametersReturns the current raw value for an enditem having a raw value of type unsigned integer. Thisoperation can be called locally on the test node maintaining the enditem or remotely on another testnode.

ITEM : pathname of enditem (measurement ).

VALUE : the raw value of the enditem. In case the value is not VALID (see ENDITEM_ACQ_STATUS),the last valid value will be returned (or a default null value in case the value has never been set)

TIME_TAG : the time tag (local time) of the last value. In case the value is not VALID (see ENDI-TEM_ACQ_STATUS) the time tag of the last valid value will be returned (or a default null time in casethe value has never been set)

Note: the type of the returned TIME_TAG, either local time (LT) or Simulated Mission Time (SMT), depends on the value of DATA_PROCESSOR.MEASUREMENT_TIME_STAMP_IN_LT (to be defined via the TES configuration file $TES_HOME/config/TES_CONFIG_FILE)

ENDITEM_ACQ_STATUS : returns the acquisition status of item.VALID: The enditem has been startet for acquisition and a value has been deliveredNOT_ACQ : The measurement has not been started for acquisitionNOT_RECVD : The measurement has been started for acquisition but no value has been received

up to nowNOT_MAINTAINED: The enditem is not maintained by any test nodeDISAB : The measurement has been ”disabled” by a conditionINVALID : No valid value exists for the enditem, e.g. it could not be calibrated STATIC : The SAS has indicated that it cannot deliver any more the end–item

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleGET_UNSIGNED_RAW_VALUE (\apm\power\count, u_int_value, time_tag, acq_status, stat);

6.9.6.3.4.10 UNSIGNED_RAW_VALUEfunction UNSIGNED_RAW_VALUE (in ITEM: ENDITEM_WITH_UNSIGNED_RAW_VALUE) : UNSIGNED_INTEGER;

Description / ParametersReturns the current raw value for an enditem having a raw value of type integer. This operation can becalled locally on the test node maintaining the enditem or remotely on another test node.

ITEM : pathname of enditem (measurement ).

ExampleMY_COUNT := UNSIGNED_RAW_VALUE (\apm\power\counter);

Page 392: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

383

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.4.11 GET_FLOAT_RAW_VALUE

procedure GET_FLOAT_RAW_VALUE (in ITEM: ENDITEM_WITH_FLOAT_RAW_VALUE; out VALUE: REAL; out TIME_TAG: TIME; out ENDITEM_ACQ_STATUS: ACQU_STATUS; out STATUS: UCL_RETURN);

Description / ParametersReturns the current raw value for an enditem having a raw value of type FLOAT. This operation can becalled locally on the test node maintaining the enditem or remotely on another test node.

ITEM : pathname of enditem (measurement ).

VALUE : the raw value of the enditem. In case the value is not VALID (see ENDITEM_ACQ_STATUS),the last valid value will be returned (or a default null value in case the value has never been set)

TIME_TAG : the time tag (local time) of the last value. In case the value is not VALID (see ENDI-TEM_ACQ_STATUS) the time tag of the last valid value will be returned (or a default null time in casethe value has never been set)

Note: the type of the returned TIME_TAG, either local time (LT) or Simulated Mission Time (SMT), depends on the value of DATA_PROCESSOR.MEASUREMENT_TIME_STAMP_IN_LT (to be defined via the TES configuration file $TES_HOME/config/TES_CONFIG_FILE)

ENDITEM_ACQ_STATUS : returns the acquisition status of item.VALID: The enditem has been startet for acquisition and a value has been deliveredNOT_ACQ : The measurement has not been started for acquisitionNOT_RECVD : The measurement has been started for acquisition but no value has been receivedyetNOT_MAINTAINED: The enditem is not maintained by any test nodeDISAB : The measurement has been ”disabled” by a conditionINVALID : No valid value exists for the enditem, e.g. it could not be calibrated STATIC : The SAS has indicated that it cannot deliver any more the end–item

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleGET_FLOAT_RAW_VALUE (\apm\power\current, flt_value, time_tag, acq_status, stat);

6.9.6.3.4.12 FLOAT_RAW_VALUEfunction FLOAT_RAW_VALUE (in ITEM: ENDITEM_WITH_FLOAT_RAW_VALUE) : REAL;

Description / ParametersReturns the current raw value for an enditem having a raw value of type integer. This operation can becalled locally on the test node maintaining the enditem or remotely on another test node.

ITEM : pathname of enditem (measurement ).

ExampleMY_FLOAT := FLOAT_RAW_VALUE (\apm\power\current);

Page 393: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

384

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.4.13 GET_DOUBLE_FLOAT_RAW_VALUE

procedure GET_FLOAT_RAW_VALUE (in ITEM: ENDITEM_WITH_DOUBLE_FLOAT_RAW_VALUE; out VALUE: LONG_REAL; out TIME_TAG: TIME; out ENDITEM_ACQ_STATUS: ACQU_STATUS; out STATUS: UCL_RETURN);

Description / ParametersReturns the current raw value for an enditem having a raw value of type DOUBLE_FLOAT. Thisoperation can be called locally on the test node maintaining the enditem or remotely on another testnode.

ITEM : pathname of enditem (measurement ).

VALUE : the raw value of the enditem. In case the value is not VALID (see ENDITEM_ACQ_STATUS),the last valid value will be returned (or a default null value in case the value has never been set)

TIME_TAG : the time tag (local time) of the last value. In case the value is not VALID (see ENDI-TEM_ACQ_STATUS) the time tag of the last valid value will be returned (or a default null time in casethe value has never been set)

Note: the type of the returned TIME_TAG, either local time (LT) or Simulated Mission Time (SMT), depends on the value of DATA_PROCESSOR.MEASUREMENT_TIME_STAMP_IN_LT (to be defined via the TES configuration file $TES_HOME/config/TES_CONFIG_FILE)

ENDITEM_ACQ_STATUS : returns the acquisition status of item.VALID: The enditem has been startet for acquisition and a value has been deliveredNOT_ACQ : The measurement has not been started for acquisitionNOT_RECVD : The measurement has been started for acquisition but no value has been received

up to nowNOT_MAINTAINED: The enditem is not maintained by any test nodeDISAB : The measurement has been ”disabled” by a conditionINVALID : No valid value exists for the enditem, e.g. it could not be calibrated STATIC : The SAS has indicated that it cannot deliver any more the end–item

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleGET_DOUBLE_FLOAT_RAW_VALUE (\apm\navig\position, dflt_value, tt, acq_status, stat);

6.9.6.3.4.14 DOUBLE_FLOAT_RAW_VALUEfunction FLOAT_RAW_VALUE (in ITEM: ENDITEM_WITH_DOUBLE_FLOAT_RAW_VALUE) : LONG_REAL;

Description / ParametersReturns the current raw value for an enditem having a raw value of type integer. This operation can becalled locally on the test node maintaining the enditem or remotely on another test node.

ITEM : pathname of enditem (measurement ).

ExampleMY_D_FLOAT := DOUBLE_FLOAT_RAW_VALUE (\apm\power\current);

Page 394: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

385

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.4.15 GET_BYTE_STREAM_RAW_VALUE

procedure GET_BYTE_STREAM_RAW_VALUE (in ITEM: ENDITEM_WITH_BYTESTREAM_RAW_VALUE; out VALUE: BYTE_ARRAY; out NO_OF_BYTES: INTEGER; out TIME_TAG: TIME; out ENDITEM_ACQ_STATUS: ACQUISITION_STATUS; out STATUS: UCL_RETURN);

Description / ParametersReturns the current raw value for an enditem having a raw value of type BYTE_STREAM. Thisoperation can be called locally on the test node maintaining the enditem or remotely on another testnode.

ITEM : pathname of enditem (measurement ).

VALUE : the raw value of the enditem. In case the value is not VALID (see ENDITEM_ACQ_STATUS),the last valid value will be returned (or a default null value in case the value has never been set)

NO_OF_BYTES : the number of bytes for the raw value of the enditem.

TIME_TAG : the time tag (local time) of the last value. In case the value is not VALID (see ENDI-TEM_ACQ_STATUS) the time tag of the last valid value will be returned (or a default null time in casethe value has never been set)

Note: the type of the returned TIME_TAG, either local time (LT) or Simulated Mission Time (SMT), depends on the value of DATA_PROCESSOR.MEASUREMENT_TIME_STAMP_IN_LT (to be defined via the TES configuration file $TES_HOME/config/TES_CONFIG_FILE)

ENDITEM_ACQ_STATUS : returns the acquisition status of item.VALID: The enditem has been startet for acquisition and a value has been deliveredNOT_ACQ : The measurement has not been started for acquisitionNOT_RECVD : The measurement has been started for acquisition but no value has been received

up to nowNOT_MAINTAINED: The enditem is not maintained by any test nodeDISAB : The measurement has been ”disabled” by a conditionINVALID : No valid value exists for the enditem, e.g. it could not be calibrated STATIC : The SAS has indicated that it cannot deliver any more the end–item

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleGET_BYTE_STREAM_RAW_VALUE (\apm\navig\position, byte_arr, number, tt, acq_status, stat);

Page 395: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

386

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.5 Monitoring

6.9.6.3.5.1 ENABLE_MONITORING

Specificationprocedure ENABLE_MONITORING

(in ITEM: MONITOR_COLLECTION;in LIMIT_SET: LIMIT_SET_NUMBER : = DEFAULT_LIMIT_SET;in ADU: ADU_NAME := \\;out STATUS: UCL_RETURN);

Description / ParametersEnables monitoring of enditem(s).

ITEM : The item to be enabled, which can be

– a single enditem of type MEASUREMENT or SW variable;

– a incomplete pathname pointing to a virtual node, thus enabling all MEASUREMENTs or SW variablesin that subtree;

– a monitor list, thus enabling all items in that list.

LIMIT_SET (optional) : the limit set to be used. In case the value is not given or the value given isDEFAULT_LIMIT_SET (0), the selected limit set will be the currently selected limit set. Upon loadingof the database, the selected limit set is the limit set 1. This can be changed by calling the operationSET_LIMIT_SET.

ADU (optional) : the ADU Descriptor to be applied. If ITEM is already acquired, this parameter willbe ignored. If there is only one ADU Description defined for ITEM, the parameter may be omitted. Ifmore than one is defined and the parameter is omitted, the command enables monitoring by startingacquisition for all.

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleENABLE_MONITORING (\apm\dms, 1, stat);

6.9.6.3.5.2 DISABLE_MONITORING

Specificationprocedure DISABLE_MONITORING

(in ITEM: MONITOR_COLLECTION; out STATUS: UCL_RETURN);

Description / ParametersDisables monitoring of enditems.

ITEM : The item to be disabled, which can be

– a single enditem of type MEASUREMENT or SW variable;

– a incomplete pathname pointing to a virtual node, thus enabling all MEASUREMENTs or SW variablesin that subtree;

– a monitor list, thus disabling all items in that list.

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleDISABLE_MONITORING (\apm\dms, stat);

Page 396: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

387

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.5.3 SET_HIGH_LIMIT

Specificationprocedure SET_HIGH_LIMIT

(in ITEM: ANALOG_MONITOR_ITEM_NAME;in LIMIT: REAL;out STATUS: UCL_RETURN);

Description / ParametersChanges the soft high limit of an enditem in the currently selected limit set. If the item is an integermeasurement or integer SW variable, LIMIT is rounded to the nearest integer.

ITEM : name of item to have its limit changed.

LIMIT : value to set high limit to.

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleSET_HIGH_LIMIT (\apm\dms\cpu_load, 80.0, stat);

6.9.6.3.5.4 SET_INTEGER_HIGH_LIMIT

Specificationprocedure SET_INTEGER_HIGH_LIMIT

(in ITEM: INTEGER_MONITOR_ITEM_NAME;in LIMIT: INTEGER;out STATUS: UCL_RETURN)

Description / ParametersChanges the soft high limit of an integer enditem (measurement or software variable) in the currentlyselected limit set.

ITEM : name of item to have its limit changed.

LIMIT : value to set high limit to.

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleSET_INTEGER_HIGH_LIMIT (\apm\dms\counter, 80, stat);

Page 397: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

388

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.5.5 SET_UNSIGNED_HIGH_LIMIT

Specificationprocedure SET_UNSIGNED_HIGH_LIMIT

(in ITEM: UNSIGNED_MONITOR_ITEM_NAME;in LIMIT: UNSIGNED_INTEGER;out STATUS: UCL_RETURN)

Description / ParametersChanges the soft high limit of an unsigned_integer enditem (measurement or software variable) in thecurrently selected limit set.

ITEM : name of item to have its limit changed.

LIMIT : value to set high limit to.

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleSET_UNSIGNED_HIGH_LIMIT (\apm\xy\counter, max(unsigned_value), stat);

6.9.6.3.5.6 SET_DOUBLE_FLOAT_HIGH_LIMIT

Specificationprocedure SET_DOUBLE_FLOAT_HIGH_LIMIT

(in ITEM: DOUBLE_FLOAT_MONITOR_ITEM_NAME;in LIMIT: LONG_REAL;out STATUS: UCL_RETURN)

Description / ParametersChanges the soft high limit of an DOUBLE_FLOAT enditem (measurement or software variable) in thecurrently selected limit set.

ITEM : name of item to have its limit changed.

LIMIT : value to set high limit to.

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleSET_DOUBLE_FLOAT_HIGH_LIMIT (\apm\xy\high_precision, 123456.334, stat);

Page 398: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

389

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.5.7 SET_LOW_LIMIT

Specificationprocedure SET_LOW_LIMIT

(in ITEM: ANALOG_MONITOR_ITEM_NAME;in LIMIT: REAL;out STATUS: UCL_RETURN);

Description / ParametersChanges the soft low limit of an enditem in the currently selected limit set. If the item is an integermeasurement or integer SW variable, LIMIT is rounded to the nearest integer.

ITEM : name of item to have its limit changed.

LIMIT : value to set low limit to.

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleSET_LOW_LIMIT (\apm\dms\cpu_load, 10.0, stat);

6.9.6.3.5.8 SET_INTEGER_LOW_LIMIT

Specification;procedure SET_INTEGER_LOW_LIMIT

(in ITEM: INTEGER_MONITOR_ITEM_NAME;in LIMIT: INTEGER;out STATUS: UCL_RETURN)

Description / ParametersChanges the soft low limit of an integer enditem (measurement or software variable) in the currentlyselected limit set.

ITEM : name of item to have its limit changed.

LIMIT : value to set high limit to.

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleSET_INTEGER_LOW_LIMIT (\apm\dms\counter, 20, stat);

Page 399: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

390

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.5.9 SET_UNSIGNED_LOW_LIMIT

Specificationprocedure SET_UNSIGNED_LOW_LIMIT

(in ITEM: UNSIGNED_MONITOR_ITEM_NAME;in LIMIT: UNSIGNED_INTEGER;out STATUS: UCL_RETURN)

Description / ParametersChanges the soft low limit of an unsigned_integer enditem (measurement or software variable) in thecurrently selected limit set.

ITEM : name of item to have its limit changed.

LIMIT : value to set low limit to.

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleSET_UNSIGNED_LOW_LIMIT (\apm\xy\counter, min(unsigned_value), stat);

6.9.6.3.5.10 SET_DOUBLE_FLOAT_LOW_LIMIT

Specificationprocedure SET_DOUBLE_FLOAT_LOW_LIMIT

(in ITEM: DOUBLE_FLOAT_MONITOR_ITEM_NAME;in LIMIT: LONG_REAL;out STATUS: UCL_RETURN)

Description / ParametersChanges the soft low limit of an DOUBLE_FLOAT enditem (measurement or software variable) in thecurrently selected limit set.

ITEM : name of item to have its limit changed.

LIMIT : value to set low limit to.

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleSET_DOUBLE_FLOAT_LOW_LIMIT (\apm\xy\high_precision, 456.334, stat);

Page 400: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

391

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.5.11 SET_DELTA_LIMIT

Specificationprocedure SET_DELTA_LIMIT

(in ITEM: ANALOG_MONITOR_ITEM_NAME;in LIMIT: REAL;out STATUS: UCL_RETURN);

Description / ParametersChanges the soft delta limit of an enditem in the currently selected limit set. If the item is an integermeasurement or integer SW variable, LIMIT is rounded to the nearest integer.

ITEM : name of item to have its limit changed.

LIMIT : value to set delta limit to.

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleSET_DELTA_LIMIT (\apm\dms\cpu_load, 20.0, stat);

6.9.6.3.5.12 SET_INTEGER_DELTA_LIMIT

Specification;procedure SET_INTEGER_DELTA_LIMIT

(in ITEM: INTEGER_MONITOR_ITEM_NAME;in LIMIT: INTEGER;out STATUS: UCL_RETURN)

Description / ParametersChanges the soft delta limit of an integer enditem (measurement or software variable) in the currentlyselected limit set.

ITEM : name of item to have its limit changed.

LIMIT : value to set delta limit to.

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleSET_INTEGER_DELTA_LIMIT (\apm\dms\counter, 10, stat);

Page 401: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

392

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.5.13 SET_UNSIGNED_DELTA_LIMIT

Specificationprocedure SET_UNSIGNED_DELTA_LIMIT

(in ITEM: UNSIGNED_MONITOR_ITEM_NAME;in LIMIT: UNSIGNED_INTEGER;out STATUS: UCL_RETURN)

Description / ParametersChanges the delta limit of an unsigned_integer enditem (measurement or software variable) in thecurrently selected limit set.

ITEM : name of item to have its limit changed.

LIMIT : value to set delta limit to.

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleSET_UNSIGNED_DELTA_LIMIT (\apm\xy\counter, 14, stat);

6.9.6.3.5.14 SET_DOUBLE_FLOAT_DELTA_LIMIT

Specificationprocedure SET_DOUBLE_FLOAT_DELTA_LIMIT

(in ITEM: DOUBLE_FLOAT_MONITOR_ITEM_NAME;in LIMIT: LONG_REAL;out STATUS: UCL_RETURN)

Description / ParametersChanges the soft delta limit of an DOUBLE_FLOAT enditem (measurement or software variable) in thecurrently selected limit set.

ITEM : name of item to have its limit changed.

LIMIT : value to set delta limit to.

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleSET_DOUBLE_FLOAT_DELTA_LIMIT (\apm\xy\high_precision, 6.334, stat);

Page 402: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

393

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.5.15 SET_EXCEPTION_COUNT

Specificationprocedure SET_EXCEPTION_COUNT

(in ITEM: MONITOR_ITEM_NAME;in N_COUNT: INTEGER;out STATUS: UCL_RETURN);

Description / ParametersChanges the exception count value of a measurement or SW variable.

ITEM : name of item to have its exception count changed.

N_COUNT : integer value to set exception count to.

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleSET_EXCEPTION_COUNT (\apm\dms\status, 5, stat);

6.9.6.3.5.16 SET_EXPECTED_STATE

Specificationprocedure SET_EXPECTED_STATE

(in ITEM: DISCRETE_MONITOR_ITEM_NAME;in STATE: STATECODE;out STATUS: UCL_RETURN);

Description / ParametersChanges the expected state of a discrete measurement or SW variable.

ITEM : name of item to have its expected state changed.

STATE : state code for desired expected state of item.

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleSET_EXPECTED_STATE (\apm\dms\status, $OFF, stat);

6.9.6.3.5.17 SET_EXPECTED_VALUE

Specificationprocedure SET_EXPECTED_VALUE

(in ITEM: BYTE_STREAM_MONITOR_ITEM_NAME;in VALUE: STRING;out STATUS: UCL_RETURN);

Description / ParametersChanges the expected value of a byte stream measurement or SW variable.

ITEM : name of item to have its expected value changed.

VALUE : string containing desired expected value of item.

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleSET_EXPECTED_VALUE (\apm\dms\message, ”Hallo ESA”, stat);

Page 403: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

394

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.5.18 SET_LIMIT_SET

Specificationprocedure SET_LIMIT_SET

(in ITEM: MONITOR_COLLECTION;in LIMIT_SET: LIMIT_SET_NUMBER;out STATUS: UCL_RETURN)

Description / ParametersChanges the current limit_set of a measurement or SW variable. Any old or other limit set is 'switched

off' and the newly selected one is used hereafter. In case a virtual path is specified, all measurements,

SW variables or derived values under this path get the new limit set number. For items, where the new

limit set is not defined, no change is made. The same applies to monitoring lists.

ITEM : path name of item to have its limit set changed.

LIMIT_SET : identifier of the desired limit set. Its value must be between 1 and the number of limitsdefined for ITEM.

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleSET_LIMIT_SET (\apm\dms\memory_pages, 4, stat);

6.9.6.3.5.19 GET_ENDITEM_MONITOR_STATUS

Specificationprocedure GET_ENDITEM_MONITOR_STATUS

(in ITEM: MONITOR_ITEM_NAME;out MONITORING_STATUS: MONITOR_STATUS;out STATUS: UCL_RETURN);

Description / ParametersReturns the current monitoring status for an enditem.

ITEM : name of enditem to monitor.

MONITORING_STATUS : returns monitoring status of Item.

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleGET_ENDITEM_MONITOR_STATUS (\apm\power\consumption, enditem_status, stat);

Page 404: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

395

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.5.20 GET_FULL_ENDITEM_MONITOR_STATUS

Specificationprocedure GET_FULL_ENDITEM_MONITOR_STATUS

(in ITEM: MONITOR_ITEM_NAME; out MONITORING_STATUS: FULL_MONITOR_STATUS; out STATUS: UCL_RETURN);

Description / ParametersReturns the current monitoring status and monitoring values for an enditem.

ITEM : pathname of enditem to monitor.

MONITOR_STATUS : returns the detailed monitoring status record of Item, containing alternativevariants depending on the item type and whether a limit set is defined (see the definition of typeFULL_MONITOR_STATUS.)

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleGET_FULL_ENDITEM MONITOR_STATUS (\apm\power\consumption, monitor_status, stat);

6.9.6.3.5.21 GET_MONITORING_CLASS

Specificationprocedure GET_MONITORING_CLASS

(in ENDITEM: MONITOR_ITEM_NAME; out CLASS: MONITOR_ITEM_CLASS; out STATUS: UCL_RETURN);

Description / ParametersReturns the monitoring class (numeric/discrete/bytestream) for an enditem.

ITEM : pathname of enditem to monitor.

MONITORING_CLASS : returns the enumeration describing the monitoring class

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleGET_MONITORING_CLASS (\apm\power\consumption, monitor_class, stat);

Page 405: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

396

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.6 Engineering Value Logging

6.9.6.3.6.1 ENABLE_EVL

Specificationprocedure ENABLE_EVL

(in ITEM: MONITOR_COLLECTION;out STATUS: UCL_RETURN);

Description / ParametersEnables engineering value logging (EVL).

ITEM : name of enditem(s) to be enabled.

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleENABLE_EVL (\apm\power_scoe\current_sensors, stat);

6.9.6.3.6.2 DISABLE_EVL

Specificationprocedure DISABLE_EVL

(in ITEM: MONITOR_COLLECTION;out STATUS: UCL_RETURN);

Description / ParametersDisables engineering value logging. If the specified enditems are already disabled for EVL, has noeffect.

ITEM : name of enditem(s) to be enabled.

STATUS : returns an integer, the UCL return status (see CONSTANTS) .

ExampleDISABLE_EVL (\apm\power_scoe\current_sensors, stat);

Page 406: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

397

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.7 Conditions

6.9.6.3.7.1 ENABLE_CONDITIONS

Specificationprocedure ENABLE_CONDITIONS (in ITEM: ACQUISITION_COLLECTION; out STATUS: UCL_RETURN);

Description / Parameters Enable condition for a specific measurement/software variable/derived value or for all enditems undera virtual tree/CDU or for all enditems within a monitor list or for all measurements within an ADU.Enables all conditions of the given enditems.If acquisition is not enabled for ITEM, it will be automatically started

ITEM: The measurement(s) or software variable(s) carrying the conditions.

STATUS : the return status of the operation –– OK : operation successfull –– INVALID_TESTNODE_MODE : the test node is not in executing mode –– INVALID_ITEM_NAME : ITEM is not managed locally –– RUNTIME_ERROR : an unexpected error occurred

ExampleENABLE_CONDITIONS (\APM\mmu2, stat);

6.9.6.3.7.2 DISABLE_CONDITIONS

Specificationprocedure DISABLE_CONDITIONS (in ITEM: ACQUISITION_COLLECTION; out STATUS: UCL_RETURN);

Description / Parameters Disable condition(s) for a specific measurement/software variable/derived value or for all enditemsunder a virtual tree/CDU or for all enditems within a monitor list or for all measurements within an ADU.Disables all conditions of the given enditemsWhen disabled, the conditions are still existing, and may be re–enabled via Enable_Conditions

ITEM: The measurement(s) or software variable(s) carrying the condition.

STATUS : the return status of the operation –– OK : operation successfull –– INVALID_TESTNODE_MODE : the test node is not in executing mode –– INVALID_ITEM_NAME : ITEM is not managed locally –– RUNTIME_ERROR : an unexpected error occurred

ExampleDISABLE_CONDITIONS (\APM\mmu2, stat);

Page 407: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

398

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.7.3 ENABLE_ON_INTEGER

Specificationprocedure ENABLE_ON_INTEGER (in ITEM : ACQUISITION_COLLECTION; in CONDITION_ITEM : INTEGER_MONITOR_ITEM_NAME; in CONDITION_CHECK : CONDITION; in CONDITION_VALUE : INTEGER; in SINGLE_SHOT : BOOLEAN; out CONDITION_REF : INTEGER; out STATUS : UCL_RETURN);

Description / Parameters Enables the processing of ITEM (measurement, software variable, monitoring list or measurementsof a subtree) when the CONDITION_CHECK of the value of CONDITION_ITEM withCONDITION_VALUE is true (the condition is true).

If the condition is false, this will disable the processing of ITEM.

By default, all enditems are enabled for processing. Conditions can be defined to disable andre–enable the processing of given end–items.

When the processing is enabled, ITEM will be authorised for calibration and monitoring. After ITEMhas been enabled, it will be calibrated (if its acquisition has been started) and monitored (if itsmonitoring has been enabled) on reception of new values.

Enabling the processing of ITEM does not perform an ”initial” calibration / monitoring of ITEM in thecase where it has already a value.

When the processing is disabled, ITEM will not be calibrated and not be monitored, even if itsacquisition has been requested and if its monitoring is enabled.

When the processing is disabled, ITEM will not be calibrated and not be monitored, even if itsacquisition has been requested and if its monitoring is enabled. However, disabling of processing doesnot set the monitoring status to ’disabled’. Thus the re–enabling of processing also re–enablesmonitoring, if monitoring was enabled before

CONDITION_ITEM must be maintained locally otherwise an error is generated. When the condition istriggered, only those measurements and SW variables identified by ITEM that are maintained locallywill be processed.

It is not possible to set a condition where the ITEM to enable or disable is the CONDITION_ITEM. IfITEM is a group of enditems (i.e. monitoring list, ADU or incomplete pathname) containingCONDITION_ITEM, the condition will not apply for CONDITION_ITEM.

It is not possible to enable or disable the processing of a SW variable that is linked to an HK data.

Page 408: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

399

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

ITEM : The item to be enabled, which can be

– a single enditem of type MEASUREMENT or SW variable;

– a incomplete pathname pointing to a virtual node, thus enabling all MEASUREMENTs or SW variablesin that subtree;

– a monitor list, thus enabling all items in that list.

CONDITION_ITEM: The measurement or software variable carrying the condition Only enditems having value type INTEGER are allowed

CONDITION_CHECK : the check to apply on CONDITION_ITEM.

CONDITION_VALUE : the value to use in the check with CONDITION_ITEM.

SINGLE_SHOT : if true, the condition will be withdrawn after having been true.

CONDITION_REF : returns an unique identifier for the condition

STATUS : the return status of the operation –– OK : operation successfull –– INVALID_TESTNODE_MODE : the test node is not in executing mode –– INVALID_ITEM_NAME : CONDITION_ITEM is not managed locally –– INVALID_PARAMETER : ITEM and CONDITION_ITEM are identical –– or ITEM is a SW variable linked to an HK data. –– or CONDITION_CHECK is IN_RANGE (not supported) –– RUNTIME_ERROR : an unexpected error occurred

ExampleENABLE_ON_INTEGER (\apm\dms\mmu_2, \apm\dms\mmu_number, EQUAL, 2, false, c_ref, stat);

6.9.6.3.7.4 ENABLE_ON_FLOAT

Specificationprocedure ENABLE_ON_FLOAT (in ITEM : ACQUISITION_COLLECTION; in CONDITION_ITEM : FLOAT_MONITOR_ITEM_NAME; in CONDITION_CHECK : CONDITION; in CONDITION_VALUE : REAL; in SINGLE_SHOT : BOOLEAN; out CONDITION_REF : INTEGER; out STATUS : UCL_RETURN);

Description / Parameters Enables processing on conditions for float values; Refer to analog description in ENABLE_ON_INTEGER

ITEM : Refer to analog description in ENABLE_ON_INTEGER;

CONDITION_ITEM: The measurement or software variable carrying the condition. Only enditems having value type REAL are allowed

CONDITION_CHECK : the check to apply on CONDITION_ITEM.

CONDITION_VALUE : the value to use in the check with CONDITION_ITEM.

Page 409: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

400

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

SINGLE_SHOT : if true, the condition will be withdrawn after having been true.

CONDITION_REF : returns an unique identifier for the condition

STATUS : the return status of the operation –– OK : operation successfull –– INVALID_TESTNODE_MODE : the test node is not in executing mode –– INVALID_ITEM_NAME : CONDITION_ITEM is not managed locally –– INVALID_PARAMETER : ITEM and CONDITION_ITEM are identical –– or ITEM is a SW variable linked to an HK data. –– or CONDITION_CHECK is IN_RANGE (not supported) –– RUNTIME_ERROR : an unexpected error occurred

ExampleENABLE_ON_FLOAT (\apm\dms\fire, \apm\dms\smoke_sensor, GREATER, 100.0, false, c_ref, stat);

6.9.6.3.7.5 ENABLE_ON_STATECODE

Specificationprocedure ENABLE_ON_STATECODE (in ITEM : ACQUISITION_COLLECTION; in CONDITION_ITEM : DISCRETE_MONITOR_ITEM_NAME; in CONDITION_CHECK : DISCRETE_CONDITION; in CONDITION_VALUE : STATECODE; in SINGLE_SHOT : BOOLEAN; out CONDITION_REF : INTEGER; out STATUS : UCL_RETURN);

Description / Parameters Enables processing on conditions for discrete values; Refer to analog description in ENABLE_ON_INTEGER

ITEM : Refer to analog description in ENABLE_ON_INTEGER;

CONDITION_ITEM: The measurement or software variable carrying the condition. Only discrete enditems having value type STATECODE are allowed

CONDITION_CHECK : the check to apply on CONDITION_ITEM.

CONDITION_VALUE : the value to use in the check with CONDITION_ITEM.

SINGLE_SHOT : if true, the condition will be withdrawn after having been true.

CONDITION_REF : returns an unique identifier for the condition

Page 410: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

401

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

STATUS : the return status of the operation –– OK : operation successfull –– INVALID_TESTNODE_MODE : the test node is not in executing mode –– INVALID_ITEM_NAME : CONDITION_ITEM is not managed locally –– INVALID_PARAMETER : ITEM and CONDITION_ITEM are identical –– or ITEM is a SW variable linked to an HK data –– RUNTIME_ERROR : an unexpected error occurred

ExampleENABLE_ON_STATECODE (\apm\dms\mmu_2, \apm\dms\mmu2_state, EQUAL, ON, false, c_ref, stat);

6.9.6.3.7.6 ENABLE_ON_BYTE_STREAM

Specificationprocedure ENABLE_ON_BYTE_STREAM (in ITEM : ACQUISITION_COLLECTION; in CONDITION_ITEM : BYTE_STREAM_MONITOR_ITEM_NAME; in CONDITION_CHECK : DISCRETE_CONDITION; in CONDITION_VALUE : STRING; in SINGLE_SHOT : BOOLEAN; out CONDITION_REF : INTEGER; out STATUS : UCL_RETURN);

Description / Parameters Enables processing on conditions for bytestream (string) values; Refer to analog description in ENABLE_ON_INTEGER

ITEM : Refer to analog description in ENABLE_ON_INTEGER;

CONDITION_ITEM: The measurement or software variable carrying the condition. Only enditems having raw value type BYTE_STREAM are allowed

CONDITION_CHECK : the check to apply on CONDITION_ITEM.

CONDITION_VALUE : the value to use in the check with CONDITION_ITEM.

SINGLE_SHOT : if true, the condition will be withdrawn after having been true.

CONDITION_REF : returns an unique identifier for the condition

STATUS : the return status of the operation –– OK : operation successfull –– INVALID_TESTNODE_MODE : the test node is not in executing mode –– INVALID_ITEM_NAME : CONDITION_ITEM is not managed locally –– INVALID_PARAMETER : ITEM and CONDITION_ITEM are identical –– or ITEM is a SW variable linked to an HK data –– RUNTIME_ERROR : an unexpected error occurred

ExampleENABLE_ON_BYTE_STREAM (\apm\dms\activation, \apm\dms\ap_name, equal, ”activation”, true, c_ref,stat);

Page 411: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

402

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.7.7 SET_PROCESSING

Specification procedure SET_PROCESSING (in ITEM : ACQUISITION_COLLECTION; in SWITCH : ON_OFF; out STATUS : UCL_RETURN);

Description / Parameters Enables or disables processing for enditems, overriding any conditions defined.

Note: Disabling of processing does not set the monitoring status to ’disabled’. Thus the re–enablingof processing also re–enables monitoring, if monitoring was enabled before.

ITEM : Refer to analog description in ENABLE_ON_INTEGER;

SWITCH : ON to enable the processing and OFF to disable the processing.

STATUS : the return status of the operation –– OK : operation successfull –– INVALID_TESTNODE_MODE : the test node is not in executing mode –– INVALID_ITEM_NAME : ITEM is not managed locally –– INVALID_PARAMETER : ITEM is a SW variable linked to an HK data. –– RUNTIME_ERROR : an unexpected error occurred

ExampleSET_PROCESSING (\apm\dms\mmu_2, OFF, stat);

6.9.6.3.7.8 GET_PROCESSING

Specification procedure GET_PROCESSING_STATE (in ITEM : MONITOR_ITEM_NAME; out STATE : ON_OFF; out STATUS : UCL_RETURN);

Description / Parameters Fetches the status of processing (enabled, disabled) for an enditem

ITEM : A single measurement or software variable

STATE : ON if enabled for processing and OFF if disabled for processing.

STATUS : the return status of the operation –– OK : operation successfull –– INVALID_TESTNODE_MODE : the test node is not in executing mode –– INVALID_ITEM_NAME : ITEM is not managed locally –– RUNTIME_ERROR : an unexpected error occurred

ExampleGET_PROCESSING_STATE (\apm\dms\mmu_2, proc_state, stat);

Page 412: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

403

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.7.9 SET_LIMIT_SET_ON_INTEGER

Specificationprocedure SET_LIMIT_SET_ON_INTEGER (in ITEM : MONITOR_COLLECTION; in LIMIT_SET : LIMIT_SET_NUMBER; in CONDITION_ITEM : INTEGER_MONITOR_ITEM_NAME; in CONDITION_CHECK : CONDITION; in CONDITION_VALUE : INTEGER; in SINGLE_SHOT : BOOLEAN; out CONDITION_REF : INTEGER; out STATUS : UCL_RETURN);

Description / Parameters Sets the LIMIT_SET for ITEM (measurement or software variable) when the CONDITION_CHECK ofthe value of CONDITION_ITEM with CONDITION_VALUE is true (the condition is true).It will not perform an ”initial” monitoring of ITEM in the case where it has already a value. Themonitoring will be performed on reception of the next value (in case the monitoring has been enabled).This can lead to a temporary ”inconsistent” output of the procedure GET_FULL_ENDITEM_MON-ITOR_STATUS (result of the monitoring with the old limit set with values of the new limit set might beinconsistent).

ITEM and CONDITION_ITEM must be maintained locally on the same node otherwise an error isgenerated.It is not possible to set a condition where the ITEM identical to the CONDITION_ITEM.

In case a set of items is addressed, the limit set is switched to LIMIT_SET only, if the limit set is defined.No error message is given for undefined sets.

ITEM : A single measurement or software variable, a monitor list or a virtual path.

LIMIT_SET : The limit set number to select. The LIMIT_SET must be defined for ITEM, otherwise an error is generated

CONDITION_ITEM: The measurement or software variable carrying the condition. Only enditems having value type INTEGER are allowed

CONDITION_CHECK : the check to apply on CONDITION_ITEM.

CONDITION_VALUE : the value to use in the check with CONDITION_ITEM.

SINGLE_SHOT : if true, the condition will be withdrawn after having been true.

CONDITION_REF : returns an unique identifier for the condition

STATUS : the return status of the operation –– OK : operation successfull –– INVALID_TESTNODE_MODE : the test node is not in executing mode –– INVALID_ITEM_NAME : ITEM or CONDITION_ITEM are not managed locally –– INVALID_PARAMETER : ITEM and CONDITION_ITEM are identical –– or CONDITION_CHECK is IN_RANGE (not supported) –– INVALID_LIMIT_SET : the limit set is not defined for ITEM –– RUNTIME_ERROR : an unexpected error occurred

ExampleSET_LIMIT_SET_ON_INTEGER (\apm\dms\mmu_status,5, \apm\dms\mmu, equal, 2, true, c_ref, stat);

Page 413: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

404

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.7.10 SET_LIMIT_SET_ON_FLOAT

Specificationprocedure SET_LIMIT_SET_ON_FLOAT (in ITEM : MONITOR_COLLECTION; in LIMIT_SET : LIMIT_SET_NUMBER; in CONDITION_ITEM : FLOAT_MONITOR_ITEM_NAME; in CONDITION_CHECK : CONDITION; in CONDITION_VALUE : REAL; in SINGLE_SHOT : BOOLEAN; out CONDITION_REF : INTEGER; out STATUS : UCL_RETURN);

Description / Parameters Set a limit set on conditions for float values; Refer to analog description in SET_LIMIT_SET_ON_INTEGER

ITEM : A single measurement or software variable, a monitor list or a virtual path. In case a set of items is addressed, the limit set is switched to LIMIT_SET only if the limit set is defined. No error message is given for undefined sets.

LIMIT_SET : The limit set number to select. The LIMIT_SET must be defined for ITEM

CONDITION_ITEM: The measurement or software variable carrying the condition. Only enditems having value type REAL are allowed

CONDITION_CHECK : the check to apply on CONDITION_ITEM.

CONDITION_VALUE : the value to use in the check with CONDITION_ITEM.

SINGLE_SHOT : if true, the condition will be withdrawn after having been true.

CONDITION_REF : returns an unique identifier for the condition

STATUS : the return status of the operation –– OK : operation successfull –– INVALID_TESTNODE_MODE : the test node is not in executing mode –– INVALID_ITEM_NAME : ITEM or CONDITION_ITEM are not managed locally –– INVALID_PARAMETER : ITEM and CONDITION_ITEM are identical –– or CONDITION_CHECK is IN_RANGE (not supported) –– INVALID_LIMIT_SET : the limit set is not defined for ITEM –– RUNTIME_ERROR : an unexpected error occurred

ExampleSET_LIMIT_SET_ON_FLOAT (\apm\dms\temp,5, \apm\dms\temp, greater, 25.0, true, c_ref, stat);

Page 414: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

405

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.7.11 SET_LIMIT_SET_ON_STATECODE

Specificationprocedure SET_LIMIT_SET_ON_STATECODE (in ITEM : MONITOR_COLLECTION; in LIMIT_SET : LIMIT_SET_NUMBER; in CONDITION_ITEM : DISCRETE_MONITOR_ITEM_NAME; in CONDITION_CHECK : DISCRETE_CONDITION; in CONDITION_VALUE : STATECODE; in SINGLE_SHOT : BOOLEAN; out CONDITION_REF : INTEGER; out STATUS : UCL_RETURN);

Description / Parameters Set a limit set on conditions for statecode values; Refer to analog description in SET_LIMIT_SET_ON_INTEGER

ITEM : A single measurement or software variable, a monitor list or a virtual path.

LIMIT_SET : The limit set number to select. The LIMIT_SET must be defined for ITEM

CONDITION_ITEM: The measurement or software variable carrying the condition. Only discrete enditems having value type STATECODE are allowed

CONDITION_CHECK : the check to apply on CONDITION_ITEM.

CONDITION_VALUE : the value to use in the check with CONDITION_ITEM.

SINGLE_SHOT : if true, the condition will be withdrawn after having been true.

CONDITION_REF : returns an unique identifier for the condition

STATUS : the return status of the operation –– OK : operation successfull –– INVALID_TESTNODE_MODE : the test node is not in executing mode –– INVALID_ITEM_NAME : ITEM or CONDITION_ITEM are not managed locally –– INVALID_PARAMETER : ITEM and CONDITION_ITEM are identical –– INVALID_LIMIT_SET : the limit set is not defined for ITEM –– RUNTIME_ERROR : an unexpected error occurred

ExampleSET_LIMIT_SET_ON_STATECODE (\apm\dms\temp,5, \apm\dms\status, equal, ”heating”, true, c_ref, stat);

Page 415: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

406

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.7.12 SET_LIMIT_SET_ON_BYTESTREAM

Specificationprocedure SET_LIMIT_SET_ON_BYTE_STREAM (in ITEM : MONITOR_COLLECTION; in LIMIT_SET : LIMIT_SET_NUMBER; in CONDITION_ITEM : BYTE_STREAM_MONITOR_ITEM_NAME; in CONDITION_CHECK : DISCRETE_CONDITION; in CONDITION_VALUE : STRING; in SINGLE_SHOT : BOOLEAN; out CONDITION_REF : INTEGER; out STATUS : UCL_RETURN);

Description / Parameters Set a limit set on conditions for byte stream values; Refer to analog description in SET_LIMIT_SET_ON_INTEGER

ITEM : A single measurement or software variable, a monitor list or a virtual path.

LIMIT_SET : The limit set number to select. The LIMIT_SET must be defined for ITEM

CONDITION_ITEM: The measurement or software variable carrying the condition. Only enditems having raw value type BYTE_STREAM (engineering value type STRING) are allowed

CONDITION_CHECK : the check to apply on CONDITION_ITEM.

CONDITION_VALUE : the value to use in the check with CONDITION_ITEM.

SINGLE_SHOT : if true, the condition will be withdrawn after having been true.

CONDITION_REF : returns an unique identifier for the condition

STATUS : the return status of the operation –– OK : operation successfull –– INVALID_TESTNODE_MODE : the test node is not in executing mode –– INVALID_ITEM_NAME : ITEM or CONDITION_ITEM are not managed locally –– INVALID_PARAMETER : ITEM and CONDITION_ITEM are identical –– INVALID_LIMIT_SET : the limit set is not defined for ITEM –– RUNTIME_ERROR : an unexpected error occurred

ExampleSET_LIMIT_SET_ON_BYTE_STREAM (\apm\dms\temp,2, \apm\dms\ap_name, equal, ”deactiv”, true,c_ref, stat);

Page 416: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

407

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.7.13 START_AP_ON_INTEGER

Specificationprocedure START_AP_ON_INTEGER (in AP : AP_NAME; in CONDITION_ITEM : INTEGER_MONITOR_ITEM_NAME; in CONDITION_CHECK : CONDITION; in CONDITION_VALUE : INTEGER; in SINGLE_SHOT : BOOLEAN; out CONDITION_REF : INTEGER; out STATUS : UCL_RETURN);

Description / Parameters Starts an automated procedure when the CONDITION_CHECK of the value of CONDITION_ITEMwith CONDITION_VALUE is true (the condition is true).

CONDITION_ITEM must be maintained locally on the node otherwise an error is generated.

The AP to start must be an AP without parameters, otherwise an error message is generated when thecondition is triggered.When the condition is triggered, if the AP is already running, it will not be started and an error messagewill be generated.

AP : the name of the automated procedure to start. This must be an AP without parameter or where all parameters have default values.

CONDITION_ITEM: The measurement or software variable carrying the condition Only enditems having value type INTEGER are allowed

CONDITION_CHECK : the check to apply on CONDITION_ITEM.

CONDITION_VALUE : the value to use in the check with CONDITION_ITEM.

SINGLE_SHOT : if true, the condition will be withdrawn after having been true.

CONDITION_REF : returns an unique identifier for the condition

STATUS : the return status of the operation –– OK : operation successfull –– INVALID_TESTNODE_MODE : the test node is not in executing mode –– INVALID_ITEM_NAME : CONDITION_ITEM is not managed locally –– INVALID_PARAMETER : CONDITION_CHECK is IN_RANGE (not supported) –– RUNTIME_ERROR : an unexpected error occurred

ExampleSTART_AP_ON_INTEGER (\announce_mmu_2, \apm\dms\mmu_number, EQUAL, 2, true, c_ref, stat);

Page 417: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

408

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.7.14 START_AP_ON_FLOAT

Specificationprocedure START_AP_ON_INTEGER (in AP : AP_NAME; in CONDITION_ITEM : FLOAT_MONITOR_ITEM_NAME; in CONDITION_CHECK : CONDITION; in CONDITION_VALUE : REAL; in SINGLE_SHOT : BOOLEAN; out CONDITION_REF : INTEGER; out STATUS : UCL_RETURN);

Description / Parameters Starts an AP on conditions for float values; Refer to analog description in START_AP_ON_INTEGER

AP : the name of the automated procedure to start. This must be an AP without parameter or where all parameters have default values.

CONDITION_ITEM: The measurement or software variable carrying the condition Only enditems having value type REAL are allowed

CONDITION_CHECK : the check to apply on CONDITION_ITEM.

CONDITION_VALUE : the value to use in the check with CONDITION_ITEM.

SINGLE_SHOT : if true, the condition will be withdrawn after having been true.

CONDITION_REF : returns an unique identifier for the condition

STATUS : the return status of the operation –– OK : operation successfull –– INVALID_TESTNODE_MODE : the test node is not in executing mode –– INVALID_ITEM_NAME : CONDITION_ITEM is not managed locally –– INVALID_PARAMETER : CONDITION_CHECK is IN_RANGE (not supported) –– RUNTIME_ERROR : an unexpected error occurred

ExampleSTART_AP_ON_FLOAT (\switchoff_mmu2, \apm\dms\mmu_temp, GREATER, 35.0, false, c_ref, stat);

Page 418: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

409

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.7.15 START_AP_ON_STATECODE

Specificationprocedure START_AP_ON_STATECODE (in AP : AP_NAME; in CONDITION_ITEM : DISCRETE_MONITOR_ITEM_NAME; in CONDITION_CHECK : DISCRETE_CONDITION; in CONDITION_VALUE : STATECODE; in SINGLE_SHOT : BOOLEAN; out CONDITION_REF : INTEGER; out STATUS : UCL_RETURN);

Description / Parameters Starts an AP on conditions for statecode values; Refer to analog description in START_AP_ON_INTEGER

AP : the name of the automated procedure to start. This must be an AP without parameter or where all parameters have default values.

CONDITION_ITEM: The measurement or software variable carrying the condition Only enditems having value type STATECODE are allowed

CONDITION_CHECK : the check to apply on CONDITION_ITEM.

CONDITION_VALUE : the value to use in the check with CONDITION_ITEM.

SINGLE_SHOT : if true, the condition will be withdrawn after having been true.

CONDITION_REF : returns an unique identifier for the condition

STATUS : the return status of the operation –– OK : operation successfull –– INVALID_TESTNODE_MODE : the test node is not in executing mode –– INVALID_ITEM_NAME : CONDITION_ITEM is not managed locally –– RUNTIME_ERROR : an unexpected error occurred

ExampleSTART_AP_ON_STATECODE (\switchoff_mmu2, \apm\dms\power_stat, EQUAL, ”LOW”, false, c_ref,stat);

Page 419: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

410

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.7.16 START_AP_ON_BYTE_STREAM

Specificationprocedure START_AP_ON_BYTE_STREAM (in AP : AP_NAME; in CONDITION_ITEM : BYTE_STREAM_MONITOR_ITEM_NAME; in CONDITION_CHECK : DISCRETE_CONDITION; in CONDITION_VALUE : STRING; in SINGLE_SHOT : BOOLEAN; out CONDITION_REF : INTEGER; out STATUS : UCL_RETURN);

Description / Parameters Starts an AP on conditions for byte stream values; Refer to analog description in START_AP_ON_INTEGER

AP : the name of the automated procedure to start. This must be an AP without parameter or where all parameters have default values.

CONDITION_ITEM: The measurement or software variable carrying the condition Only enditems having value type STRING (raw type: BYTE_STREAM) are allowed

CONDITION_CHECK : the check to apply on CONDITION_ITEM.

CONDITION_VALUE : the value to use in the check with CONDITION_ITEM.

SINGLE_SHOT : if true, the condition will be withdrawn after having been true.

CONDITION_REF : returns an unique identifier for the condition

STATUS : the return status of the operation –– OK : operation successfull –– INVALID_TESTNODE_MODE : the test node is not in executing mode –– INVALID_ITEM_NAME : CONDITION_ITEM is not managed locally –– RUNTIME_ERROR : an unexpected error occurred

ExampleSTART_AP_ON_BYTE_STREAM (\switchoff_mmu2, \apm\dms\mmu_use, EQUAL, ”is not used”, false,c_ref, stat);

6.9.6.3.7.17 WITHDRAW_CONDITION

Specificationprocedure WITHDRAW_CONDITION (in CONDITION_ITEM : MONITOR_ITEM_NAME; in CONDITION_REF : INTEGER := ALL_CONDITIONS; out STATUS : UCL_RETURN);

Description / ParametersRemoves a condition or all conditions of a CONDITION_ITEM.

CONDITION_ITEM: The measurement or software variable carrying the condition

CONDITION_REF : The unique identifier for the condition. If ALL_CONDITIONS is given, allconditions defined for CONDITION_ITEM are removed.

Page 420: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

411

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

STATUS : the return status of the operation –– OK : operation successfull –– INVALID_TESTNODE_MODE : the test node is not in executing mode –– INVALID_ITEM_NAME : CONDITION_ITEM is not managed locally or –– CONDITION_REF does not identify an existing –– condition –– RUNTIME_ERROR : an unexpected error occurred

Example WITHDRAW_CONDITION (\apm\dms\mmu_use, 125, stat);

6.9.6.3.7.18 WITHDRAW_ALL_CONDITIONS

Specificationprocedure WITHDRAW_ALL_CONDITIONS (out STATUS : UCL_RETURN);

Description / ParametersRemoves all conditions defined in the local test node.

STATUS : the return status of the operation –– OK : operation successfull –– INVALID_TESTNODE_MODE : the test node is not in executing mode –– RUNTIME_ERROR : an unexpected error occurred

Example WITHDRAW_ALL_CONDITIONS (stat);

6.9.6.3.7.19 NUMBER_OF_CONDITION_ITEMS

Specificationfunction NUMBER_OF_CONDITION_ITEMS : INTEGER;

Description / ParametersReturns the number of items carrying conditions.

Example NB_CONDITIONS := NUMBER_OF_CONDITION_ITEMS;

6.9.6.3.7.20 GET_CONDITION_ITEM

Specificationprocedure GET_CONDITION_ITEM (in ITEM_NUMBER : INTEGER; out CONDITION_ITEM : MONITOR_ITEM_NAME; out STATUS : UCL_RETURN);

Description / ParametersGets the name of the CONDITION_ITEM identified by an index. To get all the CONDITION_ITEM’s, this procedure has to be called with all numbers between 1 andthe value of NUMBER_OF_CONDITION_ITEMS.

ITEM_NUMBER : index of the CONDITION_ITEM

Page 421: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

412

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

CONDITION_ITEM : the measurement or software variable carrying the condition.

STATUS : the return status of the operation –– OK : operation successfull –– INVALID_TESTNODE_MODE : the test node is not in executing mode –– INVALID_PARAMETER : There is no CONDITION_ITEM at the index ITEM_NUMBER –– RUNTIME_ERROR : an unexpected error occurred

Example for ITEM_NUMBER := 1 to NUMBER_OF_CONDITION_ITEMS do GET_CONDITION_ITEM(ITEM_NUMBER, PATHNAME_ARRAY(ITEM_NUMBER),STAT); end for;

6.9.6.3.7.21 NUMBER_CONDITIONS

Specificationfunction NUMBER_CONDITIONS (in CONDITION_ITEM : MONITOR_ITEM_NAME): INTEGER;

Description / ParametersReturns the number of conditions carried by a CONDITION_ITEM. if CONDITION_ITEM is notmaintained locally, 0 is returned

Example NB_CONDITIONS := NUMBER_CONDITIONS(\apm\dms\mmu_2_status);

Page 422: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

413

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.7.22 GET_CONDITION

Specificationprocedure GET_CONDITION (in CONDITION_ITEM : MONITOR_ITEM_NAME; in CONDITION_NUMBER : INTEGER; out CONDITION_REF : INTEGER; out CONDITION_CHECK : CONDITION; out CONDITION_VALUE : CONDITION_VAL; out SINGLE_SHOT : BOOLEAN; out STATE : CONDITION_STATE; out ACTION : ACTION_DESCRIPTION; out STATUS : UCL_RETURN);

Description / ParametersProvide the description of a condition.

CONDITION_ITEM : the name of the item carrying the condition.

CONDITION_NUMBER : the index of the condition (between 1 and the value of GET_NUMBER_CONDITIONS).

CONDITION_REF : the unique identifier of the condition.

CONDITION_CHECK : the check to apply on CONDITION_ITEM.

CONDITION_VALUE : the value to use in the check with CONDITION_ITEM.

SINGLE_SHOT : indicates if the condition is to be removed after having been true.

STATE : indicates the state of the condition. It can be – IS_TRUE : the condition is true, the associated action has been triggered – IS_FALSE : the condition is false, the associated action has been triggered (only for the enable/disable conditions) – IS_UNKNOWN : the condition has been set but has not yet been analysed (CONDITION_ITEM has not a valid value)

ACTION : provide the description of the condition, i.e: – the sid of the item(s) for which the processing is to be enabled – the sid of the item for which a new limit set is to be set and the limit set number – the sid of an AP

STATUS : the return status of the operation –– OK : operation successfull –– INVALID_TESTNODE_MODE : the test node is not in executing mode –– INVALID_PARAMETER : There is no (more) condition at the index –– CONDITION_NUMBER (see above note). –– INVALID_ITEM_NAME : CONDITION_ITEM is not managed locally. –– RUNTIME_ERROR : an unexpected error occurred

Example GET_CONDITION(\apm\dms\mmu_stat,2,c_ref,c_check,c_value,single,action,stat);

Page 423: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

414

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.6.3.8 PUS Parameter Number Translation

6.9.6.3.8.1 PATH_FOR_PUS_PARAMETER_NUMBER

Specification

function PATH_FOR_PUS_PARAMETER_NUMBER (in PUS_PARAMETER_NUMBER: UNSIGNED_INTEGER): PATHNAME

Description / ParametersTranslates a number to the enditem’s path, which has this number as its PUS Parameter Numberdefined

PUS_PARAMETER_NUMBER: value of parameter number

ExampleMY_PATH_VAR := PATH_FOR_PUS_PARAMETER_NUMBER(1234);

6.9.6.3.8.2 PUS_PARAMETER_NUMBER

Specification

function PUS_PARAMETER_NUMBER (in ENDITEM_PATH: ENDITEM_WITH_RAW_VALUE): UNSIGNED_INTEGER;

Description / ParametersTranslates the enditem’s path to its PUS Parameter Number

ENDITEM_PATH: pathname of a measurement

ExamplePUS_PARAM := PUS_PARAMETER_NUMBER(/cryosat/main/power/current) ;

Page 424: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

415

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.7 UCL Ground System Library: RAW_DATA_LIBRARY

The RAW_DATA library contains operations to access a raw data packet

Library Id (Body_Id): 12

6.9.7.1 Routines Summary

The Ground UCL library routines are:

Get_Raw_Bit

Get_Raw_Byte

Get_Raw_Halfword

Get_Raw_Word

Get_Raw_Integer

Get_Raw_Unsigned_Integer

Get_Raw_Real

Get_Raw_Long_Real

Get_Raw_Byte_Stream

Get_Raw_Hex_Image

NOTE: The routines marked with asterisks (*) cannot be called from HLCL, neither interactively nor out of HLCL sequences.

Page 425: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

416

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.7.2 UCL System Library Specification

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– *******************************************–– RAW_DATA_LIBRARY UCL System Library–– *******************************************––––ABSTRACT–––– Defines Procedures to retrieve data from raw TM packets –––– Must be compiled for ground and with Body Id = 12 –– ––IDENTIFICATION–––– PROJECT NAME : CGS–– OBJECT NAME : RAW_DATA_LIBRARY System Library–– VERSION : ##V##CGS_5.1.0–– CGS CM : ”@(#) raw_data_library_.ucl /main/cgs_5.0/4 01/03/0213:21:57@(#)”––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––CONTENTS–––– COMPILER : UCLC –– LANGUAGE : UCL––CHANGE HISTORY–––– PIRN 8231, Issue 1/– for CGS V5.1.0: –– Initial Version––––END HISTORY–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––library RAW_DATA_LIBRARY;

constant Max_Length: Integer := 4096+6; type T_Packet = String(Max_Length) of Byte;

type T_Position = Unsigned_Integer(1 .. Max_Length*8); type T_Bit = Unsigned_Integer (0 .. 1); type T_Byte = Unsigned_Integer (0 .. 255); type T_Word = Unsigned_Integer;

type T_Word_Size = Unsigned_Integer (0 .. 32);

type T_Raw_Status = (R_Success, R_Invalid_Size, R_Range_Error, R_Other_Error);

type T_Byte_Length = Unsigned_Integer (0 .. Max_Length); ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– procedure Get_Raw_Status_Image –– #1 (in Status : T_Raw_Status; out Image : string); ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– String–Conversion of T_Raw_Status –––––––––––––––––––––––––––––––––––––––––––––––––––––––––

Page 426: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

417

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

––––––––––––––––––––––––––––––––––––––––––––––––––––––––– procedure Get_Raw_Bit –– #2 (in Packet: T_Packet; in Bit_Position: T_Position; out Value: T_Bit; out Status: T_Raw_Status); ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– Retrieves one bit located at Bit_Position (starting at –– first Bit of primary header (Bit_Position: 1)) from Packet –– Status: –– R_Success retrieval was successful –– R_Range_Error range violation –– ( Bit_Position > packet bit length) –––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––––––––––––––––––––––––––––––––––––––––––––––––––––––––– procedure Get_Raw_Byte –– #3 (in Packet: T_Packet; in Bit_Position: T_Position; out Value: T_Byte; out Status: T_Raw_Status); ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– Retrieves one byte located at Bit_Position (starting at –– first Bit of primary header (Bit_Position: 1)) from Packet –– Status: –– R_Success retrieval was successful –– R_Range_Error range violation –– (Bit_Position+8–1 > packet bit length) –––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––––––––––––––––––––––––––––––––––––––––––––––––––––––––– procedure Get_Raw_Halfword –– #4 (in Packet: T_Packet; in Bit_Position: T_Position; out Value: T_Word; out Status: T_Raw_Status); ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– Retrieves a halfword (16 bit) located at Bit_Position (starting –– at first Bit of primary header (Bit_Position: 1)) from Packet –– Status: –– R_Success retrieval was successful –– R_Range_Error range violation –– (Bit_Position+16–1 > packet bit length) –––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––––––––––––––––––––––––––––––––––––––––––––––––––––––––– procedure Get_Raw_Word –– #5 (in Packet: T_Packet; in Bit_Position: T_Position; out Value: T_Word; out Status: T_Raw_Status); ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– Retrieves one word (32 bit) located at Bit_Position (starting –– at first Bit of primary header (Bit_Position: 1)) from Packet –– Status: –– R_Success retrieval was successful –– R_Range_Error range violation –– (Bit_Position+32–1 > packet bit length) –––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––

Page 427: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

418

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

procedure Get_Raw_Integer –– #6 (in Packet: T_Packet; in Bit_Position: T_Position; in Bit_Length: T_Word_Size; out Value: Integer; out Status: T_Raw_Status); ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– procedure Get_Raw_Unsigned_Integer –– #7 (in Packet: T_Packet; in Bit_Position: T_Position; in Bit_Length: T_Word_Size; out Value: Unsigned_Integer; out Status: T_Raw_Status); ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– Retrieves Bit_Length bits located at Bit_Position (starting at –– first Bit of primary header (Bit_Position: 1)) from Packet –– mapped to Integer/Unsigned_Integer. –– Status: –– R_Success retrieval was successful –– R_Range_Error range violation –– (Bit_Position+Bit_Length–1 > packet bit length) ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– procedure Get_Raw_Real –– #8 (in Packet: T_Packet; in Bit_Position: T_Position; out Value: Real; out Status: T_Raw_Status); ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– Retrieves 32 bits located at Bit_Position (starting at –– first Bit of primary header (Bit_Position: 1)) from Packet –– The output Value is mapped to Real. –– –– Status: –– R_Success retrieval was successful –– R_Range_Error range violation –– (Bit_Position+32–1 > packet bit length) –––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––––––––––––––––––––––––––––––––––––––––––––––––––––––––– procedure Get_Raw_Long_Real –– #9 (in Packet: T_Packet; in Bit_Position: T_Position; out Value: Long_Real; out Status: T_Raw_Status); ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– Retrieves 64 bits located at Bit_Position (starting at –– first Bit of primary header (Bit_Position: 1)) from Packet –– The output Value mapped to Long_Real. –– Status: –– R_Success retrieval was successful –– R_Range_Error range violation –– (Bit_Position+64–1 > packet bit length) –––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––––––––––––––––––––––––––––––––––––––––––––––––––––––––– procedure Get_Raw_Byte_Stream –– #10 (in Packet: T_Packet; in Bit_Position: T_Position; in No_Of_Bytes: T_Byte_Length;

Page 428: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

419

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

out Value: string of Byte; out Status: T_Raw_Status); ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– Retrieves No_Of_Bytes word located at Bit_Position (starting –– first Bit of primary header (Bit_Position: 1)) from Packet –– The output Value is a string of bytes. –– Status: –– R_Success retrieval was successful –– R_Range_Error range violation –– (Bit_Position + (No_Of_Bytes)*8 – 1 > packet bit length) –– Invalid_Size: Size of Value is invalid (< No_Of_Bytes) –––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––––––––––––––––––––––––––––––––––––––––––––––––––––––––– procedure Get_Raw_Hex_Image –– #11 (in Packet: T_Packet; in Bit_Position: T_Position; in No_Of_Bytes: T_Byte_Length; out Value: string; out Status: T_Raw_Status); ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– Retrieves No_Of_Bytes word located at Bit_Position (starting –– first Bit of primary header (Bit_Position: 1)) from Packet –– The output Value is a string containing the Hex–Image of –– the byte stream –– Status: –– R_Success retrieval was successful –– R_Range_Error range violation –– (Bit_Position + (No_Of_Bytes)*8 – 1 > packet bit length) –– R_Invalid_Size Size of Value is invalid (< No_Of_Bytes) ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– procedure Convert_to_Hex_Image –– #12 (in Packet: T_Packet; out Value: string; out Status: T_Raw_Status); ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– Converts Packet (string of byte) to a string containing –– the Hex–Image of the byte stream –– Status: –– R_Success retrieval was successful –– R_Invalid_Size Size of Value is invalid (< No_Of_Bytes) –––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––end RAW_DATA_LIBRARY;–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

6.9.7.3 Interface Description

Refer to the text in the header of the specification for constraints and operational behaviour.

Page 429: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

420

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.8 UCL Ground System Library: PACKET__LIBRARY

The PACKET library contains operations to access a raw data packet

Library Id (Body_Id): 13

6.9.8.1 Routines Summary

The Ground UCL library routines are:

Page 430: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

421

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Add_ADU_To_Packet_Buffer

Buffer_ADUBuffer_ID_For_ADUBuffer_ID_For_APBuffer_ID

Create_ADU_Packet_BufferClose_BufferClose_Packet_Buffer

Get_PacketGet_Full_Packet(*)Get_Packet_From_Buffer(*)Get_Full_Packet_From_Buffer

No_of_ADUs_for_BufferNo_Of_Free_Slots_In_Buffer No_Of_Buffers No_Of_Free_Buffers

Packets_In_Buffer

Remove_ADU_From_Packet_BufferRemove_AP_From_ADU_BufferReset_Packet_Buffers

Start_AP_On_Arrival_Of__ADU

Trigger_AP

NOTE: The routines marked with asterisks (*) cannot be called from HLCL, neither interactively nor out ofHLCL sequences.

Page 431: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

422

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.8.2 UCL System Library Specification

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– *******************************************–– PACKET_LIBRARY UCL System Library–– *******************************************––––ABSTRACT–––– Defines Procedures to maintain TM packet buffers–– and Trigger APs–––– Must be compiled for ground and with Body Id = 13 –– –– +++++++++++++++++++++++++++++++++++++++++++++–– TES configuration parameter:–– (see $GSAF_HOME/tes/config/TES_CONFIG_FILE)–– +++++++++++++++++++++++++++++++++++++++++++++–– ADU.MAX_NUMBER_OF_ADU_BUFFER :–– –––––––––––––––––––––––––––––––– –– maximum number of open ADU Buffers. If this value is–– reached, procedures Create_ADU_Packet_Buffer and –– Start_AP_On_Arrival_Of_ADU will return error status–– P_Max_No_Of_Buffers_Reached–––– ADU_BUFFER.MAX_NUMBER_OF_ADUS :–– –––––––––––––––––––––––––––––––– –– maximum number of packets stored in one Buffer.–– If further ADUs arrive, they will be discarded by TES–– until the next ADU was removed from Buffer (Get_Packet_From_Buffer)–– The next packet will show the number of Packets discarded–– in the out parameter <Packets_Discarded>–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––IDENTIFICATION–––– PROJECT NAME : CGS–– OBJECT NAME : PACKET_LIBRARY System Library–– VERSION : ##V##CGS_5.1.0–– CGS CM : ”@(#) packet_library_.ucl /main/cgs_5.0/6 01/26/02 13:19:22@(#)”––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––CONTENTS–––– COMPILER : UCLC –– LANGUAGE : UCL––CHANGE HISTORY–––– PIRN 8233, Issue 1/– for CGS V5.1.0: –– Initial Version––––END HISTORY–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

library PACKET_LIBRARY;

import RAW_DATA_LIBRARY;

type T_Buffer_ID = Unsigned_Integer; type T_Index = Integer(1..2147483647);

type P_Status = (P_Success, P_Packet_Timeout, P_Invalid_Buffer_ID, P_ADU_Unknown, P_ADU_Already_In_Buffer, P_Max_No_Of_Buffers_Reached,

Page 432: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

423

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

P_ADU_Not_Registered, P_AP_Not_Registered, P_AP_Already_Used, P_Other_Error); type T_AP_Path = pathname (UCL_Automated_Procedure); type T_ADU_Path = pathname (ADU_Description); type T_ADU_Type = (CCSDS_ADU, PUS_ADU, Unstructured_ADU, Structured_ADU, Undefined); constant Default_Timeout: Duration := 0.0 [s]; constant Default_Buffer : T_Buffer_ID := 0;

––––––––––––––––––––––––––––––––––––––––––––––––––––––––– procedure Get_Status_Image –– #1 (in Status : P_Status; out Image : string); ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– String–Conversion of P_Status ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– To be used in UCL/HLCL –––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––––––––––––––––––––––––––––––––––––––––––––––––––––––––– procedure Create_ADU_Packet_Buffer –– #2 (in ADU: T_ADU_Path; out Buffer_ID: T_Buffer_ID; out Status: P_Status ); ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– Definition of a packet buffer dependant on ADU –– (Buffer Size: See TES configuration file) –– Further ADUs may be added with Add_ADU_To_Packet_Buffer –– P_Success: Buffer created successfully –– P_ADU_Unknown: Enditem not maintained by testnode –– P_ADU_Already_In_Buffer: ADU already used in a Buffer –– P_Max_No_Of_Buffers_Reached: max. number of Buffers reached –– (close buffers first) –– To be used in UCL/HLCL –––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––––––––––––––––––––––––––––––––––––––––––––––––––––––––– procedure Add_ADU_To_Packet_Buffer –– #3 (in ADU: T_ADU_Path; in Buffer_ID: T_Buffer_ID; out Status: P_Status ); ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– ADU will be added to Buffer definition –– P_Success: ADU added successfully –– P_Invalid_Buffer_ID: Buffer not known –– (Create Buffer first) –– P_ADU_Unknown: Enditem not maintained by testnode –– P_ADU_Already_In_Buffer: ADU already used in a Buffer –– To be used in UCL/HLCL –––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––––––––––––––––––––––––––––––––––––––––––––––––––––––––– procedure Remove_ADU_From_Packet_Buffer –– #4 (in ADU: T_ADU_Path; in Buffer_ID: T_Buffer_ID; out Status: P_Status ); ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– ADU will be removed from Buffer definition

Page 433: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

424

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– This will habe no consequences to Packets already –– stored in Buffer –– P_Success: ADU removed successfully –– P_Invalid_Buffer_ID: Buffer not known –– (Create Buffer first) –– P_ADU_Unknown: Enditem not maintained by testnode –– P_ADU_Not_Registered: ADU was not registered for Buffer –– –– To be used in UCL/HLCL –––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––––––––––––––––––––––––––––––––––––––––––––––––––––––––– procedure Close_Packet_Buffer –– #5 (in Buffer_ID: T_Buffer_ID; out Status: P_Status); ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– Buffer will be closed and all packets dismissed. –– Buffer definition no longer valid. –– Status: –– P_Success: Buffer closed successfully –– P_Invalid_Buffer_ID: Buffer not known –– (e.g. already closed) –– –– To be used in UCL/HLCL ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– procedure Start_AP_On_Arrival_Of_ADU –– #6 (in ADU: T_ADU_Path; in AP_Pathname: T_AP_Path; out Buffer_ID: T_Buffer_ID; out Status: P_Status ); ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– Definition of a packet buffer dependant on ADU. –– When a packet ADU has been arrived, the AP AP_Pathname –– will be started (if not already running). –– The so–called Trigger–AP has access to the packet buffer –– (Get_Packet_From_Buffer, Get_Full_Packet_From_Buffer). –– A Trigger–AP can be used only for one packet buffer. –– If the AP is already attached to a buffer definition, –– the procedure Start_AP_On_Arrival_Of_ADU returns the –– Status P_AP_Already_Used. –– Only parameterless APs are allowed for AP_Pathname. APs –– with parameters cause an ”execution error” at startup time. –– Further ADUs may be added with Add_ADU_To_Packet_Buffer –– The AP may be removed from the Buffer definition with –– the procedure call Remove_AP_From_ADU_Buffer. –– The Buffer created (Buffer_ID) may be closed by –– Close_Packet_Buffer from ouside or by Close_Buffer from –– inside a Trigger–AP. –– If the Trigger–AP finishes without closing the buffer, the –– buffer definition is still valid and the Trigger–AP will –– be restarted when the next ADU packet arrives. –– –– Status: –– P_Success: Buffer created successfully –– P_ADU_Unknown: Enditem not maintained by testnode –– P_ADU_Already_In_Buffer: ADU already used in a Buffer –– P_Max_No_Of_Buffers_Reached: max. number of Buffers reached –– (close buffers first) –– P_AP_Already_Used: AP_Pathname already in use for –– Trigger –– To be used in UCL/HLCL

Page 434: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

425

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–– ++++++++++++++++++++++++++++++++++++++++++++++++++++++ –– for use only in Trigger–APs –– ++++++++++++++++++++++++++++++++++++++++++++++++++++++ procedure Close_Buffer –– #7 (out Status: P_Status); –– ++++++++++++++++++++++++++++++++++++++++++++++++++++++ –– Trigger Buffer will be closed and all packets dismissed. –– Buffer definition no longer valid. –– This routine has to be used, if a packet buffer attached to –– a Trigger AP shall be closed from the Trigger–AP itself. –– –– Status: –– P_Success: Buffer closed successfully –– P_AP_Not_Registered AP is not a Trigger–AP –– –– To be used in UCL (Trigger–AP) only! –––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––––––––––––––––––––––––––––––––––––––––––––––––––––––––– procedure Remove_AP_From_ADU_Buffer –– #8 (in Buffer_ID: T_Buffer_ID; out Status: P_Status ); ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– This procedure call removes an AP from an ADU Buffer. –– The Buffer definition is still valid, but no AP will –– be started, if a new packet arrives. –– Status: –– P_Success: AP removed from Buffer –– P_Invalid_Buffer_ID: Buffer not known –– (e.g. already closed) –– P_AP_Not_Registered: No AP attached to Buffer –– To be used in UCL/HLCL –––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––––––––––––––––––––––––––––––––––––––––––––––––––––––––– procedure Get_Packet –– #9 (in Buffer_ID: T_Buffer_ID; in Timeout: Duration := Default_Timeout; out Packet: RAW_DATA_LIBRARY.T_Packet; out Packets_Discarded: Integer; –– since last procedure call out Status: P_Status); ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– procedure Get_Full_Packet –– #10 (in Buffer_ID: T_Buffer_ID; in Timeout: Duration := Default_Timeout; out Packet: RAW_DATA_LIBRARY.T_Packet; out Packets_Discarded: Integer; –– since last procedure call out ADU_Name: T_ADU_Path; out ADU_Type: T_ADU_Type; out Time_Tag: Time; –– either LT or SMT, see below out Status: P_Status); ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– Retrieves the next packet (packet will be removed from buffer) which –– is either already in buffer or arrives within Timeout. If –– Timeout is Default_Timeout (0.0 [s]), the packet has to be –– already in buffer. –– Note: If these procedures will be called from several APs –– or HLCL command windows with the same Buffer_ID, the result packets

Page 435: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

426

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– will be dispatched according to ”first come – first serve” –– –– Status: –– P_Success: Packet successfully retrieved –– P_Packet_Timeout: No packet received within Timeout –– P_Invalid_Buffer_ID: Buffer ID is not valid (e.g. Buffer –– already closed –– –– Note: the type of the returned Time_Tag, either local time (LT) –– or Simulated Mission Time (SMT), depends on the value of –– the TES variable DATA_PROCESSOR.TIME_STAMP_IN_LT –– (to be defined via the TES configuration file –– $TES_HOME/config/TES_CONFIG_FILE). –– –– To be used in UCL/HLCL –––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–– ++++++++++++++++++++++++++++++++++++++++++++++++++++++ –– for use only in Trigger–APs –– ++++++++++++++++++++++++++++++++++++++++++++++++++++++ procedure Get_Packet_From_Buffer –– #11 (in Timeout: Duration := Default_Timeout; out Packet: RAW_DATA_LIBRARY.T_Packet; out Packets_Discarded: Integer; –– since last procedure call out Status: P_Status); ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– procedure Get_Full_Packet_From_Buffer –– #12 (in Timeout: Duration := Default_Timeout; out Packet: RAW_DATA_LIBRARY.T_Packet; out Packets_Discarded: Integer; –– since last procedure call out ADU_Name: T_ADU_Path; out ADU_Type: T_ADU_Type; out Time_Tag: Time; –– either LT or SMT, see below out Status: P_Status); –– ++++++++++++++++++++++++++++++++++++++++++++++++++++++ –– The procedures Get_Packet_From_Buffer and Get_Full_Packet_From_Buffer –– must NOT be used outside from Trigger–APs. The belonging Buffer –– (defined by Start_AP_On_Arrival_Of_ADU) will be determined internally. –– The procedures retrieve the next packet (packet will be removed from buffer) –– which is either already in buffer or arrives within Timeout. If –– Timeout is Default_Timeout (0.0 [s]), the packet has to be –– already in buffer. –– –– Status: –– P_Success: Packet successfully retrieved –– P_Packet_Timeout: No packet received within Timeout –– P_AP_Not_Registered: AP is not a Trigger–AP –– –– Note: the type of the returned Time_Tag, either local time (LT) –– or Simulated Mission Time (SMT), depends on the value of –– the TES variable DATA_PROCESSOR.TIME_STAMP_IN_LT –– (to be defined via the TES configuration file –– $TES_HOME/config/TES_CONFIG_FILE). –– –– To be used in UCL (Trigger–AP) only! ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– function Packets_In_Buffer –– #13 (in Buffer_ID: T_Buffer_ID): Integer; ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– Returns number of packets still in buffer –– If Buffer_ID is invalid ––> return value 0

Page 436: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

427

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– To be used in UCL/HLCL –––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––––––––––––––––––––––––––––––––––––––––––––––––––––––––– function No_Of_Free_Slots_In_Buffer –– #14 (in Buffer_ID: T_Buffer_ID): Integer; ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– Returns number of free slots –– If Buffer_ID is invalid ––> return value 0 –– To be used in UCL/HLCL –––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––––––––––––––––––––––––––––––––––––––––––––––––––––––––– function No_Of_Buffers : Integer; –– #15 ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– Returns number of buffers defined –– To be used in UCL/HLCL –––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––––––––––––––––––––––––––––––––––––––––––––––––––––––––– function No_Of_Free_Buffers : Integer; –– #16 ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– Returns number of buffers still available in TES –– (MAX_NUMBER_OF_ADU_BUFFER – No_Of_Buffers ) –– To be used in UCL/HLCL –––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––––––––––––––––––––––––––––––––––––––––––––––––––––––––– procedure Reset_Packet_Buffers; –– #17 ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– ALL Buffers will be closed and all packets dismissed. –– Buffer definitions no longer valid. –– CAUTION!! –– This command may cause P_Invalid_Buffer_ID errors –– in APs dealing with old packet buffer IDs! –– To be used in UCL/HLCL –––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––––––––––––––––––––––––––––––––––––––––––––––––––––––––– function Buffer_ID_For_ADU(ADU:T_ADU_Path) : T_Buffer_ID; –– #18 ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– Returns Buffer_ID of buffer containing specified ADU –– If ADU not in a Buffer definition ––> return value 0 –– To be used in UCL/HLCL –––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––––––––––––––––––––––––––––––––––––––––––––––––––––––––– function Buffer_ID_For_AP(AP:T_AP_Path) : T_Buffer_ID; –– #19 ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– Returns Buffer_ID of buffer containing specified ADU –– If ADU not in a Buffer definition ––> return value 0 –– To be used in UCL/HLCL –––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––––––––––––––––––––––––––––––––––––––––––––––––––––––––– function Buffer_ID –– #20 (Buffer_Index: T_Index) : T_Buffer_ID; ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– Returns Buffer_ID of Buffer_Index –– With this function, it is possible to iterate all –– buffer definitions

Page 437: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

428

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– Buffer_Index range is from 1 .. No_Of_Buffers –– If Buffer_Index > No_Of_Buffers ––> return value 0 –– To be used in UCL/HLCL –––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––––––––––––––––––––––––––––––––––––––––––––––––––––––––– function No_of_ADUs_for_Buffer ––#21 (in Buffer_ID: T_Buffer_ID): Integer; ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– Returns number of ADU attached to specified buffer –– definition –– If Buffer_ID is invalid ––> return value 0 –– To be used in UCL/HLCL ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– function Buffer_ADU ––#22 (in Buffer_ID: T_Buffer_ID; in Index: T_Index): T_ADU_Path; ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– Returns ADU path attached to specified buffer definition –– With this function, it is possible to iterate the –– ADUs of a buffer definition –– Index range is from 1 .. No_of_ADUs_for_Buffer –– If Buffer_ID or Index is invalid ––> return value \\ –– To be used in UCL/HLCL –––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––––––––––––––––––––––––––––––––––––––––––––––––––––––––– function Trigger_AP ––#23 (in Buffer_ID: T_Buffer_ID): T_AP_Path; ––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– Returns Trigger_AP path attached to specified buffer definition –– If Buffer_ID is invalid ––> return value \\ –– To be used in UCL/HLCL –––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––end PACKET_LIBRARY;–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

6.9.8.3 Interface Description

Refer to the text in the header of the specification for constraints and operational behaviour.

Page 438: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

429

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.9 UCL Ground System Library: TC_CONSTRUCTION

The TC_CONSTRUCTION library contains operations to construct a telecommand from UCL

Library Id (Body_Id): 9

6.9.9.1 Routines Summary

The Ground UCL library routines are:

APPEND_FROM_TC, APPEND_FROM_HANDLEAPPEND_BYTE_STRING, APPEND_CHAR_STRINGAPPEND_HEX_STRING, APPEND_BITAPPEND_BYTE, APPEND_INTEGERAPPEND_UNSIGNED_INTEGER, APPEND_REALAPPEND_LONG_REAL, APPEND_TIME

CONSTRUCT_FROM_TC, CONSTRUCT

FREE

SEND_TCSET_VERSION_NUMBER, SET_TYPESET_2ND_HEADER_FLAG, SET_APIDSET_SEGMENT_FLAGS , SET_SEQUENCE_COUNTSET_PACKET_LENGTH, SET_BYTE_STRINGSET_CHAR_STRING, SET_HEX_STRINGSET_BIT, SET_BYTESET_INTEGER, SET_UNSIGNED_INTEGERSET_REAL, SET_LONG_REALSET_TIME

NOTE: The routines marked with asterisks (*) cannot be called from HLCL, neither interactively nor out of HLCL sequences.

Page 439: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

430

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.9.9.2 UCL System Library Specification

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– *******************************************–– TC_CONSTRUCTION UCL System Library–– *******************************************––––ABSTRACT–––– Defines Procedures to construct Telecommands.–– –– Must be compiled with Body Id = 9––––IDENTIFICATION–––– PROJECT NAME : CGS–– OBJECT NAME : TC_CONSTRUCTION System Library–– VERSION : ##V##CGS_5.1.0–– CGS CM : @(#) tc_construction_.ucl /main/cgs_5.0/3 01/15/02 17:34:56@(#)

––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––CONTENTS–––– COMPILER : UCLC –– LANGUAGE : UCL––CHANGE HISTORY–– PIRN 8232, Issue 1/A for CGS V5.1.0: –– initial version––END HISTORY–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

library TC_CONSTRUCTION;

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– CONSTANTS––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– constant DEFAULT_ISSUE_TIMEOUT: DURATION := 0.5 [s];

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– TYPES–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

type UCL_RETURN = INTEGER;

–– the number of TCs to be constructed is limited and maintained by–– TES. An error will be returned if this limit is exceeded. type HANDLE = INTEGER;

type VERSION_RANGE = INTEGER (0 .. 7);

type TYPE_RANGE = INTEGER (0 .. 1);

type APID_RANGE = INTEGER (0 .. 2**11 – 1);

type SEG_FLAG_RANGE = INTEGER (0 .. 3);

type SEQ_COUNT_RANGE = INTEGER (0 .. 2**14 – 1);

–– size declarations constant PRIMARY_HEADER_SIZE: INTEGER := 6; constant MAX_DATA_SIZE: INTEGER := 2**12; constant MAX_TC_SIZE: INTEGER := MAX_DATA_SIZE + PRIMARY_HEADER_SIZE;

–– length of an entire TC packet including primary header and data field

Page 440: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

431

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

type ADDRESS = INTEGER (0 .. MAX_TC_SIZE);

–– used to set new data: the data may be replaced at a bit or a byte position type OFFSET_TYPE = (BIT_OFFSET, BYTE_OFFSET);

–– maximum bit offset in a TC data field–– note: offset 1 means: first bit/byte in the data field BEHIND the primary header type OFFSET = INTEGER (1 .. MAX_DATA_SIZE * 8); type BIT = INTEGER (0 .. 1);

type CCSDS_HEADER_RANGE = INTEGER (0 .. 1); type CONSTRUCT_ITEM_NAME = PATHNAME (EGSE_BINARY_PACKET, EGSE_PREDEFINED_TC, PUS_TC);

type TC_PACKET_TYPE = (PUS_TC, EGSE_PREDEFINED_TC, EGSE_BINARY_PACKET);

–– Two different checksums are available: –– o CRC16 polynomial: x**16 + x**15 + x**2 + 1 (CRC16) –– or –– o 16 bit add without carry (as used by COL) –– –– NONE is used to create/send a TC without checksum

type CHECKSUM_TYPE = (NONE, CRC16, ADD_WO_CARRY);

constant DEFAULT_CHECKSUM: CHECKSUM_TYPE := CRC16;

type BYTE_ARRAY = STRING (80) of BYTE; type CHAR_ARRAY = STRING (80) of CHARACTER;

type PRIORITY = (LOW, HIGH);

type TIME_BASE = (GUARANTEED_LOCAL_TIME, LOCAL_TIME, SMT);

type SAS_NAME = STRING(20);

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– OPERATIONS––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– Create new TC–– Note: the following CONSTRUCT procedures will allocate new memory.–– Therefore, the maximum number of handles, i.e. the number of TC,–– is limited. The allocated memory should be freed, if a TC is not used –– anymore.

–– This procedure will fetch an existing TC declaration from the database,–– which can be modified using the SET–/APPEND operations from this library.–– Note: the TC data as well as the primary header fields are fetched from–– the database.–– Parameters to the TC defined in the database will not be taken–– into account.–– Try to set any header field will result in an error, if the–– TC has been constructed from an EGSE_BINARY_PACKET

procedure CONSTRUCT_FROM_TC (in TC: CONSTRUCT_ITEM_NAME ();

Page 441: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

432

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

out TC_HANDLE: HANDLE; out STATUS: UCL_RETURN); –– #1

–– This procedure will use the TC definition from an already defined–– handle. procedure CONSTRUCT_FROM_HANDLE (in FROM_TC_HANDLE: HANDLE; out TC_HANDLE: HANDLE; out STATUS: UCL_RETURN); –– #2

–– The following operation can be used to define a new TC. The entire–– TC will be completely cleared, i.e. all data including the–– primary header has to be set manually using the SET–/APPEND–– procedures.procedure CONSTRUCT (in TC_TYPE: TC_PACKET_TYPE := PUS_TC; out TC_HANDLE: HANDLE; out STATUS: UCL_RETURN); –– #3

–– This operation will deallocate the memory used to construct the–– TC specified by TC_HANDLE. Any access to this TC will result in–– an error, unless it is reused by the next call of CONSTRUCT,–– CONSTRUCT_FROM_TC or CONSTRUCT_FROM_HANDLE.procedure FREE (in TC_HANDLE: HANDLE; out STATUS: UCL_RETURN); –– #4

–––– Assign new values to an already created TC–––– This procedure will assign a new version number within the Primary–– Header of the specified TC. –– Default value for CONSTRUCT: 0

procedure SET_VERSION_NUMBER (in TC_HANDLE: HANDLE; in VERSION_NUMBER: VERSION_RANGE; out STATUS: UCL_RETURN); –– #5

–– This procedure will assign a new type within the Primary–– Header of the specified TC. –– Default value for CONSTRUCT: 1

procedure SET_TYPE (in TC_HANDLE: HANDLE; in TYPE_NUMBER: TYPE_RANGE; out STATUS: UCL_RETURN); –– #6

–– This procedure will assign a new CCSDS 2nd Header Bit within –– the Primary Header of the specified TC.–– Default value for CONSTRUCT: 1

procedure SET_2ND_HEADER_FLAG (in TC_HANDLE: HANDLE; in CCSDS_VALUE: CCSDS_HEADER_RANGE; out STATUS: UCL_RETURN); –– #7

–– This procedure will assign a new application process id within –– the Primary Header of the specified TC. –– Default value for CONSTRUCT: 0

procedure SET_APID (in TC_HANDLE: HANDLE;

Page 442: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

433

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

in APID: APID_RANGE; out STATUS: UCL_RETURN); –– #8

–– This procedure will assign new segment flags within the Primary–– Header of the specified TC. –– Default value for CONSTRUCT: 3

procedure SET_SEGMENT_FLAGS (in TC_HANDLE: HANDLE; in SEG_FLAGS: SEG_FLAG_RANGE; out STATUS: UCL_RETURN); –– #9

–– This procedure will assign a new source sequence counter within –– the Primary Header of the specified TC. –– Default value for CONSTRUCT: 0–– Note: the sequence counter will automatically be set by procedure–– SEND, unless it has already been set via SET_SEQUENCE_COUNT

procedure SET_SEQUENCE_COUNT (in TC_HANDLE: HANDLE; in SEQ_COUNT: SEQ_COUNT_RANGE; out STATUS: UCL_RETURN); –– #10

–– This procedure will set a new packet length within the –– Primary Header of the specified TC.

procedure SET_PACKET_LENGTH (in TC_HANDLE: HANDLE; in PACKET_LENGTH: ADDRESS; out STATUS: UCL_RETURN); –– #11

–––– The following procedures will replace a value at the provided–– address within a TC. The address specifies the BIT– or BYTE–offset–– within the data field of the TC. –– Note: the address of the first bit/byte is 1. The address range,–– thus, is: 1 .. 32768 (for BIT_OFFSET) and 1 .. 4096 (for BYTE_OFFSET).––procedure SET_BYTE_STRING (in TC_HANDLE: HANDLE; in AT_POS: OFFSET; in OFFSET_KIND: OFFSET_TYPE := BIT_OFFSET; in VALUE: BYTE_ARRAY; out STATUS: UCL_RETURN); –– #12

procedure SET_CHAR_STRING (in TC_HANDLE: HANDLE; in AT_POS: OFFSET; in OFFSET_KIND: OFFSET_TYPE := BIT_OFFSET; in VALUE: CHAR_ARRAY; out STATUS: UCL_RETURN); –– #13

–– The following procedure will convert a hexadecimal string to its–– binary representation.–– Example: ”FF” will be converted to the value 255–– ”FF10” will be converted to 255 and 16–– Note: the length of the string must be a multiple of 2, since–– always two characters will be converted to one single byte –– The status INVALID_SIZE will be returned, if the size of the–– VALUE string is invalid–– The status INVALID_PARAMETER will be returned in case the –– VALUE string contains any character which cannot be converted.procedure SET_HEX_STRING

Page 443: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

434

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

(in TC_HANDLE: HANDLE; in AT_POS: OFFSET; in OFFSET_KIND: OFFSET_TYPE := BIT_OFFSET; in VALUE: CHAR_ARRAY; –– Hex–String e.g. ”00FFAF6799” out STATUS: UCL_RETURN); –– #14

procedure SET_BIT (in TC_HANDLE: HANDLE; in AT_POS: OFFSET; in OFFSET_KIND: OFFSET_TYPE := BIT_OFFSET; in VALUE: BIT; out STATUS: UCL_RETURN); –– #15

procedure SET_BYTE (in TC_HANDLE: HANDLE; in AT_POS: OFFSET; in OFFSET_KIND: OFFSET_TYPE := BIT_OFFSET; in VALUE: BYTE; out STATUS: UCL_RETURN); –– #16

procedure SET_INTEGER (in TC_HANDLE: HANDLE; in AT_POS: OFFSET; in OFFSET_KIND: OFFSET_TYPE := BIT_OFFSET; in VALUE: INTEGER; out STATUS: UCL_RETURN); –– #17

procedure SET_UNSIGNED_INTEGER (in TC_HANDLE: HANDLE; in AT_POS: OFFSET; in OFFSET_KIND: OFFSET_TYPE := BIT_OFFSET; in VALUE: UNSIGNED_INTEGER; out STATUS: UCL_RETURN); –– #18

procedure SET_REAL (in TC_HANDLE: HANDLE; in AT_POS: OFFSET; in OFFSET_KIND: OFFSET_TYPE := BIT_OFFSET; in VALUE: REAL; out STATUS: UCL_RETURN); –– #19

procedure SET_LONG_REAL (in TC_HANDLE: HANDLE; in AT_POS: OFFSET; in OFFSET_KIND: OFFSET_TYPE := BIT_OFFSET; in VALUE: LONG_REAL; out STATUS: UCL_RETURN); –– #20

procedure SET_TIME (in TC_HANDLE: HANDLE; in AT_POS: OFFSET; in OFFSET_KIND: OFFSET_TYPE := BIT_OFFSET; in VALUE: TIME; out STATUS: UCL_RETURN); –– #21

–––– The following procedures will append a value to the application–– data field of the specified TC. The length of the entire TC will–– be automatically recalculated and the length field of the primary–– header will be modified accordingly.–– The PEC, i.e. Packet Error Control, will be recalculated, if the –– TC is send (SEND_TC) or appended to another TC. In the latter case,–– only the PEC of the inserted TC will be recalculated.

Page 444: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

435

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– Note: PEC calculation can be inhibited using the value NONE for the–– parameter CHECKSUM of the APPEND/SEND_TC operations.––

procedure APPEND_FROM_TC (in TO_TC_HANDLE: HANDLE; in FROM_TC: CONSTRUCT_ITEM_NAME (); in CHECKSUM: CHECKSUM_TYPE := DEFAULT_CHECKSUM; out STATUS: UCL_RETURN); –– #22

procedure APPEND_FROM_HANDLE (in TO_TC_HANDLE: HANDLE; in FROM_TC: HANDLE; in CHECKSUM: CHECKSUM_TYPE := DEFAULT_CHECKSUM; out STATUS: UCL_RETURN); –– #23

procedure APPEND_BYTE_STRING (in TO_TC_HANDLE: HANDLE; in VALUE: BYTE_ARRAY; out STATUS: UCL_RETURN); –– #24

procedure APPEND_CHAR_STRING (in TO_TC_HANDLE: HANDLE; in VALUE: CHAR_ARRAY; out STATUS: UCL_RETURN); –– #25

–– The following procedure will convert a hexadecimal string to its–– binary representation.–– Example: ”FF” will be converted to the value 255–– ”FF10” will be converted to 255 and 16–– Note: the length of the string must be a multiple of 2, since–– always two characters will be converted to one single byte –– The status INVALID_SIZE will be returned, if the size of the–– VALUE string is invalid–– The status INVALID_PARAMETER will be returned in case the –– VALUE string contains any character which cannot be converted.procedure APPEND_HEX_STRING (in TO_TC_HANDLE: HANDLE; in VALUE: CHAR_ARRAY; –– Hex–String e.g. ”00FFAF6799” out STATUS: UCL_RETURN); –– #26

procedure APPEND_BIT (in TO_TC_HANDLE: HANDLE; in VALUE: BIT; out STATUS: UCL_RETURN); –– #27

procedure APPEND_BYTE (in TO_TC_HANDLE: HANDLE; in VALUE: BYTE; out STATUS: UCL_RETURN); –– #28

procedure APPEND_INTEGER (in TO_TC_HANDLE: HANDLE; in VALUE: INTEGER; out STATUS: UCL_RETURN); –– #29

procedure APPEND_UNSIGNED_INTEGER (in TO_TC_HANDLE: HANDLE; in VALUE: UNSIGNED_INTEGER; out STATUS: UCL_RETURN); –– #30

procedure APPEND_REAL (in TO_TC_HANDLE: HANDLE;

Page 445: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

436

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

in VALUE: REAL; out STATUS: UCL_RETURN); –– #31

procedure APPEND_LONG_REAL (in TO_TC_HANDLE: HANDLE; in VALUE: LONG_REAL; out STATUS: UCL_RETURN); –– #32

procedure APPEND_TIME (in TO_TC_HANDLE: HANDLE; in VALUE: TIME; out STATUS: UCL_RETURN); –– #33

–– The following operations will send a constructed TC to the specified–– SAS. Note that the information assigned to a TC via the database, –– like physical address, will be used in case the TC has been defined–– using CONSTRUCT_FROM_TC. Default values will be used in any other case.

procedure SEND_TC (in TC: HANDLE; in PRIO: PRIORITY := LOW; in AT_TIME: TIME := ~:~; in BASE: TIME_BASE := LOCAL_TIME; in ONBOARD_EXECUTION_TIME: TIME := ~:~; in TIMEOUT: DURATION := DEFAULT_ISSUE_TIMEOUT; in TO_SAS: SAS_NAME; in CHECKSUM: CHECKSUM_TYPE := DEFAULT_CHECKSUM; out SAS_ACK_CODE: INTEGER; –– Status Code returned by SAS out SAS_ACK_TIME: TIME; –– Time when SAS acknowledged thecommand out CCSDS_SEQUENCE_COUNT: INTEGER; –– Sequence Count used for CCSDSPacket out STATUS: UCL_RETURN); –– #34

END TC_CONSTRUCTION;

6.9.9.3 Interface Description

Refer to the text in the header of the specification for constraints and operational behaviour.

Page 446: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

437

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.10 Onboard Commands and Responses

6.10.1 Software Commands (SWOP_Command)

Software Commands (SWOP_Commands) are sent as CCSDS command packets.

6.10.1.1 CCSDS Header for Software Commands

The CCSDS packet structure is defined in applicable document TBD (SSP42001) sections 3.6.2.2.2.2and 3.6.3.2.1.1).Primary Header:

CP–PDU Version: : ’000’ B

CP–PDU Type : Most Significant Bit of APID Remark: ’0’ B for System Commands, ’1’ B for Payload Commands

CP–PDU Secondary Header Flag: ’1’ B

CP–PDU Application ID: Least significant Bits of APID as defined for Ground

CCSDS End Point to Onboard CCSDS End PointCP–PDU Sequence Flags: : ’11’BCP–PDU Sequence Count : 0 – 16383CP–PDU Packet Length:

: Packet Length (Number of Octets) – 7 i.e. packet length excluding primary header – 1

Secondary Header:

Time : CCSDS unsegmented time code All 0 if Time Id = ’00’ B

Time Id : ’00’B (Time field not used) or ’01’B (Time of packet generation)

Checksum Indicator: ’1’B (Checksum Present)

Packet Type: : ’1001’B System Command or ’1000’B Essential Command or ’1010’B Payload Command

Packet ID: : SID of SWOP_Command

Page 447: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

438

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.10.1.2 CCSDS Data Field for Software Commands

All actual ’IN’ parameters have be encoded into the data field in the same sequence as defined byformal specification of the software command.The following transfer syntax rules have to be regarded:

– Most significant bit first, least significant bit last

– most significant byte first, least significant byte last

– Values of parameters shall be encoded according to the follwing mapping: INTEGER 4 Bytes, MSB of most significant Byte is sign bit

REAL IEEE 754 format single precisionTIME CCSDS unsegmented time code (5 byte) to be

followed by byte with value 0.String_Type 2 bytes for length followed by number of

bytes (characters) as defined by length. For oddlength byte with value 0 has to follow without changing the length of the string.

Statecode_Type 8 bytes containing the statecode literal (ASCII)Pathname_Type 4 bytes containing the SID of the actual enditem

For ’OUT’ parameters the same rules apply (see next section 7.10.1.3).

6.10.1.3 Response Packet

After the onboard execution of the command , exactly one response packet is returned.

The structure for response packet can be copied from higher level ICDs (SSMB to APM).

6.10.1.3.1 CCSDS Header

Primary Header:

CP–PDU Version: : ’000’ B

CP–PDU Type : Most Significant Bit of APID Remark: ’0’ B for System Command Responses, ’1’ B for Payload CommandResponses

CP–PDU Secondary Header Flag: ’1’ B

CP–PDU Application ID: Least significant Bits of APID as defined for Onboard

CCSDS End Point to Ground CCSDS End PointCP–PDU Sequence Flags: : ’11’BCP–PDU Sequence Count : 0 – 16383CP–PDU Packet Length:

: Packet Length (Number of Octets) – 7 i.e. packet length excluding primary header – 1

Secondary Header:

Page 448: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

439

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Time : CCSDS unsegmented Time Code All 0 if Time Id = ’00’ B

Time Id : ’00’B (time field not used) ’01’B (Time of generation i.e. Time of Acknowledge at onboard End Point

Checksum Indicator: ’1’B (Checksum Present)

Packet Type: : ’1100’B (Command Response)Packet ID: : SID of the response packet which is related to

the SWOP_command in CGS: defined via response packet reference

6.10.1.3.2 CCSDS Data Field

The response packet contains the following items starting at the first byte of the data field:

Transaction ID: Primary Header of uplinked command without length field (4 bytes)Result: Enumeration (16 bit) indicating the success of the command

Success without any problems: 0 Success but sequence count anomaly: 1 No Success: Not authorized: 2 No Success: Unknown Command 3 No Success: Not valid command 4 No Success: Parameters not complete 5 No Success: Parameters not valid 6 No Success: Sequence Count repetition 7 No Success: Sequence Count Mismatch 8 No Success: Checksum Error 9 No success: Two stage buffer full 10 No success: Two stage command source mismatch 11 No Success: Other Reasons 63 No Success: specific reasons 64 .. 255

Return Parameter: Parameter returned by the onboard system. Parameter Encoding: The transfer syntax for ’OUT’ parameters con– tained in the response packet is the same as for the command packets.

Page 449: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

440

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.10.2 FLAP Execution Requests

Execution Requests for Flight Automated Procedures (FLAP) are sent as command packets. Thestructure for command packets can be copied from higher level ICDs (SSMB to APM).

6.10.2.1 CCSDS Header for FLAP Execution Requests

Primary Header:

CP–PDU Version: : ’000’ B

CP–PDU Type : Most Significant Bit of APID Remark: ’0’ B for System Commands, ’1’ B for Payload Commands

CP–PDU Secondary Header Flag: ’1’ B

CP–PDU Application ID: Least significant Bits of APID as defined for Ground

CCSDS End Point to Onboard CCSDS End PointCP–PDU Sequence Flags: : ’11’BCP–PDU Sequence Count : 0 – 16383CP–PDU Packet Length:

: Packet Length (Number of Octets) – 7 i.e. packet length excluding primary header – 1

Secondary Header:

Time : CCSDS unsegmented time code All 0 if Time Id = ’00’ B

Time Id : ’00’B (Time field not used) or ’01’B (Time of packet generation)

Checksum Indicator: ’1’B (Checksum Present)

Packet Type: : ’1001’B (System Command) or ’1010’B (Payload Command)

Packet ID: : SID of Reference to SWOP_Command defined for FLAP execution as defined in section TBD of the ICD TBD Note: In CGS: defined via Configuration File

6.10.2.2 CCSDS Data Field for FLAP Execution Requests

The data field contains the following parameter in the following sequence:1. FLAP identifier SID (4 bytes)2. time_tag Time (CCSDS unsegemented Time Code) to be

followed by byte with value 0.3. Priority of FLAP integer (4 bytes)4. onboard execution node SID (4 bytes)5. ’IN’ parameters of FLAP

Page 450: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

441

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

All actual ’IN’ parameters of the FLAP have to be encoded into the data field as defined in section 7.16Parameter Encoding using the external scheme.

The following transfer syntax rules have to be regarded:

– Most significant bit first, least significant bit last– most significant byte first, least significant byte last

Page 451: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

442

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.10.2.3 Response Packet for FLAP Execution Requests

After the onboard execution of the FLAP command , exactly one response packet is returned. The structure for response packet can be copied from higher level ICDs (SSMB to APM).

6.10.2.3.1 CCSDS Header

Primary Header:

CP–PDU Version: : ’000’ B

CP–PDU Type : Most Significant Bit of APID Remark: ’0’ B for System Command Responses, ’1’ B for Payload CommandResponses

CP–PDU Secondary Header Flag: ’1’ B

CP–PDU Application ID: Least significant Bits of APID as defined for Onboard

CCSDS End Point to Ground CCSDS End PointCP–PDU Sequence Flags: : ’11’BCP–PDU Sequence Count : 0 – 16383CP–PDU Packet Length:

: Packet Length (Number of Octets) – 7 i.e. packet length excluding primary header – 1

Secondary Header:

Time : CCSDS unsegmented Time Code All 0 if Time Id = ’00’ B

Time Id : ’00’B (time field not used) ’01’B (Time of generation i.e. Time of Acknowledge at onboard End Point

Checksum Indicator: ’1’B (Checksum Present)

Packet Type: : ’1100’B (Command Response)Packet ID: : SID of the response packet which is related to

the SWOP_commandin CGS: defined via response packet reference

6.10.2.3.2 CCSDS Data Field

The response packet contains the following items starting at the first byte of the data field:

Transaction ID: Primary Header of uplinked command without length field (4 bytes)Result: Enumeration (16 bit) indicating the success of the command

Success without any problems: 0 Success but sequence count anomaly: 1 No Success: Not authorized: 2 No Success: Unknown Command 3 No Success: Not valid command 4 No Success: Parameters not complete 5 No Success: Parameters not valid 6 No Success: Sequence Count repetition 7 No Success: Sequence Count Mismatch 8 No Success: Checksum Error 9

Page 452: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

443

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

No success: Two stage buffer full 10 No success: Two stage command source mismatch 11 No Success: Other Reasons 63 No Success: specific reasons 64 .. 255

FLAP_ID: Integer identifying the FLAP executed.FLAP_status: integer indicating the success of the FLAP execution

Page 453: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

444

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.11 DBS Types and Constants Definitions

Informal Interface Description

A same set of data types are used in the various procedural interfaces provided by the DBS product. In orderto ensure the consistency of their definition and usage through all the interfaces, they are grouped and definedonce, in the current section.

They are ”basic” data types and constants (like numbers, strings, enumerations...) which are accessible directly.They constitute a type pool and are grouped into a set of Ada packages, according to their nature.

The usage of the basic data types is simple. The desired variable has to be declared with the desired type in thepiece of software which will use it. The access to the content of the variable is done directly, by knowledge ofits Ada structure.

The DBS_DEFINITIONS package contains type and constant definitions that are : . specific of DBS, i.e. not used or shared by several CGS products, . common in DBS, i.e. used or shared by several DBS provided services, . of general nature, i.e. not specific to any of these services.

The DBS main type definitions are described hereafter.

• DBS Return Status

A type is defined for DBS return status and is used to report back to the calling application the resultof any DBS called operation.

• DBS Files

Some types are defined to manage the various files containing the test/simulation/evaluation results data:

– raw data files contain data generated during test or simulation execution;

– result files contain data generated during evaluation activity.

• Sessions

The package DBS_DEFINITIONS provides two types of test sessions :

– test execution session, which is a collection of configuration information, files and data gener-ated during a particular test and limited by a time frame;

– test evaluation session, which is a collection of evaluation result files.

• Logging Events

Some types are defined to access logged events like :

– log events which are asynchronous events happening during test/simulation execution;

– user events which are additional time markers inserted by test operators during test/simulationexecution.

• Engineering Values

Some types are defined to access engineering values (calibrated data) logged in the TRDB during test/si-mulation execution.

• Print Types

Several types are provided to manage printers and print queue.

• DBS Housekeeping Data

Page 454: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

445

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

A set of types represent the current state of some critical parts of DBS, like magnetic disk, database, etc.

• User Result Table

Types are provided for user result tables which are tables created by test operators, to log messages orbinary strings during test/simulation execution.

• Data Allocation

Some types are available to allow allocation of selected part of the TRDB, for further evaluation activity.

• Final Archiving (FA)

Some types are provided to support FA activities.

Page 455: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

446

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Formal Interface Description

–––– DBS_DEFINITIONS––––****************************************************************************––ABSTRACT–––––– This package contains the type and constant definitions provided for the–– usage of the DBS RPI and DBSAPI.––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––IDEN -TIFICATION–––– PROJECT NAME : VICOS–– PRODUCT NAME : DBS–– CI–NUMBER : 1216 863–– OBJECT NAME : DBS_DEFINITIONS––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––CONTENTS–––– COMPILER : Sun / Verdix & HP / Alsys–– LANGUAGE : Ada–– SPECIAL CONTENTS:–– CHANGE HISTORY

–––– CGS V4.4 ICD Change 13.04.2000, W.Tammen:–– introduced new values for enumeration type T_DBS_ERROR:–– INTERRUPTED_BY_USER and CLOSE_SESSION_IN_PROGRESS–– according to COL–RIBRE–IRN–CGS–8106––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– CGS V4.2 ICD Change 27.07.99, W.Tammen: –– introduced new values for enumeration type T_DBS_ERROR:–– ADT_EVENT_INVALID_NAME, ADT_EVENT_FILE_EXISTS and–– ADT_EVENT_ERROR_ACCESSING_FILE

–– according to COL–RIBRE–IRN–CGS–8078

––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– CGS V4.2 ICD Change 29.04.99, W.Tammen: –– introduced new value END_OF_LIST for enumeration type –– T_DBS_ERROR according to COL–RIBRE–IRN–CGS–8059––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– CGS 4.2 ICD Change (acc. COL–RIBRE–IRN–CGS–8039, 07/07/1997)–– created by: P.Athmann, DASA–– Include representation clauses for Printer Information Types––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– CGS V4.1 ICD Change (acc. COL–RIBRE–IRN–CGS–7009c, 07/07/1997)–– created by: Uwe Hohnhorst, DASA, RIO63–– comments:–– 1) Changed T_DBS_ERROR with ref. COL–SBI–SPR–137, 18.04.1997 –– 2) Changed MAX_APPLICATION_NUMBER = 64–– 3) Reintroduction of User Result Files in T_DATA_TYPE–– 4) Representation clauses for T_TRDB_INFO and–– T_TABLESPACE_RATIO’SIZE–– 5) T_LIST_OF_CCU_INFORMATION deleted,–– T_LIST_OF_CCU_INFORMATION_L added–– 6) Clarification of meaning of ANY in T_MODE_SELECTION–– 7) Added FA_SAS_ALREADY_RUNNING, CANNOT_START_FA_SAS to–– T_DBS_ERROR––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– CGS V4.0/V4.1 ICD Change (acc. COL–RIBRE–IRN–CGS–6027b, 25/03/1997)–– created by: Uwe Hohnhorst, DASA, RIT11–– comments: –– 1) FA SAS Dialog related types added,

Page 456: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

447

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– 2) Return stati in type T_DBS_ERROR adapted,–– 3) Removal of User Result Files in T_DATA_TYPE,–– 4) CCU Information related types added,–– 5) T_TRDB_INFO changed (removal of FA_STATUS).––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.10 at Spacebel Informatique, Brussels–– creator: bcharlie (on host asimov)–– creation date: 15.03.96 14:31:12–– comment:–– USER EVENT log type replaced, SPR – 2146––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.5 at Spacebel Informatique, Brussels–– creator: bcharlie (on host ariane5)–– creation date: 25.07.95 11:56:34–– comment:–– Move T_EVENT definition to Vicos_definitions–– definition, change User Event definitions.––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.4 at Spacebel Informatique, Brussels–– creator: bcharlie (on host moon)–– creation date: 24.07.95 17:44:14–– comment:–– Move from VICOS_CALENDAR to CGS_CALENDAR––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.3 at Spacebel Informatique, Brussels–– creator: cm_admin (on host moon)–– creation date: 06.07.95 09:44:13–– comment:–– Replace the Vicos_Definitions type T_VICOS_MODES_AND_STATI –– by the new T_VICOS_MODE for selection of sessions and–– Exec session info. (Cfr. PIRN 3023/E)––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.7 at Central Repository V2.0 (ariane5)–– creator: bcharlie (on host ariane5)–– creation date: 07.06.95 14:09:00–– comment:–– Add types T_TIME_TYPE and T_TIME_ORDERING,–– modify type T_ENG_VAL_SEL_CRIT by adding–– the fields TIME_FRAME_TYPE and LIST_ORDER.––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.6 at Central Repository V2.0 (ariane5)–– creator: bcharlie (on host ariane5)–– creation date: 10.03.95 14:02:19–– comment:–– Modify Eval Session Selection criteria–– type to add array of boolean for Location.––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.5 at Central Repository V2.0 (ariane5)–– creator: bcharlie (on host ariane5)–– creation date: 10.03.95 09:18:21–– comment:–– Change in test execution related types.–– Array of boolean added for Mode selection, Location–– selection and execution state selection.–– Type T_EXEC_SESSION_SEL_CRIT modified to include–– these types.––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.4 at Central Repository V2.0 (ariane5)–– creator: bcharlie (on host ariane5)–– creation date: 01.02.95 16:02:49–– comment:–– modified by R.Smillie 1/2/95 in accordance with –– COL–RIBRE–IRN–CGS–3023 (T_EVENT : TIME_TAG_LT, TIME_TAG_SMT).––––*––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

Page 457: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

448

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– V4.3 at Central Repository V2.0 (ariane5)–– creator: bcharlie (on host ariane5)–– creation date: 31.01.95 14:41:49–– comment:–– Add the FA SAS status FA_DEVICE_NOT_ALLOCATED.––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.2 at Central Repository V2.0 (ariane5)–– creator: bcharlie (on host ariane5)–– creation date: 16.01.95 12:15:54–– comment:–– add FA_LIST_NOT_FOUND, FA_MMI_REQUEST_CANCELLED,–– FA_UNIX_PROBLEM Status.––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.1 at SBI ; DBS development–– creator: bcharlie (on host ariane5)–– creation date: 08.11.94 09:43:42–– Remove error status related to URT,–– add status NO_PRINTER_AVAILABLE,–– change comment for Oracle wildcard,–– add status FA_NOT_ENOUGH_SPACE,–– remove SYNOPTIC in Result File Types,–– remove User Result related types,–– add FA_RESERVED_FOR_AUTO_ARCH,–– add User Event field values, add FA_MMI_TIME_OUT.–––– END HISTORY––****************************************************************************––––

with VICOS_DEFINITIONS;with CGS_CALENDAR;with MPS_DEFINITIONS;with ADT_RAW_VALUE;with ADT_ENGINEERING_VALUE;with VICOS_LIST;

package DBS_DEFINITIONS is

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–– Return FA SAS request for dialog

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

type T_DBS_FA_DISK_STATUS is (SUCCESS,FA_REQ_FOR_AUTO_ARCHIVE_DISK,FA_REQ_FOR_MANUAL_ARCHIVE_DISK,FA_REQ_FOR_EXPORT_DISK,FA_REQ_FOR_IMPORT_DISK,FA_REQ_FOR_RETRIEVE_DISK,FA_REQ_FOR_NEW_DISK);

–– SUCCESS : Appropriate disk has been already inserted–– FA_REQ_FOR_AUTO_ARCHIVE_DISK : request from FA SAS to insert an appropriate diskfor AUTOMATIC ARCHIVING–– FA_REQ_FOR_MANUAL_ARCHIVE_DISK : request from FA SAS to insert an appropriate diskfor MANUAL ARCHIVING–– FA_REQ_FOR_EXPORT_DISK : request from FA SAS to insert an appropriate diskfor EXPORT–– FA_REQ_FOR_IMPORT_DISK : request from FA SAS to insert an appropriate diskfor IMPORT–– FA_REQ_FOR_RETRIEVE_DISK : request from FA SAS to insert an appropriate diskfor RETRIEVE–– FA_REQ_FOR_NEW_DISK : request from FA SAS to insert a new disk forany –– write operations on FA (see above, e.g. Export,Archiving)

subtype T_DBS_DEVICE_ID is positive range 1 .. 2;

Page 458: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

449

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

type T_DBS_FA_DIALOG isrecord

DEVICE_ID : T_DBS_DEVICE_ID;FA_DISK_STATUS : T_DBS_FA_DISK_STATUS;

end record;

–– DEVICE_ID is the allocated device for requested operation.

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–– Return status type

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––type T_DBS_ERROR is (

OK, –– The operation has been successfully performed

CONNECT_PROBLEM,–– Connection failed

INIT_PROBLEM,–– Initialisation of communication from local to central DBS –– failed (i.e. failed to establish connection to CGS Product).

DBS_STOPPED,–– Local DBS is stopped, no more operation allowed.

DBS_NOT_CONNECTED,–– Local DBS disconnected from communication services.

DISCONNECT_PROBLEM,–– Disconnection failed.

SESSION_NOT_FOUND,–– The session name is unknown.

INVALID_SESSION_NAME,–– The session name is syntactically incorrect.

INVALID_APPLICATION_NAME,–– The application TSCV_xx may not participate–– into an Execution session.

ALREADY_PARTICIPATING,–– Some application names already participate to open session.

AUTO_ARCH_ALREADY_USED,–– Two sessions are already open with automatic archiving.

MAX_SESSION_REACHED,–– Maximum of allowed open sessions is reached, init refused.

FA_DRIVE_NOT_AVAILABLE,–– Fa drive requested for Automatic Archiving is not available.

EXISTING_SESSION,–– The session name is not unique.

SESSION_IS_OPEN,–– The session is open.

SESSION_NOT_OPEN,–– No session is open.

SESSION_IS_USED,–– The test execution or evaluation session is used for –– an FA operation or for deleteion.

SESSION_IS_ALLOCATED,–– The test execution or evaluation session is allocated–– to an evaluation user.

SESSION_IS_ARCHIVED,–– Session is archived.

SESSION_NOT_ARCHIVED,–– Session has not been archived before.

SESSION_IS_EMPTY,–– Session is empty, archiving/exporting is refused.

SESSION_IS_ONLINE,–– Session is online.

RETRIEVING_NOT_AUTHORISED,–– Session data already retrieved by another user.

DATA_ALREADY_ONLINE,–– The selected data is already online.

DATA_PARTIALLY_ONLINE,–– Selected data is partially online, exporting is refused.

DATA_NOT_ONLINE,–– The selected data is not online.

INACCESSIBLE_FILES,

Page 459: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

450

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– Storage of files fails, files remain on local node.EXISTING_FILE,

–– The file to store in the Test Result Database is already–– referenced in the Test Result Database (same name, same–– test session, and for raw data file same test node).

FILE_SYSTEM_FULL,–– Not enough space to store the file.

FILE_NOT_FOUND,–– The given file is not found.

NOT_CONNECTED_TO_EVAL,–– The user is not connected as evaluation user.

DATA_NOT_FOUND,–– The selected data is not found.

EXISTING_USER,–– Evaluation user already connected.

BAD_SELECTION_CRITERIA,–– Selection criteria is null.

POOL_SATURATED,–– The event buffer pool is saturated.

TABLE_SPACE_FULL,–– Not enough space found in the table space for loading –– selected events.

PRINTER_ERROR,–– Cannot perform printer operation.–– Details are to be provided in an separate error message.

–– UNKNOWN_PRINTER,–– The printer name is unknown.

PRINTING_REROUTED,–– The requested print has been rerouted on the other printer.

–– FILE_NOT_PRINTABLE,–– The format of the file is not standard ––(directory file, ..).

–– SPOOLER_DISACTIVATED,–– The spooler is not active.

–– FILE_IS_EMPTY,–– File to print is empty, nothing will be printed

PRINTER_NOT_DEFINED,–– Printer environment variable not set.

NO_PRINTER_AVAILABLE,–– No printer is available for the printing.

CANCEL_NOT_AUTHORISED,–– Not privileged to cancel the printing job.

UNKNOWN_ERROR,–– Detected problem is not known.

EXISTING_FA_JOB,–– Fa jobs still in progress, stopping is refused.

JOB_CANCELLED,–– FA job has been cancelled.

FA_MEDIUM_NOT_AVAILABLE,–– The requested FA medium has not been mounted.

–– FA_NOT_ENOUGH_SPACE,–– *–– The FA medium cannot receive the exported data, the free space–– *–– left is too small.–– This is not a error, this shall imply a dialog request with the user, for insertionof a new disk FA_INTERNAL_PROBLEM,

–– FA SAS reports internal error.FA_UNIX_PROBLEM,

–– FA SAS reports Unix error.FA_RESERVED_FOR_AUTO_ARCH,

–– The selected FA device is reserved for Automatic Archiving,–– operations not related with Auto Arch are refused. (but read of data from

the FA for–– the open session is possible).

FA_MMI_TIME_OUT,–– The Final Archive Operator didn’t answer to an FA request–– within proper delay.

FA_MMI_REQUEST_CANCELLED,–– The Final Archive Operator cancelled an FA request–– during the processing of the operation.

FA_LIST_NOT_FOUND,–– The list of files (trees) to Archive, Export or Retrieve is–– not found or not accessible.

Page 460: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

451

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

FA_DEVICE_NOT_ALLOCATED,–– A request to Archive, Retrieve, Export or Import is–– done as the device is not allocated for that purpose.–– Ask for Device allocation first.

ACTIVE_FA_JOB,–– FA job is ACTIVE and cannot be removed.

FA_SAS_NOT_RUNNING,–– The FA SAS has to run for this request.

LIST_OVERFLOW,–– Not enough dynamic memory space for the list.

INDEX_ERROR,–– the index is greater than the number of elements or is null.

LIST_NULL,–– There are no more selected logging event or engineering values.

LIST_NOT_NULL,–– the list already contains data: the CLEAR–– procedure shall be called before.

END_OF_LIST,–– the end of the list has been reached

ADT_EVENT_INVALID_NAME, –– the specified name of the adt_event_result file is too long –– ( > 256 characters)ADT_EVENT_FILE_EXISTS,–– the adt_event_result file to be created already existsADT_EVENT_ERROR_ACCESSING_FILE,–– general adt_event_result error

INTERRUPTED_BY_USER, –– GENERATE_EVENT_LIST interrupted manually by user CLOSE_SESSION_IN_PROGRESS, –– this status is returned by DBS on command –– DBS_RPI.CLOSE_EXECUTION_SESSION if there are remaining –– event–/EVL– or archive–files to be handled

COMMS_TIME_OUT,–– Communictaion time out occurs.

INSUFFICIENT_PRIVILEGE,–– User not privileged for the requested operation.

UNKNOWN_PRIVILEGE,–– VICOS privilege given is not defined in the file–– dbs_privilege_file.def, impossible to map into TRDB privileges.

CANNOT_START_FA_SAS,–– Unable to start the FA_SAS.

FA_SAS_ALREADY_RUNNING,–– The FA SAS is already running.

DBS_ORACLE_PROBLEM,–– Oracle problems.

DBS_UNIX_PROBLEM,–– Unix problems (invalid access rights, directory not found, .. )

DBS_INTERNAL_PROBLEM,–– Unexpected exception has been raised.

DBS_COMMUNICATION_PROBLEM);–– DBS has lost communication with Central (e.g. DBS central not running).

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–– Time related types

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

type T_TIME_RECORD isrecord

BEGIN_DATE : CGS_CALENDAR.CGS_DATE_AND_TIME;END_DATE : CGS_CALENDAR.CGS_DATE_AND_TIME;

end record;

–– Note: variables of this type define time frames. In case the–– content of the variables is not consistent (begin_date is older–– than end_date), the result of functions using the variables can be–– erroneous.–– Note: if the BEGIN_DATE and END_DATE are CGS_CALENDAR.NULL_DATE_AND_TIME –– for retrieving information from the Test Result Database, DBS will–– interpret the request as ”without time constraint” (possibly with–– other constraints like test session name, ...).

Page 461: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

452

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

NULL_TIME_RECORD : constant T_TIME_RECORD:= (BEGIN_DATE => CGS_CALENDAR.NULL_DATE_AND_TIME,

END_DATE => CGS_CALENDAR.NULL_DATE_AND_TIME);–– This constant can be used for asking for data without time –– constraints

type T_TIME_TYPE is (LT, SMT);–– This type specifies kind of time used:–– Local Time or Simulated Mission Time.––

type T_TIME_ORDERING is (LT, SMT);–– This type specifies kind of time used to order lists:–– Local Time or Simulated Mission Time.––

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–– Test Session Name Types

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

subtype T_TEST_SESSION_NAME is VICOS_DEFINITIONS.T_NAME_STRING;

–– T_TEST_SESSION_NAME: Name of the test session to be maintained in TRDB –– for the given test. The test session name can consist of capital letters, –– digits and underscores only, and can have a length of up to 20 characters maximum.–– The test session name has to begin with a capital letter. Example: IF_TEST_3.

NULL_TEST_SESSION_NAME : constant T_TEST_SESSION_NAME:= VICOS_DEFINITIONS.EMPTY_NAME_STRING;

MAX_SELECTED_SESSIONS : constant POSITIVE := 11;

subtype T_SELECTED_SESSION_RANGE is INTEGER range 1..MAX_SELECTED_SESSIONS;

type T_SELECTED_SESSIONS isarray (T_SELECTED_SESSION_RANGE range <>) of T_TEST_SESSION_NAME;

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–– Type to describe the owner

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

MAX_USER_NAME : constant := 32;subtype T_USER_NAME is STRING (1 .. MAX_USER_NAME);

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–– File Name Types

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

subtype T_FILENAME_LENGTH is INTEGER range 0 .. VICOS_DEFINITIONS.MAX_LENGTH_OF_FILE_NAME;

type T_FILENAME (LENGTH: T_FILENAME_LENGTH := 0) isrecord

NAME : STRING (1..LENGTH);end record;

FINAL_ARCHIVE_PATH : constant STRING := ”FINAL_ARCHIVE/”;

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–– Files characteristics types

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

type T_RESULT_TYPE is (GENERAL_FILE, DATA_SET,

Page 462: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

453

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

REPORT, STATISTIC, EVENT_LIST, DATA_LIST,RAW_DATA_DUMP, GRAPH);

type T_RAW_DATA_FILE_INFO isrecord

SESSION : T_TEST_SESSION_NAME;FILE_NAME : T_FILENAME;PRODUCER : VICOS_DEFINITIONS.T_APPLICATION_NAME;DATA_TIME_LT : T_TIME_RECORD;DATA_TIME_SMT : T_TIME_RECORD;

end record;

type T_RESULT_FILE_INFO isrecord

SESSION : T_TEST_SESSION_NAME;RESULT_TYPE : T_RESULT_TYPE;FILE_NAME : T_FILENAME;PRODUCER : VICOS_DEFINITIONS.T_APPLICATION_NAME;FILE_TRANSFER_TIME: CGS_CALENDAR.CGS_DATE_AND_TIME;

end record;

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–– Test Execution Sessions types

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

DEFAULT_TEST_SESSION : constant T_TEST_SESSION_NAME:= (THE_STRING => ”DEFAULT_TEST_SESSION”, LENGTH => 20);

ORACLE_WILDCARD : constant CHARACTER := ’%’;

subtype T_MODE_SELECTION is VICOS_DEFINITIONS.T_VICOS_MODErange VICOS_DEFINITIONS.NORMAL .. VICOS_DEFINITIONS.ANY_MODE;

–– T_MODE_SELECTION can be either:–– NORMAL (all test nodes in normal mode), –– SIMULATION (all test nodes in simulation mode), –– REPLAY (all test nodes in replay mode) or–– ANY (test nodes are running in any mixed mode configuration).–– For data retrieval (e.g. through TEV or TSCV): –– NORMAL selection will retrieve all data belonging to NORMAL and ANY mode,–– SIMULATION selection will retrieve all data belonging to SIMULATION and ANYmode,–– REPLAY selection will retrieve all data belonging to REPLAY and ANY mode.–– ANY selection will retrieve all data belonging to ANY mode only.

subtype T_PATHNAME_REFERENCE_LENGTH is INTEGERrange 0 .. VICOS_DEFINITIONS.MAX_LENGTH_OF_DB_PATHNAME;

type T_PATHNAME_REFERENCE (LENGTH: T_PATHNAME_REFERENCE_LENGTH := 0) isrecord

NAME : STRING (1..LENGTH);end record;

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–– Return List of CCUs from default test session

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

type T_CCU_INFORMATION isrecord

TIME_TAG : CGS_CALENDAR.CGS_DATE_AND_TIME;ELEMENT_CONFIGURATION : MPS_DEFINITIONS.T_ELEMENT_CONFIGURATION_NAME;MISSION_NAME : MPS_DEFINITIONS.T_MISSION_NAME;SYSTEM_TREE_VERSION : MPS_DEFINITIONS.T_VERSION_NUMBER;CCU_SYSTEM_TREE_PATHNAME : T_PATHNAME_REFERENCE;CCU_NAME : MPS_DEFINITIONS.T_CONFIGURATION_NAME;

Page 463: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

454

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

CCU_VERSION : MPS_DEFINITIONS.T_VERSION;end record;

package P_LIST_OF_CCU_INFORMATION is new VICOS_LIST(T_CCU_INFORMATION);subtype T_LIST_OF_CCU_INFORMATION_L is P_LIST_OF_CCU_INFORMATION.LIST;

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––type T_EXECUTION_STATE is

(OPEN,NORMALLY_CLOSED,ABORTED,UNDEFINED);

type T_LOCATION is(ONLINE_DISC,ONLINE_FA,FINAL_ARCHIVE,UNDEFINED);

type T_LIST_ORDERING is(ALPHABETICAL, CHRONOLOGICAL);

type T_SELECTED_MODE is array (T_MODE_SELECTION) of BOOLEAN;

type T_SELECTED_EXECUTION_STATE is array (T_EXECUTION_STATE) of BOOLEAN;

type T_SELECTED_LOCATION is array (T_LOCATION) of BOOLEAN;

NULL_MODE_SELECTION : constant T_SELECTED_MODE := (others => false);

NULL_EXECUTION_STATE_SELECTION : constant T_SELECTED_EXECUTION_STATE := (others => false);

NULL_LOCATION_SELECTION : constant T_SELECTED_LOCATION := (others => false);

type T_EXEC_SESSION_SEL_CRIT isrecord

NAME_PATTERN : T_TEST_SESSION_NAME := VICOS_DEFINITIONS.EMPTY_NAME_STRING;SEL_MODE : T_SELECTED_MODE := NULL_MODE_SELECTION;SEL_TIME_FRAME : T_TIME_RECORD := NULL_TIME_RECORD;ELEMENT_CONFIGURATION : MPS_DEFINITIONS.T_ELEMENT_CONFIGURATION_NAME :=

(others => ’ ’);MISSION_NAME : MPS_DEFINITIONS.T_MISSION_NAME := (others => ’ ’);SYSTEM_TREE_VERSION : MPS_DEFINITIONS.T_VERSION_NUMBER := 0;CCU_SYSTEM_TREE_PATHNAME: T_PATHNAME_REFERENCE;CCU_NAME : MPS_DEFINITIONS.T_CONFIGURATION_NAME:= (others => ’

’);CCU_VERSION : MPS_DEFINITIONS.T_VERSION:=

MPS_DEFINITIONS.NO_VERSION;EXECUTION_STATE : T_SELECTED_EXECUTION_STATE :=

NULL_EXECUTION_STATE_SELECTION;LOCATION : T_SELECTED_LOCATION := NULL_LOCATION_SELECTION;

end record;

–– Definition of session information selection.–– Each field of the record is predefined to a null value. When a–– field is not a part of the selection criteria, its value is thus–– null. For the non null fields, the selection criteria is defined–– with an AND relation between the fields. Note that the fields–– ELEMENT_CONFIGURATION, MISSION_NAME, SYSTEM_TREE_VERSION,–– CCU_SYSTEM_TREE_PATHNAME, CCU_NAME and CCU_VERSION will–– be either all set to a certain value or all set to null values.–– NAME_PATTERN field may contain several DBS_DEFINITIONS.ORACLE_WILDCARD’s.

type T_ARCHIVE_MODUS is (NO_FINAL_ARCHIVE,WITH_FINAL_ARCHIVE);

MAX_APPLICATION_NUMBER : constant := 64;subtype T_APPLICATION_RANGE is POSITIVE range 1 .. MAX_APPLICATION_NUMBER;type T_PARTICIPATING_APPLICATIONS is array (T_APPLICATION_RANGE range <>) ofVICOS_DEFINITIONS.T_APPLICATION_NAME;

MAX_SESSION_INFO_TEXT : constant := 80;

Page 464: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

455

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

subtype T_SESSION_INFO_TEXT is STRING (1 .. MAX_SESSION_INFO_TEXT);

type T_EXECUTION_SESSION_INFO isrecord

ARCHIVE_MODUS : T_ARCHIVE_MODUS;EXECUTION_STATE : T_EXECUTION_STATE;LOCATION : T_LOCATION;TEST_MODE : T_MODE_SELECTION;NAME : T_TEST_SESSION_NAME;BEGIN_TIME_LT : CGS_CALENDAR.CGS_DATE_AND_TIME;END_TIME_LT : CGS_CALENDAR.CGS_DATE_AND_TIME;ELEMENT_CONFIGURATION : MPS_DEFINITIONS.T_ELEMENT_CONFIGURATION_NAME;MISSION_NAME : MPS_DEFINITIONS.T_MISSION_NAME;SYSTEM_TREE_VERSION : MPS_DEFINITIONS.T_VERSION_NUMBER;CCU_SYSTEM_TREE_PATHNAME: T_PATHNAME_REFERENCE;CCU_NAME : MPS_DEFINITIONS.T_CONFIGURATION_NAME;CCU_VERSION : MPS_DEFINITIONS.T_VERSION;CREATOR : T_USER_NAME;OWNER : T_USER_NAME;PURPOSE : T_SESSION_INFO_TEXT;TEST_SITE : T_SESSION_INFO_TEXT;VERSION_ID_TABLE : T_FILENAME;TEST_CONFIGURATION : T_FILENAME;SYSTEM_TOPOLOGY_TABLE : T_FILENAME;

end record;

–– T_FILENAME for VERSION_ID_TABLE, TEST_CONFIGURATION and SYSTEM_TOPOLOGY_TABLE–– shall always be the full UNIX pathname (ie. when calling INIT_EXECUTION_SESSION –– or GET_EXECUTION_SESSION_INFO).

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–– Test Evaluation Session type

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

type T_EVALUATION_SESSION_INFO isrecord

NAME : T_TEST_SESSION_NAME;CREATION_DATE : CGS_CALENDAR.CGS_DATE_AND_TIME;CREATOR : T_USER_NAME;OWNER : T_USER_NAME;LOCATION : T_LOCATION;PURPOSE : T_SESSION_INFO_TEXT;TEST_SITE : T_SESSION_INFO_TEXT;

end record;

type T_EVAL_SESSION_SEL_CRIT is record

NAME_PATTERN :T_TEST_SESSION_NAME := VICOS_DEFINITIONS.EMPTY_NAME_STRING;SEL_TIME_FRAME : T_TIME_RECORD := NULL_TIME_RECORD;LOCATION : T_SELECTED_LOCATION := NULL_LOCATION_SELECTION;

end record;

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–– Logging events types

subtype T_EVENT is VICOS_DEFINITIONS.T_ERROR_MESSAGE;

–– The User Events are defined as Events with the specific field values (Cf.VICOS_DEFINITIONS):–– field LOG_GROUP : DBS_DEFINITIONS.USER_EVENT_LOG_GROUP,–– field LOG_TYPE : DBS_DEFINITIONS.USER_EVENT_LOG_TYPE.––

type T_SELECTED_EVENT isrecord

EVENT : T_EVENT;SESSION : T_TEST_SESSION_NAME;

end record;

NULL_LOG_GROUP : constant VICOS_DEFINITIONS.T_LOG_GROUP :=

Page 465: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

456

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

VICOS_DEFINITIONS.NULL_LOG_GROUP;

USER_EVENT_LOG_GROUP : constant VICOS_DEFINITIONS.T_LOG_GROUP := VICOS_DEFINITIONS.USER_EVENT_LOG_GROUP;

NULL_LOG_TYPE : constant VICOS_DEFINITIONS.T_LOG_TYPE := VICOS_DEFINITIONS.NULL_LOG_TYPE;

USER_EVENT_LOG_TYPE : constant VICOS_DEFINITIONS.T_LOG_TYPE := VICOS_DEFINITIONS.GENERAL_MESSAGE_TYPE;

NULL_LOG_TEXT_SHORT : constant VICOS_DEFINITIONS.T_LOG_TEXT_SHORT :=VICOS_DEFINITIONS.NULL_LOG_TEXT_SHORT;

type T_EVENT_SEL_CRIT isrecord

APPLICATION : VICOS_DEFINITIONS.T_APPLICATION_NAME:= VICOS_DEFINITIONS.EMPTY_NAME_STRING;

TIME_FRAME : T_TIME_RECORD:= NULL_TIME_RECORD;

LOG_TYPE : VICOS_DEFINITIONS.T_LOG_TYPE:= NULL_LOG_TYPE;

LOG_GROUP : VICOS_DEFINITIONS.T_LOG_GROUP:= NULL_LOG_GROUP;

TEXT : VICOS_DEFINITIONS.T_LOG_TEXT_SHORT:= NULL_LOG_TEXT_SHORT;

end record;

–– Definition of the normal event selection criteria–– Each field of the record is predefined to a null value. When a–– field is not a part of the selection criteria, its value is thus–– null. For the non null fields, the selection criteria is defined–– with an AND relation between the fields.

MAX_EVENT_CRITERIA: constant POSITIVE := 4;

subtype T_EVENT_SEL_CRIT_RANGE is integer range 1..MAX_EVENT_CRITERIA;

type T_EVENT_SEL_CRIT_COMBINED isarray (T_EVENT_SEL_CRIT_RANGE range <>) of T_EVENT_SEL_CRIT;

–– Definition of the combined event selection criteria–– There is an OR relation between the elements of the array.

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–– Engineering value logging types

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

type T_ENG_VALUE_LOG isrecord

ENG_VALUE : ADT_ENGINEERING_VALUE.T_ENGINEERING_VALUE;RAW_VALUE : ADT_RAW_VALUE.T_RAW_VALUE;TIME_TAG_LT : CGS_CALENDAR.CGS_DATE_AND_TIME;TIME_TAG_SMT : CGS_CALENDAR.CGS_DATE_AND_TIME;END_ITEM_SID : MPS_DEFINITIONS.SID;

end record;

type T_SELECTED_ENG_VALUE_LOG isrecord

ENG_VAL : T_ENG_VALUE_LOG;PRODUCER : VICOS_DEFINITIONS.T_APPLICATION_NAME;SESSION_NAME : T_TEST_SESSION_NAME;

end record;

type T_ENG_VALUE_SEL_CRIT isrecord

ITEM_NAME : MPS_DEFINITIONS.SID:= MPS_DEFINITIONS.NULL_SID;

APPLICATION : VICOS_DEFINITIONS.T_APPLICATION_NAME:= VICOS_DEFINITIONS.EMPTY_NAME_STRING;

TIME_FRAME : T_TIME_RECORD

Page 466: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

457

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

:= NULL_TIME_RECORD;TIME_FRAME_TYPE : T_TIME_TYPE

:= LT;LIST_ORDER : T_TIME_ORDERING

:= LT;end record;

–– Definition of the engineering value selection criteria,–– APPLICATION may be empty, what means any application.–– ITEM_NAME and TIME_FRAME may also be empty what means any SID and–– no time frame.

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–– Types for print services

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

type T_PRINTER is (LASER_PRINTER1, LASER_PRINTER2);

for T_PRINTER use (LASER_PRINTER1 => 0, LASER_PRINTER2 => 1);

type T_STATUS is (DISABLED, ENABLED);

for T_STATUS use (DISABLED => 0, ENABLED => 1);

type T_PRINT_QUEUE_STATUS is (OFF, READY, PRINTING, OUT_OF_PAPER, OUT_OF_TONER);

for T_PRINT_QUEUE_STATUS use (OFF => 0, READY => 1, PRINTING => 2, OUT_OF_PAPER => 3, OUT_OF_TONER => 4);

type T_JOB_INFORMATION isrecord

IDENT : INTEGER;OWNER : T_USER_NAME;FILE_NAME : T_FILENAME;FILE_SIZE_IN_BYTE : NATURAL;

end record;

type T_PRINT_INFO isrecord

PRINTER_STATUS : T_STATUS;PRINT_QUEUE_STATUS : T_PRINT_QUEUE_STATUS;NUMBER_OF_ENTRIES : NATURAL;

end record;

–– align record to allow for machine independent network transmissionfor T_PRINT_INFO userecord at mod 8;

PRINTER_STATUS at 0 range 0 .. 0;PRINT_QUEUE_STATUS at 0 range 8 .. 10;NUMBER_OF_ENTRIES at 0 range 32 .. 63;

Page 467: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

458

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

end record; –– define maximum number of bits for this recordfor T_PRINT_INFO’size use 64;

type T_GLOBAL_PRINT_INFO is array (T_PRINTER) of T_PRINT_INFO;

DEFAULT_PRINTER : constant T_PRINTER := LASER_PRINTER1;

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–– Types for HK data

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

type T_DISK_STATUS is (OK, DISK_FULL);

type T_TRDB_STATUS is (OK, NOT_OK);

type T_FA_STATUS is (OK, NOT_OK);

MAX_OPEN_SESSION : constant := 5;

type T_OPEN_SESSION_NAMES is array (1 .. MAX_OPEN_SESSION) of T_TEST_SESSION_NAME;

type T_TRDB_INFO isrecord

NUMBER_OF_EVAL_USERS : NATURAL;CURRENT_TEST_SESSIONS : T_OPEN_SESSION_NAMES;OVERALL_STATUS : T_TRDB_STATUS;

end record;

for T_TRDB_INFO userecord at mod 8;

NUMBER_OF_EVAL_USERS at 0 range 0 .. 31;CURRENT_TEST_SESSIONS at 0 range 32 .. 991;OVERALL_STATUS at 0 range 992 .. 999;

end record;

MAX_PERCENT_VALUE : constant := 100;subtype T_PERCENT is NATURAL range 0 .. MAX_PERCENT_VALUE;

type T_TRDB_TABLESPACE is (MA_SPACE, EVENT_SPACE, MISC_SPACE);

type T_TABLESPACE_RATIO is array (T_TRDB_TABLESPACE) of T_PERCENT;for T_TABLESPACE_RATIO’SIZE use 96;

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–– Types to select part of execution session

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

type T_DATA_TYPE is (EVENT, RAW_DATA, ENG_VAL, RESULT, CONFIG);

type T_SELECTED_DATA_TYPE is array (T_DATA_TYPE) of BOOLEAN;

type T_SELECTED_DATA is array (T_DATA_TYPE) of T_TIME_RECORD;

type T_DATA_LOCATION is array (T_DATA_TYPE) of T_LOCATION;

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

Page 468: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

459

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– Types to describe FA job

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

type T_FA_JOB_STATE is(ACTIVE, ALLOCATED, PENDING);

type T_FA_ACTION is(IMPORT, EXPORT, ARCHIVE, AUTO_ARCHIVE, RETRIEVE);

type T_FA_JOB_INFO is record

STATE : T_FA_JOB_STATE;JOB_ID : POSITIVE;OWNER : VICOS_DEFINITIONS.T_APPLICATION_NAME;ACTION : T_FA_ACTION;PARAMETER : T_TEST_SESSION_NAME;

end record;

end DBS_DEFINITIONS;

Page 469: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

460

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.12 DBS Application Programmer Interface

Informal Interface Description

The DBS product provides a package of ’Ada’ library functions to be called from ’Ada’ applications externalto CGS.

DBS application programmer interface (DBS API) services shall be provided to enable Final Archive SpecialApplication Software (FA SAS) to manage the final archiving of test execution/evaluation sessions in a dedi-cated long term storage medium, the retrieving of archived sessions, and the import/export of complete sessions.

It makes DBS independent from any archive device, and thereby, makes possible the connection to various hard-wares e.g. Exabyte tape, DAT tape, optical disk, etc.

DBS communicates with the FA SAS through the DBS API for the transfer of data files and for identificationof the archive volumes (e.g. tape name).

The FA SAS will be in charge of the device driver, device commanding, any device specific protocol, and ofthe user dialogue to operate the hardware.

The FA SAS executes as a separate OS process connected to DBS via the DBS API

A number of access services are supplied, these are summarised hereafter.

• Archive operation

• Retrieve operation

• Export operation

• Import operation

Page 470: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

461

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Formal Interface Description

–––– DBS_API––––****************************************************************************––ABSTRACT–––––– This package contains operation used by a FA SAS to communicate with DBS. ––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––IDENTIFICATION–––– PROJECT NAME :VICOS–– PRODUCT NAME :DBS–– CI–NUMBER :1216 863–– OBJECT NAME :DBS_API––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––CONTENTS–––– COMPILER :Sun ADA 1.1 –– LANGUAGE :ADA–– SPECIAL CONTENTS:–– CHANGE HISTORY–– V5.2 at Central Repository V4.0 (moon)–– creator: pcvicos (on host alien)–– creation date: 20.08.97 10:31:21–– comment:–– DBS 4.1 development:–– 1) New operation SUPPLY_RESPONSE added–– 2) Scope of operation SUPPLY_ACKNOWLEDGE modified––––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.1 at SBI ; DBS development–– creator: bcharlie (on host ariane5)–– creation date: 20.01.95 16:44:56–– added Standard Header by command create_file–––– END HISTORY––****************************************************************************––––

with DBS_DEFINITIONS;with ADT_DBS_TO_SAS_COMMAND;with DBS_COMMS_DEFINITIONS;

package DBS_API is

–– Object Description :

–– Provided operations :

procedure INIT_FA_SAS(STATUS : out DBS_DEFINITIONS.T_DBS_ERROR);

–– This operation initializes the communication services for the FA SASprocess.–– Parameters description :–– STATUS : informs the caller about the procedure completion :–– – OK : the communication services have been correctlyinitialized.–– – INIT_PROBLEM : initialisation of the communicationservices failed.–– – DBS_INTERNAL_PROBLEM : unexpected exception has beenraised in the–– procedure.

procedure READ_COMMAND(COMMAND : out ADT_DBS_TO_SAS_COMMAND.T_COMMAND;CHANNEL_NUMBER : out ADT_DBS_TO_SAS_COM-

MAND.T_CHANNEL_NBR;STATUS : out DBS_DEFINITIONS.T_DBS_ERROR );

–– This operation reads the next command from DBS.–– Parameters description :

Page 471: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

462

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– COMMAND : the incoming command.–– CHANNEL_NUMBER : number of the logical channel that has initiated thecommand.–– STATUS : informs the caller about the procedure completion :–– – OK : the message has been read correctly.–– – DBS_COMMUNICATION_PROBLEM : the communication withDBS is broken.–– – DBS_INTERNAL_PROBLEM : unexpected exception has beenraised.

procedure SUPPLY_ACKNOWLEDGE(ACK_INFO : in DBS_DEFINITIONS.T_DBS_ERROR;CHANNEL_NUMBER : in ADT_DBS_TO_SAS_COM-

MAND.T_CHANNEL_NBR;STATUS : out DBS_DEFINITIONS.T_DBS_ERROR );

–– This operation sends an acknowledge to DBS in response to the follow-ing kind–– of commands :–– – ALLOCATE_FA_DRIVE–– – DEALLOCATE_FA_DRIVE–– – FREE_FA_FROM_AUTO_ARCH–– – ARCHIVE_FILE_LIST_AA–– Parameters description :–– ACK_INFO : the acknowledge information to send back (status of theoperation).–– CHANNEL_NUMBER : number of the logical channel to which ACK_INFO hasto be sent.–– STATUS : informs the caller about the procedure completion :–– – OK : the acknowledge has been sent correctly.–– – DBS_COMMUNICATION_PROBLEM : the communication withDBS is broken.–– – DBS_INTERNAL_PROBLEM : unexpected exception has beenraised.

procedure SUPPLY_RESPONSE(ACK_INFO : in DBS_DEFINITIONS.T_DBS_ERROR;CHANNEL_NUMBER : in POSITIVE;RESPONSE_TYPE : in DBS_COMMS_DEFINITIONS.T_RESPONSE_TYPE;RESPONSE : in DBS_COMMS_DEFINITIONS.T_RESPONSE;STATUS : out DBS_DEFINITIONS.T_DBS_ERROR );

–– This operation sends an acknowledge and a response to DBS in response to the–– following kind of messages:–– – RETRIEVE_FILE_LIST–– – ARCHIVE_FILE_LIST–– – EXPORT_TREE_LIST–– – IMPORT_TREE–– – RESERVE_FA_FOR_AUTO_ARCH–– Parameters description:–– ACK_INFO : acknowledge to supply–– CHANNEL_NUMBER : the addressee of the acknowledge and the response.–– RESPONSE_TYPE : type of the response.–– RESPONSE : the response.–– STATUS : informs the caller about the procedurecompletion :–– – OK : the acknowledge has been correctly sent back.–– – DBS_COMMUNICATION_PROBLEM : the communication with DBS isbroken.–– – DBS_INTERNAL_PROBLEM : unexpected exception has been raised.––

procedure STOP;

–– This operation stops the communication between FA SAS and DBS.–– This operation has to be used when receiving the stop command fromDBS.–– After execution of this operation, the communicatoin between FA SAS–– cannot be reinitialised as every communictaion internal tasks arestopped.

end DBS_API;

Page 472: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

463

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

463

Formal Interface Description

–––– ADT_DBS_TO_SAS_COMMAND––––****************************************************************************––ABSTRACT–––––– This package defines types and operations related to FA SAS commands issued–– by DBS.––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––IDENTIFICATION–––– PROJECT NAME :VICOS–– PRODUCT NAME :DBS–– CI–NUMBER :1216 863–– OBJECT NAME :ADT_DBS_TO_SAS_COMMAND––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––CONTENTS–––– COMPILER :Sun / Verdix–– LANGUAGE :ADA–– SPECIAL CONTENTS:–– CHANGE HISTORY–––– 6.2, 22.09.2000, W.Tammen–– added SESSION_START_DATE to records T_EXPORT_TREE_LIST_DATA–– and T_ARCHIVE_FILE_LIST_DATA to be stored on FA medium–– for display purposes––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 6.1, 06.09.2000, W.Tammen–– introduce new type T_RESERVE_FA_FOR_AUTO_ARCH_DATA and–– operations on this type––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.1 at Central Repository: See previous versions for changes at SBI––––****************************************************************************––

with DBS_DEFINITIONS;with CGS_CALENDAR;

package ADT_DBS_TO_SAS_COMMAND is

–– used for version detection within executable filesSCCSID_ADS : constant STRING := ”@(#) dbs_adt_dbs_to_sas_command_.a/main/solaris–port/cgs_4.1/cgs_4.4/2 09/25/00 12:35:35@(#)”;

–– REMARK :–– A ’Tree’ can be either a directory structure or a file. ––––––––––––––––––––––––––––––––– –– Provided types and constants : –––––––––––––––––––––––––––––––––

type T_COMMAND_ALTERNATIVE is ( UNDEFINED, ALLOCATE_FA_DRIVE, DEALLOCATE_FA_DRIVE, EXPORT_TREE_LIST, IMPORT_TREE, ARCHIVE_FILE_LIST, RETRIEVE_FILE_LIST, RESERVE_FA_FOR_AUTO_ARCH, FREE_FA_FROM_AUTO_ARCH, ARCHIVE_FILE_LIST_AA, STOP);

–– List of commands handled by the FA_SAS :–– – request to allocate an FA drive for the following specific operations:–– EXPORT_TREE_LIST, IMPORT_TREE,

Page 473: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

464

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

464

–– ARCHIVE_FILE_LIST, RETRIEVE_FILE_LIST.–– The Allocation is requested before any of these 4 operations.–– – request to deallocate a previously allocated FA drive.–– The deallocation is requested after any of these 4 operations.–– – request to put a list of file trees on a single export medium.–– – request to get a file tree from a single FA medium.–– – request to put a list of files on multiple archive mediums.–– – request to get a list of files from a single archive medium.–– – request to reserve an FA device for Automatic Archiving;–– then this device is not accessible to other operations than–– FREE_FA_FROM_AUTO_ARCH, ARCHIVE_LIST_OF_FILES_AA,–– STOP.–– – request to free the FA device reserved for Automatic Archiving.–– – request to put a list of files on the archive medium reserved for–– Automatic Archiving.–– – request the FA SAS to stop.–––– REMARK :–––– The FA services are grouped into 3 sets:–– – the operations of import/export,–– – the operations of archiving/retrieving,–– – the operations of Automatic Archiving.–– This separation allows the FA SAS to implement different labels onimport/export disks–– and archiving/retrieving disks to increase efficiency of diskutilisation and to reserve a device–– for the automatic archiving.

–– The operations EXPORT_TREE_LIST, IMPORT_TREE and–– RETRIEVE_FILE_LIST always access a single FA medium, but theoperations–– ARCHIVE_FILE_LIST and ARCHIVE_FILE_LIST_AA could access multiple–– FA mediums if implemented by the FA–SAS.––

–– EXPORT_TREE_LIST : The list of trees to export on a disk iscontained in a file.–– This is a text file composed with the file name of each item of thelist, one file name by line. The file name–– is the pathname of the tree (file or directory structure) relativeto $VICOS_CEN_DBS_HOME.–– Example :–– File containing a filename and a path to a directorystructure (export_tree_list):–– /EXECUTION/SESSION_1/RAW_DATA/TES_01/Raw_data_file.01–– /EXECUTION/SESSION_1/ENG_VAL

–– RETRIEVE_FILE_LIST : The list of files to retrieve from a disk iscontained in a file.–– This is a text file composed with the file name of each item of thelist, one file name by line. The file name–– is the pathname of the file relative to $VICOS_CEN_DBS_HOME.–– Example :–– File containing two filenames (retrieve_file_list):–– /EXECUTION/SESSION_1/RAW_DATA/TES_01/Raw_data_file.01–– /EXECUTION/SESSION_1/ENG_VAL/EVL_TES02_dfet1234

–– ARCHIVE_FILE_LIST (ARCHIVE_FILE_LIST_AA): The list of files toarchive on FA mediums,–– is contained in a file. This is a text file composed with the filename of each item of the list, one file name by line.–– The file name is the pathname of the file relative to$VICOS_CEN_DBS_HOME.–– The list of the FA medium labels used to archive these files isgiven back in another file.–– This is a text file composed with the ID of the FA mediumscorresponding to the files, one ID by line.–– Example :–– File containing a list of files and the file containing the–– corresponding Container ID list (archive_file_list):–– /EXECUTION/SESSION_1/RAW_DATA/TES_01/Raw_data_file.01–– /EXECUTION/SESSION_1/ENG_VAL/TES_12_EVL_adf1234–– /EXECUTION/SESSION_1/ENG_VAL/TES_04_EVL_asj4321––

Page 474: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

465

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

465

–– ARCH_qwerty123456–– ARCH_qwerty123456–– ARCH_ytrewq654321

MAX_NUMBER_OF_FA_DRIVE : constant NATURAL := 2;

–– Maximum number of FA drives.

subtype T_CHANNEL_NBR is NATURAL range 0..MAX_NUMBER_OF_FA_DRIVE;

–– Definition of a logical channel number used by DBS to communicate with theFA_SAS.

subtype T_CONTAINER_ID is DBS_DEFINITIONS.T_FILENAME;

–– Reference of the data on a FA medium.

type T_ALLOCATION_DATA is record CONTAINER_ID : T_CONTAINER_ID; COMMAND : T_COMMAND_ALTERNATIVE; end record;

–– Definition of the data for (DE)ALLOCATION command.–– CONTAINER_ID is used in case of retrieve command.–– COMMAND the operation type for which a device should be reserved.––

type T_EXPORT_TREE_LIST_DATA is

record EXPORT_NAME : DBS_DEFINITIONS.T_TEST_SESSION_NAME; LIST_OF_TREES : DBS_DEFINITIONS.T_FILENAME; SESSION_START_DATE : CGS_CALENDAR.CGS_DATE_AND_TIME; end record;

–– Definition of the data of the EXPORT_TREE_LIST command.–– EXPORT_NAME is the name of the exported data. This name will be used when importing.–– LIST_OF_TREES is the name of the file containing the list of trees to export–– (relative to $VICOS_CEN_DBS_HOME).––

type T_IMPORT_TREE_DATA is

record EXPORT_NAME : DBS_DEFINITIONS.T_TEST_SESSION_NAME; TARGET_DIRECTORY : DBS_DEFINITIONS.T_FILENAME; end record;

–– Definition of the data of the IMPORT_TREE command.–– EXPORT_NAME is the name of the exported data to import.–– TARGET_DIRECTORY is the pathname where the imported data will be put–– (relative to $VICOS_CEN_DBS_HOME).

type T_RETRIEVE_FILE_LIST_DATA is

record CONTAINER_ID : T_CONTAINER_ID; FILE_LIST : DBS_DEFINITIONS.T_FILENAME; end record;

–– Definition of the data of the RETRIEVE_LIST_OF_FILES command.–– CONTAINER_ID is the reference of the FA medium.–– FILE_LIST is the name of the file containing the list of files–– (relative to $VICOS_CEN_DBS_HOME).

type T_RESERVE_FA_FOR_AUTO_ARCH_DATA is

record SELECT_DEFAULT : BOOLEAN; end record;

–– Definition of the data of the RESERVE_FA_FOR_AUTO_ARC command.–– If SELECT_DEFAULT is true, the parameter DEFAULT_DEVICE_FOR_AUTOMATIC_ARCHIVING–– from the FA SAS configuration file is evaluated and the appropriate device–– will be selected for auto archiving purposes.

type T_ARCHIVE_FILE_LIST_DATA is

record LIST_OF_FILES : DBS_DEFINITIONS.T_FILENAME; LIST_OF_CONTAINER_IDS : DBS_DEFINITIONS.T_FILENAME; SESSION_START_DATE : CGS_CALENDAR.CGS_DATE_AND_TIME; end record;

Page 475: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

466

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

466

–– Definition of the data of the ARCHIVE_FILE_LIST command.–– LIST_OF_FILES is the pathname of the file containing the list of files to archive–– (relative to $VICOS_CEN_DBS_HOME).–– LIST_OF_CONTAINER_IDS is the pathname of the file that will contain the corresponding–– list of Container ID’s (relative to $VICOS_CEN_DBS_HOME).

type T_COMMAND (COMMAND_ALTERNATIVE : T_COMMAND_ALTERNATIVE := UNDEFINED) is private;

–– Definition of the command that is sent by DBS to the FA_SAS.

NULL_CONTAINER_ID : constant T_CONTAINER_ID

:= (LENGTH => 0, NAME => (others => ’ ’));

–– Usefull null values.

–––––––––––––––––––––––– –– Provided operations : ––––––––––––––––––––––––

procedure SET_ALLOCATE_FA_DATA (OF_COMMAND : in out T_COMMAND ; COMMAND_DATA : in T_ALLOCATION_DATA);

–– This operation initializes the ALLOCATE_FA_DRIVE data with the kind of operation–– for which a FA driver has to be reserved.

procedure SET_STOP_DATA (OF_COMMAND : in out T_COMMAND);

–– This operation initializes the STOP command.

procedure SET_DEALLOCATE_FA_DATA (OF_COMMAND : in out T_COMMAND; COMMAND_DATA : in T_COMMAND_ALTERNATIVE);

–– This operation initializes the DEALLOCATE_FA_DRIVE data with the kind ofoperation–– for which the previously reserved FA driver has to be deallocated.

procedure SET_EXPORT_TREE_LIST_DATA (OF_COMMAND : in out T_COMMAND; COMMAND_DATA : in T_EXPORT_TREE_LIST_DATA);

–– This operation initializes the EXPORT_TREE_LIST data with the list ofdirectories to put–– on the FA medium and the associated name.

procedure SET_IMPORT_TREE_DATA (OF_COMMAND : in out T_COMMAND; COMMAND_DATA : in T_IMPORT_TREE_DATA);

–– This operation initializes the IMPORT_TREE data with the name of the exporteddata–– to get from the FA medium and the destination directory.

procedure SET_RETRIEVE_FILE_LIST_DATA (OF_COMMAND : in out T_COMMAND; COMMAND_DATA : in T_RETRIEVE_FILE_LIST_DATA);

–– This operation initializes the RETRIEVE_FILE_LIST data with the identification–– of the file containing the list of the files to retrieve and the reference of–– the data on the FA medium.

procedure SET_ARCHIVE_FILE_LIST_DATA (OF_COMMAND : in out T_COMMAND ; COMMAND_DATA : in T_ARCHIVE_FILE_LIST_DATA);

–– This operation initializes the ARCHIVE_FILE_LIST data with the pathname of thefile–– containing the list of files to archive (relative to $VICOS_CEN_DBS_HOME) andthe pathname–– of file that will contain the corresponding Container ID list.

procedure SET_RESERVE_FA_FOR_AUTO_ARCH_DATA (OF_COMMAND : in out T_COMMAND; COMMAND_DATA: in T_RESERVE_FA_FOR_AUTO_ARCH_DATA);

–– This operation initializes the RESERVE_FA_FOR_AUTO_ARCH command.

procedure SET_FREE_FA_FROM_AUTO_ARCH_DATA (OF_COMMAND : in out T_COMMAND);

Page 476: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

467

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

467

–– This operation initializes the FREE_FA_FROM_AUTO_ARCH command.

procedure SET_ARCHIVE_FILE_LIST_AA_DATA (OF_COMMAND : in out T_COMMAND ; COMMAND_DATA : in T_ARCHIVE_FILE_LIST_DATA);

–– This operation initializes the ARCHIVE_FILE_LIST_AA data with the pathname ofthe file–– containing the list of files to archive (relative to $VICOS_CEN_DBS_HOME) andthe pathname–– of file that will contain the corresponding Container ID list.

function COMMAND_ALTERNATIVE (COMMAND : in T_COMMAND) return T_COMMAND_ALTERNATIVE;

–– This operation returns the type of the given command.

function GET_ALLOCATE_FA_DATA (COMMAND : in T_COMMAND) return T_ALLOCATION_DATA;

–– This operation returns the kind of operation associated to an–– ALLOCATE_FA_DRIVE command.

function GET_DEALLOCATE_FA_DATA (COMMAND : in T_COMMAND) returnT_COMMAND_ALTERNATIVE;

–– This operation returns the kind of operation associated to an–– DEALLOCATE_FA_DRIVE command.

function GET_EXPORT_TREE_LIST_DATA (COMMAND : in T_COMMAND) return T_EXPORT_TREE_LIST_DATA;

–– This operation returns the list of directories associated to anEXPORT_TREE_LIST–– command and the name of the data to export.

function GET_IMPORT_TREE_DATA (COMMAND : in T_COMMAND) return T_IMPORT_TREE_DATA;

–– This operation returns the name of the data to extract and the–– destination pathname.

function GET_RETRIEVE_FILE_LIST_DATA (COMMAND : in T_COMMAND) return T_RETRIEVE_FILE_LIST_DATA;

–– This operation returns the location on the FA medium and the name–– of the file to extract and the destination pathname.

function GET_RESERVE_FA_FOR_AUTO_ARCH_DATA (COMMAND : in T_COMMAND) returnT_RESERVE_FA_FOR_AUTO_ARCH_DATA;–– This operation returns a record with the information whether the defaultdrive–– as defined in the FA SAS configuration file should be selected

function GET_ARCHIVE_FILE_LIST_DATA (COMMAND : in T_COMMAND) return T_ARCHIVE_FILE_LIST_DATA;

–– This operation returns a record with the identification of the filecontaining the list–– of files to archive and the identification of the file where to write thelist of corresponding–– Container ID’s.

function GET_ARCHIVE_FILE_LIST_AA_DATA (COMMAND : in T_COMMAND) return T_ARCHIVE_FILE_LIST_DATA;

–– This operation returns a record with the identification of the filecontaining the list–– of files to archive and the identification of the file where to write thelist of corresponding–– Container ID’s.

–––––––––––––––––––––––– –– Provided exceptions : ––––––––––––––––––––––––

COMMAND_TYPE_MISMATCH : exception;

–– This exception is raised when an operation is called on a command that–– does not have the correct alternative.––

Page 477: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

468

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

468

private

type T_COMMAND (COMMAND_ALTERNATIVE : T_COMMAND_ALTERNATIVE := UNDEFINED) is record case COMMAND_ALTERNATIVE is when ALLOCATE_FA_DRIVE => ALLOCATE_DATA : T_ALLOCATION_DATA; when DEALLOCATE_FA_DRIVE => DEALLOCATE_DATA : T_COMMAND_ALTERNATIVE; when EXPORT_TREE_LIST => EXPORT_TREE_LIST_DATA : T_EXPORT_TREE_LIST_DATA; when IMPORT_TREE => IMPORT_TREE_DATA : T_IMPORT_TREE_DATA; when ARCHIVE_FILE_LIST

=> ARCHIVE_FILE_LIST_DATA: T_ARCHIVE_FILE_LIST_DATA; when RETRIEVE_FILE_LIST

=> RETRIEVE_FILE_LIST_DATA: T_RETRIEVE_FILE_LIST_DATA; when RESERVE_FA_FOR_AUTO_ARCH =>

RESERVE_FA_FOR_AUTO_ARCH_DATA : T_RESERVE_FA_FOR_AUTO_ARCH_DATA; when FREE_FA_FROM_AUTO_ARCH => null; when ARCHIVE_FILE_LIST_AA =>

ARCHIVE_FILE_LIST_AA_DATA: T_ARCHIVE_FILE_LIST_DATA; when STOP => null; when UNDEFINED => null; end case; end record;

–– Definition of the command that is sent by DBS to the FA_SAS.

end ADT_DBS_TO_SAS_COMMAND;

Page 478: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

469

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.13 TEV Types and Constants Definitions

Informal Interface Description

A same set of data types are used in the various procedural interfaces provided by the TEV product. In orderto ensure the consistency of their definition and usage through all the interfaces, they are grouped and definedonce, in the current section.

They are ”basic” data types and constants (like numbers, strings, enumerations...) which are accessible directly.They constitute a type pool and are grouped into a set of Ada packages, according to their nature.

The usage of the basic data types is simple. The desired variable has to be declared with the desired type in thepiece of software which will use it. The access to the content of the variable is done directly, by knowledge ofits Ada structure.

The TEV_DEFINITIONS package contains type and constant definitions that are : . specific of TEV, i.e. not used or shared by several CGS products, . common in TEV, i.e. used or shared by several TEV provided services, . of general nature, i.e. not specific to any of these services.

Page 479: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

470

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Formal Interface Description

–––– TEV_DEFINITIONS––––****************************************************************************––ABSTRACT–––––– This object provides common types needed by–– the evaluation definitions objects.–– cf. COMMON SERVICES product architecture–– ––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––IDENTIFICATION–––– PROJECT NAME : CGS–– PRODUCT NAME : TEV–– CI–NUMBER : 1216 858–– OBJECT NAME : TEV_DEFINITIONS––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––CONTENTS–––– COMPILER : VERDIX ADA 6.0.3.C–– LANGUAGE : ADA–– SPECIAL CONTENTS:–– CHANGE HISTORY––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.3 at DASA–– creator: Bruening–– creation date: 21.10.99–– comment:–– Correct mapping of MPS_DEFINITIONS.T_ITEM_TYPE to T_MEASUREMENT_ALTERNATIVES.––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.3 at DASA–– creator: Bruening–– creation date: 06.09.99–– comment:–– New types used for the merge ADT_DATA_SET/ADT_EVENT_RESULT tool––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– CGS V4.2 ICD Change 27.07.99, W.Tammen: –– removed with–clauses for STRING_UTILITIES and TEV_STRING_UTILITIES–– (simply not used)–– according to COL–RIBRE–IRN–CGS–8078––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.2 at DASA–– creator: Bruening–– creation date: 03.05.99–– comment:–– New type T_SID_PATHNAME to handle working lists of SID–pathname–– to avoid asking several times MDB for a pathname––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– END HISTORY––****************************************************************************–– with FILE_MANAGEMENT; with CGS_CALENDAR;with VICOS_LIST;––(V3) with DBS_DEFINITIONS;with MPS_DEFINITIONS;with ADT_ENGINEERING_VALUE;with VICOS_DEFINITIONS;with ADT_RAW_VALUE;with C_STRINGS; ––rhn Modification SPR_2886 24/01/97with U_ENV; ––rhn Modification SPR_2886 24/01/97

Page 480: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

471

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

package TEV_DEFINITIONS is

–– Provided types and constants :

–– RHN Begin of Modification SPR_2886 24/01/97 –– ROOT_TMP_NAME : constant string := ”/tmp/tev_tmp”;––

TEV_HOME_ENV_NAME : constant STRING := ”TEV_HOME”;TEV_HOME_VAR_ENV_NAME : constant STRING :=

C_STRINGS.TO_STRING(U_ENV.Getenv(C_STRINGS.To_C(TEV_HOME_ENV_NAME)));ROOT_TMP_NAME : constant STRING := FILE_MANAGEMENT.GET_TEMP_DIRECTORY & ”/tev_tmp”;

–– End of Modification SPR_2886 –– prefix file name for temporary files

TASK_SCHEDULING_TIME : constant duration := 0.001; –– delay needed to allow scheduling of other tasks : 1 milliseconds –– should be used in (at least) all EXECUTE operations

subtype T_TOOL_ID is POSITIVE range 1 .. 4; –– possible instance number of each tool

type T_PRINTER is (LASER_PRINTER1, LASER_PRINTER2); –– defines the available printers

HEADER_SPACE : constant NATURAL := 6;PORTRAIT_PAGE_LENGTH : constant := 60;LANDSCAPE_PAGE_LENGTH : constant := 50;PORTRAIT_PAGE_WIDTH : constant := 80;LANDSCAPE_PAGE_WIDTH : constant := 140;LEFT_MARGIN : constant := 10;–– constants needed to fix page layout for format operation

type T_FILE_TYPE is (TRDB_RES, WD_RES, WD_DEF); –– possible types of TEV file

subtype T_WD_FILE_TYPE is T_FILE_TYPE range WD_RES .. WD_DEF; –– possible types of TEV WD file

subtype T_FILE_NAME_RANGE is POSITIVE range 1 .. VICOS_DEFINITIONS.MAX_NAME_LENGTH;

subtype T_FILE_NAME is STRING(T_FILE_NAME_RANGE); –– description of a filename

subtype T_RESULT_NAME is T_FILE_NAME; –– description of a result filename

subtype T_DEFINITION_NAME_RANGE is T_FILE_NAME_RANGE; subtype T_DEFINITION_NAME is T_FILE_NAME; –– description of a definition filename

type T_TIME_FRAME isrecord BEGIN_DATE_TIME : CGS_CALENDAR.CGS_DATE_AND_TIME; END_DATE_TIME : CGS_CALENDAR.CGS_DATE_AND_TIME;

end record; –– time frame

MAX_LENGTH_OF_ENVIRONMENT_VARIABLE_NAME : constant POSITIVE := 255; NULL_TIME_FRAME : constant T_TIME_FRAME := (BEGIN_DATE_TIME => CGS_CALENDAR.NULL_DATE_AND_TIME, END_DATE_TIME => CGS_CALENDAR.NULL_DATE_AND_TIME); –– null time frame

subtype T_DIRECTORY is STRING(1 .. MAX_LENGTH_OF_ENVIRONMENT_VARIABLE_NAME); –– description of a directory name

NULL_RESULT_NAME : constant T_RESULT_NAME := (others => ’ ’); –– null result filename

NULL_DEFINITION_NAME : constant T_DEFINITION_NAME := (others => ’ ’); –– null definition filename

Page 481: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

472

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

––(V3) subtype T_TABLE_NAME is DBS_DEFINITIONS.T_TABLE_NAME;subtype T_TABLE_NAME is string(1..20);

–– description of a user result table name

––(V3) NULL_TABLE_NAME : constant T_TABLE_NAME := DBS_DEFINITIONS.NULL_TABLE_NAME;NULL_TABLE_NAME : constant T_TABLE_NAME := (others => ’ ’);–– null table name

MAX_NUMBER_OF_TABLE_IN_DEF : constant positive := 50;–– maximum number of table names in a user result table definition

type T_TABLE_NAME_ARRAY is array (positive range <>) of T_TABLE_NAME;–– array of table names

NULL_TABLE_NAME_ARRAY : constant T_TABLE_NAME_ARRAY := (1..1 =>

NULL_TABLE_NAME);–– null array of table names

type T_RESULT_SOURCE is (WORKING_DIR, TRDB); –– source of evaluation result file

type T_RESULT_REF isrecord RESULT_NAME : T_RESULT_NAME; RESULT_SOURCE : T_RESULT_SOURCE;

end record;

type T_TOOL_ALTERNATIVES is (EVENTS_LOGGING,RAW_DATA_DUMP, USER_RESULT_TABLE, DATA_SET_GENERATION,STATISTICS_GENERATION, DATA_LISTING, GRAPH_DISPLAY, REPORT_GENERATION,SAS);

–– types of tool managed in TEV

subtype T_FILE_ALTERNATIVES_IN_REPORT is T_TOOL_ALTERNATIVES range EVENTS_LOGGING .. GRAPH_DISPLAY; –– types of evaluation result file in a report

type T_EVALUATION_DEFINITION_ALTERNATIVES is (RAW_DATA_DEFINITION,EVENT_DEFINITION,DATA_SET_DEFINITION,DATA_LISTING_DEFINITION,STATISTICS_DEFINITION,GRAPH_DEFINITION);

type T_MEASUREMENT_ALTERNATIVES is ( –– EGSE specific types

–– measurements: EGSE_INTEGER_MEASUREMENT, EGSE_FLOAT_MEASUREMENT, EGSE_DISCRETE_MEASUREMENT, EGSE_BYTE_STREAM_MEASUREMENT, EGSE_INTEGER_SW_VARIABLE, EGSE_FLOAT_SW_VARIABLE, EGSE_DISCRETE_SW_VARIABLE, EGSE_BYTE_STREAM_SW_VARIABLE,

–– derived values: EGSE_INTEGER_DERIVED_VALUE, EGSE_FLOAT_DERIVED_VALUE, EGSE_DISCRETE_DERIVED_VALUE, EGSE_STRING_DERIVED_VALUE);

–– Possible types of parameters in the data set

type T_PARAMETER_VALUE is

Page 482: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

473

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

record LT_TIME_TAG : CGS_CALENDAR.CGS_DATE_AND_TIME; SMT_TIME_TAG : CGS_CALENDAR.CGS_DATE_AND_TIME; ENGINEERING_VALUE : ADT_ENGINEERING_VALUE.T_ENGINEERING_VALUE; RAW_VALUE : ADT_RAW_VALUE.T_RAW_VALUE;

end record; –– definition of a value inside the data set

–– * ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– * types used for the merge ADT_DATA_SET/ADT_EVENT_RESULT tool –– * ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– type T_TWO_TIME is record ORDERING_TIME : CGS_CALENDAR.CGS_DATE_AND_TIME; SECOND_TIME : CGS_CALENDAR.CGS_DATE_AND_TIME; end record;

–– * Pointer in the ADT_DATA_SET result file of the next value to –– * read, for each parameter defined in the current data set type T_POSITION_IN_LISTING is array(INTEGER range <> ) of NATURAL;

–– * List of engineering values for each parameter, without VICOS_LIST type T_PARAMETER_VALUES is array(NATURAL range <> ) of T_PARAMETER_VALUE;

–– * –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

type T_EVALUATION_RESULT_FILE isrecord RESULT_FILE_INFO : T_RESULT_REF; RESULT_TYPE : T_TOOL_ALTERNATIVES;

end record; –– description and location of evaluation result file

NULL_RESULT_REF : constant T_RESULT_REF := (RESULT_NAME => (others => ’ ’),

RESULT_SOURCE => WORKING_DIR); –– null result reference

MAX_NUMBER_OF_PARAMETERS_IN_DEF : constant INTEGER := 50; –– maximum number of parameters in an evaluation definition

subtype T_PARAMETERS_RANGE is POSITIVE range 1 .. MAX_NUMBER_OF_PARAMETERS_IN_DEF; –– number of parameters

subtype T_PARAMETER_NAME_RANGE is POSITIVE range 1 .. VICOS_DEFINITIONS.MAX_LENGTH_OF_DB_PATHNAME; subtype T_PARAMETER_NAME is STRING(T_PARAMETER_NAME_RANGE); –– description of a parameter name

NULL_PARAMETER_NAME : constant T_PARAMETER_NAME := (others => ’ ’); MAX_NUMBER_OF_PARAMETERS_IN_LISTING : constant INTEGER := 10; type T_PARAMETER_NAMES is array(POSITIVE range <>) of T_PARAMETER_NAME; type T_PARAMETER_NAME_ARRAY is array(POSITIVE range <>) of T_PARAMETER_NAME; subtype T_PRODUCER_NAME_RANGE is POSITIVE range 1 .. VICOS_DEFINITIONS.MAX_NAME_LENGTH; subtype T_PRODUCER_NAME is STRING(T_PRODUCER_NAME_RANGE); –– description of producer name

NULL_LISTING_PARAMETERS : constant T_PARAMETER_NAMES(1 .. MAX_NUMBER_OF_PARAMETERS_IN_LISTING)

:= (others => NULL_PARAMETER_NAME); –– null parameters for listing

NULL_PARAMETERS : constant T_PARAMETER_NAMES(1 .. MAX_NUMBER_OF_PARAMETERS_IN_DEF) := (others => NULL_PARAMETER_NAME);

–– null parameters

NULL_PRODUCER_NAME : constant T_PRODUCER_NAME := (others => ’ ’); subtype T_COMPLETE_FILENAME_RANGE is POSITIVE range 1 .. VICOS_DEFINITIONS.MAX_LENGTH_OF_FILE_NAME; subtype T_COMPLETE_FILENAME is STRING(T_COMPLETE_FILENAME_RANGE); –– description of complete filename

Page 483: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

474

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

subtype T_EVENT_GROUP is VICOS_DEFINITIONS.T_LOG_GROUP; –– Type of a log event group

subtype T_EVENT_TYPE is VICOS_DEFINITIONS.T_LOG_TYPE; –– Type of log event type

subtype T_SHORT_TEXT is VICOS_DEFINITIONS.T_LOG_TEXT_SHORT; –– Type of short text of a log event

subtype T_LONG_TEXT is VICOS_DEFINITIONS.T_LOG_TEXT_LONG; –– Type of short text of a log event

NULL_TEV_ENGINEERING_UNIT : constant MPS_DEFINITIONS.T_ENGINEERING_UNIT := (

EXPRESSION => MPS_DEFINITIONS.STATIC_STRING80(MPS_DEFINITIONS.STATIC_STRINGS80.STATIC(” ”)),

UNIT => MPS_DEFINITIONS.BASE_UNITS.NO_UNIT);–– null engineering unit record

NULL_COMPLETE_FILENAME : constant T_COMPLETE_FILENAME := (others => ’ ’); NULL_FILENAME : constant T_COMPLETE_FILENAME := (others => ’ ’); –– (old V2 definition) –– null complete filename

NULL_EVENT_GROUP : constant T_EVENT_GROUP := (others => ’ ’); –– null log group for events selection criteria

NULL_LOG_TYPE : constant T_EVENT_TYPE := (others => ’ ’); –– null log type for events selection criteria

NULL_LOG_TEXT_SHORT : constant T_SHORT_TEXT := (others => ’ ’); –– null short text for events log

NULL_LOG_TEXT_LONG : constant T_LONG_TEXT := (others => ’ ’); –– null long text description for events log

DEFAULT_LONG_TEXT_FLAG : constant BOOLEAN := FALSE; –– default value of the long text flag

MAX_SELECTION_CRITERIA : constant POSITIVE := 4; –– Maximum number of normal selection criteria to be combined.

MAX_SYSTEM_TREE_VERSION_NUMBER_STR : constant POSITIVE := 3; –– The maximal version number (999) in string format

subtype T_SELECTION_CRITERIA_RANGE is NATURAL range 1 .. MAX_SELECTION_CRITERIA; –– definition of combined selection criteria range

subtype T_SESSION_NAME_RANGE is POSITIVE range 1 .. VICOS_DEFINITIONS.MAX_NAME_LENGTH; subtype T_SESSION_NAME is STRING(T_SESSION_NAME_RANGE); –– description of session name

type T_SESSION_NAME_ARRAY is array (positive range <>) of T_SESSION_NAME; –– array of session names

––(V3) subtype T_SESSION_PURPOSE is DBS_DEFINITIONS.T_SESSION_INFO_TEXT;subtype T_SESSION_PURPOSE is string(1..80);

–– Type of a purpose field related to an Execution Session Info

––(V3) subtype T_CREATOR is DBS_DEFINITIONS.T_SESSION_INFO_TEXT;subtype T_CREATOR is string(1..80);

–– Type of a creator field related to an Execution Session Info

––(V3) subtype T_OWNER is DBS_DEFINITIONS.T_USER_NAME;subtype T_OWNER is string(1..80);

–– Type of a owner field related to an Execution Session Info

subtype T_SYSTEM_TREE_VERSION_NUMBER_STR is STRING(1 .. TEV_DEFINITIONS.MAX_SYSTEM_TREE_VERSION_NUMBER_STR); –– type for the version of a system tree

subtype T_ELEMENT_CONFIGURATION_NAME is MPS_DEFINITIONS.T_ELEMENT_CONFIGURATION_NAME;

Page 484: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

475

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– type for the name of an element configuration

subtype T_MISSION_NAME is MPS_DEFINITIONS.T_MISSION_NAME; –– type for a mission name

subtype T_CCU_SYSTEM_TREE_PATHNAME_STR is STRING(1 .. VICOS_DEFINITIONS.MAX_LENGTH_OF_DB_PATHNAME); –– type for the pathanme of CCU system tree

subtype T_CCU_CONFIGURATION_NAME is MPS_DEFINITIONS.T_CONFIGURATION_NAME; –– type of the name of a CCU configuration

type T_CCU_VERSION_STR isrecord VERSION : T_SYSTEM_TREE_VERSION_NUMBER_STR; ISSUE : T_SYSTEM_TREE_VERSION_NUMBER_STR; REVISION : T_SYSTEM_TREE_VERSION_NUMBER_STR;

end record; –– string type for the CCU version

type T_CCU_INFO_STR isrecord ELEMENT_CONFIGURATION_NAME : T_ELEMENT_CONFIGURATION_NAME; MISSION_NAME : T_MISSION_NAME; SYSTEM_TREE_VERSION_NUMBER : T_SYSTEM_TREE_VERSION_NUMBER_STR; CCU_SYSTEM_TREE_PATHNAME : T_CCU_SYSTEM_TREE_PATHNAME_STR; CCU_CONFIGURATION_NAME : T_CCU_CONFIGURATION_NAME; CCU_VERSION : T_CCU_VERSION_STR;

end record; –– Type of a CCU info in string format

DEFAULT_SELECTION_CRITERIA_NB : constant POSITIVE := MAX_SELECTION_CRITERIA; NULL_SESSION_NAME : constant T_SESSION_NAME := (others => ’ ’); MAX_NUMBER_OF_SESSIONS_IN_DEF : constant INTEGER := 10; –– maximum number of execution sessions initialised in definition

MAX_TITLE_LENGTH : constant POSITIVE := 50; –– maximum length of title

MAX_TEST_PLAN_LENGTH : constant POSITIVE := 50; –– maximum length of test plan

MAX_TEV_USER_NAME : constant POSITIVE := 80; –– maximum length of tev user name

NULL_SYSTEM_TREE_VERSION_NUMBER_STR : constant T_SYSTEM_TREE_VERSION_NUMBER_STR := ” 0”; –– Null value of a system tree

NULL_ELEMENT_CONFIGURATION_NAME : constant T_ELEMENT_CONFIGURATION_NAME := (others => ’ ’); –– Null value of an element configuration

NULL_MISSION_NAME : constant T_MISSION_NAME := (others => ’ ’); –– Null value of a mission name

NULL_CCU_SYSTEM_TREE_PATHNAME_STR : constant T_CCU_SYSTEM_TREE_PATHNAME_STR := (others => ’’); –– Null value of a pathanme of CCU system tree

NULL_CCU_CONFIGURATION_NAME : constant T_CCU_CONFIGURATION_NAME := (others => ’ ’); –– Null value of a name of a CCU configuration

NULL_CCU_VERSION_STR : constant T_CCU_VERSION_STR := (VERSION => NULL_SYSTEM_TREE_VERSION_NUMBER_STR, ISSUE => NULL_SYSTEM_TREE_VERSION_NUMBER_STR, REVISION => NULL_SYSTEM_TREE_VERSION_NUMBER_STR); –– Null value of a system tree

NULL_CCU_INFO_STR : constant T_CCU_INFO_STR := (ELEMENT_CONFIGURATION_NAME => NULL_ELEMENT_CONFIGURATION_NAME, MISSION_NAME => NULL_MISSION_NAME, SYSTEM_TREE_VERSION_NUMBER => NULL_SYSTEM_TREE_VERSION_NUMBER_STR, CCU_SYSTEM_TREE_PATHNAME => NULL_CCU_SYSTEM_TREE_PATHNAME_STR, CCU_CONFIGURATION_NAME => NULL_CCU_CONFIGURATION_NAME,

Page 485: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

476

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

CCU_VERSION => NULL_CCU_VERSION_STR); –– Null value of a CCU Info record

subtype T_SESSIONS_RANGE is POSITIVE range 1 .. MAX_NUMBER_OF_SESSIONS_IN_DEF; –– number of sessions

type T_DEFINITION_SESSION_NAMES is array(POSITIVE range <>) of T_SESSION_NAME; –– array of execution sessions used to initialise

type T_ACCESS_STATUS is (READ, WRITE); –– access status used to open a file

type T_CURRENT_STATUS is (OPENED, CLOSED); –– status of the file

type T_SOURCE_FILE_TYPE is (ARCHIVED_FILE, ENG_LOG_FILE); –– type of source file

–– * –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –– * New strings for the merge ADT_EVENT_RESULT/ADT_DATA_SET tool –– * ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

EVENT_DEFINITION_STR_DELIMITER : constant string := ”EVENT DEFINITION”;EV_DEFINITION_STR_UNDERLINE : constant string :=

(EVENT_DEFINITION_STR_DELIMITER’range => ’=’);

DATA_SET_DEFINITION_STR_DELIMITER : constant string := ”DATA SET DEFINITION”;DS_DEFINITION_STR_UNDERLINE : constant string :=

(DATA_SET_DEFINITION_STR_DELIMITER’range => ’=’); –– * ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

DEFINITION_STR_DELIMITER : constant string := ”1) DEFINITION”;DEFINITION_STR_UNDERLINE : constant string := (DEFINITION_STR_DELIMITER’range => ’=’);RESULT_STR_DELIMITER : constant string := ”2) RESULT”;RESULT_STR_UNDERLINE : constant string := (RESULT_STR_DELIMITER’range => ’=’);–– delimiter of definition and result parts in a result file

subtype T_TITLE is string(1..PORTRAIT_PAGE_WIDTH); –– title description

subtype T_PORTRAIT_HEADER_LINE is string(1..PORTRAIT_PAGE_WIDTH);type T_PORTRAIT_HEADER is array(positive range <>) of T_PORTRAIT_HEADER_LINE;subtype T_LANDSCAPE_HEADER_LINE is string(1..LANDSCAPE_PAGE_WIDTH);type T_LANDSCAPE_HEADER is array(positive range <>) of T_LANDSCAPE_HEADER_LINE;–– header descriptions

subtype T_TEST_PLAN is STRING(1 .. MAX_TEST_PLAN_LENGTH); –– test plan

subtype T_TEV_USER is STRING(1 .. MAX_TEV_USER_NAME); –– tev user description

subtype T_TIME_STR is STRING(1 .. 12); –– string definition of time

subtype T_DATE_STR is STRING(1 .. 8); –– string date definition

subtype T_DATE_TIME_STR is STRING(1 .. 21); –– string date and time definition

type T_TIME_FRAME_STR isrecord BEGIN_DATE_TIME : T_DATE_TIME_STR; END_DATE_TIME : T_DATE_TIME_STR;

end record; –– string definition of time frame

NULL_TITLE : constant T_TITLE := (others => ’ ’); –– null title string

NULL_TEST_PLAN : constant T_TEST_PLAN := (others => ’ ’); –– null test plan string

Page 486: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

477

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

NULL_DATE_STR : constant T_DATE_STR := (others => ’ ’); –– null date string definition

NULL_TIME_STR : constant T_DATE_STR := (others => ’ ’); –– null time string definition

NULL_DATE_TIME_STR : constant T_DATE_TIME_STR := (others => ’ ’); –– null date and time string definition

NULL_TIME_FRAME_STR : constant T_TIME_FRAME_STR := (BEGIN_DATE_TIME => NULL_DATE_TIME_STR, END_DATE_TIME => NULL_DATE_TIME_STR); –– null time frame string definition

subtype T_PACKET_BYTES_LINE is POSITIVE; –– number of bytes per line for packets

subtype T_PACKET_PATHNAME is STRING(1 .. VICOS_DEFINITIONS.MAX_LENGTH_OF_DB_PATHNAME); –– packet pathname

type T_PACKET_FORMAT is (DECIMAL, HEXADECIMAL, ASCII); –– packet format

type T_PACKET_TYPE is (ADU, GDU, ADUS, GDUS, ALL_ADUS_GDUS, NO_CHOICE); –– characteristic of packet selection criteria

type T_PACKET_DESCRIPTOR(CHOICE : T_PACKET_TYPE := ADUS) is record case CHOICE is

when ADU | GDU => PATH : T_PACKET_PATHNAME;when others => null;

end case; end record; –– Definition of a packet descriptor type T_SAMPLING_TYPE is (N_SAMPLING, TIME_BASED_SAMPLING,

MERGE); –– sampling type in data sets

type T_SAMPLING_STR(SAMPLING_TYPE : T_SAMPLING_TYPE := N_SAMPLING) isrecord case SAMPLING_TYPE is

when N_SAMPLING => RESOLUTION : NATURAL := 1;when TIME_BASED_SAMPLING => DELTA_T : T_TIME_STR; EPSILON : T_TIME_STR;when others => null;

end case; end record; type T_SAMPLING(SAMPLING_TYPE : T_SAMPLING_TYPE := N_SAMPLING) is record

case SAMPLING_TYPE iswhen N_SAMPLING =>

RESOLUTION : NATURAL := 1;when TIME_BASED_SAMPLING =>

DELTA_T : CGS_CALENDAR.CGS_TIME; EPSILON : CGS_CALENDAR.CGS_TIME;

when others => null;

end case; end record; –– definition of sampling types

NULL_PACKET_PATHNAME : T_PACKET_PATHNAME := (others => ’ ’);–– Null pathname of a packet

NULL_PACKET_DESCRIPTOR : constant T_PACKET_DESCRIPTOR := (CHOICE => NO_CHOICE); –– null descriptor of a packet

DEFAULT_PACKET_TYPE : constant T_PACKET_TYPE := ADU; –– default packets type

Page 487: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

478

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

DEFAULT_SAMPLING_STR : constant T_SAMPLING_STR := (SAMPLING_TYPE => N_SAMPLING,

RESOLUTION => 1); DEFAULT_SAMPLING : constant T_SAMPLING := (SAMPLING_TYPE => N_SAMPLING,

RESOLUTION => 1); –– default sampling definitions

DEFAULT_PACKET_FORMAT : constant T_PACKET_FORMAT := HEXADECIMAL; –– default format for packets

DEFAULT_BYTES_LINE : constant POSITIVE := 32; –– default number of bytes per line

MAX_LENGTH_OF_GRAPH_NAME : constant POSITIVE := 50; –– maximum length of graph name

MAX_LENGTH_OF_AXIS_NAME : constant POSITIVE := 50; –– maximum length of axis name

MAX_PARMS_IN_LINE_GRAPH : constant POSITIVE := 5; –– maximum number of parameters in a line graph

MAX_PARMS_IN_CHART : constant POSITIVE := 5; –– maximum number of parameters in a bar or pie chart

type T_SID_PATHNAME is record SID : MPS_DEFINITIONS.SID := MPS_DEFINITIONS.NULL_SID; PATHNAME : T_PACKET_PATHNAME; end record;

NULL_SID_PATHNAME : constant T_SID_PATHNAME := (SID => MPS_DEFINITIONS.NULL_SID, PATHNAME => NULL_PACKET_PATHNAME);

type T_ENTRY_RANGE isrecord FROM_ENTRY : NATURAL := NATURAL’FIRST; TO_ENTRY : NATURAL := NATURAL’FIRST;

end record; –– entry range selection criteria for user result tables

type T_GRAPH_TYPE is (LINE, BAR, XY, PIE, UNDEFINED); –– description of graph types

subtype T_GRAPH_NAME_RANGE is POSITIVE range 1 .. MAX_LENGTH_OF_GRAPH_NAME; –– range of length of graph name

subtype T_GRAPH_NAME is STRING(T_GRAPH_NAME_RANGE); –– description of graph name

subtype T_AXIS_NAME_RANGE is POSITIVE range 1 .. MAX_LENGTH_OF_AXIS_NAME; –– range of length of axis name

subtype T_AXIS_NAME is STRING(T_AXIS_NAME_RANGE); –– description of axis name

NULL_AXIS_NAME : constant T_AXIS_NAME := (others => ’ ’); –– null axis name

type T_SCALING_TYPE is (INT_SCALE, FLOAT_SCALE, UNDEFINED); –– description of graph scaling types

type T_GRAPH_SCALING isrecord SCALING_TYPE : T_SCALING_TYPE := UNDEFINED; INT_MAX : INTEGER := 0; INT_MIN : INTEGER := 0; FLOAT_MAX : FLOAT := 0.0; FLOAT_MIN : FLOAT := 0.0;

end record;

Page 488: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

479

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– record giving the graph scaling ie the maximum and minimum –– values

DEFAULT_SCALING : constant T_GRAPH_SCALING := (UNDEFINED, 0, 0, 0.0, 0.0);

subtype T_MAX_MIN_STR is STRING(1 .. 10); type T_GRAPH_SCALING_STR is

record MAX : T_MAX_MIN_STR := (others => ’ ’); MIN : T_MAX_MIN_STR := (others => ’ ’);

end record; –– record giving the graph scaling in string format ie the –– maximum and minimum values

type T_COLOUR is (RED, GREEN, BLUE, YELLOW, MAGENTA, BLACK, WHITE, BROWN, CYAN, ORANGE, GREY); –– Definition of colours available for graphs

type T_LINE_STYLE is (SOLID, DASHED, DOTTED, DASH_DOT, LONG_DASH); –– Definition of line styles available for graphs

type T_LINE_THICKNESS is (’0’, ’1’, ’2’, ’4’); –– Definition of line thickness for graphs (4 is thickest)

subtype T_LINE_GRAPH_RANGE is POSITIVE range 1 .. MAX_PARMS_IN_LINE_GRAPH; –– range of number of parameters allowed in a line graph

subtype T_CHART_RANGE is POSITIVE range 1 .. MAX_PARMS_IN_CHART; –– range of number of parameters allowed in a bar or pie chart

type T_PARAMETER_LINE_INFO isrecord COLOUR : T_COLOUR := BLACK; LINE_STYLE : T_LINE_STYLE := SOLID; LINE_THICKNESS : T_LINE_THICKNESS := ’0’; TIME_FRAME : T_TIME_FRAME := NULL_TIME_FRAME;

end record; –– parameter information for a line graph

type T_LINE_PARAMETERS_INFO is array(T_LINE_GRAPH_RANGE) of T_PARAMETER_LINE_INFO; –– array of parameter information for a line graph

DEFAULT_LINE_PARAMETERS_INFO : constant T_LINE_PARAMETERS_INFO :=((BLACK, SOLID, ’0’, NULL_TIME_FRAME),(BLACK, LONG_DASH, ’0’, NULL_TIME_FRAME),(BLACK, DASHED, ’0’, NULL_TIME_FRAME),(BLACK, DOTTED, ’0’, NULL_TIME_FRAME),(BLACK, DASH_DOT, ’0’, NULL_TIME_FRAME) );

type T_PARAMETER_LINE_INFO_STR isrecord PARAMETER : T_PARAMETER_NAME := NULL_PARAMETER_NAME; ENG_UNIT : MPS_DEFINITIONS.T_ENGINEERING_UNIT; COLOUR : T_COLOUR := BLACK; LINE_STYLE : T_LINE_STYLE := SOLID; LINE_THICKNESS : T_LINE_THICKNESS := ’0’; TIME_FRAME : T_TIME_FRAME_STR; Y_SCALING : T_GRAPH_SCALING_STR;

end record; –– parameter information for a line graph in string format

type T_LINE_PARAMETERS_INFO_STR is array(T_LINE_GRAPH_RANGE) of T_PARAMETER_LINE_INFO_STR; –– array of parameter information for a line graph in string –– format

type T_XY_INFO isrecord

–– X_PARAMETER : T_PARAMETER_NAME := NULL_PARAMETER_NAME;–– Y_PARAMETER : T_PARAMETER_NAME := NULL_PARAMETER_NAME;–– X_ENG_UNITS : MPS_DEFINITIONS.T_ENGINEERING_UNIT;–– Y_ENG_UNITS : MPS_DEFINITIONS.T_ENGINEERING_UNIT;

Page 489: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

480

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

X_NAME : T_AXIS_NAME := NULL_AXIS_NAME; Y_NAME : T_AXIS_NAME := NULL_AXIS_NAME; X_SCALING : T_GRAPH_SCALING; Y_SCALING : T_GRAPH_SCALING; COLOUR : T_COLOUR := BLACK; LINE_STYLE : T_LINE_STYLE := SOLID; LINE_THICKNESS : T_LINE_THICKNESS := ’0’;

end record; –– information for an xy graph type T_XY_INFO_STR is

record X_PARAMETER : T_PARAMETER_NAME := NULL_PARAMETER_NAME; Y_PARAMETER : T_PARAMETER_NAME := NULL_PARAMETER_NAME; X_ENG_UNITS : MPS_DEFINITIONS.T_ENGINEERING_UNIT; Y_ENG_UNITS : MPS_DEFINITIONS.T_ENGINEERING_UNIT; X_NAME : T_AXIS_NAME := NULL_AXIS_NAME; Y_NAME : T_AXIS_NAME := NULL_AXIS_NAME; X_SCALING : T_GRAPH_SCALING_STR; Y_SCALING : T_GRAPH_SCALING_STR; COLOUR : T_COLOUR := BLACK; LINE_STYLE : T_LINE_STYLE := SOLID; LINE_THICKNESS : T_LINE_THICKNESS := ’0’;

end record; –– information for an xy graph in string format

type T_PARAMETER_CHART_INFO isrecord PARAMETER : T_PARAMETER_NAME := NULL_PARAMETER_NAME; ENG_UNIT : MPS_DEFINITIONS.T_ENGINEERING_UNIT; COLOUR : T_COLOUR := BLACK;

end record;

subtype T_CHART_GRAPH_RANGE is POSITIVE range 1 .. MAX_PARMS_IN_CHART;

type T_CHART_COLOURS is array (T_CHART_GRAPH_RANGE) of T_COLOUR; type T_CHART_PARAMETERS_INFO is array(T_CHART_GRAPH_RANGE) of T_PARAMETER_CHART_INFO; –– parameter information for a chart

NULL_GRAPH_NAME : constant T_GRAPH_NAME := (others => ’ ’); –– null graph name

NULL_GRAPH_SCALING : constant T_GRAPH_SCALING := (SCALING_TYPE => UNDEFINED,

INT_MAX => 0, INT_MIN => 0,

FLOAT_MAX => 0.0, FLOAT_MIN => 0.0);–– null graph scaling

NULL_GRAPH_SCALING_STR : constant T_GRAPH_SCALING_STR :=(MAX => (others => ’ ’),

MIN => (others => ’ ’)); –– null graph scaling string

MAX_SAS_COMPLETION_STRING : constant POSITIVE := 255; –– maximum length of a SAS completion string

MAX_SAS_PARAM_STRING : constant POSITIVE := 255; –– maximum length of a SAS parameter string

subtype T_SAS_COMPLETION is STRING(1 .. MAX_SAS_COMPLETION_STRING); –– definition of a SAS completion string

subtype T_SAS_PARAMS is STRING(1 .. MAX_SAS_PARAM_STRING); –– definition of a SAS parameter string

–– =================================================== –– Instantiation of VICOS_LIST for several list types :

–– ===================================================

package P_RESULT_NAME_LIST is new VICOS_LIST(T_RESULT_NAME); subtype T_RESULT_NAME_L is P_RESULT_NAME_LIST.LIST; –– definition of a list of result filenames (via the vicos list)

Page 490: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

481

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

package P_RESULT_REF_LIST is new VICOS_LIST(T_RESULT_REF); subtype T_RESULT_REF_L is P_RESULT_REF_LIST.LIST; –– definition of a list of result files (via the vicos list)

package P_DEFINITION_NAME_LIST is new VICOS_LIST(T_DEFINITION_NAME); subtype T_DEFINITION_NAME_L is P_DEFINITION_NAME_LIST.LIST; –– definition of a list of definition filenames (via the vicos list)

package P_SESSION_NAME_LIST is new VICOS_LIST(T_SESSION_NAME); subtype T_SESSION_NAME_L is P_SESSION_NAME_LIST.LIST; –– definition of a list of execution session names (via the vicos list)

––(V3)–– package P_SESSION_LIST is new VICOS_LIST(DBS_DEFINITIONS.T_EXECUTION_SESSION_INFO);–– subtype T_SESSION_L is P_SESSION_LIST.LIST; –– definition of a list of execution session info (via the vicos list)

package P_TABLE_NAME_LIST is new VICOS_LIST(T_TABLE_NAME); subtype T_TABLE_NAME_L is P_TABLE_NAME_LIST.LIST; –– definition of a list of result table names (via the vicos list)

package P_RESULT_LIST is new VICOS_LIST(T_EVALUATION_RESULT_FILE); subtype T_RESULT_L is P_RESULT_LIST.LIST; –– definition of a list of result files (via the vicos list)

package P_PARAMETER_NAME_LIST is new VICOS_LIST(T_PARAMETER_NAME); subtype T_PARAMETER_NAME_L is P_PARAMETER_NAME_LIST.LIST; –– definition of a list of parameters (via the vicos list)

package P_FILE_NAME_LIST is new VICOS_LIST(T_FILE_NAME); subtype T_FILE_NAME_L is P_FILE_NAME_LIST.LIST; –– definition of a list of filenames (via the vicos list)

package P_ENGINEERING_VALUE_LIST is newVICOS_LIST(ADT_ENGINEERING_VALUE.T_ENGINEERING_VALUE); subtype T_ENGINEERING_VALUE_L is P_ENGINEERING_VALUE_LIST.LIST; –– definition of a list of engineering values (via the vicos list)

package P_DATE_AND_TIME_LIST is new VICOS_LIST(CGS_CALENDAR.CGS_DATE_AND_TIME); subtype T_DATE_AND_TIME_L is P_DATE_AND_TIME_LIST.LIST; –– definition of a list of date and time (via the vicos list)

package P_COMPLETE_FILENAME_LIST is new VICOS_LIST(T_COMPLETE_FILENAME); subtype T_COMPLETE_FILENAME_L is P_COMPLETE_FILENAME_LIST.LIST; –– definition of a list of complete filenames (via the vicos list)

package P_PARAMETER_VALUE_LIST is new VICOS_LIST(T_PARAMETER_VALUE); subtype T_PARAMETER_VALUE_L is P_PARAMETER_VALUE_LIST.LIST; –– definition of a list of values (via the vicos list)

–– =========== List operations on T_RESULT_NAME_L ================

procedure COPY (FROM_THE_LIST : in T_RESULT_NAME_L; TO_THE_LIST : in out T_RESULT_NAME_L) renames P_RESULT_NAME_LIST.COPY; procedure INVERT (THE_LIST : in T_RESULT_NAME_L;

TO_THE_LIST : in out T_RESULT_NAME_L) renames P_RESULT_NAME_LIST.INVERT;

procedure CLEAR (THE_LIST : in out T_RESULT_NAME_L) renames P_RESULT_NAME_LIST.CLEAR;

procedure ASSIGN (THE_LIST : in out T_RESULT_NAME_L; NEW_LIST : in T_RESULT_NAME_L) renames P_RESULT_NAME_LIST.ASSIGN;

procedure CONSTRUCT (RESULT_NAME : in T_RESULT_NAME;

THE_LIST : in out T_RESULT_NAME_L) renames P_RESULT_NAME_LIST.CONSTRUCT;

function LENGTH_OF (THE_LIST : in T_RESULT_NAME_L) return natural renames P_RESULT_NAME_LIST.LENGTH_OF; function HEAD_OF (THE_LIST : in T_RESULT_NAME_L) return T_RESULT_NAME renames P_RESULT_NAME_LIST.HEAD_OF;

Page 491: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

482

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

function TAIL_OF (THE_LIST : in T_RESULT_NAME_L) return T_RESULT_NAME_L renames P_RESULT_NAME_LIST.TAIL_OF;

function IS_NULL (THE_LIST : in T_RESULT_NAME_L) return boolean renames P_RESULT_NAME_LIST.IS_NULL; function NULL_LIST return T_RESULT_NAME_L renames P_RESULT_NAME_LIST.NULL_LIST;

–– =========== List operations on T_RESULT_REF_L ================

procedure COPY (FROM_THE_LIST : in T_RESULT_REF_L; TO_THE_LIST : in out T_RESULT_REF_L) renames P_RESULT_REF_LIST.COPY;

procedure INVERT (THE_LIST : in T_RESULT_REF_L;

TO_THE_LIST : in out T_RESULT_REF_L) renames P_RESULT_REF_LIST.INVERT;

procedure CLEAR (THE_LIST : in out T_RESULT_REF_L) renames P_RESULT_REF_LIST.CLEAR;

procedure ASSIGN (THE_LIST : in out T_RESULT_REF_L; NEW_LIST : in T_RESULT_REF_L) renames P_RESULT_REF_LIST.ASSIGN;

procedure CONSTRUCT (RESULT_REF : in T_RESULT_REF;

THE_LIST : in out T_RESULT_REF_L) renames P_RESULT_REF_LIST.CONSTRUCT;

function LENGTH_OF (THE_LIST : in T_RESULT_REF_L) return natural renames P_RESULT_REF_LIST.LENGTH_OF; function HEAD_OF (THE_LIST : in T_RESULT_REF_L) return T_RESULT_REF renames P_RESULT_REF_LIST.HEAD_OF;

function TAIL_OF (THE_LIST : in T_RESULT_REF_L) return T_RESULT_REF_L renames P_RESULT_REF_LIST.TAIL_OF;

function IS_NULL (THE_LIST : in T_RESULT_REF_L) return boolean renames P_RESULT_REF_LIST.IS_NULL; function NULL_LIST return T_RESULT_REF_L renames P_RESULT_REF_LIST.NULL_LIST;

–– =========== List operations on T_DEFINITION_NAME_L ================

procedure COPY (FROM_THE_LIST : in T_DEFINITION_NAME_L; TO_THE_LIST : in out T_DEFINITION_NAME_L) renames P_DEFINITION_NAME_LIST.COPY; procedure INVERT (THE_LIST : in T_DEFINITION_NAME_L;

TO_THE_LIST : in out T_DEFINITION_NAME_L) renames P_DEFINITION_NAME_LIST.INVERT;

procedure CLEAR (THE_LIST : in out T_DEFINITION_NAME_L) renames P_DEFINITION_NAME_LIST.CLEAR;

procedure ASSIGN (THE_LIST : in out T_DEFINITION_NAME_L;

NEW_LIST : in T_DEFINITION_NAME_L) renames P_DEFINITION_NAME_LIST.ASSIGN; procedure CONSTRUCT (DEFINITION_NAME : in T_DEFINITION_NAME;

THE_LIST : in out T_DEFINITION_NAME_L) renames P_DEFINITION_NAME_LIST.CONSTRUCT;

function LENGTH_OF (THE_LIST : in T_DEFINITION_NAME_L) return natural renames P_DEFINITION_NAME_LIST.LENGTH_OF; function HEAD_OF (THE_LIST : in T_DEFINITION_NAME_L) return T_DEFINITION_NAME renames P_DEFINITION_NAME_LIST.HEAD_OF;

function TAIL_OF (THE_LIST : in T_DEFINITION_NAME_L) return T_DEFINITION_NAME_L renames P_DEFINITION_NAME_LIST.TAIL_OF;

function IS_NULL (THE_LIST : in T_DEFINITION_NAME_L) return boolean renames P_DEFINITION_NAME_LIST.IS_NULL;

function NULL_LIST return T_DEFINITION_NAME_L renames P_DEFINITION_NAME_LIST.NULL_LIST;

–– =========== List operations on T_SESSION_NAME_L ================

procedure COPY(FROM_THE_LIST : in T_SESSION_NAME_L; TO_THE_LIST : in out T_SESSION_NAME_L) renames P_SESSION_NAME_LIST.COPY;

Page 492: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

483

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

procedure INVERT(THE_LIST : in T_SESSION_NAME_L; TO_THE_LIST : in out T_SESSION_NAME_L) renames P_SESSION_NAME_LIST.INVERT;

procedure CLEAR(THE_LIST : in out T_SESSION_NAME_L) renames P_SESSION_NAME_LIST.CLEAR;

procedure ASSIGN(THE_LIST : in out T_SESSION_NAME_L; NEW_LIST : in T_SESSION_NAME_L) renames P_SESSION_NAME_LIST.ASSIGN; procedure CONSTRUCT(SESSION_NAME : in T_SESSION_NAME;

THE_LIST : in out T_SESSION_NAME_L) renames P_SESSION_NAME_LIST.CONSTRUCT;

function LENGTH_OF(THE_LIST : in T_SESSION_NAME_L) return natural renames P_SESSION_NAME_LIST.LENGTH_OF; function HEAD_OF(THE_LIST : in T_SESSION_NAME_L) return T_SESSION_NAME renames P_SESSION_NAME_LIST.HEAD_OF;

function TAIL_OF (THE_LIST : in T_SESSION_NAME_L) return T_SESSION_NAME_L renames P_SESSION_NAME_LIST.TAIL_OF;

function IS_NULL(THE_LIST : in T_SESSION_NAME_L) return boolean renames P_SESSION_NAME_LIST.IS_NULL; function NULL_LIST return T_SESSION_NAME_L renames P_SESSION_NAME_LIST.NULL_LIST;

procedure REMOVE_ITEM(IN_THE_LIST : in out T_SESSION_NAME_L; AT_THE_POSITION : in POSITIVE)

renames P_SESSION_NAME_LIST.REMOVE_ITEM;

–– =========== List operations on T_SESSION_L ================––(V3)–– procedure INVERT(THE_LIST : in T_SESSION_L;–– TO_THE_LIST : in out T_SESSION_L) renames P_SESSION_LIST.INVERT;–––– procedure CLEAR(THE_LIST : in out T_SESSION_L) renames P_SESSION_LIST.CLEAR;–––– procedure ASSIGN(THE_LIST : in out T_SESSION_L;–– NEW_LIST : in T_SESSION_L) renames P_SESSION_LIST.ASSIGN;–––– procedure CONSTRUCT(DATA_VALUE : in DBS_DEFINITIONS.T_EXECUTION_SESSION_INFO;–– THE_LIST : in out T_SESSION_L) renames P_SESSION_LIST.CONSTRUCT;–––– function NULL_LIST RETURN T_SESSION_L renames P_SESSION_LIST.NULL_LIST;–––– function IS_NULL(THE_LIST : in T_SESSION_L) RETURN boolean–– renames P_SESSION_LIST.IS_NULL;–––– function HEAD_OF(THE_LIST : in T_SESSION_L) RETURN DBS_DEFINITIONS.T_EXECUTION_SESSION_INFO–– renames P_SESSION_LIST.HEAD_OF;–––– function TAIL_OF (THE_LIST : in T_SESSION_L) RETURN T_SESSION_L–– renames P_SESSION_LIST.TAIL_OF;–––– function LENGTH_OF(THE_LIST : in T_SESSION_L) RETURN natural–– renames P_SESSION_LIST.LENGTH_OF;–––– procedure COPY(FROM_THE_LIST : in T_SESSION_L;–– TO_THE_LIST : in out T_SESSION_L) renames P_SESSION_LIST.COPY;

–– =========== List operations on T_TABLE_NAME_L ================

procedure INVERT(THE_LIST : in T_TABLE_NAME_L; TO_THE_LIST : in out T_TABLE_NAME_L) renames P_TABLE_NAME_LIST.INVERT;

procedure CLEAR(THE_LIST : in out T_TABLE_NAME_L) renames P_TABLE_NAME_LIST.CLEAR;

procedure ASSIGN(THE_LIST : in out T_TABLE_NAME_L; NEW_LIST : in T_TABLE_NAME_L) renames P_TABLE_NAME_LIST.ASSIGN;

Page 493: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

484

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

procedure CONSTRUCT(TABLE_NAME : in T_TABLE_NAME; THE_LIST : in out T_TABLE_NAME_L)renames P_TABLE_NAME_LIST.CONSTRUCT;

function NULL_LIST RETURN T_TABLE_NAME_L renames P_TABLE_NAME_LIST.NULL_LIST;

function IS_NULL(THE_LIST : in T_TABLE_NAME_L) RETURN boolean renames P_TABLE_NAME_LIST.IS_NULL;

function HEAD_OF(THE_LIST : in T_TABLE_NAME_L) RETURN T_TABLE_NAME renames P_TABLE_NAME_LIST.HEAD_OF;

function TAIL_OF (THE_LIST : in T_TABLE_NAME_L) RETURN T_TABLE_NAME_L renames P_TABLE_NAME_LIST.TAIL_OF;

function LENGTH_OF(THE_LIST : in T_TABLE_NAME_L) RETURN naturalrenames P_TABLE_NAME_LIST.LENGTH_OF;

procedure COPY(FROM_THE_LIST : in T_TABLE_NAME_L; TO_THE_LIST : in out T_TABLE_NAME_L) renames P_TABLE_NAME_LIST.COPY;

–– =========== List operations on T_RESULT_L ================

procedure COPY (FROM_THE_LIST : in T_RESULT_L; TO_THE_LIST : in out T_RESULT_L) renames P_RESULT_LIST.COPY; procedure INVERT (THE_LIST : in T_RESULT_L;

TO_THE_LIST : in out T_RESULT_L) renames P_RESULT_LIST.INVERT;

procedure CLEAR (THE_LIST : in out T_RESULT_L) renames P_RESULT_LIST.CLEAR;

procedure ASSIGN (THE_LIST : in out T_RESULT_L;

NEW_LIST : in T_RESULT_L) renames P_RESULT_LIST.ASSIGN; procedure CONSTRUCT (RESULT_FILE : in T_EVALUATION_RESULT_FILE;

THE_LIST : in out T_RESULT_L) renames P_RESULT_LIST.CONSTRUCT;

function LENGTH_OF (THE_LIST : in T_RESULT_L) return natural renames P_RESULT_LIST.LENGTH_OF; function HEAD_OF (THE_LIST : in T_RESULT_L) return T_EVALUATION_RESULT_FILE renames P_RESULT_LIST.HEAD_OF;

function TAIL_OF (THE_LIST : in T_RESULT_L) return T_RESULT_L renames P_RESULT_LIST.TAIL_OF;

function IS_NULL (THE_LIST : in T_RESULT_L) return boolean renames P_RESULT_LIST.IS_NULL; function NULL_LIST return T_RESULT_L renames P_RESULT_LIST.NULL_LIST;

–– =========== List operations on T_PARAMETER_NAME_L ================

procedure COPY (FROM_THE_LIST : in T_PARAMETER_NAME_L; TO_THE_LIST : in out T_PARAMETER_NAME_L) renames P_PARAMETER_NAME_LIST.COPY; procedure INVERT (THE_LIST : in T_PARAMETER_NAME_L;

TO_THE_LIST : in out T_PARAMETER_NAME_L) renames P_PARAMETER_NAME_LIST.INVERT;

procedure CLEAR (THE_LIST : in out T_PARAMETER_NAME_L) renames P_PARAMETER_NAME_LIST.CLEAR;

procedure ASSIGN (THE_LIST : in out T_PARAMETER_NAME_L;

NEW_LIST : in T_PARAMETER_NAME_L) renames P_PARAMETER_NAME_LIST.ASSIGN; procedure CONSTRUCT (PARAMETER_NAME : in T_PARAMETER_NAME;

THE_LIST : in out T_PARAMETER_NAME_L) renames P_PARAMETER_NAME_LIST.CONSTRUCT;

function LENGTH_OF (THE_LIST : in T_PARAMETER_NAME_L) return natural

renames P_PARAMETER_NAME_LIST.LENGTH_OF;

Page 494: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

485

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

function HEAD_OF (THE_LIST : in T_PARAMETER_NAME_L) return T_PARAMETER_NAME renames P_PARAMETER_NAME_LIST.HEAD_OF;

function TAIL_OF (THE_LIST : in T_PARAMETER_NAME_L) return T_PARAMETER_NAME_L renames P_PARAMETER_NAME_LIST.TAIL_OF;

function IS_NULL (THE_LIST : in T_PARAMETER_NAME_L) return booleanrenames P_PARAMETER_NAME_LIST.IS_NULL;

function NULL_LIST return T_PARAMETER_NAME_L renames P_PARAMETER_NAME_LIST.NULL_LIST;

–– =========== List operations on T_FILE_NAME_L ================

procedure COPY (FROM_THE_LIST : in T_FILE_NAME_L; TO_THE_LIST : in out T_FILE_NAME_L) renames P_FILE_NAME_LIST.COPY; procedure INVERT (THE_LIST : in T_FILE_NAME_L;

TO_THE_LIST : in out T_FILE_NAME_L) renames P_FILE_NAME_LIST.INVERT;

procedure CLEAR (THE_LIST : in out T_FILE_NAME_L) renames P_FILE_NAME_LIST.CLEAR;

procedure ASSIGN (THE_LIST : in out T_FILE_NAME_L;

NEW_LIST : in T_FILE_NAME_L) renames P_FILE_NAME_LIST.ASSIGN; procedure CONSTRUCT (FILE_NAME : in T_FILE_NAME;

THE_LIST : in out T_FILE_NAME_L) renames P_FILE_NAME_LIST.CONSTRUCT;

function LENGTH_OF (THE_LIST : in T_FILE_NAME_L) return natural renames P_FILE_NAME_LIST.LENGTH_OF; function HEAD_OF (THE_LIST : in T_FILE_NAME_L) return T_FILE_NAME renames P_FILE_NAME_LIST.HEAD_OF;

function TAIL_OF (THE_LIST : in T_FILE_NAME_L) return T_FILE_NAME_L renames P_FILE_NAME_LIST.TAIL_OF;

function IS_NULL (THE_LIST : in T_FILE_NAME_L) return boolean renames P_FILE_NAME_LIST.IS_NULL; function NULL_LIST return T_FILE_NAME_L renames P_FILE_NAME_LIST.NULL_LIST;

–– =========== List operations on T_ENGINEERING_VALUE_L ================

procedure COPY (FROM_THE_LIST : in T_ENGINEERING_VALUE_L; TO_THE_LIST : in out T_ENGINEERING_VALUE_L) renames P_ENGINEERING_VALUE_LIST.COPY; procedure INVERT (THE_LIST : in T_ENGINEERING_VALUE_L;

TO_THE_LIST : in out T_ENGINEERING_VALUE_L ) renames P_ENGINEERING_VALUE_LIST.INVERT;

procedure CLEAR (THE_LIST : in out T_ENGINEERING_VALUE_L) renames P_ENGINEERING_VALUE_LIST.CLEAR;

procedure ASSIGN (THE_LIST : in out T_ENGINEERING_VALUE_L ;

NEW_LIST : in T_ENGINEERING_VALUE_L) renames P_ENGINEERING_VALUE_LIST.ASSIGN; procedure CONSTRUCT (ENGINEERING_VALUE : in ADT_ENGINEERING_VALUE.T_ENGINEERING_VALUE;

THE_LIST : in out T_ENGINEERING_VALUE_L) renames P_ENGINEERING_VALUE_LIST.CONSTRUCT;

function LENGTH_OF (THE_LIST : in T_ENGINEERING_VALUE_L) return natural renames P_ENGINEERING_VALUE_LIST.LENGTH_OF;

function HEAD_OF (THE_LIST : in T_ENGINEERING_VALUE_L)

return ADT_ENGINEERING_VALUE.T_ENGINEERING_VALUE renames P_ENGINEERING_VALUE_LIST.HEAD_OF;

function TAIL_OF (THE_LIST : in T_ENGINEERING_VALUE_L) return T_ENGINEERING_VALUE_L renames P_ENGINEERING_VALUE_LIST.TAIL_OF;

function IS_NULL (THE_LIST : in T_ENGINEERING_VALUE_L) return boolean renames P_ENGINEERING_VALUE_LIST.IS_NULL;

Page 495: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

486

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

function NULL_LIST return T_ENGINEERING_VALUE_L

renames P_ENGINEERING_VALUE_LIST.NULL_LIST;

–– =========== List operations on T_DATE_AND_TIME_L ================

procedure COPY (FROM_THE_LIST : in T_DATE_AND_TIME_L; TO_THE_LIST : in out T_DATE_AND_TIME_L) renames P_DATE_AND_TIME_LIST.COPY; procedure INVERT (THE_LIST : in T_DATE_AND_TIME_L;

TO_THE_LIST : in out T_DATE_AND_TIME_L ) renames P_DATE_AND_TIME_LIST.INVERT;

procedure CLEAR (THE_LIST : in out T_DATE_AND_TIME_L ) renames P_DATE_AND_TIME_LIST.CLEAR;

procedure ASSIGN (THE_LIST : in out T_DATE_AND_TIME_L ;

NEW_LIST : in T_DATE_AND_TIME_L) renames P_DATE_AND_TIME_LIST.ASSIGN; procedure CONSTRUCT (DATE_AND_TIME : in CGS_CALENDAR.CGS_DATE_AND_TIME;

THE_LIST : in out T_DATE_AND_TIME_L) renames P_DATE_AND_TIME_LIST.CONSTRUCT;

function LENGTH_OF (THE_LIST : in T_DATE_AND_TIME_L) return natural renames P_DATE_AND_TIME_LIST.LENGTH_OF; function HEAD_OF (THE_LIST : in T_DATE_AND_TIME_L) return CGS_CALENDAR.CGS_DATE_AND_TIME renames P_DATE_AND_TIME_LIST.HEAD_OF;

function TAIL_OF (THE_LIST : in T_DATE_AND_TIME_L) return T_DATE_AND_TIME_L renames P_DATE_AND_TIME_LIST.TAIL_OF;

function IS_NULL (THE_LIST : in T_DATE_AND_TIME_L) return boolean renames P_DATE_AND_TIME_LIST.IS_NULL; function NULL_LIST return T_DATE_AND_TIME_L renames P_DATE_AND_TIME_LIST.NULL_LIST;

–– =========== List operations on T_COMPLETE_FILENAME_L ================

procedure COPY (FROM_THE_LIST : in T_COMPLETE_FILENAME_L; TO_THE_LIST : in out T_COMPLETE_FILENAME_L)

renames P_COMPLETE_FILENAME_LIST.COPY; procedure INVERT (THE_LIST : in T_COMPLETE_FILENAME_L;

TO_THE_LIST : in out T_COMPLETE_FILENAME_L ) renames P_COMPLETE_FILENAME_LIST.INVERT;

procedure CLEAR (THE_LIST : in out T_COMPLETE_FILENAME_L ) renames P_COMPLETE_FILENAME_LIST.CLEAR;

procedure ASSIGN (THE_LIST : in out T_COMPLETE_FILENAME_L ;

NEW_LIST : in T_COMPLETE_FILENAME_L) renames P_COMPLETE_FILENAME_LIST.ASSIGN; procedure CONSTRUCT (COMPLETE_FILENAME : in T_COMPLETE_FILENAME;

THE_LIST : in out T_COMPLETE_FILENAME_L) renames P_COMPLETE_FILENAME_LIST.CONSTRUCT;

function LENGTH_OF (THE_LIST : in T_COMPLETE_FILENAME_L) return natural renames P_COMPLETE_FILENAME_LIST.LENGTH_OF; function HEAD_OF (THE_LIST : in T_COMPLETE_FILENAME_L) return T_COMPLETE_FILENAME renames P_COMPLETE_FILENAME_LIST.HEAD_OF;

function TAIL_OF (THE_LIST : in T_COMPLETE_FILENAME_L) return T_COMPLETE_FILENAME_L renames P_COMPLETE_FILENAME_LIST.TAIL_OF;

function IS_NULL (THE_LIST : in T_COMPLETE_FILENAME_L) return boolean renames P_COMPLETE_FILENAME_LIST.IS_NULL; function NULL_LIST return T_COMPLETE_FILENAME_L renames P_COMPLETE_FILENAME_LIST.NULL_LIST;

procedure INVERT(THE_LIST : in T_PARAMETER_VALUE_L; TO_THE_LIST : in out T_PARAMETER_VALUE_L)

renames P_PARAMETER_VALUE_LIST.INVERT; ––

Page 496: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

487

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– Invert a list into another list –– –– INVERT is a member of Data_Set_Opns

procedure CLEAR(THE_LIST : in out T_PARAMETER_VALUE_L) renames P_PARAMETER_VALUE_LIST.CLEAR; –– –– Clear a list –– –– CLEAR is a member of Data_Set_Opns

procedure ASSIGN(THE_LIST : in out T_PARAMETER_VALUE_L; NEW_LIST : in T_PARAMETER_VALUE_L)

renames P_PARAMETER_VALUE_LIST.ASSIGN; –– –– –– Assign a list with a new value –– –– ASSIGN is a member of Data_Set_Opns

procedure CONSTRUCT(DATA_VALUE : in T_PARAMETER_VALUE;THE_LIST : in out T_PARAMETER_VALUE_L)

renames P_PARAMETER_VALUE_LIST.CONSTRUCT; –– –– –– Construct a list by adding a new item –– –– CONSTRUCT is a member of Data_Set_Opns function NULL_LIST return T_PARAMETER_VALUE_L renames P_PARAMETER_VALUE_LIST.NULL_LIST; –– –– Return a null list –– –– NULL_LIST is a member of Data_Set_Opns

function IS_NULL(THE_LIST : in T_PARAMETER_VALUE_L) return BOOLEAN

renames P_PARAMETER_VALUE_LIST.IS_NULL; –– –– Check if a list is null –– –– IS_NULL is a member of Data_Set_Opns

function HEAD_OF(THE_LIST : in T_PARAMETER_VALUE_L) return T_PARAMETER_VALUE

renames P_PARAMETER_VALUE_LIST.HEAD_OF; –– –– Extract the head of a list –– –– HEAD_OF is a member of Data_Set_Opns

function TAIL_OF(THE_LIST : in T_PARAMETER_VALUE_L) return T_PARAMETER_VALUE_L

renames P_PARAMETER_VALUE_LIST.TAIL_OF; –– –– Extract the tail of a list –– –– TAIL_OF is a member of Data_Set_Opns

function LENGTH_OF(THE_LIST : in T_PARAMETER_VALUE_L) return NATURAL

renames P_PARAMETER_VALUE_LIST.LENGTH_OF; –– –– Get the length of a list –– –– LENGTH_OF is a member of Data_Set_Opns

procedure COPY(FROM_THE_LIST : in T_PARAMETER_VALUE_L; TO_THE_LIST : in out T_PARAMETER_VALUE_L)

renames P_PARAMETER_VALUE_LIST.COPY; –– –– Copy a list into another list; ––

Page 497: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

488

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– COPY is a member of Data_Set_Opns

procedure REMOVE_ITEM(IN_THE_LIST : in out T_PARAMETER_VALUE_L; AT_THE_POSITION : in POSITIVE)

renames P_PARAMETER_VALUE_LIST.REMOVE_ITEM; –– –– Removes an item from a list; –– –– REMOVE_ITEM is a member of Data_Set_Opns

–– Provided exceptions :

OVERFLOW : exception; –– Exception raised during list management LIST_IS_NULL : exception; –– Exception raised during list management NOT_AT_HEAD : exception; –– Exception raised during list management PROTECTION_WARNING : exception; –– Exception raised during list management PROTECTION_VIOLATION : exception; –– Exception raised during list management POSITION_ERROR : exception; –– Exception raised during list management

LEXICAL_ERROR : exception; –– Exception raised during conversion of time from string to Ada type. –– The syntactic format of the string is incorrect.

TIME_ERROR : exception; –– Exception raised during conversion of time from string to Ada type. –– The semantic format of the string is incorrect.

end TEV_DEFINITIONS;

Page 498: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

489

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.14 TEV Application Programmer Interface

Informal Interface Description

The purpose of TEV_API is to give the user the possibility to extend the set of evaluation operations availablewith TEV by addition of Special Application Software (SAS). When specific data processing (e.g. specific dis-play, specific sampling or calculation) is needed but not supported by the TEV standard tools, the user can writeadditional programs that use the outputs of TEV tools as input for special processing.

Typical SAS functions may be :

– special statistic processing beyond the scope of the TEV Statistic tool,

– special mathematical processing, like Fourier Function Transfert beyond the scope of the TEV Math-ematical tool,

– data visualization beyond the scope of the TEV Graph tool,

– generation of special output formats, possibly to be included into TEV reports,

– special processing on other TRDB data types like Log Events etc,

– generation of special output formats to adapt to other commercial SW like spreadsheet or DTP...

The SAS gets selected result files to be processed from TEV and produces its own outputs.

The output of a SAS can be :

– a screen display,

– a SAS result file, which has its own internal structure not necessarily known to TEV,

– standard TEV Data Sets, which can be normally processed by standard TEV tools.

The API consists mainly in Abstract Data Types, i.e. Ada packages which describe the TEV result file types,and which provide also the access operations to it.

The API gives the SAS programmer the freedom to write an Ada program, access the TEV result files via ADToperations, do his special processing and deliver his result.

The control interface is simple: A SAS will be started from generic TEV together with the parameters neededby the SAS. If the SAS is started via HLCL command, the parameter line (which is a simple string) is routedtransparently through the HLCL interpreter onto the SAS.

The SAS will become a child process of TEV. When the SAS completed the processing, it delivers the statusback and exits. It is to be seen as a one–shot operation. If an error appears, it normally will be returned with theexit statement.

The API provides increased software security and also for software compilation and linking, (i.e. no need to re-duce software compilation on addition of a new SAS).

Formal Interface Description

In the following pages, you will find the specification of the package TEV_API written in Ada. If inconsistenciesexist with the informal description, then the formal description is superseding.

Page 499: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

490

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Formal Interface Description

–––– ADT_EVENT_RESULT––––****************************************************************************––ABSTRACT–––––– Provides operations to access an events result file.––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––IDENTIFICATION–––– PROJECT NAME : CGS–– PRODUCT NAME : TEV–– CI–NUMBER : 1216 858–– OBJECT NAME : HDT_TEV_API.ADT_EVENT_RESULT––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––CONTENTS–––– COMPILER : VERDIX ADA 6.0.3.C–– LANGUAGE : ADA–– SPECIAL CONTENTS:–– CHANGE HISTORY––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– CGS V4.4 at ASTRIUM–– creator: Bruening–– creation date: 05.09.00–– comment: PIRN–8115/ SPR–7478–– Define new types,constants and procedures to allow–– formatting of events in ASCII with the same format –– as the one used by TEV, when formatting ADT_EVENT in–– ASCII––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– CGS V4.3 at DASA–– creator: Bruening–– creation date: 06.09.99–– comment:–– Define new type EVENTS_CHAIN to handle undefined number of events.–– For the merge ADT_DATA_SET/EVENT tool–– New procedures :–– function POINTER_TO_FIRST_EVENT–– procedure LIST_EVENTS_FOR_TIME_TAG–– function RETURN_LONG_TEXT_FLAG–– procedure CALL_FORMAT_DEFINITION–– procedure LIST_EVENTS_AFTER_TIME_TAG–– function GLOBAL_TIME_FRAME_OF–––– Procedures which where internal and now provided :–– procedure PUT_LONG_STRING––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– CGS V4.2 ICD Change 27.07.99, W.Tammen: –– harmonized record components (referenced types)–– according to COL–RIBRE–IRN–CGS–8078––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– END HISTORY––****************************************************************************––

––with TEV_DEFINITIONS;with VICOS_DEFINITIONS;with DBS_DEFINITIONS;with VICOS_LIST;with CGS_CALENDAR;with DIRECT_IO;with TIMING_SERVICES;

Page 500: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

491

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

with text_io;with unchecked_deallocation;

package ADT_EVENT_RESULT is SPECS_SCCSID_ADS : constant STRING := ”%Z%%M% %I% %G% %Z%”;

–– Provided types and constants :

the_file : text_io.file_type; –– * ––––––––––––––––––––––––––––––––––––––––––––––––––– –– * Types and constants needed for the ASCII formatting –– * ––––––––––––––––––––––––––––––––––––––––––––––––––– CURRENT_TIME : CGS_CALENDAR.CGS_DATE_AND_TIME:= TIMING_SERVICES.READ_LOCAL_TIME; TIME_STR : constant STRING := TIMING_SERVICES.TIME_IMAGE_OF( CURRENT_TIME);

DATE_MSG : constant STRING := ”Date ”; TIME_MSG : constant STRING := ”Time ”;

PAGE_WIDTH : positive := TEV_DEFINITIONS.PORTRAIT_PAGE_WIDTH; PAGE_LENGTH : positive := TEV_DEFINITIONS.PORTRAIT_PAGE_LENGTH;

COLUMN_TITLE_LENGTH : NATURAL := 3; COLUMN_SPACE : constant NATURAL := 3; HEADER_LENGTH : NATURAL := TEV_DEFINITIONS.HEADER_SPACE +

COLUMN_TITLE_LENGTH; LINES_PER_PAGE : NATURAL := PAGE_LENGTH – HEADER_LENGTH;

subtype T_HEADER_LINE is string(1..PAGE_WIDTH); type T_HEADER is array(positive range <>) of T_HEADER_LINE;

UNDERLINE : constant T_HEADER_LINE := (others => ’–’); BLANK_LINE : constant T_HEADER_LINE := (others => ’ ’);

ITEM : T_HEADER_LINE := (others => ’ ’); TITLE_LINE : T_HEADER_LINE := (others => ’ ’); RESULT_TITLE : T_HEADER_LINE := (others => ’ ’); TITLE_POSITION : INTEGER;

THE_HEADER : T_HEADER(1..5); THE_COLUMN_TITLE : T_HEADER(1..COLUMN_SPACE);

RESULT_STR_STRING : constant string := ”2) RESULT”; RESULT_STARTED : boolean := false;

–– Count the current number of lines in the current page STARTED_PRINT_RESULT : BOOLEAN := FALSE;

ONE_TAB : constant string := ” ”;TWO_TAB : constant string := ONE_TAB & ONE_TAB;THREE_TAB : constant string := TWO_TAB & ONE_TAB;COLUMN_TITLE : constant string := TWO_TAB & ”TIME TAG LT” & THREE_TAB & THREE_TAB & ”TIME

TAG SMT” & THREE_TAB & TWO_TAB & ”SOURCE”& THREE_TAB & THREE_TAB & ”GROUP” & ONE_TAB & ”TYPE”;

LINE_WIDTH : constant NATURAL := COLUMN_TITLE’length;

procedure FORMAT_SELECTION_CRITERIA(THE_CRITERIA : in DBS_DEFINITIONS.T_EVENT_SEL_CRIT;IN_THE_FILE : in out TEXT_IO.FILE_TYPE);

–– Format and write a selection criteria in a text file

procedure CHECKED_PUT_LINE(FILE_ID : in TEXT_IO.FILE_TYPE;

THE_STRING : in STRING);

procedure CHECKED_NEW_LINE(FILE_ID : in TEXT_IO.FILE_TYPE);

function FORMAT_DATE(CURRENT_TIME : CGS_CALENDAR.CGS_DATE_AND_TIME) return string;

INTERRUPT_FLAG : array(TEV_DEFINITIONS.T_TOOL_ID) of BOOLEAN := (others => FALSE);

Page 501: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

492

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

subtype T_SESSIONS_RANGE_INC_DEF is POSITIVE range TEV_DEFINITIONS.T_SESSIONS_RANGE’first..TEV_DEFINITIONS.T_SESSIONS_RANGE’last+1;

–– number of sessions including default test session

type T_EVENT isrecord PRODUCER : VICOS_DEFINITIONS.T_APPLICATION_NAME :=

VICOS_DEFINITIONS.EMPTY_NAME_STRING; GROUP : VICOS_DEFINITIONS.T_LOG_GROUP := VICOS_DEFINITIONS.NULL_LOG_GROUP; EVENT_TYPE : VICOS_DEFINITIONS.T_LOG_TYPE := VICOS_DEFINITIONS.NULL_LOG_TYPE; SHORT_TEXT : VICOS_DEFINITIONS.T_LOG_TEXT_SHORT :=

VICOS_DEFINITIONS.NULL_LOG_TEXT_SHORT; LONG_TEXT : VICOS_DEFINITIONS.T_LOG_TEXT_LONG :=

VICOS_DEFINITIONS.NULL_LOG_TEXT_LONG; TIME_TAG_LT : CGS_CALENDAR.CGS_DATE_AND_TIME := CGS_CALENDAR.NULL_DATE_AND_TIME; TIME_TAG_SMT : CGS_CALENDAR.CGS_DATE_AND_TIME := CGS_CALENDAR.NULL_DATE_AND_TIME;

end record; –– definition of an event inside an event result

type EVENTS_CHAIN; type P_EVENTS_CHAIN is access EVENTS_CHAIN;

type EVENTS_CHAIN is record EVENT : ADT_EVENT_RESULT.T_EVENT; NEXT : P_EVENTS_CHAIN; end record;

procedure FREE_EVENTS_CHAIN is new unchecked_deallocation (OBJECT => EVENTS_CHAIN, NAME => P_EVENTS_CHAIN);

NULL_SELECTION_CRITERIA : constant DBS_DEFINITIONS.T_EVENT_SEL_CRIT := (APPLICATION => VICOS_DEFINITIONS.EMPTY_NAME_STRING, TIME_FRAME => DBS_DEFINITIONS.NULL_TIME_RECORD, LOG_TYPE => VICOS_DEFINITIONS.NULL_LOG_TYPE, LOG_GROUP => VICOS_DEFINITIONS.NULL_LOG_GROUP, TEXT => VICOS_DEFINITIONS.NULL_LOG_TEXT_SHORT); –– –– Null value of a selection criteria ––

type T_SELECTION_CRITERIA_A is array(DBS_DEFINITIONS.T_EVENT_SEL_CRIT_RANGE) of

DBS_DEFINITIONS.T_EVENT_SEL_CRIT; –– description of the combined selection criteria array

package P_EVENT_LIST is new VICOS_LIST(T_EVENT);subtype T_EVENT_L is P_EVENT_LIST.LIST;

–– definition of a list of events (via the vicos list) type T_EVENT_RESULT is limited private;

–– Provided operations : procedure OPEN(EVENT_FILENAME : in STRING;

EVENT_RESULT : in out T_EVENT_RESULT; ACCESS_STATUS : in TEV_DEFINITIONS.T_ACCESS_STATUS := TEV_DEFINITIONS.READ; ALLOW_OVERWRITE : in BOOLEAN := FALSE);

–– Open an event result with read access if the file already exists, –– write access to create a new one. The EXECUTION_TIME is –– written if it is a new file –– –– Parameters : –– EVENT_FILENAME : filename of the event result –– EVENT_RESULT : private event result –– ACCESS_STATUS : READ only to extract information from an event result –– WRITE when generating a new event result –– ALLOW_OVERWRITE : Required when access state is write to –– allow generation of an event result inside an already

–– existing file.

Page 502: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

493

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– Exceptions : –– X_ERROR_ACCESSING_FILE : general error reported when –– accessing the file –– X_EVENT_RESULT_ALREADY_OPENED : event result is still in –– open state –– X_EVENT_RESULT_ALREADY_EXISTS : file exists and overwrite –– is not allowed –– X_INVALID_NAME : event result name is too long ––

procedure CLOSE(EVENT_RESULT : in out T_EVENT_RESULT); –– Close a previously opened event result –– –– Parameters : –– EVENT_RESULT : private event result –– Exceptions : –– X_ERROR_ACCESSING_FILE : general error reported when –– accessing the file –– X_EVENT_RESULT_NOT_OPENED : event result already closed ––

procedure DEFINE(EVENT_RESULT : in out T_EVENT_RESULT; EVENT_RESULT_NAME : in TEV_DEFINITIONS.T_RESULT_NAME; INCLUDE_DEF_SESSION : in BOOLEAN; SELECT_ON : in DBS_DEFINITIONS.T_TIME_TYPE; ORDER_BY : in DBS_DEFINITIONS.T_TIME_ORDERING; LONG_TEXT_FLAG_ON : in BOOLEAN; SELECTION_CRITERIA : in T_SELECTION_CRITERIA_A);

–– Build and initialise the definition of an opened event result –– –– Parameters : –– EVENT_RESULT : private event result –– EVENT_RESULT_NAME : name of the event result –– INCLUDE_DEF_SESSION : include default session –– LONG_TEXT_FLAG_ON : display long text –– SELECTION_CRITERIA : array of event selection criteria (up to 4) –– Exceptions : –– X_EVENT_RESULT_NOT_OPENED : event result is not opened –– X_NO_WRITE_ACCESS : event result not opened for write access ––

function FILENAME_OF(EVENT_RESULT : in T_EVENT_RESULT) return STRING;

–– Return the event result file name. –– –– Parameters : –– EVENT_RESULT : private event result –– Exceptions : –– X_EVENT_RESULT_NOT_OPENED : event result is not opened

–– X_NO_READ_ACCESS : event result file not opened for read access ––

function GET_SELECTION_CRITERIA(EVENT_RESULT : in T_EVENT_RESULT; CRITERIA_NO : in DBS_DEFINITIONS.T_EVENT_SEL_CRIT_RANGE) return DBS_DEFINITIONS.T_EVENT_SEL_CRIT;

–– Get a given normal selection criteria––

–– Parameters : –– EVENT_RESULT : private event result –– CRITERIA_NO : normal selection criteria identity –– Exceptions: –– X_EVENT_RESULT_NOT_OPENED : event result is not opened

–– X_NO_READ_ACCESS : event result file not opened for read access ––

procedure ADD_EVENTS(EVENT_RESULT : in out T_EVENT_RESULT; SESSION_NAME : in TEV_DEFINITIONS.T_SESSION_NAME; EVENT : in out T_EVENT_L);

–– Add a list of events to the event result –– –– Parameters : –– EVENT_RESULT : private event result –– SESSION_NAME : session owner of the events

Page 503: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

494

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– EVENTS : events to be added –– Exceptions : –– X_EVENT_RESULT_NOT_OPENED : event result is not opened –– X_NO_WRITE_ACCESS : result file is not opened for write access –– X_INVALID_SESSION : the named session has already been defined

–– or there is not place for this session –– X_ERROR_ACCESSING_FILE : general error reported when –– accessing the file ––

function SESSIONS_NUMBER_OF(EVENT_RESULT : in T_EVENT_RESULT)return NATURAL;

–– Return the number of sessions used to build the event result –– –– Parameters : –– EVENT_RESULT : private event result –– Exceptions : –– X_EVENT_RESULT_NOT_OPENED : event result is not opened

–– X_NO_READ_ACCESS : event result file not opened for read access ––

function SESSION_NAMES_OF(EVENT_RESULT : in T_EVENT_RESULT) return TEV_DEFINITIONS.T_DEFINITION_SESSION_NAMES;

–– Return the names of sessions used to build the event result –– –– Parameters : –– EVENT_RESULT : private event result –– Exceptions : –– X_EVENT_RESULT_NOT_OPENED : event result is not opened –– X_NO_READ_ACCESS : event result file not opened for read access ––

function EXECUTION_DATE_OF(EVENT_RESULT : in T_EVENT_RESULT) return CGS_CALENDAR.CGS_DATE_AND_TIME;

–– Return the date and time of execution –– –– Parameters : –– EVENT_RESULT : private event result –– Exceptions : –– X_EVENT_RESULT_NOT_OPENED : event result is not opened –– X_NO_READ_ACCESS : event result file not opened for read access ––

function INCLUDE_DEF_SESSION_OF(EVENT_RESULT : in T_EVENT_RESULT) return boolean;

–– Return a flag to specify if the default session is included –– –– Parameters : –– EVENT_RESULT : private event result –– Exceptions : –– X_EVENT_RESULT_NOT_OPENED : event result is not opened –– X_NO_READ_ACCESS : event result file not opened for read access ––

function LONG_TEXT_FLAG_OF(EVENT_RESULT : in T_EVENT_RESULT) return boolean;

–– Return a flag to specify if the long text is displayed –– –– Parameters : –– EVENT_RESULT : private event result –– Exceptions : –– X_EVENT_RESULT_NOT_OPENED : event result is not opened –– X_NO_READ_ACCESS : event result file not opened for read access ––

function SELECT_ON(EVENT_RESULT : in T_EVENT_RESULT) return DBS_DEFINITIONS.T_TIME_TYPE;

–– Return the time type of the selection –– –– Parameters : –– EVENT_RESULT : private event result –– Exceptions : –– X_EVENT_RESULT_NOT_OPENED : event result is not opened

Page 504: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

495

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– X_NO_READ_ACCESS : event result file not opened for read access ––

function ORDER_BY(EVENT_RESULT : in T_EVENT_RESULT) return DBS_DEFINITIONS.T_TIME_ORDERING;

–– Return the time ordering of the selection –– –– Parameters : –– EVENT_RESULT : private event result –– Exceptions : –– X_EVENT_RESULT_NOT_OPENED : event result is not opened

–– X_NO_READ_ACCESS : event result file not opened for read access ––

function POINTER_TO_FIRST_EVENT(EVENT_RESULT : in T_EVENT_RESULT) return POSITIVE; function POINTER_TO_LAST_EVENT(EVENT_RESULT : in T_EVENT_RESULT) return POSITIVE;

procedure PUT_LONG_STRING(TEXT_FILE : in out TEXT_IO.FILE_TYPE;LINE_WIDTH : in NATURAL;MARGIN_WIDTH : in NATURAL;TITLE_STRING : in STRING;LONG_STRING : in STRING);

procedure EXTRACT_EVENTS(EVENT_RESULT : in T_EVENT_RESULT; SESSION_NAME : in TEV_DEFINITIONS.T_SESSION_NAME; EVENT : in out T_EVENT_L);

–– Return a list of events corresponding to the supplied –– definition –– –– Parameters : –– EVENT_RESULT : private event result –– SESSION_NAME : session owner of the events –– EVENTS : extracted events –– Exceptions : –– X_EVENT_RESULT_NOT_OPENED : event result is not opened –– X_NO_READ_ACCESS : event result file not opened for read access –– X_INVALID_SESSION : the named session is not defined –– X_INVALID_TIME_FRAME : the time frame is invalid ––

procedure FORMAT_RESULT(EVENT_RESULT : in out T_EVENT_RESULT; FILENAME : in STRING; TOOL_ID : in TEV_DEFINITIONS.T_TOOL_ID := POSITIVE’first);

–– Converts the event result to a string format for display –– –– Parameters : –– EVENT_RESULT : private event result –– FILENAME : filename of formatted result –– Exceptions : –– X_NO_READ_ACCESS : event result file not opened for read access –– X_EVENT_RESULT_NOT_OPENED : event result is not opened –– X_ERROR_ACCESSING_FILE : general error creating formatted result ––

procedure FORMAT_RESULT_FILE(EVENT_RESULT_FILE : in STRING; TO_FILENAME : in STRING; TOOL_ID : in TEV_DEFINITIONS.T_TOOL_ID := POSITIVE’first);

–– Converts the event result to a string format for display –– –– Parameters : –– EVENT_RESULT_FILE : event result file to format –– TO_FILENAME : filename of formatted result –– TOOL_ID : The tool id –– Exceptions : –– X_EVENT_RESULT_NOT_OPENED : event result is not opened –– X_ERROR_ACCESSING_FILE : general error creating formatted result –– X_INVALID_NAME : event result file does not exist ––

procedure INVERT(THE_LIST : in T_EVENT_L; TO_THE_LIST : in out T_EVENT_L) renames P_EVENT_LIST.INVERT;

––

Page 505: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

496

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– Invert a list into another list ––

procedure CLEAR(THE_LIST : in out T_EVENT_L) renames P_EVENT_LIST.CLEAR; –– –– Clear a list ––

procedure ASSIGN(THE_LIST : in out T_EVENT_L; NEW_LIST : in T_EVENT_L) renames P_EVENT_LIST.ASSIGN;

–– –– –– Assign a list with a new value ––

procedure CONSTRUCT(DATA_VALUE : in T_EVENT;THE_LIST : in out T_EVENT_L) renames P_EVENT_LIST.CONSTRUCT;

–– –– –– Construct a list by adding a new item ––

function NULL_LIST return T_EVENT_L renames P_EVENT_LIST.NULL_LIST; –– –– Return a null list ––

function IS_NULL(THE_LIST : in T_EVENT_L) return BOOLEAN renames P_EVENT_LIST.IS_NULL; –– –– Check if a list is null ––

function HEAD_OF(THE_LIST : in T_EVENT_L) return T_EVENT renames P_EVENT_LIST.HEAD_OF; –– –– Extract the head of a list ––

function TAIL_OF(THE_LIST : in T_EVENT_L) return T_EVENT_L renames P_EVENT_LIST.TAIL_OF; –– –– Extract the tail of a list ––

function LENGTH_OF(THE_LIST : in T_EVENT_L) return NATURAL renames P_EVENT_LIST.LENGTH_OF; –– –– Get the length of a list ––

procedure COPY(FROM_THE_LIST : in T_EVENT_L; TO_THE_LIST : in out T_EVENT_L) renames P_EVENT_LIST.COPY;

–– –– Copy a list into another list; ––

procedure LIST_EVENTS_FOR_TIME_TAG( EVENT_RESULT_DESC : in T_EVENT_RESULT; ORDERING_TIME_TYPE : in DBS_DEFINITIONS.T_TIME_ORDERING; SECOND_TIME_TYPE : in DBS_DEFINITIONS.T_TIME_ORDERING; EARLIEST_TIMES : in TEV_DEFINITIONS.T_TWO_TIME; LAST_TIME_TAG : in CGS_CALENDAR.CGS_DATE_AND_TIME; FIRST_TIME_TAG : in CGS_CALENDAR.CGS_DATE_AND_TIME; INDEX_IN_EVENT_FILE : in out NATURAL; EVENTS_LIST : in out P_EVENTS_CHAIN; PREVIOUS_EVENTS_LIST : in out P_EVENTS_CHAIN; EARLIEST_LT_TIME_TAG : in out CGS_CALENDAR.CGS_DATE_AND_TIME; EARLIEST_SMT_TIME_TAG : in out CGS_CALENDAR.CGS_DATE_AND_TIME );

Page 506: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

497

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

procedure LIST_EVENTS_AFTER_TIME_TAG( EVENT_RESULT_DESC : in T_EVENT_RESULT; LAST_TIME_TAG : in CGS_CALENDAR.CGS_DATE_AND_TIME; FIRST_TIME_TAG : in CGS_CALENDAR.CGS_DATE_AND_TIME; ORDERING_TIME_TYPE : in DBS_DEFINITIONS.T_TIME_ORDERING; INDEX_IN_EVENT_FILE : in out NATURAL; EVENTS_LIST : in out P_EVENTS_CHAIN );

procedure CALL_FORMAT_DEFINITION( EVENT_RESULT_DESC : in T_EVENT_RESULT; RESULT_MERGE_FD : in out TEXT_IO.FILE_TYPE);

function RETURN_LONG_TEXT_FLAG(EVENT_RESULT : in T_EVENT_RESULT) return BOOLEAN;

function GLOBAL_TIME_FRAME_OF( EVENT_RESULT : in T_EVENT_RESULT) return TEV_DEFINITIONS.T_TIME_FRAME;

–– Provided exceptions : X_EVENT_RESULT_NOT_OPENED, X_ERROR_ACCESSING_FILE,

X_EVENT_RESULT_ALREADY_OPENED,X_EVENT_RESULT_ALREADY_EXISTS,X_INVALID_NAME,X_NO_READ_ACCESS,X_NO_WRITE_ACCESS,X_INVALID_TIME_FRAME,

X_INVALID_SESSION : exception;

private

type T_EVENTS_NUMBER_A is array (natural range <>) of natural;–– Array containing number of events for each selected sessions

type T_EVENT_DEFINITION isrecord EXECUTION_DATE : CGS_CALENDAR.CGS_DATE_AND_TIME; SELECTION_CRITERIA : T_SELECTION_CRITERIA_A; LONG_TEXT_FLAG_ON : boolean; SELECT_ON : DBS_DEFINITIONS.T_TIME_TYPE; ORDER_BY : DBS_DEFINITIONS.T_TIME_ORDERING; INCLUDE_DEF_SESSION : boolean;EXECUTION_SESSIONS: TEV_DEFINITIONS.T_DEFINITION_SESSION_NAMES(T_SESSIONS_RANGE_INC_DEF); EVENTS_NUMBER : T_EVENTS_NUMBER_A(T_SESSIONS_RANGE_INC_DEF);

end record; –– description of an event definition

package DEFINITION_IO is new DIRECT_IO(ELEMENT_TYPE => T_EVENT_DEFINITION); –– DEFINITION_IO is used to access the event definition as the –– header of the file

package EVENT_IO is new DIRECT_IO( ELEMENT_TYPE => T_EVENT); –– EVENT_IO is used to access the event records inside the file, –– the first event to access is located at position offset –– PTR_TO_FIRST_EVENT

type T_EVENT_RESULT is record

DEFINITION_FILE_TYPE : DEFINITION_IO.FILE_TYPE; EVENT_FILE_TYPE : EVENT_IO.FILE_TYPE; FILENAME : TEV_DEFINITIONS.T_COMPLETE_FILENAME; ACCESS_STATUS : TEV_DEFINITIONS.T_ACCESS_STATUS := TEV_DEFINITIONS.READ; CURRENT_STATUS : TEV_DEFINITIONS.T_CURRENT_STATUS := TEV_DEFINITIONS.CLOSED; EVENT_DEFINITION : T_EVENT_DEFINITION;

RESULT_NAME : TEV_DEFINITIONS.T_RESULT_NAME := TEV_DEFINITIONS.NULL_RESULT_NAME;

end record;

end ADT_EVENT_RESULT;

Page 507: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

498

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Formal Interface Description

–––– ADT_DATA_SET––––****************************************************************************––ABSTRACT–––––––– Provides operations to create and read a data set file.–– The data set is seen as an ADT.–––– Since data are declared in the user’s code and passed as parameter,–– there is no synchronisation constraint for parallel access.–– Implementation constraints : –– – the Open operation must be called before any Get/Set operations,–– – the Close operation forces a data set in write access to end edition.––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––IDENTIFICATION–––– PROJECT NAME : CGS–– PRODUCT NAME : TEV–– CI–NUMBER : 1216 858–– OBJECT NAME : HDT_TEV_API.ADT_DATA_SET––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––CONTENTS–––– COMPILER : VERDIX ADA 6.0.3.C–– LANGUAGE : ADA–– SPECIAL CONTENTS:–– CHANGE HISTORY–– CGS V4.3 at DASA–– creator: Bruening–– creation date: 21.07.99–– comment:–– New procedures for the merge adt_data_set / events tool :–– procedure NEXT_VALUE_FOR_EACH_PARAM–– procedure FORMAT_DEFINITION–– Procedures/ functions which were previously internal –– function GET_TIME_TAG––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– END HISTORY––****************************************************************************––

–– Required object : DIRECT_IOwith DIRECT_IO;–– Required operations :–– DIRECT_IO.CREATE–– DIRECT_IO.CLOSE–– DIRECT_IO.OPEN–– Required object : CGS_CALENDARwith CGS_CALENDAR;–– Required object : MPS_DEFINITIONSwith DBS_DEFINITIONS;with MPS_DEFINITIONS;–– Required types :–– MPS_DEFINITIONS.all_types–– Required object : VICOS_LISTwith VICOS_LIST;–– Required object : TEV_DEFINITIONSwith TEV_DEFINITIONS;–– Required object : ADT_ENGINEERING_VALUEwith ADT_ENGINEERING_VALUE;–– Required object : ADT_RAW_VALUEwith ADT_RAW_VALUE;with ADT_ADU_DESCRIPTION;

with TEXT_IO;

Page 508: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

499

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

use TEV_DEFINITIONS; package ADT_DATA_SET is–– Provided types and constants :

type T_DATA_SET is limited private; type T_PARAMETER_DEFINITION is private;

–– Provided operations :

procedure EXTERNAL_FORMAT_FILE(DATA_SET_FILE : in STRING; TO_FILENAME : in STRING; EXCEL_SEPARATOR : in CHARACTER := ’,’);

procedure OPEN(DATA_SET_FILENAME : in STRING; DATA_SET : in out T_DATA_SET; ACCESS_STATUS : in TEV_DEFINITIONS.T_ACCESS_STATUS := TEV_DEFINITIONS.READ; ALLOW_OVERWRITE : in BOOLEAN := FALSE);

–– Description : –– Open a data set, with read access on an already existing one, –– or with write access to create a new one. Write current –– date and time inEXECUTION_TIME if creating a new data set. –– –– Parameters : –– DATA_SET_FILENAME : filename of the data set –– DATA_SET : private data_set –– ACCESS_STATUS : – READ only to extract information from –– data set –– – WRITE when generating a data set –– ALLOW_OVERWRITE : when ACCESS_STATUS is WRITE, needed to –– allow generation of a data set inside an already existing file –– Exceptions : –– X_ERROR_ACCESSING_FILE : general error reported when –– accessing the file –– X_DATA_SET_ALREADY_OPENED : data set has not been closed –– and is still in open state –– X_DATA_SET_ALREADY_EXIST : file exists and overwrite is not allowed –– X_INVALID_NAME : data set name is too long ––

procedure CLOSE(DATA_SET : in out T_DATA_SET);

–– Description : –– Close a previously opened data set. –– –– Parameters : –– DATA_SET : private data_set –– Exceptions : –– X_ERROR_ACCESSING_FILE : general error reported when –– accessing the file –– X_DATA_SET_NOT_OPENED : data set already closed ––

procedure DEFINE(DATA_SET : in out T_DATA_SET; DATA_SET_NAME : in STRING; TIME_FRAME : in TEV_DEFINITIONS.T_TIME_FRAME; SAMPLING : in TEV_DEFINITIONS.T_SAMPLING; SELECT_ON : in DBS_DEFINITIONS.T_TIME_TYPE; ORDER_BY : in DBS_DEFINITIONS.T_TIME_ORDERING; INCLUDE_DEF_SESSION : in BOOLEAN; SESSIONS : in TEV_DEFINITIONS.T_SESSION_NAME_L);

–– Description : –– Build and initialise the definition of an opened data set.

–– This updates the execution date field –– –– Parameters : –– DATA_SET : private data set –– DATA_SET_NAME : name of the data set –– TIME_FRAME : time frame of the data set –– SAMPLING : private sampling of the data set

Page 509: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

500

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– SELECT_ON : time tag selection type ie SMT or LT –– ORDER_BY : time order of the data set ie SMT or LT –– INCLUDE_DEF_SESSION : include default session –– SESSIONS : list of execution sessions –– Exceptions : –– X_DATA_SET_NOT_OPENED : data set is not opened –– X_NO_WRITE_ACCESS : data set not opened for write access ––

function TIME_FRAME_OF(DATA_SET : in T_DATA_SET) return TEV_DEFINITIONS.T_TIME_FRAME;

–– Description : –– Return the time frame in which the current data set has been –– built. –– –– Parameters : –– DATA_SET : private data_set –– Exceptions : –– X_NO_READ_ACCESS : data set not open with read access –– X_DATA_SET_NOT_OPENED : data set is not opened ––

function GET_SELECTED_ON_TIME_TYPE(DATA_SET : in T_DATA_SET) return DBS_DEFINITIONS.T_TIME_TYPE;

–– Description : –– Return the selected on time type with which the current data set has been –– built. –– –– Parameters : –– DATA_SET : private data_set –– Exceptions : –– X_NO_READ_ACCESS : data set not open with read access –– X_DATA_SET_NOT_OPENED : data set is not opened ––

function GET_ORDERED_BY_TIME_TYPE(DATA_SET : in T_DATA_SET) return DBS_DEFINITIONS.T_TIME_ORDERING;

–– Description : –– Return the ordered by time type with which the current data set has been –– built. –– –– Parameters : –– DATA_SET : private data_set –– Exceptions : –– X_NO_READ_ACCESS : data set not open with read access –– X_DATA_SET_NOT_OPENED : data set is not opened ––

function EXECUTION_DATE_OF(DATA_SET : in T_DATA_SET) return CGS_CALENDAR.CGS_DATE_AND_TIME;

–– Description : –– Return the date and time of execution –– –– Parameters : –– DATA_SET : private data set –– Exceptions : –– X_NO_READ_ACCESS : data set not open with read access –– X_DATA_SET_NOT_OPENED : data set is not opened ––

function FILENAME_OF(DATA_SET : in T_DATA_SET) return STRING;

–– Description : –– Return the data set file name. –– –– Parameters : –– DATA_SET : private data_set –– Exceptions : –– X_NO_READ_ACCESS : data set not open with read access

Page 510: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

501

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– X_DATA_SET_NOT_OPENED : data set is not opened ––

function SAMPLING_OF(DATA_SET : in T_DATA_SET) return TEV_DEFINITIONS.T_SAMPLING;

–– Description : –– Return the sampling for the current data set. –– –– Parameters : –– DATA_SET : private data_set –– Exceptions : –– X_NO_READ_ACCESS : data set not open with read access –– X_DATA_SET_NOT_OPENED : data set is not opened ––

function PARAMETERS_NUMBER_OF(DATA_SET : in T_DATA_SET) return NATURAL;

–– Description : –– Return the number of parameters used to build –– the current data set. –– –– Parameters : –– DATA_SET : private data_set –– Exceptions : –– X_NO_READ_ACCESS : data set not open with read access –– X_DATA_SET_NOT_OPENED : data set is not opened ––

function PARAMETER_NAME_OF(PARAMETER_DEFINITION : in T_PARAMETER_DEFINITION) return TEV_DEFINITIONS.T_PARAMETER_NAME;

–– Description : –– Return the name of this parameter. –– –– Parameters : –– DATA_SET : private data_set –– Exceptions : –– X_NO_READ_ACCESS : data set not open with read access –– X_DATA_SET_NOT_OPENED : data set is not opened ––

function SESSIONS_NUMBER_OF(DATA_SET : in T_DATA_SET)return NATURAL;

–– Description : –– Return the number of sessions used to build –– the current data set. –– –– Parameters : –– DATA_SET : private data_set –– Exceptions : –– X_NO_READ_ACCESS : data set not open with read access –– X_DATA_SET_NOT_OPENED : data set is not opened ––

function SESSION_NAMES_OF(DATA_SET : in T_DATA_SET) return TEV_DEFINITIONS.T_DEFINITION_SESSION_NAMES;

–– Description : –– return array with session names from definition. –– Parameters: –– DATA_SET : private data set –– Exception: –– X_NO_READ_ACCESS : data set not open with read access –– X_DATA_SET_NOT_OPENED : data set is not opened ––

function INCLUDE_DEF_SESSION_OF(DATA_SET : in T_DATA_SET) return boolean;

Page 511: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

502

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– Description : –– Return a flag to specify if the default session is included –– –– Parameters : –– DATA_SET : private data_set –– Exceptions : –– X_NO_READ_ACCESS : data set not open with read access –– X_DATA_SET_NOT_OPENED : data set is not opened ––

function PARAMETER_DEFINITION_OF(DATA_SET : in T_DATA_SET; PARAMETER_INDEX : in TEV_DEFINITIONS.T_PARAMETERS_RANGE) return T_PARAMETER_DEFINITION;

–– Description : –– Extract the definition of a given parameter in –– the current data set by specifying its ordering number. –– –– Parameters : –– DATA_SET : private data_set –– PARAMETER_INDEX : index of the parameter in the data set : –– valid index is in range1..PARAMETERS_NUMBER_OF() –– Exceptions : –– X_INVALID_PARAMETER : given parameter index is invalid ––

function PARAMETER_DEFINITION_OF_N(DATA_SET : in T_DATA_SET; PARAMETER_NAME : in TEV_DEFINITIONS.T_PARAMETER_NAME) return T_PARAMETER_DEFINITION;

–– Description : –– Extract the definition of a given parameter in –– the current data set by specifying its name. –– –– Parameters : –– DATA_SET : private data_set –– PARAMETER_NAME : name of the parameter defined in the data –– set –– Exceptions : –– X_INVALID_PARAMETER : given parameter name is invalid ––

function ENGINEERING_UNIT_OF(PARAMETER_DEFINITION : in T_PARAMETER_DEFINITION)return MPS_DEFINITIONS.T_ENGINEERING_UNIT;

–– Description : –– Return the engineering unit of this parameter. –– –– Parameters : –– PARAMETER_DEFINITION : private parameter definition –– Exceptions : ––

function SOURCE_FILE_TYPE_OF(PARAMETER_DEFINITION : in T_PARAMETER_DEFINITION)return TEV_DEFINITIONS.T_SOURCE_FILE_TYPE;

–– Description : –– Return the type of the source files used for this parameter. –– –– Parameters : –– PARAMETER_DEFINITION : private parameter definition –– Exceptions : ––

function PRODUCER_NAME_OF(PARAMETER_DEFINITION : in T_PARAMETER_DEFINITION) return TEV_DEFINITIONS.T_PRODUCER_NAME;

–– Description : –– Return the producer name of this parameter. –– –– Parameters :

Page 512: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

503

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– PARAMETER_DEFINITION : private parameter definition –– Exceptions : ––

function ITEM_TYPE_OF(PARAMETER_DEFINITION : in T_PARAMETER_DEFINITION) return TEV_DEFINITIONS.T_MEASUREMENT_ALTERNATIVES;

–– Description : –– Return the item type of this parameter. –– –– Parameters : –– PARAMETER_DEFINITION : private parameter definition –– Exceptions : ––

function DATA_NUMBER_OF(PARAMETER_DEFINITION : in T_PARAMETER_DEFINITION) return NATURAL;

–– Description : –– Return the number of data stored for this parameter. –– –– Parameters : –– PARAMETER_DEFINITION : private parameter definition –– Exceptions : ––

function POINTER_TO_FIRST_DATA(DATA_SET : in T_DATA_SET) return NATURAL;

procedure EXTRACT_DATA(DATA_SET : in T_DATA_SET; PARAMETER_DEFINITION : in T_PARAMETER_DEFINITION; PARAMETER_VALUES : in out T_PARAMETER_VALUE_L; TIME_FRAME : in TEV_DEFINITIONS.T_TIME_FRAME

:= TEV_DEFINITIONS.NULL_TIME_FRAME);

–– Description : –– Extract data from a data set for a given parameter in a given –– time frame. –– The number of data returned depends on the array size –– supplied by the user. –– –– Parameters : –– DATA_SET : private data set –– PARAMETER_DEFINITION : private parameter definition –– PARAMETER_VALUES : array of parameter values –– TIME_FRAME : by default the time frame of the data set –– Exceptions : –– X_DATA_SET_NOT_OPENED : supplied data set is not opened –– X_NO_READ_ACCESS : data set not open with read access –– X_INVALID_PARAMETER : invalid parameter definition –– X_NO_DATA_AVAILABLE : data are not available –– X_ERROR_ACCESSING_FILE : general error accessing data set –– file ––

procedure ADD_NEW_PARAMETER(DATA_SET : in out T_DATA_SET;PARAMETER_NAME : in TEV_DEFINITIONS.T_PARAMETER_NAME;ENGINEERING_UNIT : in MPS_DEFINITIONS.T_ENGINEERING_UNIT;SOURCE_FILE_TYPE : in TEV_DEFINITIONS.T_SOURCE_FILE_TYPE;PRODUCER : in TEV_DEFINITIONS.T_PRODUCER_NAME;ITEM_TYPE : in TEV_DEFINITIONS.T_MEASUREMENT_ALTERNATIVES);

–– Description :

–– Add a new parameter in the data set definition. –– –– Parameters : –– DATA_SET : private data set –– PARAMETER_NAME : name of the parameter inserted –– ENGINEERING_UNIT : engineering unit –– SOURCE_FILE_TYPE : type of the source file –– PRODUCER : name of the producer –– ITEM_TYPE : item type –– Exceptions : –– X_DATA_SET_NOT_OPENED : data set is not opened

Page 513: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

504

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– X_NO_WRITE_ACCESS : data set not opened for write access –– X_TOO_MANY_PARAMETERS : maximum number of parameter reached ––

procedure ADD_NEW_VALUE(DATA_SET : in out T_DATA_SET; RAW_VALUE : in ADT_RAW_VALUE.T_RAW_VALUE; ENGINEERING_VALUE : in ADT_ENGINEERING_VALUE.T_ENGINEERING_VALUE; LT_TIME_TAG : in CGS_CALENDAR.CGS_DATE_AND_TIME; SMT_TIME_TAG : in CGS_CALENDAR.CGS_DATE_AND_TIME);

–– Description : –– Add a new value in the data set for the last defined –– parameter. –– –– Parameters : –– DATA_SET : private data set –– RAW_VALUE : raw value –– ENGINEERING_VALUE : engineering value –– LT_TIME_TAG : lt time tag of the data value –– SMT_TIME_TAG : smt time tag of the data value –– Exceptions : –– X_DATA_SET_NOT_OPENED : data set is not opened –– X_NO_WRITE_ACCESS : data set not opened for write access –– X_NO_PARAMETER_AVAILABLE : no parameter created yet –– X_ERROR_ACCESSING_FILE : general error accessing file ––

procedure ADD_NEW_VALUES(DATA_SET : in out T_DATA_SET; VALUES : in out T_PARAMETER_VALUE_L);

–– Description : –– Add a list of values in the data set for the last defined –– parameter. –– –– Parameters : –– DATA_SET : private data set –– VALUES : list of values –– Exceptions : –– X_DATA_SET_NOT_OPENED : data set is not opened –– X_NO_WRITE_ACCESS : data set not opened for write access –– X_NO_PARAMETER_AVAILABLE : no parameter created yet –– X_ERROR_ACCESSING_FILE : general error accessing file ––

procedure NEXT_VALUE_FOR_EACH_PARAM( DATA_SET_DESC : in T_DATA_SET; NB_PARAM : in NATURAL; LISTING_POSITION : in TEV_DEFINITIONS.T_POSITION_IN_LISTING; LAST_POSITION : in TEV_DEFINITIONS.T_POSITION_IN_LISTING; ORDERING_TIME_TYPE : in DBS_DEFINITIONS.T_TIME_ORDERING; SECOND_TIME_TYPE : in DBS_DEFINITIONS.T_TIME_ORDERING; PARAMETER_VALUES : in out TEV_DEFINITIONS.T_PARAMETER_VALUES; EARLIEST_TIMES : in out TEV_DEFINITIONS.T_TWO_TIME; EARLIEST_LT_TIME_TAG : in out CGS_CALENDAR.CGS_DATE_AND_TIME; EARLIEST_SMT_TIME_TAG : in out CGS_CALENDAR.CGS_DATE_AND_TIME );

procedure FORMAT_DEFINITION( DATA_SET : in T_DATA_SET; FILE_ID : in TEXT_IO.FILE_TYPE);

function GET_TIME_TAG( PARAMETER_VALUE : in T_PARAMETER_VALUE; TIME_TYPE : in DBS_DEFINITIONS.T_TIME_ORDERING) return CGS_CALENDAR.CGS_DATE_AND_TIME;

X_DATA_SET_ALREADY_OPENED,X_DATA_SET_NOT_OPENED,X_NO_WRITE_ACCESS,X_INVALID_NAME,X_INVALID_PARAMETER,

Page 514: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

505

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

X_NO_DATA_AVAILABLE,X_NO_READ_ACCESS,X_NO_PARAMETER_AVAILABLE,X_TOO_MANY_PARAMETERS,X_ERROR_ACCESSING_FILE,X_DATA_SET_ALREADY_EXIST : exception;

private type T_PARAMETER_DEFINITION is

record PARAMETER_INDEX : TEV_DEFINITIONS.T_PARAMETERS_RANGE; PARAMETER_NAME : TEV_DEFINITIONS.T_PARAMETER_NAME; ENGINEERING_UNIT : MPS_DEFINITIONS.T_ENGINEERING_UNIT; SOURCE_FILE_TYPE : TEV_DEFINITIONS.T_SOURCE_FILE_TYPE; ITEM_TYPE : TEV_DEFINITIONS.T_MEASUREMENT_ALTERNATIVES; PRODUCER : TEV_DEFINITIONS.T_PRODUCER_NAME; DATA_NUMBER : natural := natural’first; DATA_PTR : natural := natural’first;

end record; –– definition of a parameter in the data set type T_PARAMETER_DEFINITIONS_ARRAY is array(TEV_DEFINITIONS.T_PARAMETERS_RANGE) of T_PARAMETER_DEFINITION; –– definition of an array of a parameter definition type T_DATA_SET_DEFINITION is

record TIME_FRAME : TEV_DEFINITIONS.T_TIME_FRAME; SAMPLING : TEV_DEFINITIONS.T_SAMPLING; SELECT_ON : DBS_DEFINITIONS.T_TIME_TYPE; ORDER_BY : DBS_DEFINITIONS.T_TIME_ORDERING; PARAMETERS_NUMBER : NATURAL := 0; PARAMETER_DEFINITIONS : T_PARAMETER_DEFINITIONS_ARRAY; SESSIONS_NUMBER : NATURAL := 0; SESSIONS : TEV_DEFINITIONS.T_DEFINITION_SESSION_NAMES(

TEV_DEFINITIONS.T_SESSIONS_RANGE);

INCLUDE_DEF_SESSION : BOOLEAN; EXECUTION_DATE : CGS_CALENDAR.CGS_DATE_AND_TIME;

end record;

–– Description of private types

––package definition to access data set file package DEFINITION_IO is new DIRECT_IO( ELEMENT_TYPE => T_DATA_SET_DEFINITION); –– DEFINITION_IO is used to access the data set definition –– as the header of the file

package DATA_IO is new DIRECT_IO( ELEMENT_TYPE => T_PARAMETER_VALUE); –– DATA_IO is used to access the data value records inside –– the file, –– the first data to access is locatec at byte offset PTR_TO_FIRST_DATA

type T_DATA_SET isrecord DEFINITION_FILE_TYPE : DEFINITION_IO.FILE_TYPE; DATA_FILE_TYPE : DATA_IO.FILE_TYPE; FILENAME : TEV_DEFINITIONS.T_COMPLETE_FILENAME; ACCESS_STATUS : TEV_DEFINITIONS.T_ACCESS_STATUS

:=TEV_DEFINITIONS.READ;

CURRENT_STATUS : TEV_DEFINITIONS.T_CURRENT_STATUS :=

TEV_DEFINITIONS.CLOSED; DATA_SET_DEFINITION : T_DATA_SET_DEFINITION;

end record;

EXCEL_LINE_MAX_SIZE : constant NATURAL := 4096; subtype T_EXCEL_LINE is STRING(1..EXCEL_LINE_MAX_SIZE);

end ADT_DATA_SET;

Page 515: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

506

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Formal Interface Description

–––– ADT_LISTING_RESULT––––****************************************************************************––ABSTRACT–––––– Provides operations to access a listing result file.––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––IDENTIFICATION–––– PROJECT NAME : CGS–– PRODUCT NAME : TEV–– CI–NUMBER : 1216 858–– OBJECT NAME : HDT_TEV_API.ADT_LISTING_RESULT––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––CONTENTS–––– COMPILER : VERDIX ADA 6.0.3.C–– LANGUAGE : ADA–– SPECIAL CONTENTS:–– CHANGE HISTORY–– CGS V4.3 at DASA–– creator: Bruening–– creation date: 06.07.99–– comment:–– New procedure for the merge ADT_DATA_SET/ADT_EVENT_RESULT tool :–– FORMAT_LINE –– CREATE_HEADER_DATE_TIME–– Procedures which were before internal and now provided–– FORMAT_HEADER––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– END HISTORY––****************************************************************************––

–– Required object : DBS_DEFINITIONSwith DBS_DEFINITIONS;–– Required object : TEV_DEFINITIONSwith TEV_DEFINITIONS;–– Required object : DIRECT_IOwith DIRECT_IO;–– Required object : MPS_DEFINITIONSwith MPS_DEFINITIONS;–– Required object : VICOS_LISTwith VICOS_LIST;–– Required object : CGS_CALENDARwith CGS_CALENDAR;–– Required object : ADT_ENGINEERING_VALUEwith ADT_ENGINEERING_VALUE;with TEXT_IO;

use TEV_DEFINITIONS; package ADT_LISTING_RESULT is

the_file : text_io.file_type;

–– Provided types and constants :

type T_LISTING_RESULT is limited private;–– private adt listing result file

type T_PARAMETER_DEFINITION is private;

–– Provided operations :procedure EXTERNAL_FORMAT(

LISTING_RESULT : in out T_LISTING_RESULT;EXTRACT_LISTING_FILE : in STRING;

Page 516: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

507

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

EXCEL_SEPARATOR : in CHARACTER := ’,’);

procedure EXTERNAL_FORMAT_FILE(LISTING_RESULT_FILE : in STRING;TO_FILENAME : in STRING;

EXCEL_SEPARATOR : in CHARACTER := ’,’);

procedure FORMAT_RESULT( LISTING_RESULT : in out T_LISTING_RESULT;

FILENAME : in STRING);

–– Converts the listing result to a landscape string format –– –– Parameters : –– LISTING_RESULT : private listing result –– FILENAME : filename of formatted result –– Exceptions : –– X_NO_READ_ACCESS : listing result file not opened for readaccess –– X_LISTING_RESULT_NOT_OPENED : listing result is not opened –– X_ERROR_ACCESSING_FILE : general error creating formattedresult –– X_PARMS_DO_NOT_FIT_IN_LANDSCAPE_WIDTH

procedure FORMAT_RESULT_FILE(LISTING_RESULT_FILE : in STRING; TO_FILENAME : in STRING; TOOL_ID : in TEV_DEFINITIONS.T_TOOL_ID := POSITIVE’first);

–– Converts the listing result to a string format for display –– –– Parameters : –– LISTING_RESULT_FILE : listing result file to format –– TO_FILENAME : filename of formatted result –– TOOL_ID : the tool id –– Exceptions : –– X_LISTING_RESULT_NOT_OPENED : listing result is not opened –– X_ERROR_ACCESSING_FILE : general error creating formattedresult –– X_INVALID_NAME : listing result file does not exist

procedure OPEN(LISTING_RESULT_FILENAME : in STRING; LISTING_RESULT : in out T_LISTING_RESULT; ACCESS_STATUS : in TEV_DEFINITIONS.T_ACCESS_STATUS :=

TEV_DEFINITIONS.READ; ALLOW_OVERWRITE : in BOOLEAN := FALSE);

–– Open a listing result, with read access if it already exists, –– or with write access to create a new one. The current date –– and time –– will be written in EXECUTION_TIME if creating a new listing –– result –– –– Parameters : –– LISTING_RESULT_FILENAME : filename of the listing result –– LISTING_RESULT : private listing result –– ACCESS_STATUS : Read only to extract information from a –– listing result –– Write when generating a listing result –– ALLOW_OVERWRITE : When ACCESS_STATUS is write this is –– required to allow generation –– of a listing result inside an alreadyexisting file –– Exceptions : –– X_ERROR_ACCESSING_FILE : general error reported when –– accessing the file –– X_LISTING_RESULT_ALREADY_OPENED : listing result is in open –– state –– X_LISTING_RESULT_ALREADY_EXISTS : file exists and overwrite –– is not allowed –– X_INVALID_NAME : listing result name is too long ––

procedure CLOSE(LISTING_RESULT : in out T_LISTING_RESULT);

Page 517: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

508

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– Close a previously opened listing result –– –– Parameters : –– LISTING_RESULT : private listing result –– Exceptions : –– X_ERROR_ACCESSING_FILE : general error reported when –– accessing the file –– X_LISTING_RESULT_NOT_OPENED : listing result already open ––

procedure DEFINE(LISTING_RESULT : in out T_LISTING_RESULT; LISTING_RESULT_NAME : in STRING; DATA_SET : in TEV_DEFINITIONS.T_RESULT_REF; TIME_FRAME : in TEV_DEFINITIONS.T_TIME_FRAME; SELECT_ON : in DBS_DEFINITIONS.T_TIME_TYPE; ORDER_BY : in DBS_DEFINITIONS.T_TIME_ORDERING; SAMPLING : in TEV_DEFINITIONS.T_SAMPLING; SESSIONS : in TEV_DEFINITIONS.T_DEFINITION_SESSION_NAMES; INCLUDE_DEF_SESSIONS : in BOOLEAN);

–– Build and initialise the definition of an opened listing –– result –– –– Parameters : –– LISTING_RESULT : private listing result –– LISTING_RESULT_NAME : name of the listing result –– DATA_SET : name and location of data set –– TIME_FRAME : time frame of the listing result –– SAMPLING : private sampling of the data set –– SESSIONS : list of execution sessions in the data set –– INCLUDE_DEF_SESSIONS : include default session –– Exceptions : –– X_LISTING_RESULT_NOT_OPENED : listing result is not opened –– X_NO_WRITE_ACCESS : listing result not opened for write –– access ––

function TIME_FRAME_OF(LISTING_RESULT : in T_LISTING_RESULT) return TEV_DEFINITIONS.T_TIME_FRAME;

–– Return the time frame in which the current listing result has –– been built. –– –– Parameters : –– LISTING_RESULT : private listing result –– Exceptions : –– X_LISTING_RESULT_ERROR : the given listing result is –– invalid –– X_LISTING_RESULT_NOT_OPENED : listing result is not opened ––

function FILENAME_OF(LISTING_RESULT : in T_LISTING_RESULT) return STRING;

–– Return the listing result file name. –– –– Parameters : –– LISTING_RESULT : private listing result –– Exceptions : –– X_LISTING_RESULT_ERROR : the given listing result is –– invalid –– X_LISTING_RESULT_NOT_OPENED : listing result is not opened ––

function DATA_SET_OF(LISTING_RESULT : in T_LISTING_RESULT) return TEV_DEFINITIONS.T_RESULT_REF;

–– Return the data set and location of data set with which –– listing result was built –– –– Parameters : –– LISTING_RESULT : private listing result –– Exceptions : –– X_LISTING_RESULT_ERROR : the given listing result is –– invalid –– X_LISTING_RESULT_NOT_OPENED : listing result is not opened ––

Page 518: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

509

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

function TITLE_OF(LISTING_RESULT : in T_LISTING_RESULT) return TEV_DEFINITIONS.T_TITLE;

–– Return the title of the listing result –– –– Parameters : –– LISTING_RESULT : private listing result –– Exceptions : –– X_LISTING_RESULT_ERROR : the given listing result is –– invalid –– X_LISTING_RESULT_NOT_OPENED : listing result is not opened ––

function SAMPLING_OF(LISTING_RESULT : in T_LISTING_RESULT) return TEV_DEFINITIONS.T_SAMPLING;

–– Return the sampling for the data set from which the listing –– was built. –– –– Parameters : –– LISTING_RESULT : private listing result –– Exceptions : –– X_LISTING_RESULT_ERROR : the given listing result is –– invalid –– X_LISTING_RESULT_NOT_OPENED : listing result is not opened ––

function PARAMETERS_NUMBER_OF(LISTING_RESULT : in T_LISTING_RESULT) return NATURAL;

–– Return the number of parameters used to build the listing –– result. –– –– Parameters : –– LISTING_RESULT : private data_set –– Exceptions : –– X_LISTING_RESULT_ERROR : the given listing result is –– invalid –– X_LISTING_RESULT_NOT_OPENED : listing result is not opened ––

function PARAMETER_NAME_OF(PARAMETER_DEFINITION : in T_PARAMETER_DEFINITION) return TEV_DEFINITIONS.T_PARAMETER_NAME;

–– Return the name of this parameter. –– –– Parameters : –– PARAMETER_DEFINITION : private parameter definition –– Exceptions : –– X_LISTING_RESULT_ERROR : the given listing result is –– invalid –– X_LISTING_RESULT_NOT_OPENED : listing result is not opened ––

function SESSION_NUMBER_OF(LISTING_RESULT : in T_LISTING_RESULT) return NATURAL;

–– Return the number of sessions used to build the data set with –– which the listing result was created. –– –– Parameters : –– LISTING_RESULT : private listing result –– Exceptions : –– X_LISTING_RESULT_ERROR : the given listing result is –– invalid –– X_LISTING_RESULT_NOT_OPENED : listing result is not opened ––

function SESSION_NAMES_OF(LISTING_RESULT : in T_LISTING_RESULT) return TEV_DEFINITIONS.T_DEFINITION_SESSION_NAMES;

–– Return the list of session names used to build the data set –– with which the listing result was created –– –– Parameters : –– LISTING_RESULT : private listing result –– Exceptions :

Page 519: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

510

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– X_LISTING_RESULT_ERROR : the given listing result is –– invalid –– X_LISTING_RESULT_NOT_OPENED : listing result is not opened ––

function INCLUDE_DEF_SESSION_OF(LISTING_RESULT : in T_LISTING_RESULT) return boolean; –– Return a flag to indicate the inclustion of the default test session –– Parameters: –– LISTING_RESULT : private listing result –– Exceptions : –– X_LISTING_RESULT_NOT_OPENED : listing result is not opened –– X_NO_READ_ACCESS : listing result file not opened forread access ––

function EXECUTION_DATE_OF(LISTING_RESULT : in T_LISTING_RESULT) return CGS_CALENDAR.CGS_DATE_AND_TIME;

–– Return the date and time of execution –– –– Parameters : –– LISTING_RESULT : private listing result –– Exceptions : –– X_LISTING_RESULT_ERROR : the given listing result is –– invalid –– X_LISTING_RESULT_NOT_OPENED : listing result is not opened ––

function PARAMETER_DEFINITION_OF(LISTING_RESULT : in T_LISTING_RESULT;

PARAMETER_INDEX : in TEV_DEFINITIONS.T_PARAMETERS_RANGE) return T_PARAMETER_DEFINITION;

–– Extract the definition of a given parameter in –– the current listing result by specifying its ordering –– number. –– –– Parameters : –– LISTING_RESULT : private listing result –– PARAMETER_INDEX : index of the parameter in the listing –– result : –– valid index is in range1..PARAMETERS_NUMBER_OF() –– Exceptions : –– X_LISTING_RESULT_NOT_OPENED : listing result is not opened –– X_LISTING_RESULT_ERROR : the given listing result is –– invalid –– X_INVALID_PARAMETER : given parameter index is invalid ––

function PARAMETER_DEFINITION_OF_N(LISTING_RESULT : in T_LISTING_RESULT; PARAMETER_NAME : in TEV_DEFINITIONS.T_PARAMETER_NAME) return T_PARAMETER_DEFINITION;

–– Extract the definition of a given parameter in –– the current listing result by specifying its name. –– –– Parameters : –– LISTING_RESULT : private listing result –– PARAMETER_NAME : name of the parameter defined in the –– listing rsult –– Exceptions : –– X_LISTING_RESULT_NOT_OPENED : listing result is not opened –– X_LISTING_RESULT_ERROR : the given listing result is –– invalid –– X_INVALID_PARAMETER : given parameter name is invalid ––

function ENGINEERING_UNIT_OF(PARAMETER_DEFINITION : in T_PARAMETER_DEFINITION)return MPS_DEFINITIONS.T_ENGINEERING_UNIT;

–– Return the engineering unit of this parameter. ––

Page 520: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

511

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– Parameters : –– PARAMETER_DEFINITION : private parameter definition –– Exceptions : –– X_INVALID_PARAMETER : given parameter definition is invalid ––

function PARAMETER_INDEX_OF(PARAMETER_DEFINITION : in T_PARAMETER_DEFINITION)return POSITIVE;

–– Return the index of this parameter. –– –– Parameters : –– PARAMETER_DEFINITION : private parameter definition –– Exceptions : –– X_INVALID_PARAMETER : given parameter definition is invalid ––

function SOURCE_FILE_TYPE_OF(PARAMETER_DEFINITION : in T_PARAMETER_DEFINITION)return TEV_DEFINITIONS.T_SOURCE_FILE_TYPE;

–– Return the type of the source files used for this parameter. –– –– Parameters : –– PARAMETER_DEFINITION : private parameter definition –– Exceptions : –– X_INVALID_PARAMETER : given parameter definition is invalid ––

function PRODUCER_NAME_OF(PARAMETER_DEFINITION : in T_PARAMETER_DEFINITION) return TEV_DEFINITIONS.T_PRODUCER_NAME;

–– Return the producer name of this parameter. –– –– Parameters : –– PARAMETER_DEFINITION : private parameter definition –– Exceptions : ––

function DATA_NUMBER_OF(PARAMETER_DEFINITION : in T_PARAMETER_DEFINITION) return NATURAL;

–– Return the number of data stored for this parameter. –– –– Parameters : –– PARAMETER_DEFINITION : private parameter definition –– Exceptions : –– X_INVALID_PARAMETER : given parameter definition is invalid ––

function GET_SELECTED_ON_TIME_TYPE(LISTING_RESULT : in T_LISTING_RESULT) return DBS_DEFINITIONS.T_TIME_TYPE;

–– Return the time type of the selection –– –– Parameters : –– LISTING_RESULT : private listing result –– Exceptions : –– X_LISTING_RESULT_NOT_OPENED : listing result is not opened

–– X_NO_READ_ACCESS : listing result file not opened forread access ––

function GET_ORDERED_BY_TIME_TYPE(LISTING_RESULT : in T_LISTING_RESULT) return DBS_DEFINITIONS.T_TIME_ORDERING;

–– Return the time ordering of the selection –– –– Parameters : –– LISTING_RESULT : private listing result –– Exceptions : –– X_LISTING_RESULT_NOT_OPENED : listing result is not opened

–– X_NO_READ_ACCESS : listing result file not opened forread access ––

procedure EXTRACT_DATA( LISTING_RESULT : in T_LISTING_RESULT;

PARAMETER_DEFINITION : in T_PARAMETER_DEFINITION; LISTING_VALUES : in out TEV_DEFINITIONS.T_PARAMETER_VALUE_L;

Page 521: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

512

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

TIME_FRAME : in TEV_DEFINITIONS.T_TIME_FRAME := TEV_DEFINITIONS.NULL_TIME_FRAME);

–– Extract data from a listing result for a given parameter in a –– given time frame. –– The number of data returned depends on the array size –– supplied by the user. –– –– Parameters : –– LISTING_RESULT : private listing result –– PARAMETER_DEFINITION : private parameter definition –– LISTING_VALUES : array of listing values –– TIME_FRAME : by default the time frame of the listing –– result –– Exceptions : –– X_LISTING_RESULT_NOT_OPENED : supplied listing result is –– not opened –– X_NO_READ_ACCESS : listing result not open with read access –– X_INVALID_PARAMETER : invalid parameter definition –– X_NO_DATA_AVAILABLE : data are not available –– X_ERROR_ACCESSING_FILE : general error accessing listing –– result file ––

procedure ADD_LIST_OF_VALUES(LISTING_RESULT : in out T_LISTING_RESULT; PARAMETER_NAME : in TEV_DEFINITIONS.T_PARAMETER_NAME; ENGINEERING_UNIT : in MPS_DEFINITIONS.T_ENGINEERING_UNIT; SOURCE_FILE_TYPE : in TEV_DEFINITIONS.T_SOURCE_FILE_TYPE; PRODUCER : in TEV_DEFINITIONS.T_PRODUCER_NAME; LIST_TO_ADD : in T_PARAMETER_VALUE_L);

–– Add a parameter and list of values in the listing result for the next –– empty parameter –– –– Parameters : –– LISTING_RESULT : private listing result –– PARAMETER_NAME : parameter name to be added –– ENGINEERING_UNIT : engineering unit for the parameter –– SOURCE_FILE_TYPE : source file type for the parameter –– PRODUCER : producer of the parameter –– LIST_TO_ADD : list of listing values –– Exceptions : –– X_LISTING_RESULT_NOT_OPENED : listing result is not opened –– X_NO_WRITE_ACCESS : listing result not opened for write –– access –– X_NO_PARAMETER_AVAILABLE : no parameter created yet –– X_ERROR_ACCESSING_FILE : general error accessing file –– X_INVALID_PARAMETER : the parameter is invalid –– X_INVALID_VALUE : the value is invalid ––

procedure FORMAT_LINE( ORDERING_TIME_TYPE : in DBS_DEFINITIONS.T_TIME_ORDERING; NB_PARAM : in NATURAL; ARRAY_HEAD_OF_VALUES : in TEV_DEFINITIONS.T_PARAMETER_VALUES; CURRENT_SMT_TIME : in CGS_CALENDAR.CGS_DATE_AND_TIME; CURRENT_LT_TIME : in CGS_CALENDAR.CGS_DATE_AND_TIME; FILE_ID : in TEXT_IO.FILE_TYPE; ALL_BYTE_STREAM : in BOOLEAN; PREVIOUS_TIME : in out CGS_CALENDAR.CGS_DATE_AND_TIME; LISTING_POSITION : in out TEV_DEFINITIONS.T_POSITION_IN_LISTING );

––============================================================== –– –– Operation Name: CREATE_HEADER_DATE_TIME –– Description: –– Creates the header for a specific listing result : –– Current date –– Current time –– LISTING RESULT: –– –––––––––––––––––––––––––––––––––––––––––

Page 522: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

513

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– –– –– Parameters : –– none –– ––==============================================================

procedure CREATE_HEADER_DATE_TIME;

––============================================================== –– –– Operation Name: WRITE_HEADER_DATE_TIME –– Description: –– Creates the header for a specific listing result : –– Current date –– Current time –– LISTING RESULT: –– ––––––––––––––––––––––––––––––––––––––––– –– –– –– Parameters : –– none –– ––==============================================================

procedure WRITE_HEADER_DATE_TIME(FILE_ID : in TEXT_IO.FILE_TYPE);

procedure FORMAT_HEADER( NB_PARAM : in NATURAL; FIRST_LINE : out STRING; SECOND_LINE : out STRING; FILE_ID : in TEXT_IO.FILE_TYPE);

–– Provided exceptions : X_LISTING_RESULT_NOT_OPENED, X_ERROR_ACCESSING_FILE, X_LISTING_RESULT_ALREADY_OPENED, X_LISTING_RESULT_ALREADY_EXISTS, X_INVALID_NAME, X_NO_READ_ACCESS, X_NO_WRITE_ACCESS, X_INVALID_TIME_FRAME, X_INVALID_PARAMETER, X_PARMS_DO_NOT_FIT_IN_LANDSCAPE_WIDTH, X_INVALID_VALUE : exception;

private type T_PARAMETER_DEFINITION is

record PARAMETER_INDEX : TEV_DEFINITIONS.T_PARAMETERS_RANGE; PARAMETER_NAME : TEV_DEFINITIONS.T_PARAMETER_NAME; ENGINEERING_UNIT : MPS_DEFINITIONS.T_ENGINEERING_UNIT; SOURCE_FILE_TYPE : TEV_DEFINITIONS.T_SOURCE_FILE_TYPE; PRODUCER : TEV_DEFINITIONS.T_PRODUCER_NAME; DATA_NUMBER : NATURAL := 0;

end record; –– description of a parameter definition

subtype T_PARAMETER_RANGE_L is NATURAL range 1 .. TEV_DEFINITIONS.MAX_NUMBER_OF_PARAMETERS_IN_LISTING;

type T_PARAMETER_DEFINITIONS_ARRAY is array(T_PARAMETER_RANGE_L) of T_PARAMETER_DEFINITION; –– definition of an array of a parameter definition

type T_LISTING_DEFINITION isrecord TIME_FRAME : TEV_DEFINITIONS.T_TIME_FRAME;

SELECT_ON : DBS_DEFINITIONS.T_TIME_TYPE;ORDER_BY : DBS_DEFINITIONS.T_TIME_ORDERING;

Page 523: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

514

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

DATA_SET : TEV_DEFINITIONS.T_RESULT_REF; TITLE : TEV_DEFINITIONS.T_TITLE; SAMPLING : TEV_DEFINITIONS.T_SAMPLING; SESSIONS_NUMBER : NATURAL := 0; SESSIONS : TEV_DEFINITIONS.T_DEFINITION_SESSION_NAMES(TEV_DEFINITIONS.T_SESSIONS_RANGE); INCLUDE_DEF_SESSIONS : BOOLEAN; EXECUTION_TIME : CGS_CALENDAR.CGS_DATE_AND_TIME; ASCII_DEFINED : BOOLEAN := False; PARAMETERS_NUMBER : NATURAL := 0; PARAMETER_DEFINITIONS : T_PARAMETER_DEFINITIONS_ARRAY;

end record; –– description of a listing definition

package DEFINITION_IO is new DIRECT_IO( ELEMENT_TYPE => T_LISTING_DEFINITION); –– DEFINITION_IO is used to access the listing result definition as –– the header of the file

package LISTING_IO is new DIRECT_IO( ELEMENT_TYPE => T_PARAMETER_VALUE); –– LISTING_IO is used to access the listing value records inside –– the file, the first listing value to access is located at byte –– offset –– PTR_TO_FIRST_LISTING

type T_LISTING_RESULT isrecord DEFINITION_FILE_TYPE : DEFINITION_IO.FILE_TYPE; LISTING_FILE_TYPE : LISTING_IO.FILE_TYPE; FILENAME : TEV_DEFINITIONS.T_COMPLETE_FILENAME; ACCESS_STATUS : TEV_DEFINITIONS.T_ACCESS_STATUS := TEV_DEFINITIONS.READ; CURRENT_STATUS : TEV_DEFINITIONS.T_CURRENT_STATUS := TEV_DEFINITIONS.CLOSED; LISTING_DEFINITION : T_LISTING_DEFINITION;

end record;

EXCEL_LINE_MAX_SIZE : constant NATURAL := 1024;subtype T_EXCEL_LINE is STRING(1..EXCEL_LINE_MAX_SIZE);

end ADT_LISTING_RESULT;

Page 524: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

515

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Formal Interface Description–––– ADT_STATISTIC_RESULT––––****************************************************************************––ABSTRACT–––––– Provides operations to access a statistics result file.––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––IDENTIFICATION–––– PROJECT NAME : CGS–– PRODUCT NAME : TEV–– CI–NUMBER : 1216 858–– OBJECT NAME : HDT_TEV_API.ADT_STATISTIC_RESULT––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––CONTENTS–––– COMPILER : VERDIX ADA 6.0.3.C–– LANGUAGE : ADA–– SPECIAL CONTENTS:–– CHANGE HISTORY–– V4.3 at Spacebel Informatique, Brussels–– creator: jm (on host asimov)–– creation date: 29.09.95 18:42:30–– comment:–– Update for SMT/LT (Req.485)––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.2 at Spacebel Informatique, Brussels–– creator: rowena (on host moon)–– creation date: 25.07.95 10:50:52–– comment:–– Move from VICOS_CALENDAR to CGS_CALENDAR––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– END HISTORY––****************************************************************************––

––with DBS_DEFINITIONS;with TEV_DEFINITIONS;with VICOS_LIST;with CGS_CALENDAR;with DIRECT_IO;with MPS_DEFINITIONS;with ADT_ENGINEERING_VALUE;

use TEV_DEFINITIONS; package ADT_STATISTICS_RESULT is–– Provided types and constants : type T_STATISTIC_VALUE is

record IS_NUMERIC : BOOLEAN := TRUE; MINIMUM : FLOAT := 0.0; MAXIMUM : FLOAT := 0.0; MEAN : FLOAT := 0.0; MEDIAN : FLOAT := 0.0; VARIANCE : FLOAT := 0.0; NB : NATURAL := 0;

end record; –– definition of a statistics result within the statistics result –– file

type T_STATISTIC_RESULT is limited private; type T_PARAMETER_DEFINITION is private; subtype T_PARAMETERS_RANGE is POSITIVE range 1 .. 50; MAXIMUM_NUMBER_OF_PARAMETERS : constant POSITIVE := T_PARAMETERS_RANGE’LAST;

Page 525: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

516

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– maximum number of parameters allowed in the statistics result MAX_PARAMETER_NUMBER : constant NATURAL := 10;

–– Provided operations :

procedure FORMAT_RESULT(STATISTIC_RESULT : in out T_STATISTIC_RESULT; FILENAME : in STRING);

–– Converts the statistic result to a string format –– –– Parameters : –– STATISTIC_RESULT : private statistic result –– FILENAME : filename of formatted result –– Exceptions : –– X_NO_READ_ACCESS : statistic result file not opened forread access –– X_STATISTIC_RESULT_NOT_OPENED : statistic result is notopened –– X_ERROR_ACCESSING_FILE : general error creating for-matted result

procedure FORMAT_RESULT_FILE(STATISTIC_RESULT_FILE : in STRING; TO_FILENAME : in STRING);

–– Converts the statistic result to a string format for display –– –– Parameters : –– STATISTIC_RESULT_FILE : statistic result file to for-mat –– TO_FILENAME : filename of formatted result –– Exceptions : –– X_STATISTIC_RESULT_NOT_OPENED : statistic result is notopened –– X_ERROR_ACCESSING_FILE : general error creating for-matted result –– X_INVALID_NAME : statistic result file does not exist

procedure OPEN(STATISTIC_RESULT_FILENAME : in STRING; STATISTIC_RESULT : in out T_STATISTIC_RESULT; ACCESS_STATUS : in TEV_DEFINITIONS.T_ACCESS_STATUS := TEV_DE-

FINITIONS.READ; ALLOW_OVERWRITE : in BOOLEAN := FALSE);

–– Open a statistic result, with read access if it already exists –– or with write access to create a new one. The current date –– and time will be written in EXECUTION_TIME if creating a new –– statistic result –– –– Parameters : –– STATISTIC_RESULT_FILENAME : filename of the statistic result –– STATISTIC_RESULT : private statistic result –– ACCESS_STATUS : Read only to extract information from a –– statistic result –– Write when generating a statistic result –– ALLOW_OVERWRITE : When ACCESS_STATUS is write this is –– required to allow generation –– of a statistic result inside an already exist-ing file –– Exceptions : –– X_ERROR_ACCESSING_FILE : general error reported when –– accessing the file –– X_STATISTIC_RESULT_ALREADY_OPENED : statistic result isin –– open state –– X_STATISTIC_RESULT_ALREADY_EXISTS : file exists and –– overwrite is not allowed –– X_INVALID_NAME : statistic result name is too long ––

procedure CLOSE(STATISTIC_RESULT : in out T_STATISTIC_RESULT);

–– Close a previously opened statistic result –– –– Parameters : –– STATISTIC_RESULT : private statistic result –– Exceptions : –– X_ERROR_ACCESSING_FILE : general error reported when

Page 526: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

517

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– accessing the file –– X_STATISTIC_RESULT_NOT_OPENED : statistic result al-ready –– open ––

procedure DEFINE(STATISTIC_RESULT : in out T_STATISTIC_RESULT; STATISTIC_RESULT_NAME : in STRING; DATA_SET : in TEV_DEFINITIONS.T_RESULT_REF; TIME_FRAME : in TEV_DEFINITIONS.T_TIME_FRAME; SELECT_ON : in DBS_DEFINITIONS.T_TIME_TYPE; ORDER_BY : in DBS_DEFINITIONS.T_TIME_ORDERING; SAMPLING : in TEV_DEFINITIONS.T_SAMPLING; SESSIONS : in TEV_DEFINITIONS.T_DEFINITION_SESSION_NAMES; INCLUDE_DEF_SESSION : in BOOLEAN);

–– Build and initialise the definition of an opened statistic –– result –– –– Parameters : –– STATISTIC_RESULT : private statistic result –– STATISTIC_RESULT_NAME : name of the statistic result –– DATA_SET : name and location of data set –– TIME_FRAME : time frame of the statistic result –– SAMPLING : private sampling of the data set –– SESSIONS : list of execution sessions in the data set –– INCLUDE_DEF_SESSION : include default session –– Exceptions : –– X_STATISTIC_RESULT_NOT_OPENED : statistic result is not –– opened –– X_NO_WRITE_ACCESS : statistic result not opened forwrite –– access ––

function TIME_FRAME_OF(STATISTIC_RESULT : in T_STATISTIC_RESULT) return TEV_DEFINITIONS.T_TIME_FRAME;

–– Return the time frame in which the current statistic result has –– been built. –– –– Parameters : –– STATISTIC_RESULT : private statistic result –– Exceptions : –– X_STATISTIC_RESULT_ERROR : the given statistic resultis –– invalid –– X_STATISTIC_RESULT_NOT_OPENED : statistic result is not –– opened ––

function FILENAME_OF(STATISTIC_RESULT : in T_STATISTIC_RESULT) return STRING;

–– Return the statistic result file name. –– –– Parameters : –– STATISTIC_RESULT : private statistic result –– Exceptions : –– X_STATISTIC_RESULT_ERROR : the given statistic resultis –– invalid –– X_STATISTIC_RESULT_NOT_OPENED : statistic result is not –– opened ––

function DATA_SET_OF(STATISTIC_RESULT : in T_STATISTIC_RESULT) return TEV_DEFINITIONS.T_RESULT_REF;

–– Return the data set and location of data set with which –– statistic result was built –– –– Parameters : –– STATISTIC_RESULT : private statistic result –– Exceptions : –– X_STATISTIC_RESULT_ERROR : the given statistic result

Page 527: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

518

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

is –– invalid –– X_STATISTIC_RESULT_NOT_OPENED : statistic result is not –– opened ––

function SAMPLING_OF(STATISTIC_RESULT : in T_STATISTIC_RESULT) return TEV_DEFINITIONS.T_SAMPLING;

–– Return the sampling for the data set from which the statistic –– was built. –– –– Parameters : –– STATISTIC_RESULT : private statistic result –– Exceptions : –– X_STATISTIC_RESULT_ERROR : the given statistic resultis –– invalid –– X_STATISTIC_RESULT_NOT_OPENED : statistic result is not –– opened ––

function PARAMETERS_NUMBER_OF(STATISTIC_RESULT : in T_STATISTIC_RESULT) return NATURAL;

–– Return the number of parameters used to build the statistic –– result. –– –– Parameters : –– STATISTIC_RESULT : private data_set –– Exceptions : –– X_STATISTIC_RESULT_ERROR : the given statistic resultis –– invalid –– X_STATISTIC_RESULT_NOT_OPENED : statistic result is not –– opened ––

function PARAMETER_NAME_OF(PARAMETER_DEFINITION : in T_PARAMETER_DEFINITION) return TEV_DEFINITIONS.T_PARAMETER_NAME;

–– Return the name of this parameter. –– –– Parameters : –– PARAMETER_DEFINITION : private parameter definition –– Exceptions : –– X_STATISTIC_RESULT_ERROR : the given statistic resultis –– invalid –– X_STATISTIC_RESULT_NOT_OPENED : statistic result is not –– opened ––

function SESSION_NUMBER_OF(STATISTIC_RESULT : in T_STATISTIC_RESULT) return NATURAL;

–– Return the number of sessions used to build the data set with –– which the statistic result was created. –– –– Parameters : –– STATISTIC_RESULT : private statistic result –– Exceptions : –– X_STATISTIC_RESULT_ERROR : the given statistic resultis –– invalid –– X_STATISTIC_RESULT_NOT_OPENED : statistic result is not –– opened ––

function SESSION_NAMES_OF(STATISTIC_RESULT : in T_STATISTIC_RESULT) return TEV_DEFINITIONS.T_DEFINITION_SESSION_NAMES;

–– Return the list of session names used to build the data set –– with which the statistic result was created –– –– Parameters : –– STATISTIC_RESULT : private statistic result –– Exceptions :

Page 528: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

519

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– X_STATISTIC_RESULT_ERROR : the given listing result is –– invalid –– X_STATISTIC_RESULT_NOT_OPENED : statistic result is not –– opened ––

function INCLUDE_DEF_SESSION_OF(STATISTIC_RESULT : in T_STATISTIC_RESULT) return boolean; –– Return a flag to indicate the inclusion of the default test session –– Parameters: –– STATISTIC_RESULT : private statistic result –– Exceptions : –– X_STATISTIC_RESULT_NOT_OPENED : statistic result is notopened –– X_NO_READ_ACCESS : statistic result file notopened for read access ––

function EXECUTION_DATE_OF(STATISTIC_RESULT : in T_STATISTIC_RESULT) return CGS_CALENDAR.CGS_DATE_AND_TIME;

–– Return the date and time of execution –– –– Parameters : –– STATISTIC_RESULT : private statistic result –– Exceptions : –– X_STATISTIC_RESULT_ERROR : the given statistic resultis –– invalid –– X_STATISTIC_RESULT_NOT_OPENED : statistic result is not –– opened ––

function PARAMETER_DEFINITION_OF(STATISTIC_RESULT : in T_STATISTIC_RESULT; PARAMETER_INDEX : in T_PARAMETERS_RANGE) return T_PARAMETER_DEFINITION;

–– Extract the definition of a given parameter in –– the current statistic result by specifying its ordering number. –– –– Parameters : –– STATISTIC_RESULT : private statistic result –– PARAMETER_INDEX : index of the parameter in the statis-tic –– result : –– valid index is in range 1..PARA-METERS_NUMBER_OF() –– Exceptions : –– X_STATISTIC_RESULT_NOT_OPENED : statistic result is not –– opened –– X_STATISTIC_RESULT_ERROR : the given statistic resultis –– invalid –– X_INVALID_PARAMETER : given parameter index is invalid ––

function PARAMETER_DEFINITION_OF_N(STATISTIC_RESULT : in T_STATISTIC_RESULT; PARAMETER_NAME : in TEV_DEFINITIONS.T_PARAMETER_NAME) return T_PARAMETER_DEFINITION;

–– Extract the definition of a given parameter in the current –– statistic result by specifying its name. –– –– Parameters : –– STATISTIC_RESULT : private statistic result –– PARAMETER_NAME : name of the parameter defined in the –– statistic result –– Exceptions : –– X_STATISTIC_RESULT_NOT_OPENED : statistic result is not –– opened –– X_STATISTIC_RESULT_ERROR : the given statistic resultis –– invalid –– X_INVALID_PARAMETER : given parameter name is invalid ––

function ENGINEERING_UNIT_OF(PARAMETER_DEFINITION : in T_PARAMETER_DEFINITION)

Page 529: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

520

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

return MPS_DEFINITIONS.T_ENGINEERING_UNIT; –– Return the engineering unit of this parameter. –– –– Parameters : –– PARAMETER_DEFINITION : private parameter definition –– Exceptions : –– X_INVALID_PARAMETER : given parameter definition isinvalid ––

function PARAMETER_INDEX_OF(PARAMETER_DEFINITION : in T_PARAMETER_DEFINITION)return POSITIVE;

–– Return the index of this parameter. –– –– Parameters : –– PARAMETER_DEFINITION : private parameter definition –– Exceptions : –– X_INVALID_PARAMETER : given parameter definition isinvalid ––

function SOURCE_FILE_TYPE_OF(PARAMETER_DEFINITION : in T_PARAMETER_DEFINITION)return TEV_DEFINITIONS.T_SOURCE_FILE_TYPE;

–– Return the type of the source files used for this parameter. –– –– Parameters : –– PARAMETER_DEFINITION : private parameter definition –– Exceptions : –– X_INVALID_PARAMETER : given parameter definition isinvalid ––

function PRODUCER_NAME_OF(PARAMETER_DEFINITION : in T_PARAMETER_DEFINITION) return TEV_DEFINITIONS.T_PRODUCER_NAME;

–– Return the producer name of this parameter. –– –– Parameters : –– PARAMETER_DEFINITION : private parameter definition –– Exceptions : ––

function TITLE_OF(STATISTIC_RESULT : in T_STATISTIC_RESULT) return TEV_DEFINITIONS.T_TITLE;

–– Return the statistic result title. –– –– Parameters : –– STATISTIC_RESULT : private statistic result –– Exceptions : –– X_STATISTIC_RESULT_NOT_OPENED : statistic result is notopened –– X_NO_READ_ACCESS : statistic result file notopened for read access ––

function GET_SELECTED_ON_TIME_TYPE(STATISTIC_RESULT : in T_STATISTIC_RESULT) return DBS_DEFINITIONS.T_TIME_TYPE;

–– Return the time type of the selection –– –– Parameters : –– STATISTIC_RESULT : private statistic result –– Exceptions : –– X_STATISTIC_RESULT_NOT_OPENED : statistic result is notopened

–– X_NO_READ_ACCESS : statistic result filenot opened for read access ––

function GET_ORDERED_BY_TIME_TYPE(STATISTIC_RESULT : in T_STATISTIC_RESULT) return DBS_DEFINITIONS.T_TIME_ORDERING;

–– Return the time ordering of the selection –– –– Parameters : –– STATISTIC_RESULT : private statistic result –– Exceptions :

Page 530: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

521

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– X_STATISTIC_RESULT_NOT_OPENED : statistic result is notopened

–– X_NO_READ_ACCESS : statistic result filenot opened for read access ––

procedure EXTRACT_STATISTICS(STATISTIC_RESULT : in T_STATISTIC_RESULT; PARAMETER_DEFINITION : in T_PARAMETER_DEFINITION; STATISTIC_VALUES : in out T_STATISTIC_VALUE);

–– Extract data from a statistic result for a given parameter. –– –– Parameters : –– STATISTIC_RESULT : private statistic result –– PARAMETER_DEFINITION : private parameter definition –– STATISTIC_VALUES : statistic values –– Exceptions : –– X_STATISTIC_RESULT_NOT_OPENED : supplied statistic re-sult –– is not opened –– X_NO_READ_ACCESS : statistic result not open with read –– access –– X_INVALID_PARAMETER : invalid parameter definition –– X_NO_DATA_AVAILABLE : data are not available –– X_ERROR_ACCESSING_FILE : general error accessing list-ing –– result file ––

procedure ADD_STATISTICS(STATISTIC_RESULT : in out T_STATISTIC_RESULT; PARAMETER_NAME : in TEV_DEFINITIONS.T_PARAMETER_NAME; ENGINEERING_UNIT : in MPS_DEFINITIONS.T_ENGINEERING_UNIT; SOURCE_FILE_TYPE : in TEV_DEFINITIONS.T_SOURCE_FILE_TYPE; PRODUCER : in TEV_DEFINITIONS.T_PRODUCER_NAME; PARAM_VALUES : in T_PARAMETER_VALUE_L);

–– Add a new value in the statistic result for the next empty –– parameter. –– –– Parameters : –– STATISTIC_RESULT : private statistic result –– PARAMETER_NAME : parameter name to be added –– ENGINEERING_UNIT : engineering unit for the parameter –– SOURCE_FILE_TYPE : source file type for the parameter –– PRODUCER : producer of the parameter –– PARAM_VALUES : list of parameter values for which tocalculate the statistics –– Exceptions : –– X_STATISTIC_RESULT_NOT_OPENED : statistic result is not –– opened –– X_NO_WRITE_ACCESS : statistic result not opened forwrite –– access –– X_NO_PARAMETER_AVAILABLE : no parameter created yet –– X_ERROR_ACCESSING_FILE : general error accessing file –– X_INVALID_PARAMETER : the parameter is invalid –– X_INVALID_VALUE : an inconsistency exists in the values

–– Provided exceptions : X_STATISTIC_RESULT_NOT_OPENED, X_ERROR_ACCESSING_FILE, X_STATISTIC_RESULT_ALREADY_OPENED, X_STATISTIC_RESULT_ALREADY_EXISTS, X_INVALID_NAME, X_NO_READ_ACCESS, X_NO_WRITE_ACCESS, X_INVALID_PARAMETER, X_PARMS_DO_NOT_FIT_IN_PORTRAIT_WIDTH, X_INVALID_VALUE : exception;

private type T_PARAMETER_DEFINITION is

record PARAMETER_INDEX : TEV_DEFINITIONS.T_PARAMETERS_RANGE;

Page 531: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

522

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

PARAMETER_NAME : TEV_DEFINITIONS.T_PARAMETER_NAME; ENGINEERING_UNIT : MPS_DEFINITIONS.T_ENGINEERING_UNIT; SOURCE_FILE_TYPE : TEV_DEFINITIONS.T_SOURCE_FILE_TYPE; PRODUCER : TEV_DEFINITIONS.T_PRODUCER_NAME;

end record;

subtype T_PARAMETER_RANGE_L is NATURAL range 1 .. TEV_DEFINITIONS.MAX_NUMBER_OF_PARAMETERS_IN_DEF;

type T_PARAMETER_DEFINITIONS_ARRAY is array(T_PARAMETER_RANGE_L) of T_PARAMETER_DEFINITION; –– definition of an array of a parameter definition

type T_STATISTIC_DEFINITION isrecord TIME_FRAME : TEV_DEFINITIONS.T_TIME_FRAME;

SELECT_ON : DBS_DEFINITIONS.T_TIME_TYPE;ORDER_BY : DBS_DEFINITIONS.T_TIME_ORDERING;

DATA_SET : TEV_DEFINITIONS.T_RESULT_REF; TITLE : TEV_DEFINITIONS.T_TITLE; SAMPLING : TEV_DEFINITIONS.T_SAMPLING; SESSIONS_NUMBER : NATURAL := 0; SESSIONS : TEV_DEFINITIONS.T_DEFINITION_SESSION_NAMES(TEV_DEFINITIONS.T_SESSIONS_RANGE); INCLUDE_DEF_SESSION : BOOLEAN; EXECUTION_TIME : CGS_CALENDAR.CGS_DATE_AND_TIME; PARAMETERS_NUMBER : NATURAL := 0; PARAMETER_DEFINITIONS : T_PARAMETER_DEFINITIONS_ARRAY;

end record;

package DEFINITION_IO is new DIRECT_IO( ELEMENT_TYPE => T_STATISTIC_DEFINITION);

–– DEFINITION_IO is used to access the listing result definition as –– the header of the file ––

package STATISTICS_IO is new DIRECT_IO( ELEMENT_TYPE => T_STATISTIC_VALUE);

–– STATISTICS_IO is used to access the statistic value records inside –– the file, the statistic value to access is located at byte offset –– PTR_TO_STATISTIC ––

type T_STATISTIC_RESULT isrecord DEFINITION_FILE_TYPE : DEFINITION_IO.FILE_TYPE; STATISTIC_FILE_TYPE : STATISTICS_IO.FILE_TYPE; FILENAME : TEV_DEFINITIONS.T_COMPLETE_FILENAME; ACCESS_STATUS : TEV_DEFINITIONS.T_ACCESS_STATUS := TEV_DEFINITIONS.READ; CURRENT_STATUS : TEV_DEFINITIONS.T_CURRENT_STATUS := TEV_DEFINITIONS.CLOSED; STATISTIC_DEFINITION : T_STATISTIC_DEFINITION;

end record;

end ADT_STATISTICS_RESULT;

Page 532: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

523

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Formal Interface Description

–––– ADT_GRAPH_RESULT––––****************************************************************************––ABSTRACT–––––– Provides operations to access a graphs result file.––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––IDENTIFICATION–––– PROJECT NAME : CGS–– PRODUCT NAME : TEV–– CI–NUMBER : 1216 858–– OBJECT NAME : HDT_TEV_API.ADT_GRAPH_RESULT––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––CONTENTS–––– COMPILER : VERDIX ADA 6.0.3.C–– LANGUAGE : ADA–– SPECIAL CONTENTS:–– CHANGE HISTORY–– V5.2 at Central Repository V4.0 (moon)–– creator: thvvicos (on host darkvador)–– creation date: 20.07.97 20:54:52–– comment:–– Compliance with 4.1 : Tool id added––––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.4 at Spacebel Informatique, Brussels–– creator: jm (on host asimov)–– creation date: 15.12.95 16:26:02–– comment:–– Not numeric data refused––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.3 at Spacebel Informatique, Brussels–– creator: jm (on host asimov)–– creation date: 29.09.95 18:09:42–– comment:–– Update for SMT/LT (Req.485)––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.2 at Spacebel Informatique, Brussels–– creator: rowena (on host moon)–– creation date: 25.07.95 10:47:44–– comment:–– Move from VICOS_CALENDAR to CGS_CALENDAR––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– END HISTORY––****************************************************************************––

with DBS_DEFINITIONS;with TEV_DEFINITIONS;with MPS_DEFINITIONS;with CGS_CALENDAR;with ADT_ENGINEERING_VALUE;with VICOS_LIST;with TEXT_IO; package ADT_GRAPH_RESULT is

type T_GRAPH_RESULT is limited private; –– private graph result

–– Provided operations : procedure OPEN(

Page 533: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

524

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

GRAPH_RESULT_FILENAME : in STRING;GRAPH_RESULT : in out T_GRAPH_RESULT;ACCESS_STATUS : in TEV_DEFINITIONS.T_ACCESS_STATUS

:= TEV_DEFINITIONS.READ;ALLOW_OVERWRITE : in BOOLEAN := FALSE);

–– Description: –– Open a graph result with read access if it already exists, –– or with write access to create a new one. –– If opened with read access translate the definition into –– T_GRAPH_RESULT and write current date and time in EXECUTION_TIME. –– –– Parameters : –– GRAPH_RESULT_FILENAME : filename of the graph result –– GRAPH_RESULT : private graph result –– ACCESS_STATUS : – READ only to extract information from –– graph result –– WRITE when generating a graph result –– ALLOW_OVERWRITE : when ACCESS_STATUS is WRITE, –– needed to allow generation of a graph result inside an already –– existing file –– Exceptions : –– X_ERROR_ACCESSING_FILE : general error reported when –– accessing the file –– X_GRAPH_RESULT_ALREADY_OPENED : graph result has not –– been closed –– X_GRAPH_RESULT_ALREADY_EXISTS : file exists and –– overwrite is not allowed –– X_INVALID_NAME: graph result name is too long ––

procedure CLOSE(GRAPH_RESULT : in out T_GRAPH_RESULT); –– Description: –– if graph result opened for write access then write graph –– result file and close, otherwise close. –– –– Parameters : –– GRAPH_RESULT : private graph result –– Exceptions : –– X_ERROR_ACCESSING_FILE : general error reported when –– accessing the file –– X_GRAPH_RESULT_NOT_OPENED : graph result already closed –– X_NO_WRITE_ACCESS : graph result not opened with write –– access –– X_UNABLE_TO_REMOVE_FILE : unable to remove temporary –– file –– X_NOT_NUMERIC_DATA : graph result contains a not numeric –– data –– X_INVALID_PROLOG_NAME : the prolog file does not exist –– X_NO_DATA_AVAILABLE : no parameters selected –– X_INVALID_SCALING : the value is outside the scaling or of the

wrong type

procedure DEFINE(GRAPH_RESULT : in out T_GRAPH_RESULT;GRAPH_TYPE : in TEV_DEFINITIONS.T_GRAPH_TYPE;TIME_FRAME : in TEV_DEFINITIONS.T_TIME_FRAME;SELECT_ON : in DBS_DEFINITIONS.T_TIME_TYPE;ORDER_BY : in DBS_DEFINITIONS.T_TIME_ORDERING;INCLUDE_DEF_SESSION : in BOOLEAN;SESSIONS : in TEV_DEFINITIONS.T_DEFINITION_SESSION_NAMES;DATA_SET : in TEV_DEFINITIONS.T_RESULT_REF;GRAPH_NAME : in TEV_DEFINITIONS.T_RESULT_NAME);

–– Description: –– Build and initialise the definition of an opened graph result –– –– Parameters : –– GRAPH_RESULT : private event result –– TIME_FRAME : time frame for the graph result –– INCLUDE_DEF_SESSION : default session included in data set –– SESSIONS : execution sessions included in data set –– DATA_SET : the data set from which the graph result is –– built –– GRAPH_NAME : the graph name

Page 534: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

525

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– Exceptions : –– X_GRAPH_RESULT_NOT_OPENED : graph result is not opened –– X_NO_WRITE_ACCESS : graph result not opened for write –– access –– X_TOO_MANY_SESSIONS : too many sessions selected

procedure SET_LINE_CHARACTERISTICS(GRAPH_RESULT : in out T_GRAPH_RESULT;PARAMETERS_INFO :in

TEV_DEFINITIONS.T_LINE_PARAMETERS_INFO;X_NAME : in TEV_DEFINITIONS.T_AXIS_NAME;Y_NAME : in TEV_DEFINITIONS.T_AXIS_NAME;Y_SCALING : in TEV_DEFINITIONS.T_GRAPH_SCALING;RELATIVE_TIME : in boolean := false);

–– Set the characteristics for a line graph –– –– Parameters : –– GRAPH_RESULT : private graph result –– PARAMETERS_INFO : parameter details for line graph –– Y_NAME : name of y axis

–– RELATIVE_TIME : true if time info is relative –– Exceptions : –– X_GRAPH_RESULT_NOT_OPENED : graph result is not opened –– X_NO_WRITE_ACCESS : graph result not opened for write –– access ––

procedure SET_CHART_CHARACTERISTICS(GRAPH_RESULT : in out T_GRAPH_RESULT;CHART_COLOURS : in TEV_DEFINITIONS.T_CHART_COLOURS);

–– Set the pie/bar chart characteristics –– –– Parameters : –– GRAPH_RESULT : private graph result –– CHART_COLOURS : allowed colours for the parameters –– Exceptions : –– X_GRAPH_RESULT_NOT_OPENED : graph result is not opened –– X_NO_WRITE_ACCESS : graph result is not opened for write –– access –– X_INVALID_PARAMETER_NO : invalid number of parameters –– X_INVALID_GRAPH_TYPE : not a pie or bar chart

procedure SET_XY_CHARACTERISTICS(GRAPH_RESULT : in out T_GRAPH_RESULT;PARAMETERS_INFO : in TEV_DEFINITIONS.T_XY_INFO);

–– Set the xy graph characteristics –– –– Parameters : –– GRAPH_RESULT : private graph result –– CHARACTERISTICS : xy graph parameters info –– Exceptions : –– X_GRAPH_RESULT_NOT_OPENED : graph result is not opened –– X_NO_WRITE_ACCESS : graph result is not opened for write –– access ––

function DATA_SET_NAME_OF(GRAPH_RESULT : in T_GRAPH_RESULT) return TEV_DEFINITIONS.T_RESULT_REF;

–– Get the name of the data set –– –– Parameters : –– GRAPH_RESULT : private graph result –– Exceptions : –– X_GRAPH_RESULT_NOT_OPENED : graph result is not open –– X_NO_READ_ACCESS : graph result not opened for read access

function TITLE_OF(GRAPH_RESULT : in T_GRAPH_RESULT) return TEV_DEFINITIONS.T_RESULT_NAME;

–– Get the title of the graph result –– –– Parameters : –– GRAPH_RESULT : private graph result –– Exceptions :

Page 535: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

526

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– X_GRAPH_RESULT_NOT_OPENED : graph result is not open –– X_NO_READ_ACCESS : graph result not opened for read access

function TIME_FRAME_OF(GRAPH_RESULT : in T_GRAPH_RESULT) return TEV_DEFINITIONS.T_TIME_FRAME;

–– Get the time frame of the graph result –– –– Parameters : –– GRAPH_RESULT : private graph result –– Exceptions : –– X_GRAPH_RESULT_NOT_OPENED : graph result is not open –– X_NO_READ_ACCESS : graph result not opened for read access

––

function GRAPH_TYPE_OF(GRAPH_RESULT : in T_GRAPH_RESULT) return TEV_DEFINITIONS.T_GRAPH_TYPE;

–– Get the graph type of the graph result file –– –– Parameters : –– GRAPH_RESULT : private graph result –– Exceptions : –– X_GRAPH_RESULT_NOT_OPENED : graph result is not open –– X_NO_READ_ACCESS : graph result not opened for read access ––

function SESSION_NUMBER_OF(GRAPH_RESULT : in T_GRAPH_RESULT) return NATURAL;

–– Get the number of execution sessions in the data set –– –– Parameters : –– GRAPH_RESULT ; private graph result –– Exceptions : –– X_GRAPH_RESULT_NOT_OPENED : graph result is not open –– X_NO_READ_ACCESS : graph result not opened for read access ––

function SESSION_NAMES_OF(GRAPH_RESULT : in T_GRAPH_RESULT)return TEV_DEFINITIONS.T_DEFINITION_SESSION_NAMES;

–– Get the execution session names from the data set –– –– Parameters : –– GRAPH_RESULT : private graph result –– Exceptions : –– X_GRAPH_RESULT_NOT_OPENED : the graph result is not open –– X_NO_READ_ACCESS : graph result not opened for read access ––

function NUMBER_OF_PARAMETERS(GRAPH_RESULT : in T_GRAPH_RESULT) return NATURAL;

–– Get the number of parameters for a graph result–––– Parameters :–– GRAPH_RESULT : private graph result–– Exceptions :

–– X_GRAPH_RESULT_NOT_OPENED : the graph result is not open –– X_NO_READ_ACCESS: graph result not opened for read acces

procedure PARAMETER_DETAILS(GRAPH_RESULT : in T_GRAPH_RESULT;PARAMETER_NO : in NATURAL;PARAMETER_NAME: out

TEV_DEFINITIONS.T_PARAMETER_NAME;ENGINEERING_UNIT: out

MPS_DEFINITIONS.T_ENGINEERING_UNIT;SOURCE_FILE_TYPE: out

TEV_DEFINITIONS.T_SOURCE_FILE_TYPE;ITEM_TYPE: out

TEV_DEFINITIONS.T_MEASUREMENT_ALTERNATIVES;PRODUCER : out

TEV_DEFINITIONS.T_PRODUCER_NAME);

–– Get the parameter details of a graph result––

Page 536: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

527

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– Parameters :–– GRAPH_RESULT : private graph result–– PARAMETER_NO: the number of the parameter index–– PARAMETER_NAME: the parameter name –– ENGINEERING_UNIT: the engineering unit–– SOURCE_FILE_TYPE: the source file type–– ITEM_TYPE : the item type–– PRODUCER : the producer

–– Exceptions : –– X_GRAPH_RESULT_NOT_OPENED : the graph result is not open –– X_NO_READ_ACCESS: graph result not opened for read acces –– X_INVALID_PARAMETER_INDEX : invalid parameter index

procedure GET_LINE_GRAPH_CHARACTERISTICS(GRAPH_RESULT : in T_GRAPH_RESULT;LINE_INFO: out

TEV_DEFINITIONS.T_LINE_PARAMETERS_INFO;X_NAME : out TEV_DEFINITIONS.T_AXIS_NAME;Y_NAME : out TEV_DEFINITIONS.T_AXIS_NAME;NO_PARAMETERS : out

TEV_DEFINITIONS.T_LINE_GRAPH_RANGE;Y_SCALING : out TEV_DEFINITIONS.T_GRAPH_SCALING;X_REL_TIME : out BOOLEAN);

–– Get the characteristics of a line graph –– –– Parameters : –– GRAPH_RESULT : private graph result –– LINE_INFO : the characteristics of a line graph –– X_NAME : the name of the x axis –– Y_NAME : the name of the y axis –– Y_SCALING : the y scaling –– X_REL_TIME : relative time on the x axis –– Exceptions : –– X_GRAPH_RESULT_NOT_OPENED : graph result is not open –– X_INVALID_GRAPH_TYPE : the graph result is not of the type line –– X_NO_READ_ACCESS : the graph result is not opened for read –– access

procedure GET_CHART_CHARACTERISTICS(GRAPH_RESULT : in T_GRAPH_RESULT;CHART_COLOURS : out TEV_DEFINITIONS.T_CHART_COLOURS);

–– Get the characteristics of a pie/bar chart –– –– Parameters : –– GRAPH_RESULT : private graph result –– CHART_COLOURS : allowed colours for the parameters –– Exceptions : –– X_GRAPH_RESULT_NOT_OPENED : the graph result is not open –– X_INVALID_GRAPH_TYPE : the graph result is not of type bar X_NO_READ_ACCESS : the graph result is not opened for read –– access

procedure GET_XY_CHARACTERISTICS(GRAPH_RESULT : in T_GRAPH_RESULT;XY_INFO : out TEV_DEFINITIONS.T_XY_INFO);

–– Get the characteristics of an xy graph –– –– Parameters : –– GRAPH_RESULT : private graph result –– XY_INFO : the characteristics of an xy graph –– Exceptions : –– X_GRAPH_RESULT_NOT_OPENED : the graph result is not open –– X_INVALID_GRAPH_TYPE : the graph result is not of type XY X_NO_READ_ACCESS : the graph result is not opened for read –– access ––

function EXECUTION_TIME_OF(GRAPH_RESULT : in T_GRAPH_RESULT)return CGS_CALENDAR.CGS_DATE_AND_TIME;

–– return the execution date and time of the graph result –– –– Parameters : –– GRAPH_RESULT : private graph result

Page 537: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

528

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– Exceptions : –– X_GRAPH_RESULT_NOT_OPENED : graph result is not open X_NO_READ_ACCESS : the graph result is not opened for read –– access –– –– function INCLUDE_DEFAULT_SESSION(GRAPH_RESULT : in T_GRAPH_RESULT)

return BOOLEAN; –– return true if the default session is included –– –– Parameters : –– GRAPH_RESULT : private graph result –– Exceptions : –– X_GRAPH_RESULT_NOT_OPENED : graph result is not open X_NO_READ_ACCESS : the graph result is not opened for read –– access ––

function GET_SELECTED_ON_TIME_TYPE(GRAPH_RESULT : in T_GRAPH_RESULT)

return DBS_DEFINITIONS.T_TIME_TYPE; –– return the time type of the selection –– –– Parameters : –– GRAPH_RESULT : private graph result –– Exceptions : –– X_GRAPH_RESULT_NOT_OPENED : graph result is not open X_NO_READ_ACCESS : the graph result is not opened for read –– access ––

function GET_ORDERED_BY_TIME_TYPE(GRAPH_RESULT : in T_GRAPH_RESULT)return DBS_DEFINITIONS.T_TIME_ORDERING;

–– return the time type of the selection –– –– Parameters : –– GRAPH_RESULT : private graph result –– Exceptions : –– X_GRAPH_RESULT_NOT_OPENED : graph result is not open X_NO_READ_ACCESS : the graph result is not opened for read –– access ––

procedure ADD_NEW_PARAMETER(GRAPH_RESULT : in out T_GRAPH_RESULT;PARAMETER_NAME : in TEV_DEFINITIONS.T_PARAMETER_NAME;ENGINEERING_UNIT : in MPS_DEFINITIONS.T_ENGINEERING_UNIT;SOURCE_FILE_TYPE : in TEV_DEFINITIONS.T_SOURCE_FILE_TYPE;PRODUCER : in TEV_DEFINITIONS.T_PRODUCER_NAME;ITEM_TYPE :in TEV_DEFINITIONS.T_MEASUREMENT_ALTERNATIVES);

–– Add a new parameter in the graph result definition. –– –– Parameters : –– GRAPH_RESULT : private graph result –– PARAMETER_NAME : name of the parameter inserted –– ENGINEERING_UNIT : engineering unit –– SOURCE_FILE_TYPE : type of the source file –– PRODUCER : name of the producer –– ITEM_TYPE : item type –– Exceptions : –– X_GRAPH_RESULT_NOT_OPENED : graph result is not opened –– X_NO_WRITE_ACCESS : graph result not opened for write –– access –– X_TOO_MANY_PARAMETERS : maximum number of parameter –– reached –– X_DIFFERENT_ENGINEERING_UNITS_FOR_PIE_CHART : –– parameters of a pie chart have different engineering units ––

procedure ADD_NEW_VALUES(GRAPH_RESULT : in out T_GRAPH_RESULT;VALUES : in out

Page 538: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

529

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

TEV_DEFINITIONS.T_PARAMETER_VALUE_L); –– Add a list of values in the graph result for the last defined –– parameter. This operation may not be used for an XY graph. –– –– Parameters : –– GRAPH_RESULT : private graph result –– VALUES : list of values –– Exceptions : –– X_GRAPH_RESULT_NOT_OPENED : graph result is not opened –– X_NO_WRITE_ACCESS : graph result not opened for write –– access –– X_NO_PARAMETER_AVAILABLE : no parameter created yet –– X_ERROR_ACCESSING_FILE : general error accessing file –– X_NOT_ALLOWED_FOR_XY : operation not allowed for XY –– graph –– X_VALUES_ALREADY_SET : values have already been added

procedure ADD_VALUES_FOR_XY_GRAPH(GRAPH_RESULT : in out T_GRAPH_RESULT;X_VALUES : in out TEV_DEFINITIONS.T_ENGINEERING_VALUE_L;Y_VALUES : in out TEV_DEFINITIONS.T_ENGINEERING_VALUE_L;LT_TIME_VALUES : in out TEV_DEFINITIONS.T_DATE_AND_TIME_L;SMT_TIME_VALUES : in out TEV_DEFINITIONS.T_DATE_AND_TIME_L);

–– Add the values for an XY graph. There must be the same number –– of elements in each list. –– –– Parameters : –– GRAPH_RESULT : private graph result –– X_VALUES : list of x values –– Y_VALUES : list of corresponding y values –– LT_TIME_VALUES : list of corresponding LT time tags –– SMT_TIME_VALUES : list of corresponding SMT time tags –– Exceptions : –– X_GRAPH_RESULT_NOT_OPENED : graph result is not opened –– X_NO_WRITE_ACCESS : graph result not opened for write access –– X_X_AND_Y_PARAMETERS_NOT_AVAILABLE : no x and y –– parameters created yet –– X_ERROR_ACCESSING_FILE : general error accessing file –– X_INVALID_GRAPH_TYPE : Graph type not XY –– X_LISTS_DO_NOT_MATCH : the x values, y values and time –– values do not match ––

procedure FORMAT_RESULT(FILE_TO_FORMAT : in STRING;FORMATTED_FILE : in STRING;TOOL_ID : in TEV_DEFINITIONS.T_TOOL_ID := POSITIVE’first);

–– Operation retained for orthogonal processing through the –– tools. No formatting is undertaken as the file is already in –– postscript format. –– –– Parameters : –– FILE_TO_FORMAT : file to format –– FORMATTED_FILE : filename of formatted result –– TOOL_ID : the tool id –– Exceptions : –– X_FILE_DOES_NOT_EXIST : the file to format does not exist –– X_ACCESS_VIOLATION : unable to access the file to format –– X_ERROR_READNG_FILE : general error reading file to format –– X_ERROR_CREATING_FILE : general error creating formatted –– result

X_GRAPH_RESULT_ALREADY_OPENED,X_GRAPH_RESULT_ALREADY_EXISTS,X_GRAPH_RESULT_NOT_OPENED,X_DIFFERENT_ENGINEERING_UNITS_FOR_PIE_CHART,X_NOT_ALLOWED_FOR_XY,X_X_AND_Y_PARAMETERS_NOT_AVAILABLE,X_LISTS_DO_NOT_MATCH,X_NO_WRITE_ACCESS,

Page 539: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

530

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

X_NO_READ_ACCESS,X_ERROR_ACCESSING_FILE,X_TOO_MANY_SESSIONS,X_TOO_MANY_PARAMETERS,X_NO_PARAMETER_AVAILABLE,X_VALUES_ALREADY_SET,

–– added by JCT@SIF (dec.95) : data in graph must be numeric.X_NOT_NUMERIC_DATA,X_INVALID_SCALING,X_INVALID_GRAPH_TYPE,X_INVALID_PARAMETER_INDEX,X_INVALID_NAME,X_INVALID_PROLOG_NAME,X_NO_DATA_AVAILABLE : exception;

private

type T_GRAPH_CHARACTERISTIC(GRAPH_TYPE : TEV_DEFINITIONS.T_GRAPH_TYPE := TEV_DEFINITIONS.UNDEFINED) is

record case GRAPH_TYPE is

when TEV_DEFINITIONS.LINE => LINE_PARAMETER_INFO : TEV_DEFINITIONS.T_LINE_PARAMETERS_INFO; X_NAME : TEV_DEFINITIONS.T_AXIS_NAME; Y_NAME : TEV_DEFINITIONS.T_AXIS_NAME; X_REL_TIME : BOOLEAN := FALSE;

Y_SCALING : TEV_DEFINITIONS.T_GRAPH_SCALING:= TEV_DEFINI-

TIONS.DEFAULT_SCALING;when TEV_DEFINITIONS.BAR | TEV_DEFINITIONS.PIE =>

CHART_COLOURS : TEV_DEFINITIONS.T_CHART_COLOURS;when TEV_DEFINITIONS.XY => XY_PARAMETER_INFO : TEV_DEFINITIONS.T_XY_INFO;when others =>

null; end case;

end record;

type T_PARAMETER_DEFINITION isrecord PARAMETER_NAME : TEV_DEFINITIONS.T_PARAMETER_NAME :=

TEV_DEFINITION-S.NULL_PARAMETER_NAME;

ENGINEERING_UNIT : MPS_DEFINITIONS.T_ENGINEERING_UNIT:= TEV_DEFINITION-

S.NULL_TEV_ENGINEERING_UNIT; SOURCE_FILE_TYPE : TEV_DEFINITIONS.T_SOURCE_FILE_TYPE:=

TEV_DEFINITIONS.AR-CHIVED_FILE;

ITEM_TYPE : TEV_DEFINITIONS.T_MEASUREMENT_ALTERNATIVES:= TEV_DEFINITIONS.EGSE_IN-

TEGER_MEASUREMENT; PRODUCER : TEV_DEFINITIONS.T_PRODUCER_NAME:=

TEV_DEFINITIONS.NULL_PRO-DUCER_NAME;

DATA_NUMBER : natural := natural’first; DATA_LIST : TEV_DEFINITIONS.T_PARAMETER_VALUE_L;

end record; –– definition of a parameter

type T_GRAPH_DEFINITION isrecord DATA_SET : TEV_DEFINITIONS.T_RESULT_REF; TIME_FRAME : TEV_DEFINITIONS.T_TIME_FRAME; SELECT_ON : DBS_DEFINITIONS.T_TIME_TYPE; ORDER_BY : DBS_DEFINITIONS.T_TIME_ORDERING; GRAPH_NAME : TEV_DEFINITIONS.T_RESULT_NAME; GRAPH_CHARACTERISTIC : T_GRAPH_CHARACTERISTIC; SESSIONS_NO : natural; SESSIONS : TEV_DEFINITIONS.T_DEFINITION_SESSION_NAMES(

TEV_DEFINITION-S.T_SESSIONS_RANGE);

INCLUDE_DEF_SESSION : BOOLEAN;

Page 540: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

531

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

EXECUTION_TIME : CGS_CALENDAR.CGS_DATE_AND_TIME; end record; –– definition of a graph. The execution sessions are the –– execution sessions included in the data set

type T_PARAMETER_VALUE_DETAILS is array( 1..TEV_DEFINITIONS.MAX_PARMS_IN_CHART)

ofT_PARAMETER_DEFINITION;

type T_GRAPH_RESULT isrecord FILE_TYPE : TEXT_IO.FILE_TYPE; FILENAME : TEV_DEFINITIONS.T_COMPLETE_FILENAME; ACCESS_STATUS : TEV_DEFINITIONS.T_ACCESS_STATUS

:= TEV_DEFINITIONS.READ; CURRENT_STATUS : TEV_DEFINITIONS.T_CURRENT_STATUS

:= TEV_DEFINITION-S.CLOSED;

GRAPH_DEFINITION : T_GRAPH_DEFINITION;PARAMETERS_NO : natural := natural’first;

GRAPH_DATA : T_PARAMETER_VALUE_DETAILS; end record;end ADT_GRAPH_RESULT;

Page 541: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

532

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Formal Interface Description

–––– ADT_PACKET_RESULT ––––****************************************************************************––ABSTRACT–––––– Provides operations to access a packet result file as an ADT.––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––IDENTIFICATION–––– PROJECT NAME : CGS–– PRODUCT NAME : TEV–– CI–NUMBER : 1216 858–– OBJECT NAME : HDT_TEV_API.ADT_PACKET_RESULT––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––CONTENTS–––– COMPILER : VERDIX ADA 6.0.3.C–– LANGUAGE : ADA–– SPECIAL CONTENTS:–– CHANGE HISTORY–– V4.4 at ASTRIUM–– creator: Bruening–– creation date: 11.07.00–– comment:–– Provide procedures to format ADT packet in memory directly in ascii–– (without ADT RESULT FILE)––*––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.3 at DASA–– creator: Bruening–– creation date: 01.02.00–– comment:–– Add CAL_STATE_CODE for a GDU in T_PACKET_RECORD. The calibrated value–– is then stored in the ADT, to avoid calling MDB for the formatting––*––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.2 at DASA–– creator: Bruening–– creation date: 03.05.99–– comment:–– The record T_PACKET_DEFINITION contains two new components :–– ADU_SID_PATHNAME List of SID–pathname for the ADU which –– have been dumped–– GDU_SID_PATHNAME List of SID–pathname for the GDU which –– have been dumped–– –– The two new components of the record can be set up through –– the procedure DEFINE ––*––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– V4.2 at DASA–– creator: Bruening–– creation date: 28.04.99–– comment:–– New procedure CHANGE_TIME_FRAME_WHEN_INTERRUPTION used–– to store into the result file the end time tag as the –– interruption time tag–––– END HISTORY––****************************************************************************––

with TEV_DEFINITIONS;with DBS_DEFINITIONS;with CGS_CALENDAR;with VICOS_LIST;with DIRECT_IO;with ADT_ADU;with ADT_GDU;with VICOS_DEFINITIONS;

Page 542: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

533

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

with MPS_DEFINITIONS;with TEXT_IO;

package ADT_PACKET_RESULT is

–– Provided types and constants :

SPEC_SCCSID_ADS : constant STRING := ”@(#) tev_adt_packet_result_.a/main/solaris–port/cgs_4.1/cgs_4.2/cgs_4.3/cgs_4.4/1 07/24/00 17:15:24@(#)”;

type T_PACKET_DEFINITION is private;

type T_PACKET_RECORD(PACKET : TEV_DEFINITIONS.T_PACKET_TYPE := TEV_DEFINITIONS.NO_CHOICE) is record

PACKET_ID : POSITIVE;ARCHIVED_TIME : CGS_CALENDAR.CGS_DATE_AND_TIME := CGS_CALENDAR.NULL_DATE_AND_TIME;PRODUCER : VICOS_DEFINITIONS.T_APPLICATION_NAME;

case PACKET iswhen TEV_DEFINITIONS.ADU => ADU_PACKET : ADT_ADU.T_ADU;when TEV_DEFINITIONS.GDU => GDU_PACKET : ADT_GDU.T_GDU;

CAL_STATE_CODE : MPS_DEFINITIONS.STATE_CODE := (others => ’ ’);when others => null;

end case; end record; –– Packet record containing any kind of record : ADU or GDU

–– definition of a list of packets (via the vicos list) package P_PACKET_LIST is new VICOS_LIST(T_PACKET_RECORD); subtype T_PACKET_L is P_PACKET_LIST.LIST; type T_ADU_GDU_PATHNAME_LIST is array (integer range 1..20)

of TEV_DEFINITIONS.T_PACKET_PATHNAME; type T_SID_PATHNAME_LIST is array (integer range 1..20) of TEV_DEFINITIONS.T_SID_PATHNAME;

–– T_PACKET_RESULT_ACCESS added by RSE for SPR_2391 type T_PACKET_RESULT_ACCESS_STATUS is (READ,WRITE,UPDATE_DISPLAY_CHARACTERISTICS);

type T_PACKET_RESULT is limited private; –– Packet result ADT record

–– Provided operations : procedure SAFE_OPEN(PACKET_RESULT_FILENAME : in STRING;

PACKET_RESULT : in out T_PACKET_RESULT);–– Description :–– Open a packet result, with read access,–– –– Parameters :–– PACKET_RESULT_FILENAME : filename of the packet result–– PACKET_RESULT : private packet result–––– Exceptions :–– X_ERROR_ACCESSING_FILE : general error reported when–– accessing the file–– X_INVALID_NAME : packet result name is too long––

procedure SAFE_CLOSE(PACKET_RESULT : in out T_PACKET_RESULT);–– Description :–– Close a previously opened packet result file.–––– Parameters :–– PACKET_RESULT : private packet result–– Exceptions : none––

–– modified by RSE for SPR_2391 procedure OPEN(PACKET_RESULT_FILENAME : in STRING;

PACKET_RESULT : in out T_PACKET_RESULT; –– ACCESS_STATUS : in TEV_DEFINITIONS.T_ACCESS_STATUS –– := TEV_DEFINITIONS.READ;

Page 543: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

534

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

ACCESS_STATUS : in T_PACKET_RESULT_ACCESS_STATUS := READ; ALLOW_OVERWRITE : in BOOLEAN := FALSE);

–– Description : –– Open a packet result, with read access on an existing one, –– with write access to create a new one. –– with update_display_characteristics access to modify an existing one. –– Read definition. –– Write current date and time in EXECUTION_TIME if creating a new –– packet result. –– Close file –– Open file at offset PTR_TO_FIRST_PACKET –– –– Parameters : –– PACKET_RESULT_FILENAME : filename of the packet result –– PACKET_RESULT : private packet result –– ACCESS_STATUS : – READ only to extract information from –– packet result –– – WRITE when generating a packet result –– – UPDATE_DISPLAY_CHARACTERISTICS to modify an existing result –– ALLOW_OVERWRITE : when ACCESS_STATUS is WRITE, needed to allow –– generation of a packet result inside an already existing file –– Exceptions : –– X_ERROR_ACCESSING_FILE : general error reported when –– accessing the file –– X_PACKET_RESULT_ALREADY_OPENED : packet result is still in –– open state –– X_PACKET_RESULT_ALREADY_EXISTS : file exists and overwrite –– is not allowed –– X_INVALID_NAME : packet result name is too long ––

procedure CLOSE(PACKET_RESULT : in out T_PACKET_RESULT);–– Description :

–– Close a previously opened packet result file. –– Open file –– Write definition if opened for write access –– Close file –– –– Parameters : –– PACKET_RESULT : private packet result –– Exceptions : –– X_ERROR_ACCESSING_FILE : general error reported when –– accessing the file –– X_PACKET_RESULT_NOT_OPENED : packet result already closed ––

procedure BUILD_DEFINITION(PACKET_DEFINITION : in out T_PACKET_DEFINITION;PACKET_RESULT_NAME : in TEV_DEFINITIONS.T_COMPLETE_FILENAME;TIME_FRAME : in TEV_DEFINITIONS.T_TIME_FRAME;SELECT_ON : in DBS_DEFINITIONS.T_TIME_TYPE;ORDER_BY : in DBS_DEFINITIONS.T_TIME_ORDERING;PRODUCER : in TEV_DEFINITIONS.T_PRODUCER_NAME;INCLUDE_DEF_SESSION : in boolean;EXECUTION_SESSIONS :in TEV_DEFINITIONS.T_DEFINITION_SESSION_NAMES;CHARACTERISTIC : in TEV_DEFINITIONS.T_PACKET_TYPE

:= TEV_DEFINITIONS.ADUS;FORMAT : in TEV_DEFINITIONS.T_PACKET_FORMAT

:= TEV_DEFINITIONS.DEFAULT_PACKET_FORMAT;BYTES_PER_LINE : in TEV_DEFINITIONS.T_PACKET_BYTES_LINE

:= TEV_DEFINITIONS.DEFAULT_BYTES_LINE;PATHNAME : in TEV_DEFINITIONS.T_PACKET_PATHNAME;SUMMARY_FORMAT : in boolean := False;SELECTED_ADUS : in T_ADU_GDU_PATHNAME_LIST;SELECTED_GDUS : in T_ADU_GDU_PATHNAME_LIST;ADU_SID_PATHNAME : in ADT_PACKET_RESULT.T_SID_PATHNAME_LIST;GDU_SID_PATHNAME : in ADT_PACKET_RESULT.T_SID_PATHNAME_LIST);

procedure DEFINE(PACKET_RESULT : in out T_PACKET_RESULT;PACKET_RESULT_NAME : in TEV_DEFINITIONS.T_COMPLETE_FILENAME;TIME_FRAME : in TEV_DEFINITIONS.T_TIME_FRAME;

Page 544: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

535

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

SELECT_ON : in DBS_DEFINITIONS.T_TIME_TYPE;ORDER_BY : in DBS_DEFINITIONS.T_TIME_ORDERING;PRODUCER : in TEV_DEFINITIONS.T_PRODUCER_NAME;INCLUDE_DEF_SESSION : in boolean;EXECUTION_SESSIONS :in TEV_DEFINITIONS.T_DEFINITION_SESSION_NAMES;CHARACTERISTIC : in TEV_DEFINITIONS.T_PACKET_TYPE

:= TEV_DEFINITIONS.ADUS;FORMAT : in TEV_DEFINITIONS.T_PACKET_FORMAT := TEV_DEFINITIONS.DEFAULT_PACKET_FORMAT;BYTES_PER_LINE : in TEV_DEFINITIONS.T_PACKET_BYTES_LINE := TEV_DEFINITIONS.DEFAULT_BYTES_LINE;PATHNAME : in TEV_DEFINITIONS.T_PACKET_PATHNAME;SUMMARY_FORMAT : in boolean := False;SELECTED_ADUS : in T_ADU_GDU_PATHNAME_LIST;SELECTED_GDUS : in T_ADU_GDU_PATHNAME_LIST;

ADU_SID_PATHNAME : in T_SID_PATHNAME_LIST; GDU_SID_PATHNAME : in T_SID_PATHNAME_LIST); –– Description : –– Build and initialise the definition of an opened packet –– result. Sets the field PTR_TO_FIRST_PACKET –– –– Parameters : –– PACKET_RESULT : private packet result –– PACKET_RESULT_NAME : name of the packet result –– TIME_FRAME : time frame of the packet result –– SELECT_ON : time tag selection type ie SMT or LT –– ORDER_BY : time order of the data set ie SMT or LT –– PRODUCER : producer of packet result –– INCLUDE_DEF_SESSION : flag to include default session –– EXECUTION_SESSIONS : list of execution session names –– CHARACTERISTIC : specific adu/gdu, all adu’s/gdu’s –– FORMAT : output format –– BYTES_PER_LINE : number of bytes per line –– PATHNAME : pathname –– Exceptions : –– X_PACKET_RESULT_NOT_OPENED : packet result is not opened –– X_NO_WRITE_ACCESS : packet result not opened for write access –– X_TOO_MANY_SESSIONS : too many sessions defined ––

procedure CHANGE_TIME_FRAME_WHEN_INTERRUPTION( PACKET_RESULT : in out T_PACKET_RESULT; TIME_FRAME : in TEV_DEFINITIONS.T_TIME_FRAME);

–– Parameters : –– PACKET_RESULT : private packet result –– TIME_FRAME : new time frame of the packet result, up to the interruption –– Exceptions : –– X_PACKET_RESULT_NOT_OPENED : packet result is not opened –– X_NO_WRITE_ACCESS : packet result not opened for write access

procedure SET_DISPLAY_CHARACTERISTICS( PACKET_RESULT : in out T_PACKET_RESULT;

FORMAT : in TEV_DEFINITIONS.T_PACKET_FORMAT := TEV_DEFINITIONS.DEFAULT_PACKET_FORMAT;

BYTES_PER_LINE : in TEV_DEFINITIONS.T_PACKET_BYTES_LINE := TEV_DEFINITIONS.DEFAULT_BYTES_LINE;

SUMMARY_FORMAT : in boolean := False); –– Description : –– Set formatting informations. This operation can be called at –– any time, when writing or reading a result file. –– –– Parameters : –– PACKET_RESULT : private packet result –– FORMAT : output format –– BYTES_PER_LINE : number of bytes per line –– Exceptions : –– X_PACKET_RESULT_NOT_OPENED : packet result is not opened

function TIME_FRAME_OF(PACKET_RESULT : in T_PACKET_RESULT) return TEV_DEFINITIONS.T_TIME_FRAME;

–– Description : –– Return the time frame in which the current packet result has –– been built.

Page 545: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

536

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– –– Parameters : –– PACKET_RESULT : private packet result –– Exceptions : –– X_PACKET_RESULT_NOT_OPENED : packet result is not opened –– X_NO_READ_ACCESS : packet result not opened for read access ––

function GET_SELECTED_ON_TIME_TYPE( PACKET_RESULT : in T_PACKET_RESULT) return DBS_DEFINITIONS.T_TIME_TYPE;

–– Description : –– Return the selected on time type with which the current packet result has been –– built. –– –– Parameters : –– PACKET_RESULT : private packet result –– Exceptions : –– X_NO_READ_ACCESS : packet result not open with read access –– X_PACKET_RESULT_NOT_OPENED : packet result is not opened ––

function GET_ORDERED_BY_TIME_TYPE( PACKET_RESULT : in T_PACKET_RESULT) return DBS_DEFINITIONS.T_TIME_ORDERING;

–– Description : –– Return the ordered by time type with which the current packet result has been –– built. –– –– Parameters : –– PACKET_RESULT : private packet result –– Exceptions : –– X_NO_READ_ACCESS : packet result not open with read access –– X_DATA_SET_NOT_OPENED : packet result is not opened

function FILENAME_OF(PACKET_RESULT : in T_PACKET_RESULT) return STRING;

–– Description : –– Return the packet result file name. –– –– Parameters : –– PACKET_RESULT : private packet result –– Exceptions : –– X_PACKET_RESULT_NOT_OPENED : packet result is not opened –– X_NO_READ_ACCESS : packet result not opened for read access ––

function PRODUCER_OF(PACKET_RESULT : in T_PACKET_RESULT) return TEV_DEFINITIONS.T_PRODUCER_NAME;

–– Description : –– Return the packet result producer –– –– Parameters : –– PACKET_RESULT : private packet result –– Exceptions : –– X_NO_READ_ACCESS : packet result not opened for read access –– X_PACKET_RESULT_NOT_OPENED : packet result is not opened ––

function NO_OF_PACKETS(PACKET_RESULT : in T_PACKET_RESULT) return NATURAL;

–– Description : –– Return the number of packets –– –– Parameters : –– PACKET_RESULT : private packet result –– Exceptions : –– X_NO_READ_ACCESS : packet result not opened for read access –– X_PACKET_RESULT_NOT_OPENED : packet result is not opened ––

function INCLUDE_DEF_SESSION_OF(PACKET_RESULT : in T_PACKET_RESULT)return boolean;

Page 546: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

537

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– Description : –– Return the include default session flag –– –– Parameters : –– PACKET_RESULT : private packet result –– Exceptions : –– X_NO_READ_ACCESS : packet result not opened for read access –– X_PACKET_RESULT_NOT_OPENED : packet result is not opened ––

function SESSIONS_NUMBER_OF(PACKET_RESULT : in T_PACKET_RESULT)return NATURAL;

–– Description : –– Return the number of sessions used to build the current packet –– result –– –– Parameters : –– PACKET_RESULT : private packet result –– Exceptions : –– X_NO_READ_ACCESS : packet result not opened for read access –– X_PACKET_RESULT_NOT_OPENED : packet result is not opened ––

function SESSION_NAMES_OF(PACKET_RESULT : in T_PACKET_RESULT) return TEV_DEFINITIONS.T_DEFINITION_SESSION_NAMES;

–– Description : –– Extract the list of execution session names from the packet –– result definition –– –– Parameters : –– PACKET_RESULT : private packet result –– Exceptions : –– X_NO_READ_ACCESS : packet result not opened for read access –– X_PACKET_RESULT_NOT_OPENED : packet result is not opened ––

function EXECUTION_DATE_OF(PACKET_RESULT : in T_PACKET_RESULT) return CGS_CALENDAR.CGS_DATE_AND_TIME;

–– Description : –– Return the date and time of execution –– –– Parameters : –– PACKET_RESULT : private packet result –– Exceptions : –– X_NO_READ_ACCESS : packet result not opened for read access –– X_PACKET_RESULT_NOT_OPENED : packet result is not opened ––

procedure ADD_PACKET(PACKET_RESULT : in out T_PACKET_RESULT; PACKET : in out T_PACKET_RECORD);

–– Description : –– Add the supplied Packet to the packet result. The Packet Id –– is the key to access data. –– –– Parameters : –– PACKET_RESULT : private packet result –– PACKET : Packet to add –– Exceptions : –– X_PACKET_RESULT_NOT_OPENED : packet result is not opened –– X_NO_WRITE_ACCESS : packet result not opened for write access –– X_ERROR_ACCESSING_FILE : general error writing the record ––

procedure GET_A_PACKET(PACKET_RESULT : in T_PACKET_RESULT;PACKET_ID : in positive;PACKET : in out T_PACKET_RECORD);

–– Description : –– Extract a given packet packet from a packet result –– by specifying its Id. –– –– Parameters : –– PACKET_RESULT : private packet result

Page 547: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

538

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– PACKET_ID : id of the packet to retrieve –– PACKET : private packet record –– Exceptions : –– X_PACKET_RESULT_NOT_OPENED : supplied packet result file is –– not open –– X_NO_READ_ACCESS : packet result not open with read access –– X_NO_PACKETS_AVAILABLE : packets are not available –– X_ERROR_ACCESSING_FILE : general error accessing packet –– result file ––

procedure GET_A_PACKET(PACKET_RESULT : in T_PACKET_RESULT;TIME_TAG : in CGS_CALENDAR.CGS_DATE_AND_TIME;PACKET_TYPE : in TEV_DEFINITIONS.T_PACKET_TYPE;PACKET : in out T_PACKET_RECORD);

–– Description : –– Extract a given packet packet from a packet result –– by specifying its time tag and type. –– –– Parameters : –– PACKET_RESULT : private packet result –– TIME_TAG : time tag of the packet to retrieve –– PACKET_TYPE : type of record to retrieve –– PACKET : private packet record –– Exceptions : –– X_PACKET_RESULT_NOT_OPENED : supplied packet result file is –– not open –– X_NO_READ_ACCESS : packet result not open with read access –– X_NO_PACKETS_AVAILABLE : packets are not available –– X_ERROR_ACCESSING_FILE : general error accessing packet –– result file ––

procedure GET_PACKETS(PACKET_RESULT : in T_PACKET_RESULT;PACKET_LIST : in out T_PACKET_L;PACKET_TYPE : in TEV_DEFINITIONS.T_PACKET_TYPE

:= TEV_DEFINITIONS.NO_CHOICE;TIME_FRAME : in TEV_DEFINITIONS.T_TIME_FRAME

:= TEV_DEFINITIONS.NULL_TIME_FRAME;ONLY_THE_FIRST : in boolean := false);

–– Description : –– Extract packets from a packet result for a given time frame –– –– Parameters : –– PACKET_RESULT : private packet result –– PACKET_LIST : extracted list of packets –– PACKET_TYPE : type of record to retrieve –– TIME_FRAME : time frame for which to make the selection –– ONLY_THE_FIRST : if true only the first record is returned –– Exceptions : –– X_PACKET_RESULT_NOT_OPENED : supplied packet result file is –– not open –– X_NO_READ_ACCESS : packet result not open with read access –– X_ERROR_ACCESSING_FILE : general error accessing packet –– result file –– X_INVALID_PACKET : a packet is invalid in the file ––

procedure FORMAT_A_PACKET(PACKET_RESULT : in T_PACKET_RESULT;FILENAME : in string;PACKET_ID : in POSITIVE;TOOL_ID : in TEV_DEFINITIONS.T_TOOL_ID);

–– Description : –– Converts a given packet into a result file to a string format –– –– Parameters : –– PACKET_RESULT : private packet result

–– PACKET_ID : id of the packet to format –– FILENAME : filename of formatted result –– TOOL_ID : Tool id used for error logging

Page 548: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

539

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– Exceptions : –– X_PACKET_RESULT_NOT_OPENED : packet result is not opened –– X_NO_READ_ACCESS : packet result not open with read access –– X_ERROR_CREATING_FILE : general error creating formatted result ––

procedure FORMAT_A_PACKET(PACKET_RESULT : in T_PACKET_RESULT;TIME_TAG : in CGS_CALENDAR.CGS_DATE_AND_TIME;PACKET_TYPE : in TEV_DEFINITIONS.T_PACKET_TYPE;FILENAME : in string;TOOL_ID : in TEV_DEFINITIONS.T_TOOL_ID);

–– Description : –– Converts a given packet into a result file to a string format –– –– Parameters : –– PACKET_RESULT : private packet result

–– TIME_TAG : time tag of the packet to format–– PACKET_TYPE : type of record to retrieve

–– FILENAME : filename of formatted result –– TOOL_ID : Tool id used for error logging –– Exceptions : –– X_PACKET_RESULT_NOT_OPENED : packet result is not opened –– X_NO_READ_ACCESS : packet result not open with read access –– X_ERROR_CREATING_FILE : general error creating formatted result ––

procedure FORMAT_PACKET_IN_FILE(A_PACKET : in T_PACKET_RECORD;FORMAT : in TEV_DEFINITIONS.T_PACKET_FORMAT;BYTES_NB : in TEV_DEFINITIONS.T_PACKET_BYTES_LINE;ADU_SID_PATHNAME : in T_SID_PATHNAME_LIST;GDU_SID_PATHNAME : in T_SID_PATHNAME_LIST;FILE_ID : in TEXT_IO.FILE_TYPE;TOOL_ID : in TEV_DEFINITIONS.T_TOOL_ID);

–– –– Formats the packet values into the temporary text file of –– which descriptor is File_Id. –– ASSUMPTION: No checks are done on the packet; it is assumed –– the packet is not empty. ––

procedure FORMAT_CRITERIA_IN_FILE(CRITERIA : in T_PACKET_DEFINITION; FORMAT : in TEV_DEFINITIONS.T_PACKET_FORMAT; BYTES_NB : in TEV_DEFINITIONS.T_PACKET_BYTES_LINE; FILE_ID : in TEXT_IO.FILE_TYPE);

–– –– Formats a packet selection criteria (Criteria) into a –– string and writes it into a file of which descriptor –– is File_Id.

procedure FORMAT_RESULT_FILE(FILE_TO_FORMAT : in STRING;FORMATTED_FILE : in STRING;TOOL_ID : in TEV_DEFINITIONS.T_TOOL_ID);

–– Description : –– Converts a packet result file to a string format for display –– –– Parameters : –– FILE_TO_FORMAT : filename of packet result to format –– FORMATTED_FILE : filename of formatted result –– PACKET_ID : the packet id –– Exceptions : –– X_INVALID_NAME : packet result name is invalid –– X_ERROR_ACCESSING_FILE : general error accessing packet –– result file –– X_ERROR_CREATING_FILE : general error creating formatted result ––

procedure FORMAT_RESULT_IN_SUMMARY(FILE_TO_FORMAT : in STRING;

Page 549: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

540

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

FORMATTED_FILE : in STRING); –– Description : –– Converts a packet result file to a string format for display –– only summary info –– –– Parameters : –– FILE_TO_FORMAT : filename of packet result to format –– FORMATTED_FILE : filename of formatted result –– Exceptions : –– X_INVALID_NAME : packet result name is invalid –– X_ERROR_ACCESSING_FILE : general error accessing packet –– result file –– X_ERROR_CREATING_FILE : general error creating formatted result –– procedure CREATE_HEADER; procedure FORMAT_HEADER(FILE_ID : in TEXT_IO.FILE_TYPE); procedure FORMAT_PAGE(FILE_ID : in TEXT_IO.FILE_TYPE);

function IS_SUMMARY( PACKET_RESULT : in T_PACKET_RESULT) return boolean; –– Description : –– Return true if summary format is set –– –– Parameters : –– PACKET_RESULT : private packet result –– Exceptions : –– X_NO_READ_ACCESS : packet result not open with read access –– X_PACKET_RESULT_NOT_OPENED : packet result is not opened ––

procedure FORMAT_PRINT_RESULT_FILE( FILE_TO_FORMAT : in STRING; FORMATTED_FILE : in STRING);

procedure INVERT (THE_LIST : in T_PACKET_L; TO_THE_LIST : in out T_PACKET_L) renames P_PACKET_LIST.INVERT;–– Invert a list into another list

procedure CLEAR (THE_LIST : in out T_PACKET_L) renames P_PACKET_LIST.CLEAR;–– Clear a list

procedure ASSIGN (THE_LIST : in out T_PACKET_L; NEW_LIST : in T_PACKET_L) renames P_PACKET_LIST.ASSIGN;–– Assign a list with a new value

procedure CONSTRUCT (A_PACKET : in T_PACKET_RECORD; THE_LIST : in out T_PACKET_L) renames P_PACKET_LIST.CONSTRUCT;

–– Construct a list by adding a new item

function NULL_LIST RETURN T_PACKET_L renames P_PACKET_LIST.NULL_LIST;–– Return a null list

function IS_NULL (THE_LIST : in T_PACKET_L) RETURN boolean renames P_PACKET_LIST.IS_NULL;

–– Check if a list is null

function HEAD_OF (THE_LIST : in T_PACKET_L) RETURN T_PACKET_RECORD renames P_PACKET_LIST.HEAD_OF;

–– Extract the head of a list

function TAIL_OF (THE_LIST : in T_PACKET_L) RETURN T_PACKET_L renames P_PACKET_LIST.TAIL_OF;

–– Extract the tail of a list

function LENGTH_OF (THE_LIST : in T_PACKET_L) RETURN natural renames P_PACKET_LIST.LENGTH_OF;

–– Get the length of a list

procedure COPY (FROM_THE_LIST : in T_PACKET_L; TO_THE_LIST : in out T_PACKET_L) renames P_PACKET_LIST.COPY;

–– Copy a list into another list;

Page 550: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

541

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

X_PACKET_RESULT_ALREADY_OPENED,X_PACKET_RESULT_NOT_OPENED,X_PACKET_RESULT_ALREADY_EXISTS,X_INVALID_NAME,X_INVALID_PACKET,X_NO_PACKETS_AVAILABLE,X_TOO_MANY_SESSIONS,X_NO_READ_ACCESS,X_NO_WRITE_ACCESS,X_ERROR_CREATING_FILE,X_ERROR_ACCESSING_FILE : exception;

private

type T_PACKET_DEFINITION isrecord EXECUTION_DATE : CGS_CALENDAR.CGS_DATE_AND_TIME;

––rhn Begin Modification for SPR 2886 07/02/97–– RESULT_NAME : TEV_DEFINITIONS.T_RESULT_NAME;

RESULT_NAME : TEV_DEFINITIONS.T_COMPLETE_FILENAME;––rhn End Modification for SPR 2886 07/02/97

CHARACTERISTIC : TEV_DEFINITIONS.T_PACKET_TYPE := TEV_DEFINITIONS.ADUS;

PATHNAME : TEV_DEFINITIONS.T_PACKET_PATHNAME; PRODUCER : TEV_DEFINITIONS.T_PRODUCER_NAME; FORMAT : TEV_DEFINITIONS.T_PACKET_FORMAT

:= TEV_DEFINITIONS.DEFAULT_PACKET_FORMAT; BYTES_PER_LINE : TEV_DEFINITIONS.T_PACKET_BYTES_LINE

:= TEV_DEFINITIONS.DEFAULT_BYTES_LINE; SUMMARY_FORMAT : BOOLEAN := FALSE; TIME_FRAME : TEV_DEFINITIONS.T_TIME_FRAME; SELECT_ON : DBS_DEFINITIONS.T_TIME_TYPE; ORDER_BY : DBS_DEFINITIONS.T_TIME_ORDERING; EXECUTION_SESSIONS : TEV_DEFINITIONS.T_DEFINITION_SESSION_NAMES(

TEV_DEFINITIONS.T_SESSIONS_RANGE); INCLUDE_DEF_SESSION : BOOLEAN; PACKET_NUMBER : NATURAL := natural’first; SELECTED_ADUS : T_ADU_GDU_PATHNAME_LIST; SELECTED_GDUS : T_ADU_GDU_PATHNAME_LIST;

ADU_SID_PATHNAME : T_SID_PATHNAME_LIST; GDU_SID_PATHNAME : T_SID_PATHNAME_LIST; end record;

–– package definition to access packet result file –– package DEFINITION_IO is new DIRECT_IO(ELEMENT_TYPE => T_PACKET_DEFINITION);

–– DEFINITION_IO is used to access the packet result –– definition as the header of the file

package PACKET_IO is new DIRECT_IO(ELEMENT_TYPE => T_PACKET_RECORD); –– PACKET_IO is used to access the packet records inside the file. –– The first data to access is located at position offset PTR_TO_FIRST_PACKET

type T_PACKET_RESULT isrecord DEFINITION_FILE_TYPE : DEFINITION_IO.FILE_TYPE; PACKET_FILE_TYPE : PACKET_IO.FILE_TYPE; FILENAME : TEV_DEFINITIONS.T_COMPLETE_FILENAME;

–– modified by RSE 12.06.96 for SPR_2391–– ACCESS_STATUS : TEV_DEFINITIONS.T_ACCESS_STATUS –– := TEV_DEFINITIONS.READ;

ACCESS_STATUS : T_PACKET_RESULT_ACCESS_STATUS := READ; CURRENT_STATUS : TEV_DEFINITIONS.T_CURRENT_STATUS

:= TEV_DEFINITIONS.CLOSED; PACKET_RESULT_DEFINITION : T_PACKET_DEFINITION;

end record;end ADT_PACKET_RESULT;

Page 551: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

542

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Formal Interface Description

–––– TDCS_DEFINITIONS––––****************************************************************************––ABSTRACT–––– This object provides common types needed by–– tdcs objects.––––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––IDENTIFICATION–––– PROJECT NAME : CGS–– PRODUCT NAME : TEV–– CI–NUMBER : 1216 858–– OBJECT NAME : TEV_DEFINITIONS––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––CONTENTS–––– COMPILER : VERDIX ADA 6.0.3.C–– LANGUAGE : ADA–– SPECIAL CONTENTS:–– CHANGE HISTORY–– V4.1 at Spacebel Informatique, Brussels–– creator: rowena (on host moon)–– creation date: 23.08.95 10:18:53–– added Standard Header by command include_header–––– END HISTORY––****************************************************************************––

package TDCS_DEFINITIONS is

subtype T_TEV_TOOL_ID is NATURAL;

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

–– Return status type

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

type T_TDCS_ERROR is (OK,

––The operation has been successfully performedBAD_TDCS_SELECTION_CRITERIA,

––This selection criteria cannot be fulfilled by TDCSDATA_ONLINE_IN_30_MIN,

––The requested data is not online––Please come back and ask again after in 30 minutes

DATA_ONLINE_IN_24_HOURS,––The requested data is not online––Please come back and ask again after in 24 hours

DATA_ONLINE_IN_72_HOURS,––The requested data is not online ––Please come back and ask again after in 72 hours

TDCS_STOPPED,––TDCS is not running

TDCS_CONNECT_PROBLEM,––Connection to TDCS failed.

TDCS_DISCONNECT_PROBLEM,––Disconnection from TDCS returns an error.

TDCS_INIT_PROBLEM,––Initialisation of communication services failed.

TDCS_NOT_CONNECTED,––TDCS connection not correctly established

LT_SELECT_NOT_SUPPORTED_BY_TDCS,–– TDCS does not support selection according to LT timeframes

TDCS_COMMUNICATION_PROBLEM);–– a problem in the TEV–TDCS communication occured

type T_DATA_CHARACTERISTIC is (SELECTED_ADU_GDU,

––Selected ADU’s, GDU’s

Page 552: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

543

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

ALL_ADUS,––All ADU’s in the Archive File

ALL_GDUS,––All GDU’s in the Archive File

ALL_ADUS_GDUS);––All ADU’s, GDUS’s in the Archive File

end TDCS_DEFINITIONS;

Page 553: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

544

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Formal Interface Description

–––– TDCS_RPI––––****************************************************************************––ABSTRACT–––––– This package provides the operations of the TDCS – TEV Interface––––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––IDENTIFICATION–––– PROJECT NAME : CGS–– PRODUCT NAME : TEV–– CI–NUMBER : 1216 858–– OBJECT NAME : TDCS_RPI––*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––CONTENTS–––– COMPILER : VERDIX ADA 6.0.3.C–– LANGUAGE : ADA–– SPECIAL CONTENTS:–– CHANGE HISTORY–– V4.1 at Spacebel Informatique, Brussels–– creator: rowena (on host moon)–– creation date: 23.08.95 10:24:18–– added Standard Header by command include_header–––– END HISTORY––****************************************************************************––

with MPS_DEFINITIONS;with MDB_SESSION;with VICOS_DEFINITIONS;with DBS_DEFINITIONS;with DBS_LISTS;

with TDCS_DEFINITIONS;

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––package TDCS_RPI is–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– Operations to control connect/disconnect activities–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

procedure CONNECT_TDCS(SOURCE : in VICOS_DEFINITIONS.T_APPLICATION_NAME ;STATUS : out TDCS_DEFINITIONS.T_TDCS_ERROR);

–– DESCRIPTION

–– This operation allows the evaluation user to connect to the TRDB database–– for evaluation purposes.–– SOURCE : Reference of the User Application Name.

–– RETURN_STATES

–– OK–– TDCS_STOPPED–– TDCS_CONNECT_PROBLEM–– TDCS_INIT_PROBLEM

procedure DISCONNECT_TDCS (STATUS : out TDCS_DEFINITIONS.T_TDCS_ERROR);

–– DESCRIPTION

–– This operation allows TEV user to disconnect from TDCS.–– His selected sessions are automatically deallocated.

–– RETURN_STATES

–– OK–– TDCS_NOT_CONNECTED

Page 554: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

545

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– TDCS_STOPPED–– TDCS_DISCONNECT_PROBLEM–– TDCS_COMMUNICATION_PROBLEM

procedure ALLOCATE_EXECUTION_SESSIONS (ALLOCATED_SESSIONS : in DBS_DEFINITIONS.T_SELECTED_SESSIONS;STATUS : out TDCS_DEFINITIONS.T_TDCS_ERROR) ;

–– DESCRIPTION

–– This operation allows the user to allocate execution sessions for –– evaluation purposes. TDCS only returns OK. No more data is returned to TEV.–– A later allocate commnand overwrite the the current allocation table.–––– ALLOCATED_SESSIONS : the list of execution sessions to allocate.

–– RETURN_STATES

–– OK–– TDCS_NOT_CONNECTED–– TDCS_COMMUNICATION_PROBLEM–– TDCS_STOPPED

subtype T_RAW_DATA_FILE_INFO_LIST is DBS_LISTS.T_RAW_DATA_FILE_INFO_LIST;

procedure GET_FOREIGN_RAW_DATA_FILE_INFO_LIST_BY_ADU_GDU (TEV_TOOL_ID : in TDCS_DEFINITIONS.T_TEV_TOOL_ID;SESSION_NAMES : in DBS_DEFINITIONS.T_SELECTED_SESSIONS;TIME_SELECTION : in DBS_DEFINITIONS.T_TIME_RECORD;TIME_FRAME_TYPE : in DBS_DEFINITIONS.T_TIME_TYPE;LIST_ORDER : in DBS_DEFINITIONS.T_TIME_ORDERING;PRODUCER : in VICOS_DEFINITIONS.T_APPLICATION_NAME;ADU_GDU_LIST : in MPS_DEFINITIONS.T_SID_ARRAY;FILE_LIST : in out T_RAW_DATA_FILE_INFO_LIST;DATA_CHARACTERISTIC : in TDCS_DEFINITIONS.T_DATA_CHARACTERISTIC;STATUS : out TDCS_DEFINITIONS.T_TDCS_ERROR);

–– DESCRIPTION–– This operation returns the raw data files list (Archive Files) matching–– a selection criteria. TDCS parses a list of ADUs to obtain the session–– name to which it applies.This supports the TEV Raw Data Dump Tool.–––– TEV_TOOL_ID : Identifier of the TEV user tool–– SESSION_NAMES : Names of the test execution sessions to which –– raw data files are related. –– TIME_SELECTION : The selected time frame. –– A null value is accepted.–– TIME_FRAME_TYPE : The time type applied to the time frame (LT/SMT)–– LIST_ORDER : The time type applied for the list ordering (LT/SMT)–– PRODUCER : Producer Name, a null value is accepted.–– ADU_GDU_LIST : List of ADUs, GDU’s, as additional selection criteria for raw data–– when DATA_CHARACTERISTICS is SELECTED_ADU_GDU–– DATA_CHARACTERISTIC : This defines the type of data to be retrieved :–– Selected ADU’s, GDU’s–– All ADU’s in Archive File–– All GDU’s in Archive File–– All ADU’s, GDU’s in Archive File–– FILE_LIST : The selected raw data files.–– List of Files must be in Chronological Order–– Data in each File must be in Chronological Order

–– RETURN_STATES

–– OK–– BAD_TDCS_SELECTION_CRITERIA–– DATA_ONLINE_IN_30_MIN–– DATA_ONLINE_IN_24_HOURS–– DATA_ONLINE_IN_72_HOURS–– TDCS_NOT_CONNECTED–– TDCS_STOPPED–– LT_SELECT_NOT_SUPPORTED_BY_TDCS–– TDCS_COMMUNICATION_PROBLEM

procedure GET_FOREIGN_RAW_DATA_FILE_INFO_LIST_BY_MEASUREMENT (TEV_TOOL_ID : in TDCS_DEFINITIONS.T_TEV_TOOL_ID;SESSION_NAMES : in DBS_DEFINITIONS.T_SELECTED_SESSIONS;TIME_SELECTION : in DBS_DEFINITIONS.T_TIME_RECORD;TIME_FRAME_TYPE : in DBS_DEFINITIONS.T_TIME_TYPE;

Page 555: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

546

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

LIST_ORDER : in DBS_DEFINITIONS.T_TIME_ORDERING;PRODUCER : in VICOS_DEFINITIONS.T_APPLICATION_NAME;MEASUREMENT_LIST : in MPS_DEFINITIONS.T_SID_ARRAY;FILE_LIST : in out T_RAW_DATA_FILE_INFO_LIST;STATUS : out TDCS_DEFINITIONS.T_TDCS_ERROR);

–– DESCRIPTION–– This operation returns the raw data files list (Archive Files) matching–– a selection criteria. TDCS parses a list of measurements to obtain the –– session name to which it applies. –– Internally TDCS maps the measurements to the ADUs in which they are–– contained and creates the required ADU list. This supports the TEV–– Data Set Tool.–– TEV_TOOL_ID : Identifier of the TEV user tool–– SESSION_NAMES : Names of the test execution sessions to which –– raw data files are related. –– TIME_SELECTION : The selected time frame. –– A null value is accepted.–– PRODUCER : Producer Name, a null value is accepted.–– TIME_FRAME_TYPE : The time type applied to the time frame (LT/SMT)–– LIST_ORDER : The time type applied for the list ordering (LT/SMT)–– MEASUREMENT_LIST : List of parameters as additional selection criteria –– for raw data–– FILE_LIST : The selected raw data files.

–– RETURN_STATES

–– OK–– BAD_TDCS_SELECTION_CRITERIA–– DATA_ONLINE_IN_30_MIN–– DATA_ONLINE_IN_24_HOURS–– DATA_ONLINE_IN_72_HOURS–– TDCS_NOT_CONNECTED–– TDCS_STOPPED–– LT_SELECT_NOT_SUPPORTED_BY_TDCS–– TDCS_COMMUNICATION_PROBLEM

procedure GET_FOREIGN_DATA_SET(TEV_TOOL_ID : in TDCS_DEFINITIONS.T_TEV_TOOL_ID;SESSION_NAMES : in DBS_DEFINITIONS.T_SELECTED_SESSIONS;TIME_SELECTION : in DBS_DEFINITIONS.T_TIME_RECORD;TIME_FRAME_TYPE : in DBS_DEFINITIONS.T_TIME_TYPE;LIST_ORDER : in DBS_DEFINITIONS.T_TIME_ORDERING;PRODUCER : in VICOS_DEFINITIONS.T_APPLICATION_NAME;MEASUREMENT_LIST : in MPS_DEFINITIONS.T_SID_ARRAY;CCU_SPECIFICATION : in MDB_SESSION.T_CCU_VERSION_IDENTIFICATION;FILE : in out DBS_DEFINITIONS.T_FILENAME;STATUS : out TDCS_DEFINITIONS.T_TDCS_ERROR);

–– This operation returns a Data Set generated externally matching–– a selection criteria. TDCS processes this command exactly the same way–– as GET_FOREIGN_RAW_DATA_FILE_INFO_LIST_BY_MEASUREMENT, excepts that it–– passes the input data to the Data Set Formating Tool instead of the–– Archive File Formating Tool.–– This supports the TEV Data Set Generation Tool.–––– TEV_TOOL_ID : Identifier of the TEV user tool–– SESSION_NAMES : Names of the test execution sessions to which –– raw data files are related. –– TIME_SELECTION : The selected time frame. –– A null value is accepted. –– TIME_FRAME_TYPE : The time type applied to the time frame (LT/SMT)–– LIST_ORDER : The time type applied for the list ordering (LT/SMT)–– PRODUCER : Producer Name, a null value is accepted.–– MEASUREMENT_LIST : List of parameters as additional selection criteria –– for raw data–– CCU_SPECIFICATION : Defines the CCU to be used for calibration–– FILE : Unix pathname for the generated Data Set.

–– RETURN_STATES

–– OK–– BAD_TDCS_SELECTION_CRITERIA–– DATA_ONLINE_IN_30_MIN–– DATA_ONLINE_IN_24_HOURS–– DATA_ONLINE_IN_72_HOURS

Page 556: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/Date:

Datum/Date:

547

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

–– TDCS_NOT_CONNECTED–– TDCS_STOPPED–– LT_SELECT_NOT_SUPPORTED_BY_TDCS–– TDCS_COMMUNICATION_PROBLEM

end TDCS_RPI;

Page 557: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

548

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.15 Test Evaluation Invocation Interface

For the integration of TEV into CGS, TEV provides interface functions for the invocation of the product. SinceTEV can run interactively or in batch mode, the command line takes two alternatives.

6.15.1 TEV Invocation for Interactive ModeIf called without any parameter, TEV will run interactively and then the program expects all inputs via thegraphical user interface.

In this case TEV will be started as following:

$TEV_HOME/bin/common/start_tev

6.15.2 TEV Batch ModeUsing the TEV Command Line Interface (TEV CLI), TEV will run in batch mode and will not show upwith a graphical user interface.Thus, the command line for invoking TEV takes the following form:

$TEV_HOME/bin/common/start_tev –to <tool_type> \

–se <session_file > \–de <definition_file> \–re <result_file>

where the command parameters have the following meaning:

<tool_type> is the name of the tool to be executed. It can be one of the following:

LOG_EVENT: Execute the Logging Event evaluation toolRAW_DATA: Execute the Raw Data Dump toolDATA_SET: Execute the Data Set Generation tool

<session_file > includes the sessions to be evaluated and the CCU information.

The Format of this ASCII–file is shown below. The session_file is read from the user’s workingdirectory $VICOS_TEV_WD/SESSIONS.

<definition_file> includes all tool–specific information to execute the tool.

It is to be generated either with interactive TEV or by using the appropriate procedures fromthe TEV_API in Ada program. The definition_file is in binary format. It will be read from theuser’s working directory $VICOS_TEV_WD/DEFINTIONS/<tool_name>.

<result_file> is the output of the tool.

The result_file will be put into the user’s working directory$VICOS_TEV_WD/RESULTS/<tool_name>.

For logging error messages of the TEV batch mode operation there are 3 different possibilities:

1) No additional parameter given: TEV sends the error messages to the CGSI error window and tostdout (which is the shell tool from where TEV was started).

2) The command line can be extended for output redirection with standard Unix features like$TEV_HOME/bin/common/start_tev –to LOG_ENVET ... >logfile. In this case the output is writtento the logfile only.

Page 558: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

549

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

3) The output can be duplicated using the tee standard Unix duplicator like $TEV_HOME/bin/com-mon/start_tev –to LOG_EVENT ... |&tee logfile. In this case the output of error messages would alsobe sent to stdout.

Session File Format:

The format for the session_file will be as follows:

SESSION:<session1>..SESSION:<sessionx>DEFAULT_TEST_SESSIONCCU:<ccu_pathname>

Up to 10 sessions other than the DEFAULT_TEST_SESSION can be selected.The selection of the DEFAULT_TEST_SESSION is optional. If it is added to the selection, a total selection of11 sessions (including the DEFAULT_TEST_SESSION) is possible.The last record in the file must be the CCU information, which gives the CCU_PATHNAME that shall be usedfor the evaluation.

The command will return after checking the parameters or after the evaluation is finished (which may take fromsome minutes to some hours) with the following return codes:

–1 success–101 invalid tool type–102 invalid session file–103 invalid definition file–104 duplicate result file–105 invalid session name–106 invalid CCU–107 error accessing TRDB–108 error accessing MDB

6.15.3 TEV in Office Mode

TEV may be started in the Office Mode. In this case, It runs in a standalone configuration with TEV and DBSonly.

In the default mode (EGSE mode), DBS is started by the overall CGS startup script for a given EGSE configur-ation.

In Office mode, however,TEV is responsible for starting and stopping Central DBS (i.e. invoking the DBS star-tup script at the beginnin and stopping the DBS processes, when the last TEV process disconnects). The Officemode is indicated in the TEV startup command by the option ”–o”.

The following gives an example for this:

$TEV_HOME/bin/common/start_tev –o

The option does not require any further parameters.

Page 559: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

550

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.16 EXCEL Representation Format

The detailed description of this format is defined in the commercial MICROSOFT EXCEL documentation.

Page 560: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

551

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

6.17 Data Types supported by CGS in TES_API

The following section gives an overview on datatypes supported by CGS for usage in external in-terfaces (e.g. within CCSDS Packets).

The types are described as supported at the TES_API interface, where complete CCSDS packetsare exchanged within ADUs or GDUs or where stimuli are sent within GDUs.

Legend:

Type in Interface.: The type of the value as it is written/read to/from the ADU or GDU resp. the CCSDS Packet

TM : Telemetry Packet (received in TES inside an ADU via the TES_API) (either as UNSTRUCTURED_ADU_DESCRIPTION, CCSDS_ADU_DESCRIPTION or PUS_ADU_DESCRIPTION)

The following types are supported at this I/F (via measurements): UNSIGNED_INTEGER (SIGNED_)INTEGER REAL (SINGLE_FLOAT) LONG_REAL (DOUBLE FLOAT) BYTE_STREAM (can be interpreted / displayed as STRING)

TC: Telecommand Packet (sent by CGS inside a GDU via the TES_API) (either as EGSE_PREDEFINED_TC or PUS_TC)

The following types are supported at this I/F (via parameter): UNSIGNED_INTEGER SIGNED_INTEGER STATE_CODE (bypassing decalibration) REAL LONG_REAL BYTE WORD LONG_WORD STRING SID (converted from PATHNAME) TIME

SWC: Software Commands (for COL) (sent by CGS inside a GDU via the TES_API)

The following types are supported at this I/F:

Page 561: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

552

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

UNSIGNED_INTEGER SIGNED_INTEGER STATE_CODE (bypassing decalibration) REAL STRING SID (converted from PATHNAME) TIME

RSP: Response Packets (for COL) ( received inside an ADU via the TES_API)

The following types are supported at this I/F: UNSIGNED_INTEGER SIGNED_INTEGER STATE_CODE REAL STRING (fixed length)

AS: Analog Stimulus (sent by CGS inside a GDU via the TES_API) The following types are supported at this I/F: REAL

DS: Discrete Stimulus (sent by CGS inside a GDU via the TES_API) The following types are supported at this I/F: SIGNED_INTEGER

BP: Binary Packet (sent by CGS inside a GDU via the TES_API) The following types are supported at this I/F (via parameter): UNSIGNED_INTEGER SIGNED_INTEGER STATE_CODE (bypassing decalibration) REAL LONG_REAL BYTE WORD LONG_WORD STRING SID (converted from PATHNAME)

Page 562: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

553

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Type in Interface TM TC SWC RSP DS AS BP Comment

Integer x x x x x – x 1..32 bits

Unsigned Integer x x x x x – x 1..32 bits

Real/Float x x x x – x x Floating Point IEEE Std(32 bits)

Long_Real/D.Float x x – – – x x Floating Point IEEE Std (64 bits)

SID (32 bits) – x x – – – x converted from Pathname

State Code x x x x – – x 8 Character

String x x x x – – x Strings in TM Packets:predefined length up to 255 character

Single Bit x x x – – – x as 1bit unsigned raw

Byte – x x – – – x via UCL conversion

Word – x x – – – x via UCL conversion

Long_Word – x x – – – x via UCL conversion

Byte String x – – – – – – TM: Display: as String (up to 255 bytes)

CCSDS unsegm. – x x – – – x refer to CCSDS Standardtime code (5 bytes) and COL ICDs

CCSDS segmented – – – – – – – refer to CCSDS Standardtime code

Note: Data Types used in UCL may be converted to one of the a.m. types as defined in the UCL LRM.

Page 563: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

554

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

APPENDIX A :ACRONYMS

Page 564: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

555

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

AAD Applicable DocumentADD Architectural Design DocumentADT Abstract Data TypeADU Acquisition Data UnitAIL Atomic Implementation LanguageAIV Assembly, Integration and VerificationAIT Assembly, Integration and TestANSI American National Standards InstituteAP Automated ProcedureAPI Application Programmer InterfaceAPM Attached Pressurized ModuleAS Adaptation SystemASCII American Standard Code for Information Interchangea.m. above mentioned

BBNF Backus–Naur FormatBSD Berkeley Software Distribution

CCASE Computer Aided Software EngineeringCAT Configuration Administration ToolCCSDS Consultative Committee for Space Data SystemsCCU Configuration Control UnitCDI Configuration Data ItemCDU Configuration Data UnitCEGSE Core EGSECGS Columbus Ground SystemCEGSE Core Electrical Ground Support EquipmentCGSI Columbus Ground System InfrastructureCI Configuration ItemCLS Columbus Language SystemCM Configuration ManagementCPA Central Processing AssemblyCPMS Columbus Project Management SystemCSS Core Simulation SoftwareCTG Code & Table GeneratorCU Configuration UnitC/O CheckOut

DDADIMA Data Dictionary Maintenance ApplicationDB DataBase

Page 565: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

556

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

DBA DataBase AdministratorDBMS DataBase Management SystemDBS DataBase ServicesDDO Dynamic Display ObjectDDS Data Dispatch ServiceDMS Data Management SystemDN Discrepancy NoticeDNI Sun Microsystems DECnet compatible productDOCT DOCumentation ToolsDPE Data Processing EnvironmentDS Directory ServicesDSA DMS Simulator Assembly

EECA EGSE Console AssemblyEDB Engineering DataBaseEEA Error Effects Analysis toolEGSE Electrical Ground Support EquipmentEPS Electrical Power SubsystemESA European Space AgencyESE Electrical Support EquipmentEVL Engineering Value Log

FFB Function BlockFC Flight ConfigurationFDDI Fibre Distributed Data InterfaceFDIR Fault Detection Isolation and RecoveryFEE Front End EquipmentFIPS Federal Information Processing StandardFOC Final Operating CapabilityFSP FTDSW Server ProcessFSTP Functional Standard Target ProcessorFT File TransferFTAM File Transfer, Access and ManagementFTDS File Transfer and Directory ServicesFTDSW File Transfer And Directory SoftWareFTP File Transfer ProtocolFWDU Flight Window Definition UtilityFWDU_FE FWDU format editorFWDU_TE FWDU text editor

GGDE Ground DMS EquipmentGDI Ground Data Item

Page 566: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

557

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

GDU Generation Data UnitGMT Greenwich Mean TimeGNC Guidance, Navigation and ControlGSAF Ground Software and Avionics FacilityGSE launch site Ground Support EquipmentGWDU Ground Window Definition Utility

HHCI Human Computer Interface softwareHK HouseKeeping (data)HLCL High Level Command LanguageHOOD Hierarchical Object Oriented DesignHP Hewlett PackardHP–UX HP UNIXH/W HardWare

IICA InterCom AssemblyICD Interface Control DocumentID IDentifierIEEE Institute of Electrical and Electronic EngineersIF InterFaceIP Internet ProtocolIPC InterProcess CommunicationIPSE Integrated Project Support EnvironmentIRN Interface Revision NoticeISO International Standards OrganisationISS International Space StationI/F InterfaceI/O Input/OutputI–Code Interpreted CodeI_MDB Interactive Mission Database

JKKB Kilo ByteKb Kilo BitKbps Kilo Bits Per Second

LLAN Local Area NetworkLOT LOcal TimeLRU Line Replaceable Unit

MMB Mega Byte

Page 567: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

558

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Mb Mega BitMbps Mega Bits Per SecondMDA Mission Database ApplicationMDB Mission DataBaseMDE Model Development EnvironmentMMI Man Machine InterfaceMPS Mission Preparation SoftwareMRI Model Runtime InformationMTL Master TimeLineMTP Master Test ProcessorMTTC Minimum Telemetry and TeleCommandMTU Master Timing Unit

NN/A Not ApplicableNDT Network Diagnostic ToolNASA National Aeronautics and Space AdministrationNFS Network File SystemNIS Network Information ServicesNS Network ServicesNTBT Not To Be TrackedNTBT Not To Be TestedNTP Network Timing ProtocolNW NetWorkNWSW NetWork SoftWare

OOB OnBoardODS Object Description SkeletonOLWM OpenLook Window ManagerOS Operating SystemOSI Open Systems Interconnect

PPA Product AssurancePIRN Preliminary Interface Revision NoticePOCC Payload Operations Control CenterPOSIX Portable Operating System Interface for UNIXPROFS Professional Office Automation SystemPR PRoduct level – used to indicate test level for requirementsP/L PayLoad

QQA Quality Assurance

Page 568: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

559

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

RRAM Random Access MemoryRCP Remote CoPyRD Reference DocumentRDBMS Relational Database Management SystemREX Remote EXecutionROD Review Of Design – a testing methodRPC Remote Procedure CallRPI Remote Procedural InterfaceRSH Remote SHell

SSAS Special Application SoftwareSCA Software Criticality Analysis toolSCOE Special Check–Out EquipmentSDDF Software Design and Development FacilitySDE Software Development EnvironmentSF Simulation FacilitySID Short IDentifierSIVQ Software Integration, Verification and QualificationSMT Simulated Mission TimeSNA System Network ArchitectureSPE SPEcification documentSQL Structured Query LanguageSRO Software Release OrderSS SubSystemSSF Space Station FreedomSTAU STandard Acquisition UnitSTP Self Test ProcessSunOS Sun Unix Operating SystemSVID System V Interface DefinitionSW SoftWareSWES SoftWare Entity SupportSWEU SoftWare Exchangeable UnitSWRU SoftWare Replaceable UnitSY SYstem level – used to indicate test level for requirementsS/S SubSystemS/W SoftWare

TT Test – a testing methodTBC To Be ConfirmedTBD To Be DefinedTBE To Be Extended

Page 569: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

560

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

TBS To Be SuppliedTC TeleCommandTC Test ConfigurationTCP Transmission Control ProtocolTE Terminal EmulationTELNET Remote Terminal ProtocolTES Test Execution SoftwareTEV Test EValuation softwareTLUI Top Level User InterfaceTM TeleMetryTOC Table Of ContentsTP Transport ProtocolTP4 OSI Transport Protocol Class 4TPS Technical Publishing SoftwareTPS ASCII Interleaf Text Processing System ASCII output formatTRDB Test Result DataBaseTRIT Trace Requirements and ICD Tracking toolTS Table SpaceTS Transport ServicesTSCV Test Set–up, Configuration and Verification softwareTSP Time Services Server ProcessTSS Time Services Software

UUCL User Control LanguageUCLC User Control Language CompilerUDP User Datagram ProtocolUIL User Interface LanguageUTC Universal Time CodeUTP Unshielded Twisted PairUUT Unit Under Test

VVADS Verdix Ada Development SystemVICOS Verification, Integration and Check–Out SystemVIT Version Identification TableVT V Terminal

WWAN Wide Area NetworkWDU Window Definition UtilityWS WorkStation

XXDR eXternal Data Representation

Page 570: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

561

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

YZ

Page 571: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

562

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

APPENDIX B :DEFINITIONS

Page 572: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

563

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

AAccess rights Define what access various users or applications have to objects or

entities.

Accuracy Accuracy is the software characteristic that provides the requiredprecision in calculations and outputs.

Action One or more higher–level commands (from Crew, Ground, MCS, orMaster Timeline) to operate the Flight Configuration subsystems orpayloads. The Action contains all pre–checks necessary to ensure asafe implementation of an automated operation consistent with theactual mission phase and flight element configuration.

Ad Hoc Error Reporting An error reporting method where the application constructs the con-tents of the error message.

Allowable Roles The allocated subset of roles that a particular user may perform.

Application Program or set of programs performing some specialized user–oriented function (as opposed to general–purpose programs like aDBMS, or an operating system).

Application Data Application data is defined, in the context of the NWSW, as dataspecified by the applications using the NWSW e.g. CGS. Its contentand structure are of no importance or interest to the NWSW.

Application Home The directory location assigned to a particular application of CGS,also called Home Directory.

Archive Refers to the process of relegating obsolete data to external backingstorage. The reverse operation (copying archived data back to activestorage) is known as restore.

Archive Files Refer to ’Archiving’

Archiving In VICOS, archiving means storage of data in raw format. All datareceived or generated by a testnode is archived in OS files (archivefiles). The files are managed after closure as part of the Test ResultDB and made accessable by VICOS evaluation S/W as well as bySAS.

As–Run–Procedure In VICOS, a Test Step Sequence (or Test Instruction Sequence) is ex-ecuted by the Test Step Execution and Guidance Tool, in a dialogwith the operator. The result of each step is stored in the Test ResultDB as the ’As Run–Procedure’. The As–Run–Procedure contains theOK/Not OK status as well as values for enditems and commentsgiven by the operator. Each step is timetagged when executed.

Atomic Implementation Language (AIL)Language used for the implementation of atomic function blocks ina model definition.

Auditing Process of examining recent transactions to determine if illegal orfraudulent activity has occurred.

Audit Log Permanent record of important events that occur in a computer sys-tem.

Page 573: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

564

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Authorization Permission of a command source to execute a command.

Authorized User see User

Automated Procedure A program written in the User Control Language (UCL).

BBaseline An SDE operation used for freezing a configuration of released SDE

objects.

Baseline A SDE operation used for freezing a configuration of SDE reviewedconstituents.

Baseline area A SDE area containing baselined constituents which are under strictconfiguration control in the CM area.

Base Function The basic function underlying a function block, which is used in as-sociated with the function mask to provide the function block, c.f.Base Function and Function Mask. E.g. An analogy is the invocationof a C compiler with a set of options; the function block is the C com-piler invoked by ”cc”, the function mask is the specified set of options”–O”, ”–target”, etc. which specify parameters particular to the in-vocation (”optimisation”, ”cross–compilation”, etc.).

CCalibration In VICOS, calibration means calculation of values for enditems ac-

cording to predefined calibration curves, from raw format (i.e. for-mat as received resp. acquired via devices) into calibrated format.The result of a calibrated value is the Engineering Value, whichimplies an Engineering Unit to be applied.

Check in/out SDE operations to control versions of a SDE object under develop-ment. The check in operation freezes the contents of the checked outversion of an object such that this version can unambiguously be ref-erenced in the future. The check out operation creates a working copywith an incremental version number. It is worth pointing out that notall versions of a constituent represent formal releases: in general,versions represent just a state of an object that the developer wantsto preserve for his/her own convenience.

Child In a hierarchical structure, denotes an immediate descendant of agiven component. A child is thus located one hierarchical levelbelow its parent.

CI variant version A specific version of a CI variant

Class–A–check Process of validating the syntax and format of a segment of data de-noting an Action command.

Class–B–check Process of validating and verifying the consistency of resources allo-cated within an action w.r.t. the resource’s amount/availability.

Client A process or program that makes use of services provided by anotherprocess or program (called service provider or server).

CM area The SDE CM areas consists of the baseline area and the release area

Page 574: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

565

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Command Elementary instruction or statement from which a functionality iscalled.

Command Execution Report A report provided to the command originator after command execu-tion. The report specifies whether the command was executed suc-cessfully or not.

Command Status Report A report provided to ground or flight crew (on event occurrence oron request) comprising all related commands being active at thattime and their current processing status.

Communication Session A communication session is a logical exchange of messages betweentwo users of the network software, such as in a response/requestscenario when a request from user A solicits one or more responsesfrom user B. The session can be considered to begin when the requestis sent and finished when the last response has been received. Thisdefinition of a session is only valid when talking in terms of the net-work software. It should not be confused with an OSI session be-cause OSI has its own widely accepted definition.

Compilation Unit Smallest unit of code that is accepted by the compiler. In UCL, thereare 3 types of Compilation Units: Automated Procedure (AP), Li-brary Specification, and Library Implementation (or Library body).

Completeness Completeness is the software characteristic that ensures full imple-mentation of the functions required.

Component Component is a generic term used to cover any item in the higher le-vels of the software architecture (i.e. product, assembly and subsys-tem).

Configuration DB Configuration DB is the data base on EGSE site which contains alltest relevant data and configuration definitions for one specific el-ement(e.g. MTFF). It contains definitions for UUT (UUT specification)and EGSE Configurations(EGSE specification).NOTE : see appropriate definitions for UUT spec. and EGSE spec.

The Configuration DB contains several versions of definitions, eachdescribing a specific configuration.

Configuration DB Version A configuration data base version consists of the selection of partsfrom UUT specification data and EGSE specification data relevantfor a set of specific tests.One configuration data base may contain as many configuration database versions as the user wants to define.

Configuration Unit (CU) Collection of MDB items treated as a single unit for configurationmanagement purposes.CUs are of two kinds: (a) Configuration Data Units (CDU), which contain the actual data(b) Configuration Control Units (CCU), which contain reference in-formation (CU name, version number, etc.) about other CUs, just likea directory in a file system.

Page 575: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

566

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Configuration Unit Instance see Version

Configuration Control Unit (CCU)A Configuration Control Unit is a Configuration Unit used to defineand control other Configuration Units. It identifies which specificcombinations of CDU instances make up a particular configuration.A Configuration Control Unit may, in turn, point to lower–level con-trol units, thus leading to a hierarchical configuration tree whose top-most (root) component corresponds to an entire Columbus FlightConfiguration.

Configuration Data Unit (CDU)Configuration Data Units are composite entities containing theactual data items (grouped into individual units for configurationmanagement purposes).

Connection Matrix Refers to a matrix CM( i,j ) where the columns represent the symp-tom vectors of the individual anomalies and rows each stand for asymptom.

Consistency Consistency is the software characteristic that ensures uniform de-sign and implementation techniques and notations.

Constrained command see Two Stage Command

Control command A command to CSMM which allows to control the CSMM S/Wfunctions. It is used for enabling/disabling of automated functions(e.g. Failure Management, Resource Management) or checkingmechanisms.

Controlled Error Reporting An error reporting method where the application selects an errormessage from a pre–defined set of error messages stored in the ap-plication Error Message Database (CGSI).

Correctness Correctness is the degree to which the software component satisfiesthe specified requirements.

Current Role The role, from the subset of allowable roles, that a particular user hascurrently assumed.

DDATA_API A view based interface to the Mission Database. Provides views for

retrieval from the Mission Database, functions for setting the con-figuration and functions for commit/rollback within the chosen con-figuration.

Data Entry / Data MaintenanceGenerally refers to the process of entering and/or updating data in thedatabase. In this context, the term ”maintain” refers to any operation whichalters the state of the Database, i.e. add (insert) new data, modify ex-isting data, or delete data.

Data Type Declarations Type declarations are done in the syntax of the Ada ProgrammingLanguage.

Page 576: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

567

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Database A common or integrated collection of interrelated data whose pur-pose is to serve one or more applications.

Database Administrator (DBA)The person(s) responsible for the operation and maintenance of aDBMS.

Database Integrity Refers to the state in which the database is considered to be undam-aged (both physically and logically).

Database Management System (DBMS)The software responsible for the actual definition, storage and ma-nipulation of data in a Database at both the physical and logicallevel.

Database Server Refers to the processor (network node) physically hosting the Data-base and providing DB access services to local or remote applica-tions (clients).

Database Server Node In VICOS, a database server node is a logical node which providesservices to store and manage access to the Configuration DB as wellas to the Test Result DB.A logical DB Server node has to be mapped to a physical processorwhere it runs on (DB server processor).

Deadlock Situation in which two or more user processes cannot complete theirtransactions because each process is holding a resource that the otherprocess requires in order to complete.

Default a value supplied by the system when a user does not specify a re-quired parameter, qualifier, or attribute.

Default Role A nominated role, from the subset of allowable roles, that a particularuser defaults to at the start of a SDE session.

Default User The user to whom an error is reported as a default. This is the CGSuser on whose workstation the error occurred.

Development area A SDE area which contains constituents under development

Diagnosis Assumption about the faults or failures of a system obtained byexamination of the symptoms.

Display (or Screen Display) In this context, refers to an area on the physical screen surface as-signed to applications for the purpose of communicating with thehuman users. It may comprise one or several individual partitions(windows) each assigned to a different application.

Distributed Database A collection of databases that can be operated and managed separate-ly and also share information.

EElectronic Test Procedure Refer to ’Test Step’

End–Item see MDB item

Engineering Unit Refer to ’Calibration’

Engineering Value Refer to ’Calibration’

Page 577: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

568

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Engineering Value Log In VICOS, enditem values may be logged (stored with a time tag) incalibrated format in special logbooks as part of the Test Result DB.The values may be evaluated in an offline session without need forre–calibration.

Error Message The collection of data (textual description, attributes such as refer-ence number, criticality, time of occurrence, etc.) which describesthe error which has occurred (CGSI).

Error Message Mnemonic A short text string used by CGSI to index error messages.

Error Message Spec An error message spec. is the same as an error message, except thatit does not include the time of occurrence: this is the form in whichCGSI stores error messages.

Error Report The act of invoking the CGSI provided error reporting facility.

Error Reporter The invoked function block wishing to report an error.

Evaluation Application A tool within VICOS TEV or an SAS using TEV that performs a spe-cific evaluation task.

Evaluation Definition An end item of the Configuration Database containing a definitionused by TEV. Following types of evaluation definition are defined:

– HLCL Sequence– Selection Criteria (for logging event evaluation)– Statistic Definition (for statistical analysis)– Listing Definition (for listings)– Synoptic Display Definition– Graph Definition– Dump Criteria (TBC) (for raw data dump)– Report Definition (for generation of a test report).

Evaluation Result File A file containing the output of a VICOS TEV tool for further proces-sing or for storage. Several types of evaluation results files are identi-fied:– Logging Evaluation File (contains the result of an logging event evaluation)– Statistic File (contains the result of a statistical analysis)– Listing File (contains a listing)– Synoptic Display File (contains state of a synoptic display at a certain moment of time of the animation –graphic)– Graph File (contains the state of a graph at a certain moment of time of the animation–graphic)– Dump File (contains the result of a raw data dump)– Report (contains a report).

Event Log In VICOS, events (errors, out–of–limit exceptions, user input etc.)may be logged (stored with a time tag) in special logbooks as partof the Test Result DB. The events may be evaluated in an offlinesession by producing a selected list of events, ordered according totime tags.

Page 578: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

569

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Exception An out–of–limits condition or a status inconsistent with the value ob-tained by the monitoring function. In both cases, the current oper-ational state is taken into account. An exception may also be derivedfrom other values.

Export In the MDA context, this term refers to the process of extracting datafrom a DB and preparing it for inclusion (import ) into another DB.

FFailure The termination of the ability of a functional unit to perform its re-

quired functions (ISO). A failure may occur when a fault is encoun-tered. In the FDIR terminology, a failure is defined as the behavior of afunctional unit which is different from that expected.

Fault An accidental condition that causes a functional unit to fail to per-form its required functions (ISO). A fault if encountered, may causea failure.

Formal Language SpecificationsFormal language specifications are done in extended Backus–NaurForm (EBNF).

Function Block A component of CGS functionality which is invoked as a single en-tity, c.f. Base Function and Function Mask.

Function Mask A mask which provides a map onto the functions provided by thefunction block, implying the selection or non–selection of each func-tion, c.f. Base Function and Function Mask.

GGround Software All software that executes in any COLUMBUS ground computer or

in the flight configuration computers during pre–launch groundoperations.

HHeterogeneous system Refers to a system comprising different types of processors or oper-

ating systems.

Hierarchical Name Tree see Name Tree

High Level Command Language (HLCL)Language used for interactive commanding in the Ground System.

HLCL Command A HLCL command is any command which can be given interactivelyby the user to VICOS. HLCL commands can be given in specificcommand windows. Some of them are translated to UCL interactivecommands and transfered to the UCL Interpreter running on theEGSE test nodes (SCOE, MTP).are a set of

– specific HLCL commands– UCL interactive commands–

Home Directory The directory location assigned to a particular application of CGS,also called Application Home.

Page 579: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

570

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Homogeneous system Refers to a system in which all processors are of the same type orfamily (usually from one vendor).

IImplication Strength Entry in the connection matrix CM (i,j), in the range between zero

and unity, representing the measure of evidence which the symptomin the i–th row bears to the anomaly in the j–th column.

Import In the MDA context, this term refers to the process of receiving orincluding data from an external (possibly remote) DB into the localDB.

Integrity Integrity is the extent to which the software component controls ac-cess to system resources. (Resources here include database items,functions, and software controlled hardware).

Interactive Utilities With this term, all normal UNIX programs are meant, such as ’cp’,’ls’, ’find’,... These programs are, or can be, started from the ’shell’through ’interaction’ with the user. Those programs report problemsthrough messages printed to the standard output device (the ter-minal’s screen/window). The user can react accordingly. These ’in-teractive’ programs make use of system calls and library function toprovide their functions. These system calls and library functions arealso referred to as a ’programmatic interface’ to ’non–interactive’utilities. Example: ’open’, ’read’, ’write’, ’stat’, ’close’, ’unlink’, ....These ’non–interactive’ utilities report problems through a variablecalled ’errno’.

Intermediate code (I–code) The binary code generated by the UCL compiler. It is interpreted atrun time.

Interoperability Interoperability is the extent of effort required to facilitate the inter-face of one software component with other systems or software com-ponents.

Issue see Version

JJournal A journal is a list of logging events in a user readable format as pro-

duced by VICOS TEV. It is referred to also as Event Logging List

LLevel Name The name which identifies one node at a particular level in the MDB

hierarchy. A long path name is a concatenation of level names.

Library see Symbol Library , UCL Library

Local Time (LOT) The time to which the system clocks are set is the LOT. It can be e.g.the official local time, in use at the location of the EGSE’s installa-tion or GMT or UTC,...The time server for LOT will be the time ofthe MTP system clock. This can be set by the system administratorusing Unix shell commands.

Locking Mutual exclusion mechanism used for controlling concurrent accessby multiple users/applications to a shared resource.

Page 580: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

571

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Logbook A logbook is a storage unit (file or may be something else if a DBMSis used) for events and engineering values. Then there are two typesof Logbooks: the Events Logbooks and the EVL Logbooks.

Logging See ’Event Log’ and ’Engineering Value Log’

Limit In VICOS, monitoring is driven by limits defined for each enditem.Lower and upper limits can be defined. When VICOS detects anenditem value which is ’out–of–limits’, a message (’exception’) israised if a predefined ’count’ of limit violations is reached. Togetherwith the generation of exceptions, automatic actions (start of AP,genertion of stimulli/TC) may be initiated. ’Limits’ for discrete or di-giital enditems are referred to as ’Expected Values’There are two kinds of limits: ’hard limits’ and ’soft limits’. Hard li-mits cannot be changed online and are checked with higher prioritythan soft limits. Soft limits can be changed by the test operator in anongoing test (online).Each enditem in VICOS may have a set of soft limits defined. Selec-tion of one applicable set is driven by conditions or switched whenTC/Stimuli are given or selected by the operator.

MMaster Archive Refer to ’Test Result DB’

MDB Item, MDB Object In the context of this document, these two terms are used interchan-geably to denote a uniquely identifiable entity that has been definedin the Mission Database ( and corresponds to a real–world HW or SWentity). An MDB Object or Item may be decomposed into lower–level items according to the hierarchical nametree conventions, seeNametree below. An End–Item is an MDB item located at the lowest hierarchicallevel (leaf or terminal node), and hence cannot be further decom-posed.

MDB–Item instance An occurrence of a particular MDB item in a given CU version.

Measurement A measurement is a single (analog or digital) intput from a (measure-ment) device.

Mission The performance of a coherent set of investigation or operations inspace to achieve space programme goals. A single mission may re-quire more than one flight, and more than one mission may be ac-complished on a single flight.

Mission Database (MDB) This a CM–controlled ground Database used as repository for allHW / SW information required for specific Columbus missions ortest configurations. Access to the MDB is controlled and managedby MDA.

MPS / MDA User see User

NNametree Hierarchical (tree) structure within the MDB which portrays the hi-

erarchical decomposition of Columbus Flight Configurations into

Page 581: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

572

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

systems, subsystems, equipment, etc. The topmost node of thenametree (called the root node) designates the Flight Configuration,whereas terminal nodes (leaf nodes) represent the items that cannot(or need not) be further decomposed, i.e. the so–called end–items.Each MDB object is thus identifiable by a pathname indicating thesuccession of nodes to be traversed to reach that particular item in theNametree.

Network A group of computers (workstations) and/or terminals that are linkedtogether to allow the sharing of resources (data and peripherals).

Network Time Protocol (NTP)NTP is a time synchronisation protocol used to minimise the offsetsbetween the system clocks of the computers in a network. In this pro-tocol the NTP–clients periodically request time information from theNTP–server. Based upon this information, the NTP–clients adjusttheir own clocks in order to get the offset w.r.t. the NTP–server to theminimum.

Node Any component of a network or tree structure (e.g. LAN node,nametree node).

OOperating System (OS) The system software that controls the computer and its parts, per-

forming the basic tasks such as allocating memory, and allowingcomputer components to communicate.

Operator The person who operates any system comprising software and hard-ware using the provided computer input devices (e.g. keyboard,pointing device, voice input, pushbuttons, switches etc) and/or com-puter output devices (e.g. screen, printer, lamps etc).

PParent In a hierarchical structure, denotes an immediate ancestor of a given

component.

Parent Screen See HCI Standards

Pathname see Nametree

Physical Screen See HCI Standards

PL/SQL ORACLE procedural language extension to SQL

Pro*C ORACLE pre–C compiler with embedded SQL.

Procedural Interface A procedural interface is an interface which is implemented by a setof procedures, usually grouped into an Ada package(s). The interfacemay be included in the interfacing component without concern forthe underlying implementation, and so allow development and test-ing of the underlying component.

Project A SDE project is a CI variant version (also known as a CI instantia-tion). A variant exists, for example, for each different target systemof the CI. Variants are, in turn, organised into versions. A version of

Page 582: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

573

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

a variant corresponds, for example, to a major revision of the specifi-cation. Within a version of a variant there are potentially many ob-jects; each of these may exist in many versions.

Protocol Rules and conventions for organizing data to be sent from one ma-chine to another. The protocol enables the destination machine torecognize that the data is addressed to it, check the data to make surethat it is valid, unpack and decode the data, etc.

Proximity Ratio A measure of the correspondence of observed pattern to predefinedpattern. For failures and faults the proximity ratio is defined as thequotient of observed to expected symptoms.

QQualification Data Data which is used to implement the qualification functionality of

CGS, e.g. test results, test procedures, test cases, trace informationetc.

RRecovery This is the process where a Database which is damaged (or assumed

to be so) is restored to a previous state known to be consistent.

Remote Utilities A group of generally available UNIX programs providing access toremote hosts. These programs are activated by the shell to performa certain function. Examples are: ’Remote Shell’ (rsh on SunOS orremsh on HP) will execute the command given as arguments to the’remote shell’ on the node specified by the first argument; ’RemoteCopy’ (rcp on SunOS and HP) is a copy command where the argu-ments can take ’hostname:’ prefixes to indicate the indicated filemust be seen relative to that ”hostname”; ’Remote Login’ (rlogin onSunOS and HP) will open a channel to the host specified as an argu-ment and allow the user a login attempt.

Report In the context of this document, a report may be defined as anyhuman–readable description of one or more MDB items. It is an as-sorted collection of information usually presented to the user in formof a table or itemized list (tabular format).A report’s specification contains the instructions for generating thereport, e.g. data selection criteria, formatting instructions, and sortorder. This specification may be stored in the MDB. On request, a report is generated, i.e. the predefined instructions areexecuted, and the resulting output routed either to the workstation’sscreen (on–screen report), to the printer or to a user–selected file.

Resource Any of the component parts of the System, or the facilities that itoffers (e.g. power, communication channels, etc.).

Resource Allocation The act of making a resource (or part of it) available for use by an Ac-tion.

Resource Deallocation The act of freeing or releasing a resource previously allocated; theresource then becomes available to other users.

Response time For interactive transactions, this refers to the time elapsing betweenthe ”end of input” signal (e.g. pressing the ENTER, ACCEPT, or

Page 583: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

574

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

COMMIT key) and the first character of the reply reaching the user’sterminal.

Restore This refers to the process of copying archived data back to activestorage.

Revision see Version

SSammi Graphical, interactive process control software. Consists of two

parts. The format editor for creating synoptic displays and the run-time system for executing synoptic displays.

Screen Display see Display

Semantics Refers to the set of rules dealing with the contextual meaning of thelanguage elements (symbols, constants, variables, etc.).

Server A process providing services to other cooperating processes.A DB server is the processor (network node) physically hosting theDatabase and providing DB access services to local or remote ap-plications (clients).

Short Identification A unique identification value for an end item in the Columbus NameTree, which may be used to access that item. The pre–compilationstage in the SDE provides a translation, using an MPS service, of afull path name for an end item into a short id. The short id is used todecrease access time to the item when the software containing theitem is executed.

Simulated Mission Time Mission Time starts counting the moment space station Freedomsupplies all services to the APM and all APM circuits are powered.In order to perform the required EGSE tests, this time has to be simu-lated, and the possibility has to be there to manipulate SMT, i.e. toset, stop and continue SMT.

SMT–domain An SMT–domain is a set of VICOS nodes having their own SMT–server. Because in a distributed configuration more then one test con-figuration can be active at the same time (one configuration in on–line checkout and a second one in off–line simulation mode) severalSMT–domain, each with its own SMT–server, can exist simulta-neously.

Software Exchangeable Unit (SWEU)All COLUMBUS ground software is configured into SWEUs. AnSWEU is any software unit or component which can be replaced asa single item. As such it is primarily a configuration managementitem and is handled in the same way as an (onboard) SWRU for CMpurposes. ( See also SWRU).

Specific Applic. S/W (SAS) Specific Application S/W (SAS) is the S/W executed in parallel withVICOS on the same H/W, using VICOS services. It is written in Adaand executed under the same OS as VICOS is. It is be linked toVICOS services using VICOS supplied interface libraries. SAS in-

Page 584: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

575

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

cludes the S/W which is written for specific purposes of the EGSEand is standard for the EGSE. Each special application S/W productwill be produced in the SDE, in which it is identifiable via its nameand a version identification.

Stimulus A stimulus is a single (analog or digital) output to a (stimuli) device.

SWEU data set The data transferred for an SWEU which contains the followingitems:

– Configuration Identifier, variant and version

– SWEU SDE name and version

– Object Code

– Object Code Size

– Date of generation of the object code

– Programming Language used for majority ofimplementation

– Criticality of the SWEU

– Short identifiers cross reference list.

Software Replaceable Unit (SWRU)All COLUMBUS flight software is configured as a set of SWRUs.Some SWRUs can be replaced online. Otheres are replaced by re-loading the pocessor. All SWRUs are configuration managementitems in the same way as SWEUs.

SWRU data set The data transferred for an SWRU which contains the followingitems:

– Configuration Identifier, variant and version

– SWRU SDE name and version

– Object Code

– Object Code Size

– Date of generation of the object code

– Programming Language used for majority ofimplementation

– Criticality of the SWRU

– Replacement type of the SWRU i.e. offline, online, orembedded

– target processor type i.e. SSCU, STAU, MMC, DBC,WSA, Equipment level processor

– compatible processors that could be used for re–allocation

– Short identifiers cross reference list.

Solicited Connection RequestA solicited connection request is a connection request that a NWSWuser on a specific node makes to some other NWSW instantiation ex-ecuting in the network.

Page 585: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

576

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Sustainable Date Rate A sustainable data rate is a rate of data traffic that can be maintainedfor a relatively long period of time, where the period of time is of, atleast, the order of seconds (the number of seconds depends upon thecontext).

SWRU Support Set Refers to the set of data and procedures required to control and auto-mate the generation and exchange of SWRUs. The SWRU SupportSet typically includes: offline generation procedure, maintenance in-formation, verification information, replacement procedure andother general information (identification, version, generation date,size, criticality, target processor type, etc.).

Symptom Indicator of faults or failures.

Synoptic Displays Synoptic Displays is a VICOS HCI window service which allow thehuman user to display and manipulate Synoptic Picture within win-dows at the workstation screens.

Synoptic Picture A Synoptic Picture is defined as content of a Synoptic Displays win-dow. It is a predefined graphical picture that represents the physicaldevices and subsystems (EGSE or UUT). It contains output elementsthat are dynamicly animated (to indicate status / values) as well asinput elements that allow for commanding the devices/subsystemsby direct mouse manipulation.

System Administrator A person responsible for the operation and maintenance of the oper-ating system of a computer.

TTelecommand (TC) The data uplinked from the ground to a spacecraft is known as tele-

commands. It contains requests to the onboard system or bulk data.In the Columbus EGSE the data is sent to the Spacecraft via the TM/TC Front End. The protocols used are baselined to be CCSDS pathservice, and therefore TC data is uplinked in CCSDS packets.In VICOS, a TC is always a single request. Bulk data is to be uplinkedby S/W outside VICOS (SAS) using VICOS services. TC and Stimu-li are handled in a similar way.

Telemetry (TM) The data downlinked from a spacecraft to the ground is known as te-lemetry data. It contains status data of the onboard system. In the Co-lumbus EGSE the data is acquired from the Spacecraft via the TM/TC Front End. The protocols used are baselined to be CCSDS pathservice, and therefore TM data is downlinked in CCSDS packets.In VICOS TM packets and measurments are handled in a similarway.

Test Node In VICOS, a test node is a logical node which provides the data inter-faces to the UUT, either directly or via frontend equipment. Testnodes require data from the UUT, generate data to it, process data(calibration and monitoring) and interprete Automatic Procedures.A logical test node has to be mapped to a physical processor whereit runs on (test processor).

Test Results In VICOS, the term test results is summarising all data produced dur-ing a test session that are foreseen for long term storage or offline

Page 586: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

577

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

evaluation. Test Results comprise at least:– raw data archive files– event logging data– engineering value logging data– printable reports– graphical output– data sets produced for intermediate storage of engineering enditems– the ’as–run–procedure’– other

Test Result DB In VICOS, the Test Result DB (TRDB) contains all data producedin different test sessions, either during test execution or test evalu-ation It contains an index of all data items (Master Archive), indicat-ing the name, the related time frame and the location of storage foreach item.The Test Result DB is managed by VICOS DBS and consists ofOracle Tables as well as of OS files.The Master Archive is a sort of index that allows to retrieve datastored on the Mass Storage according to criteria like time, testsession, evaluation session. The Master Archive is located on a Mag-netic Disc of the EGSE Database Server.The Mass Storage contains physically all the data: Logbooks, Ar-chive Files, Evaluation Result Files. It is accessed thru the Master Ar-chive. The data will be stored temporarily on magnetic disc and thenon several storage media (Long Term Storage Medium e.g. opticaldisc).The Visible Part of the TRDB is the part that can be directly accessedat a certain instant of time. That means, it is the Master Archive plusthe data of the Mass Storage stored on magnetic disc and on the LongTerm Storage Media actually mounted.

Test Session In VICOS, a test session is a term identifying a sequence of oper-ations and activities within a given time frame, related to a specificset of test objectives, together with the generated test results and areference to the used configuration. A test session has a unique name,and an index of all results produced in the test session is stored in theTest Session Table within the Master Archive as part of the Test Re-sult DB.There are two kinds of test sessions: – the Online Test Session, which is produced during an online test – the Evaluation Test Session, which is produced by a specific user

when data evaluation is performed offline.

Traceability Traceability is the software characteristic that provides a thread oforigin from the implementation to the requirements with respect tothe specified development envelope and operational environment.

Traceability Data Data which provides traceability information between items of acomponent of components of the development process.

Page 587: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

578

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

Transaction Single thread of related activities representing a sequence of oper-ations initiated by the occurrence of a stimulus and ending with therequired response.

Translation Table A translation table (in the context of the NWSW) is a data structurethat contains information relating the physical network address of aNWSW instantiation to the logical ASCII name by which it is knownto the user.

Two–stage Command A command which requires confirmation from the originator beforeit is executed.

UUnit Unit is a generic term used to cover any lower level item of break-

down in the software architecture e.g. module, object etc.

Unit Under Test (UUT) UUT means a spacecraft or a part of a spcecraft where the EGSE isconnected to and which is foreseen to be checked out using the EGSEand VICOS.

Unsolicited Connection RequestAn unsolicited connection request is a connection request that aNWSW user on a specific node receives without prior notice fromsome other NWSW instantiation executing in the network.

User Throughout this document the term User or MPS / MDA User refersto any person using MDA–provided services. Users are grouped intodifferent classes or categories and will be assigned different privi-leges based on the task they perform.

User Control Language (UCL)Columbus Test and Operations language (used for real–time control& monitoring purposes in both the onboard and ground environ-ment)

User Name The method used to identify the authorised users of the CGS installa-tion.

User Working Environment A user working environment is a specific S/W environment, whichis appropriate to a human user (e.g. test conductor, test observer) andhis task. It enables the user to start automatically the applicationswith the corresponding windows needed for his work (e.g. creationof a Synoptic Displays window and start of the AP’s belonging to it).See also ’S/W Environment (VICOS User)’.

UCL Library Encapsulation mechanism for UCL data structures and operations.(can be viewed as a collection of functions, procedures, types, etc.)A UCL Library corresponds to a package in Ada or a module inModula–2.

VVersion In the course of its life cycle, a Configuration Unit (CU) usually un-

dergoes several modifications due to evolving user requirements, de-sign changes, etc.

Page 588: CGS ICD 0001 1/- 510 · COL–RIBRE–IRN–CGS–8206 Issue 1/– delete ch. 5 (SDE) COL–RIBRE–IRN–CGS–8203 Issue 1/– 4.1.3 COL–RIBRE–IRN–CGS–8207 Issue 1/– Remove

Dok.-Nr/ Doc. No.:Ausgabe /Issue:

Überarbtg./ Rev.:

Seite/Page:

Datum/ Date:

Datum/ Date:

579

CGS–RIBRE–ICD–00011–

31.01.02–

von /of: 564

astriumSpace Infrastructure

It will thus possibly exist within the MDB in many different formsor instances (CU occurrences) commonly referred to as versions,e.g. DMS Version 3.2.1.

In the Configuration Management (CM) context, however, the vari-ous CU occurrences. are classified according to the types of changesthat have been made. The terms versions, issues, and revisions arethen used to differentiate between the following 3 cases:– Modifications due to requirements changes which result in a newversion– Modifications due to design changes which result in a new issue.– Modifications due to bug fixes, repairs or other corrections (affec-ting neither the design nor the requirements) which result in a newrevision.

(In the above example, the CU Identifier ”DMS Version 3.2.1”,therefore, refers to Version 3, Issue 2, Revision 1 of the DMS)

Visibility When a file is accessible by a a normal UNIX program (excluding’remote utilities’), then the file is considered ’visible’. Without a net-work, visibility is restricted to local disks, tapes and other periph-erals. When the system is integrated into a network, then some files/directories on other devices in the network may become ’visible’ tothe local machine through the use of NFS. Another way to describeit would be: a file is ’visible’ when its name can be specified (opened)to the UNIX system call ”open”.NOTE: ’Visibility’ has nothing to do with a user’s access rights to aparticular file. A file may be ’visible’ to the host program runningwith ’root’ privileges but at the same time be inaccessible to a normaluser.

WWidget An object providing a user interface abstraction (for example, a

Scrollbar widget).

XX11 X Window System Version 11 is a library which provides functions

to write applications with a graphical user interface running on a net-work.

Working Directory A disc space containing the intermediate files for a specific tool anda specific user.

Workstation Node In VICOS, a workstation node is a logical node which provides theinterface to the operator and executes operator related functions fortest execution monitoring and control, for test setup, for test prepara-tion and for test evaluation. It runs the VICOS HCI, the TSCV andthe TEV.A logical workstation node has to be mapped to a physical processorwhere it runs on (workstation processor).


Recommended