38
ESA UNCLASSIFIED – For Official Use SOIS EDS & Toolchain ESA YGT Study F. Torelli & P. Skrzypek CCSDS Fall Meeting 2013 28/10/2013

ESA UNCLASSIFIED – For Official Use SOIS EDS & Toolchain ESA YGT Study F. Torelli & P. Skrzypek CCSDS Fall Meeting 2013 28/10/2013

Embed Size (px)

Citation preview

ESA UNCLASSIFIED – For Official Use

SOIS EDS & ToolchainESA YGT Study

F. Torelli & P. SkrzypekCCSDS Fall Meeting 201328/10/2013

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 2

ESA UNCLASSIFIED – For Official Use

Outline

• EDS study overview

• Interface description

• Process description

• Software framework and toolchain

• Recap and open pointsD1

D2

D3

RIU 1

DVSDAS

Sub PS

DVSDASSub MAS

Software Bus

Adaptor

SpacecraftInterface

(Data Handling)

MissionControlSystem

RS422

SpW

1553

SpW

API

API

SW Bus TM/TC

D3 FI

SpW Access

D1 FI

SpW Access

D1+D2 FI

1553 Access

D1+D2+D3 FI

MTS Access

D1+D2+D3 FI

TM/TC Access

EDS describes interfaces of

Physical Devices

EDS describes interfaces of SW

Components

EDS describes interfaces of Spacecraft

EDS

EDS

EDS EDS

EDS

EDS describes interfaces of SOIS implementation API

D1+D2 FI

SOISAccess

EDS

Credit for the onion diagram: S. Fowell

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 3

ESA UNCLASSIFIED – For Official Use

EDS study overview

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 4

ESA UNCLASSIFIED – For Official Use

EDS study timeline

SepAug Oct Nov Dec Jan Feb Mar Apr May Jul Aug

INTRODUCTION TO SOIS

INTRODUCTION TO ATB

DEFINING EDSREQUIREMENTS

ANALYSIS OF NPAL ICD

RESEARCHINGDRIVERGENERATION

STUDY VARIOUSDESCRIPTIONFORMATS

SEARCHING FORSUITABLE CODEGENERATORS

LEARNING ASN.1 AND SDL

EXTENSIVE TESTING OFASN1SCC TOOL

FIRST EDS SCHEMA

MAPPING BETWEENEDS AND ASN.1

IMPLEMENTINGEDS TO ASN.1TRANSLATOR

UPDATE SCHEMA AND MAPPING

IMPLEMENTINGNPAL EDS

PREPARATION FORSOIS WG MEETING

EXTENDINGEDS TO ASN.1TRANSLATOR

MAPPING BETWEENEDS AND SDL

IMPLEMENTINGDVS SERVICE IN ADA

TRYING TO LINKEVERYTHING TOGETHER

IMPLEMENT EDS TO SDLTRANSLATOR

SOIS WGMEETING

TASTETRAINING

MID-TERMPRESENTATION

FINALPRESENTATION

SOIS WGMEETING

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 5

ESA UNCLASSIFIED – For Official Use

SOIS Services

Overview & key features

EDS

• Interface data types based on ASN.1

• Protocol description based on SDL

• Transactions connecting service primitives between layers

• Different service models

Software framework & toolchain

• Threads and queues

• Code generation based on intermediate formats to leverage existing open source tools

SOIS EDS

DVS Service Interface

DACP Description

DAS Service Interface

DAP Description

SubNet Service Interface

DVS Interface

DACP Implementation

DAS Interface

DAP Implementation

SubNet Interface

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 6

ESA UNCLASSIFIED – For Official Use

Interface description

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 7

ESA UNCLASSIFIED – For Official Use

Data types

Integer number• value constraints

• binary encoding rules

Enumeration field• value constraints

• binary encoding rules

Floating point number• value constraints

• binary encoding rules

Bit string• value constraints

• binary encoding rules

• dynamic length

Array• dynamic length

Sequence• up to one component of dynamic

length

• can put additional constraints on member types

• binary encoding rules

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 8

ESA UNCLASSIFIED – For Official Use

Integer

Value constraints:

Interval with open or closed boundaries

Constant value

Multiple constraints result in an union

Binary encoding rules:

Required if the type is used as a packet or memory field

Supported representations: positive and two’s-complement

Size expressed in bits

Little-endian encoding available only for sizes: 16b, 32b, 64b, etc.

1. <int name="MyInt">   2.    3.   <constraints>       4.     <interval lbound="closed" lvalue="-10"     5.               rbound="open" rvalue="10"/>      6.     <const value="15"/>      7.   </constraints>      8. 9.   <encoding representation="positive"     10.            size="16" endianness="big"/>  11.   12.</int>  13.

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 9

ESA UNCLASSIFIED – For Official Use

Enumeration

Value constraints:

Finite set of options

It is possible to assign integer number to the option if necessary

Binary encoding rules:

Required if the type is used as a packet or memory field

Assumed positive encoding

Size expressed in bits

Little-endian encoding available only for sizes: 16b, 32b, 64b, etc.

1. <enum name="MyEnum">  2.   3.   <constraints>    4. 5.     <option name="run">    6.       <const value="0"/>    7.     </option>    8. 9.     <option name="stop">    10.      <const value="1"/>    11.    </option>    12. 13.  </constraints>   14.  15.  <encoding size="2" endianness="big"/>   16.  17.</enum>  18.

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 10

ESA UNCLASSIFIED – For Official Use

Floating point number

Value constraints:

Interval with open or closed boundaries

Multiple constraints result in an union

Binary encoding rules:

Required if the type is used as a packet or memory field

Assumed IEEE754-1985 encoding

Size expressed in bits, but only 32 or 64 bits allowed

Support for endianness

1. <float name="MyFloat">  2.   3.   <constraints>    4.     <interval lbound="closed" lvalue="0"    5.               rbound="open" rvalue="3.14"/>    6.   </constraints>   7.  8.   <encoding size="32" endianness="big"/>9.     10.</float>  11.

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 11

ESA UNCLASSIFIED – For Official Use

Bit string

Value constraints:

Not required

Useful to describe a constant bit pattern within a packet

Binary encoding rules:

Support for endianness

For little-endian encoding, word_size attribute is required

Dynamic length:

For variable length, min and max attributes should be provided

For static length, only size attribute is required

1. <bit_string name="MyBitString"> 2.    3.   <constraints>    4.     <const bin="1010"/>    5.   </constraints>    6. 7.   <encoding dynamic="false" size="4"    8.             word_size="4" endianness="big"/> 9.    10.</bit_string> 11.

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 12

ESA UNCLASSIFIED – For Official Use

Array

Dynamic length:

For variable length, min and max attributes should be provided

For static length, only count attribute is required

1. <array name="MyArray">    2. 3.   <element type="MyType"/>    4. 5.   <length dynamic="false" count="28"/>    6. 7. </array>    8.

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 13

ESA UNCLASSIFIED – For Official Use

Sequence

Dynamic length:

Sequence may have maximum one member of dynamic size

Constraints on member types:

Constraints given here will be intersected with type’s original constraints

Great tool for packet decoding!

Binary encoding rules:

Support for endianness

For little-endian, word_size attribute is required

1. <sequence name="MessageComplexMatch">    2.   <members> 3.    4.     <member name="header" type="MyHeader">    5.       <sequence_subconstraints>    6.         <member name="sync">    7.           <subconstraints>    8.             <const hex="BEEF"/>    9.           </subconstraints>    10.        </member>    11.        <member name="id">    12.          <subconstraints>    13.           <const value="0"/>    14.           <interval lbound="closed" lvalue="2"  15.                 rbound="closed" rvalue="255"/>  16.          </subconstraints>    17.        </member>    18.        <member name="alarm">    19.          <subconstraints>    20.            <option name="red"/>    21.            <option name="yellow"/>    22.          </subconstraints>    23.        </member>    24.      </sequence_subconstraints>    25.    </member> 26.    27.    <member name="altitude" type="SomeFloat"/>   28. 29.  </members>    30.  <encoding word_size="16" endianness="big"/>  31.</sequence>  32.

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 14

ESA UNCLASSIFIED – For Official Use

Example of functional interface

this section lists all possible relations

relation which can be aquired

relation which can be commanded

relation is identified by value_id type

value_id may contain many fields

structure of exchanged data

structure of associated metadata

this section defines all data types used

1. <functional_interface class="thermistor">    2.   3.   <interface>    4.   5.     <acquire>    6.       <value_id type="temperature_reading_t"/>    7.       <value type="temperature_t"/>    8.       <metadata type="bivalent_t"/>    9.     </acquire>     10.   11.     <command>    12.       <value_id type="alter_refresh_rate_t"/>    13.       <value type="interval_t"/>    14.       <metadata type="bivalent_t"/>    15.     </command>    16.   17.   </interface>    18.   19.   <data_types>    20.   21.     <sequence name="temperature_reading_t">    22.       <declare name="header" type="value_id_header_t">  

  23.         <constraint field="service">    24.           <option name="read_temperature"/>    25.         </constraint>    26.       </declare>    27.       <declare name="unit" type="thermistor_unit_t"/

>    28.     </sequence>    29.   30.     <!-- temperature_t, bivalent_t, thermistor_unit_t  -

->  31.     <!-- alter_refresh_rate_t, interval_t, ... -->  32.   33.   </data_types>    34.   35. </functional_interface>  

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 15

ESA UNCLASSIFIED – For Official Use

Process description

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 16

ESA UNCLASSIFIED – For Official Use

Instructions

Data handling

• immediate values

• aliases

• variables: declaring, accessing

• moving data

• arithmetic operations

Calibration

• linear calibration

Flow control

• loops

• conditional statements

Using SOIS services

• Device Access Service

• Packet Service

• Memory Access Service

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 17

ESA UNCLASSIFIED – For Official Use

Data handling

Immediate values

1. <const value="7"/>2.

Aliases

1. <alias name="reaction_wheel_address"/>2.

Declaring variables

1. <declare name="battery_temp" type="temperature_t"/> 

2.

Accessing variables

1. <variable name="battery_temp"/>2.

Moving data

1. <copy>    2.   <source>    3.     <!-- constant or variable -->    4.   </source>    5.   <destination>    6.     <!-- variable -->    7.   </destination>    8. </copy>9.

Arithmetic operations

1. <addition>      2.   <result>      3.     <variable name="sum"/>      4.   </result>      5.   <addend>      6.     <variable name="term1"/>      7.   </addend>          8.   <addend>      9.     <const value="17"/>      10.  </addend>      11.</addition>12.

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 18

ESA UNCLASSIFIED – For Official Use

Calibration

Linear calibration

1. <linear_calibration>    2.   <slope>    3.     <const value="1"/>    4.   </slope>    5.   <bias>    6.     <const value="-100"/>    7.   </bias>    8.   <input>    9.     <variable name="temperature_raw"/>    10.   </input>    11.   <output>    12.     <variable name="temperature_kelvin"/>    13.   </output>    14. </linear_calibration>  15.

More calibrations could be supported

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 19

ESA UNCLASSIFIED – For Official Use

Flow control

Loops

1. <loop>    2.   <interval>    3.     <left bound="closed" value="1"/>    4.     <right bound="closed" value="10"/>    5.   </interval>    6.   <iterator>    7.     <variable name="i"/>    8.   </iterator>    9.   <process>    10.    <!-- process code -->    11.  </process>    12.</loop>  13.

Conditional statements

1. <compare>    2.   <subject>    3.     <variable name="result"/>    4.   </subject>    5.   <reference>    6.     <variable name="threshold"/>    7.   </reference>    8.   <lower_than>    9.     <!-- process code A -->    10.  </lower_than>    11.  <greater_than>    12.    <!-- process code B -->    13.  </greater_than>    14.  <equal>    15.    <!-- process code C -->    16.  </equal>    17.  <not_equal>    18.    <!-- process code D -->    19.  </not_equal>    20.</compare> 21.

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 20

ESA UNCLASSIFIED – For Official Use

Using SOIS Services 1/3

Device Access Service

1. <das_acquire transaction="save">   2.    3.   <value_id>  4.     <variable name="v_id"/>  5.   </value_id>      6. 7.   <value>  8.     <variable name="temp_data"/>  9.   </value>    10.   11.  <metadata>  12.    <variable name="meta"/>  13.  </metadata>   14.   15.  <time_limit>  16.    <const value="3"/>  17.  </time_limit>     18. 19.  <on_success>      20.    <!-- indication arrived before timeout --

>      21.  </on_success>  22.    23.  <on_timeout>      24.    <!-- executed if timeout occurred -->      25.  </on_timeout>    26.  27.</das_acquire>  28. 

Memory Access Service    

1. <read_memory>    2. 3.   <region name="uart1"/>    4. 5.   <data>    6.     <variable name="uart_registers"/>    7.   </data>    8. 9.   <metadata>    10.    <variable name="result"/>    11.  </metadata>   12.  13.  <time_limit>    14.    <alias name="reasonable_time_limit"/>    15.  </time_limit> 16.    17.  <on_success>    18.    <!-- indication intercepted before time out --

>    19.  </on_success>   20.  21.  <on_timeout>    22.    <!-- executed if time out occurred -->    23.  </on_timeout>    24. 25.</read_memory> 26.

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 21

ESA UNCLASSIFIED – For Official Use

Using SOIS Services 2/3

Packet service - sending

1. <packet_send>    2.   <destination_address>    3.     <alias name="reaction_wheel_addr"/>    4.   </destination_address>    5.   <data>    6.     <variable name="tc_set_rotation"/>    7.   </data>    8. </packet_send>   9.

Packet service - receiving         1. <packet_receive>    2.   <source_address>    3.     <alias name="reaction_wheel_addr"/>    4.   </source_address>    5.   <data>    6.     <variable name="tm_ack"/>    7.   </data>    8. </packet_receive>    9.    

Packet service – receiving multiple packets

1. <wait_for_packets>     2.   <scenario>    3.     <minterm>    4.       <!-- packet A receive -->   5.       <!-- packet B receive -->  6.     </minterm>    7.     <process>    8.       <!-- Executed only if A and B received  --

>    9.     </process>    10.  </scenario>     11.  <scenario>    12.    <minterm>    13.      <!-- packet A receive -->   14.      <!-- packet C receive -->  15.    </minterm>   16.    <process>    17.      <!-- Executed only if A and C received  --

>    18.    </process>     19.  </scenario>    20.  <timeout>    21.    <time_limit>    22.      <alias name="reasonable_time_limit"/>    23.    </time_limit>    24.    <process>    25.      <!-- Executed only if timeout has passed  --

>    26.    </process>    27.  </timeout>    28.</wait_for_packets> 29.

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 22

ESA UNCLASSIFIED – For Official Use

Using SOIS Services 3/3

Transaction model 1:1

Transaction model Save

Transaction model Passthrough

request load DAS/DVS

save save save

DAS/DVS

DAS/DVS

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 23

ESA UNCLASSIFIED – For Official Use

Example of DACP implementation

das_meta = success

dvs_meta := failure

linear_calibrationslope <= 1bias <= -100input <= temperature_rawoutput <= temperature_kelvin

dvs_meta := success

Y N

1. <compare>  2.   <subject>  3.     <variable name="das_meta"/>  4.   </subject>  5.   <reference>  6.     <const value="success"/>  7.   </reference>  8.   <equal>  9.     <linear_calibration>  10.       <slope> <const value="1"/> </slope>  11.       <bias> <const value="-100"/> </bias>  12.       <input> <variable name="temperature_raw"/> </input>  13.       <output> <variable name="temperature_kelvin"/> </output>  14.     </linear_calibration>  15.     <copy>  16.       <destination>  17.         <variable name="dvs_meta"/>  18.       </destination>  19.       <source>  20.         <const value="success"/>  21.       </source>  22.     </copy>  23.   </equal>  24.   <not_equal>  25.     <copy>  26.       <destination>  27.         <variable name="dvs_meta"/>  28.       </destination>  29.       <source>  30.         <const value="failure"/>  31.       </source>  32.     </copy>  33.   </not_equal>  34. </compare> 

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 24

ESA UNCLASSIFIED – For Official Use

Example of DACP attachment to service interface

1. <device_abstraction_control_procedure>  2.   3.   <request_handler>    4.   5.     <variables>    6.       <declare name="id" type="temperature_reading_t"/>    7.       <declare name="data" type="temperature_t"/>    8.       <declare name="meta" type="bivalent_t"/>    9.     </variables>    10.   11.     <value_id>    12.       <variable name="id"/>    13.     </value_id>    14.   15.     <value>    16.       <variable name="data"/>    17.     </value>    18.   19.     <metadata>    20.       <variable name="meta"/>    21.     </metadata>    22.   23.     <process>    24.       <!-- instructions -->  25.     </process>    26.   27.   </request_handler>    28.   29. </device_abstraction_control_procedure> 

Declares variables used inside process description

connects id variable to value_id contents

connects data variable to the value of relation

connects meta data variable to meta data information

description of the process

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 25

ESA UNCLASSIFIED – For Official Use

Software framework and toolchain

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 26

ESA UNCLASSIFIED – For Official Use

Software framework

Low-level High-level System

THREAD

Queues for primitives

Dispatcher thread

Auto-generated DACP/DAP processes

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 27

ESA UNCLASSIFIED – For Official Use

Translation tools

asn1Scc

Open source ASN.1 compiler developed by Semantix.

The compiler generates C and Ada source code with the proper data type declaration, encoding/decoding functions, initialization procedures and validation of constraints.

OpenGeode

Open source SDL editor developed by ESA.

The program also converts SDL process description into Ada source code.

Custom translator

Dedicated application developed within the EDS study to convert XML interface in ASN.1 sources.

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 28

ESA UNCLASSIFIED – For Official Use

DVS frameworkDAS framework

Supporting library

Generated code

Code generation from EDS

EDS

device_dacp_iv.prdevice_dacp.pr

device_dap_iv.prdevice_dap.pr

device_fi.asn1

device_ds.asn1

device_ps.asn1

device_mas.asn1

fi.asn1

ds.asn1

dacp.asn1

sys.asn1

ps.asn1

mas.asn1

dap.asn1

EDS Conv

Documentation

DataView.py

Ada source code for encoding, decoding, etc.

asn1Scc

Documentation

Ada source code of the processes

Ada package with instantiation of all processes according to assembly information

assembly information

Man

Man

EDS Conv

EDS ConvOther devices .asn1 files

OpenGeode

OpenGeodeOther devices .pr files

Man

Man

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 29

ESA UNCLASSIFIED – For Official Use

Toolchain – step 1

Translate XML file into series of:

ASN.1 files – interface view

PR files –SDL process

Translation is performed by a dedicated program developed for this purpose.

Translator also performs consistency-checks hard to implement in XSD file (e.g. that maximum one member of a sequence is dynamic).

device_dacp_iv.prdevice_dacp.pr

device_dap_iv.prdevice_dap.pr

device_fi.asn1

device_ds.asn1

device_ps.asn1

device_mas.asn1

EDS

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 30

ESA UNCLASSIFIED – For Official Use

Toolchain – step 2

Create ASN.1 files describing complete interfaces:

fi – functional interface

ds – device-specific interface

ps – packet interface

mas – memory interface

Create ASN.1 files enumerating processes in the system:

dacp – device abstraction control procedures

dap – device-specific access protocols

EDS

EDS

EDS

device_dacp_iv.prdevice_dacp.pr

device_dap_iv.prdevice_dap.pr

device_fi.asn1

device_ds.asn1

device_ps.asn1

device_mas.asn1

device_dacp_iv.prdevice_dacp.pr

device_dap_iv.prdevice_dap.pr

device_fi.asn1

device_ds.asn1

device_ps.asn1

device_dacp_iv.prdevice_dacp.pr

device_dap_iv.prdevice_dap.pr

device_fi.asn1

device_ds.asn1

device_ps.asn1

fi.asn1

ds.asn1

dacp.asn1device_mas.asn1

device_mas.asn1

device_mas.asn1

sys.asn1

ps.asn1

mas.asn1

dap.asn1

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 31

ESA UNCLASSIFIED – For Official Use

Toolchain – step 3

device_fi.asn1

devic

e_d

s.a

sn

1

device_ps.asn1

fi.asn1ds.asn1

dacp.asn1

device_mas.asn1 sys.asn1

ps.asn1

mas.asn1 dap.asn1device_mas.asn1

Documentation

DataView.py

Ada source code for encoding, decoding, etc.

Using asn1Scc program, process all ASN.1 files. On output, we get:

Documentation on data types in HTML format

Ada source code for handling those data types

DataView.py – a Python source code with all information on data types. This file is used by OpenGeode to validate the SDL code

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 32

ESA UNCLASSIFIED – For Official Use

Toolchain – step 4

Using OpenGeode program, process all PR files. On output, we get:

Documentation (SDL code expressed by grahpical blocks according to ITU-T Z.106 standard)

Ada source code

device1_dacp_iv.prdevice1_dacp.pr

device1_dap_iv.prdevice1_dap.pr

devic

e2_d

acp

_iv.

pr

devic

e2_d

acp

.pr

device2_dap_iv.prdevice2_dap.pr

devic

e3_d

acp

_iv.

pr

devic

e3_d

acp

.prdevice3_dap_iv.pr

device3_dap.pr

DataView.py

Documentation

Ada source code of a process

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 33

ESA UNCLASSIFIED – For Official Use

Toolchain – step 5

Using assembly information, another package is created. This package instantiates generic Ada processes. Each process is assigned with a process id. Each device is assigned with a value id. At the moment, this is done manually.

Ada process codeAda process codeAda process codeAda process code

dacp.ads

dap.ads

Ada package with instantiation of all processes according to assembly information

assembly information

EDS

EDS

EDS

EDS ADDR

48

49

50

51

52

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 34

ESA UNCLASSIFIED – For Official Use

Toolchain – step 6

Final step is to link together the generated code with the static source code of the services.

DVS and DAS implementation can be considered as a framework, that handles primitive queueing and calls auto-generated processes.

Ada package with instantiation of all processes according to assembly information

Implementation of supporting procedures (e.g. calibration)

Implementation of DAS service

Implementation of DVS service

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 35

ESA UNCLASSIFIED – For Official Use

Recap and open points

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 36

ESA UNCLASSIFIED – For Official Use

Recap

Achieved in the EDS study

• Data types and interface definition based on ASN.1

• Process description based on SDL

• Transaction-level model for services

• “Informal” EDS XML Schema

• Mapping between XML and ASN.1

• Translator from XML to ASN.1

• Mapping between XML and SDL

• Code generation using custom and open source tools

• DVS service implementation

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 37

ESA UNCLASSIFIED – For Official Use

Future work?

Potential future work

1. To implement the translator from XML to SDL

2. To convert EDS Schema to XSD file

3. To implement DAS service

4. To automation the assembly process

5. To test generated code in mission context

SOIS EDS - YGT Study | F. Torelli & P. Skrzypek | CCSDS Fall Meeting 2013 | 28/10/2013 | TEC-SWS | Slide 38

ESA UNCLASSIFIED – For Official Use

Open points

Open Points

• Should EDS interface promote ASN.1?

• State machines vs. transactional model

• Service models as part of the EDS or of the framework?