Upload
bethanie-rodgers
View
225
Download
1
Tags:
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?