n°1e2889e, Issue 1 - Revision 20b2396 - 2025-11-07
simulation, simulation modelling platform, ECSS-E-ST-40-07C, development kit
| Issue | Date | Changes |
|---|---|---|
| 1 | 2025-11-07 | Document creation |
|
Authors
Title
Reference Edition |
|
|---|---|
| R1 |
"Simulation Modelling Platform (SMP) Level 1"
ECSS-E-ST-40-07C Rev.1 (5 August 2025) |
| R2 |
"Simulation Modelling Platform (SMP) Level 2"
ECSS-E-ST-40-08C 5 August 2025 |
The simdeck component is a library of C++ classes implementing the SMP R1 interfaces needed for models and optional services development. This is part of the simphonie project and is used for the simphonie own implementation of a SMP simulation infrastructure. Simdeck may be used with our without simphonie. It is expected to deliver with simdeck a compliant implementation of the SMP interfaces in order to let any model or service built on top of simdeck run into any SMP compliant simulation infrastructure.
This definition file includes:
The requirements in this document are defined and rendered using the following layout:
| req.unique.identifier |
|---|
|
A sentence applying the format <subject> shall <property> defining a verifiable characteristic of the subject. |
| simdeck.1 |
|---|
|
The simphonie project shall include a SMP development kit aming at providing the concrete classes of the SMP interfaces needed to develop some components (services and models) libraries. |
The SMP development kit library is expected to provide what's needed for users models and services development. It is not expected to provide any implementation for the infrastructure side components (for instance the simulator and its mandatory services implementation). Such simulation host implementation is left to the simphonie project. Even simdeck is part of the simphonie project, it may be used for any SMP component development outside simphonie.
| simdeck.2 |
|---|
|
The SMP development kit shall provide a concrete class for the
|
| simdeck.3 |
|---|
|
The SMP development kit shall provide a concrete class for the
|
| simdeck.4 |
|---|
|
The SMP development kit shall provide a concrete class for the
|
| simdeck.5 |
|---|
|
The SMP development kit shall provide a concrete class for the
|
| simdeck.6 |
|---|
|
The SMP development kit shall provide a concrete class for the
|
| simdeck.7 |
|---|
|
The SMP development kit shall provide a concrete class for the
|
| simdeck.8.1 |
|---|
|
The SMP development kit shall provide a concrete class for the
|
| simdeck.8.2 |
|---|
|
The entry point publisher implementation shall provide a method to create an entry point directly from a void class method without argument. |
| simdeck.9 |
|---|
|
The SMP development kit shall provide a concrete class for the
|
| simdeck.10.1 |
|---|
|
The SMP development kit shall provide a concrete classe for the
|
| simdeck.10.2 |
|---|
|
The SMP development kit shall provide a concrete classe for the
|
| simdeck.10.3 |
|---|
|
The SMP development kit shall provide a concrete class for the
|
| simdeck.10.4 |
|---|
|
The SMP development kit shall provide a concrete class for the
|
| simdeck.10.5 |
|---|
|
The SMP development kit shall provide a concrete class implementing both
|
| simdeck.10.6 |
|---|
|
The SMP development kit shall provide a concrete class for the
|
| simdeck.10.7 |
|---|
|
The SMP development kit shall provide a concrete class for the
|
| simdeck.10.8 |
|---|
|
The SMP development kit shall provide a concrete class implementing both
|
| simdeck.10.9 |
|---|
|
The SMP development kit shall provide a concrete class for the
|
| simdeck.10.10 |
|---|
|
The SMP development kit shall provide a concrete class implementing both
|
| simdeck.addon.str.1 |
|---|
|
The simdeck library shall provide a
|
| simdeck.addon.str.2 |
|---|
|
The simdeck library shall provide a
|
| simdeck.addon.str.3 |
|---|
|
The simdeck library shall provide a
|
| simdeck.zcf.1 |
|---|
|
The simdeck library shall provide a
|
The zero copy field type is compatible with itself only: it is admitted it can work only when both producer and consumer of a data are managing it using the same field class family that extends consistently the
SMp::IField
interface to do so. Such field are necessary automatic fields, meaning the output data is pushed every time it is changed since the push finally does nothing because the same buffer is shared between the connected fields.
As well, sharing the same buffer implies the users (simulators designers) are aware such fields shall be used (read and written) sequentially only, meaning from entry points executed from the same thread.
| simdeck.zcf.2 |
|---|
|
The simdeck library zero copy fields feature shall cover all the SMP primitive types. |
| simdeck.zcf.3 |
|---|
|
The simdeck library zero copy fields feature shall define the cast operators to let the fields type assignable to their related primitive type and the opposite. |
| simdeck.zcf.4 |
|---|
|
The simdeck library zero copy fields feature shall cover the simple array type for each the SMP primitive types. |
The purpose of the feature is to be able to create many to one and many to many fields connections.
Zero copy fields aree implemented the same way the "standard" fields are. The differences are:
Of course, the buffer pointer sharing is applied only when both source and destination are zero copy fields. Otherwise the regular data propagation process shall be applied.
The simdeck classes shall be fully covered by unit tests. The test are implemented with the help of the cppunit library and additional helper macro from the AcrobatomaticBuildSystem , to support requirement traceability management. The next section provide the unit test index.
| Test suite / case | Description | File / Requirements |
|---|---|---|
| 1 - Field | /simdeck/test/TestField.cpp | |
| 1.1 - Int64 | ||
| 1.2 - Int64Push | ||
| 2 - MD5 | /simdeck/test/TestMD5.cpp | |
| 2.1 - Digest |
Check MD5 computation using some reference digest found in wikipedia MD5 article. |
|
| 3 - StringField | /simdeck/test/TestStringField.cpp | |
| 3.1 - SimpleTypeAssign | ||
| 4 - StructureField | /simdeck/test/TestStructureField.cpp | |
| 4.1 - CreateStructureField | ||
| 5 - Uuid | /simdeck/test/TestUuid.cpp | |
| 5.1 - Serialisation |
Check deserialization and serialization of Uuid preserve value |
|
| 5.2 - CompareUuid | ||
| 5.3 - UuidErrorParsing |
Check Error parsing and exception throwing |
Copyright (c) 2019-2025 Sebastien Devaux, Context: Component simdeck-1.0.24 - Generated: 2025-12-13 18:05:35+01:00 / sdevaux@theia