Good Evening,
ESA has been developing for several years its TASTE[1][2] framework for Flight Software, such as F Prime. This framework is based on two key languages: AADL and ASN.1.
As a reminder, ASN.1 is an OSI presentation layer protocol widely used in telecommunications to make systems communicate in heterogeneous environments. It allows messages to be described in an abstract (human-understandable) and physical (bitstream) way.
ESA has developed a complete and mature implementation of ASN.1 called ASN.1 SCC (Space Certifiable Compiler)[3][4] to cover all data modeling needs of space applications.
This compiler targets safe systems and generates Spark/Ada, C, SCALE or SDL code. The source code generated to encode and decode the upstream and downstream streams makes no memory allocation at runtime, no system calls, no dependency on an external library, has a tiny footprint and generates test cases for code coverage.
Do you think it would be an interesting development for F Prime to integrate by default (or optionally) the ASN.1 protocol (with ASN.1 SCC)?
This would probably reduce the complexity of interfacing software developed with F Prime with software developed with TASTE.
It also opens the door to the use of the ESA funded asn1-pusc-lib [5] open source library which is an ASN.1 implementation of the ECSS PUS-C standard|6][7].
I personally had to develop a project from scratch for the European Commission where I was required to use ASN.1 SCC because my client's AOCS was developed with TASTE. I have to admit that ASN.1 allowed me to save time on TC/TM implementation: I used the same ASN.1 SCC autogenerated encoding/decoding library on my FSW and on my EGSE.
At the level of ASN.1 SCC protocol implementation in F Prime I have the impression that we need to add a generic data presentation plug-in concept for the command/event/telemetry channel that allow FSW and GDS to communicate?
The idea comes to me from Timothy in his message [8].
Then at the code level it would probably be necessary to influence the Serializable class where a new Serializable class would be created that uses the source codes generated by the ASN.1 SCC for the encoding and decoding of messages.
-Thibault