| Earth Observation Mission CFI Software EECommon Software User Manual |

Earth Observation Mission CFI Software
EECOMMON SOFTWARE USER MANUAL

Code | EO-MA-DMS-GS-010
Issue | 4.11
Date | 29/10/15

| Name | Function | Signature
Prepared by: | Carlos Villanueva Muñoz | Project Manager |
Checked by: | Carlos Villanueva Muñoz | Project Manager |
Approved by: | José Antonio González Abeytua | Division Head |

# DOCUMENT INFORMATION

Contract Data | Classification
--- | ---
Contract Number: | 15583/01/NL/GS | Internal |
Public |
Contract Issuer: | ESA / ESTEC | Industry | X
Confidential |

External Distribution
Name | Organization | Copies

Electronic handling
Document generator: | Doxygen 1.7.1
Electronic file name: | eo-ma-dms-gs-010-10

# Document Status Log

Issue | Change Description | Date | Approval
--- | --- | --- | ---
1.0 | First release These libraries corresponds to version 4.0 of C libraries. | 27/03/09 |
4.1 | Second release These libraries corresponds to version 4.1 of C libraries. | 07/05/10 |
4.2 | Third release These libraries corresponds to version 4.2 of C libraries. | 31/01/11 |
4.3 | Fourth release These libraries corresponds to version 4.3 of C libraries. | 06/02/12 |
4.4 | Fifth release These libraries corresponds to version 4.4 of C libraries. | 05/07/12 |
4.5 | Sixth release These libraries corresponds to version 4.5 of C libraries. | 01/03/13 |
4.6 | Seventh release These libraries corresponds to version 4.6 of C libraries. | 03/10/13 |
4.7 | Eighth release These libraries corresponds to version 4.7 of C libraries. | 28/03/14 |
4.8 | Ninth release These libraries corresponds to version 4.8 of C libraries. | 29/10/14 |
4.9 | Tenth release These libraries corresponds to version 4.9 of C libraries. | 23/04/15 |
4.10 | Eleventh release These libraries corresponds to version 4.10 of C libraries. | 29/10/15 |
4.11 | Eleventh release These libraries corresponds to version 4.11 of C libraries. | 15/04/16 |

# ACRONYMS, NOMENCLATURE AND TERMINOLOGY

## Acronyms

ANX | Ascending Node Crossing
AOCS | Attitude and Orbit Control Subsystem
ASCII | American Standard Code for Information Interchange
BOM | Beginning Of Mission
CFI | Customer Furnished Item
EOM | End Of Mission
ESA | European Space Agency
ESTEC | European Space Technology and Research Centre
GPL | GNU Public License
GPS | Global Positioning System
IERS | International Earth Rotation Service
I/F | Interface
LS | Leap Second
OBT | On-board Binary Time
OSF | Orbit Scenario File
SRAR | Satellite Relative Actual Reference
SUM | Software User Manual
TAI | International Atomic Time
UTC | Coordinated Universal Time
UT1 | Universal Time UT1
WGS[84 | World Geodetic System 1984

## Nomenclature

CFI | A group of CFI functions, and related software and documentation. that will be distributed by ESA to the users as an independent unit
CFI function | A single function within a CFI that can be called by the user
Library | A software library containing all the CFI functions included within a CFI plus the supporting functions used by those CFI functions (transparently to the user)

## Notes in Terminology

In order to keep compatibility with legacy CFI libraries, the Earth Observation Mission CFI Software makes use of terms that are linked with missions already or soon in the operational phase like the Earth Explorers. This may be reflected in the rest of the document when examples of Mission CFI Software usage are proposed or description of Mission Files is given.

# APPLICABLE AND REFERENCE DOCUMENTS

## Applicable Documents

[GEN_SUM] | Earth Observation Mission CFI Software. General Software User Manual. EO-MA-DMS-GS-017. Issue 4.11 15/04/16

# INTRODUCTION

## Classes Overview

This software library contains classes common to the rest of CFI classes. The following CFI classes are included:

- CfiClass: Base class for all CFI classes.
- CfiError: Class to manage the CFI exceptions.

## CFI BASE CLASS

CfiClass is the base class for all the CFI classes (but error handling classes) with common methods to handle warnings in error messages

## CFI ERROR HANDLING

CfiError is the class used to handle exceptions thrown by CFI classes methods. Every time an error is detected in the methods of CFI classes, an exception of type CfiError is thrown, and it must be caught with a try-catch block.

# LIBRARY INSTALLATION

For a detailed description of the installation of any CFI library, please refer to [GEN_SUM].

# LIBRARY USAGE

To use the CFI EECOMMON software library in an user application, that application must include in its source code the header files where the classes that are going to be used are defined.
To link correctly this application, the user must include in his linking command flags like (assuming cfi_lib_dir and cfi_include_dir are the directories where respectively all CFI libraries and include files have been installed, see [GEN_SUM] for installation procedures):

- LINUX:
  -Icfi_include_dir -Lcfi_lib_dir
  -lCfiEECommon (other CFI libraries)
- WINDOWS:
  /I "cfi_include_dir" /libpath:"cfi_lib_dir"
  libCfiEECommon.lib (other CFI libraries)
- MacOS:
  -Icfi_include_dir -Lcfi_lib_dir
  -lCfiEECommon (other CFI libraries)

Note that, this library is only used to give suport to other CFI libraries and it doesn't provide any functionality by itself.

As Earth Observation CFI libraries are dynamic, cfi_lib_dir must be included in the path where the system looks for dynamic libraries (LD_LIBRARY_PATH in LINUX and SOLARIS, DYLD_LIBRARY_PATH in MacOs). For WINDOWS sytem, the executable will look for .dll libraries, not the .lib ones that are used to create the executable, so they must be in the path described by PATH variable.
All the classes described in this document are defined in EECFI namespace, to avoid any possible conflict with classes of other libraries, so the user must choose one of the following two options in order to use the classes:

- Inserting using namespace EECFI; in the code.
- Using the classes with the namespace prefix (e.g.: EECFI::OrbitFile orbitFile;)