Project

General

Profile

User story #268

Updated by Ivan Herrero over 9 years ago

Implement the TypeConversion engine based on the previous MARTe implementation and on the prototype available in the branch Configuration_prototype.
This engine is responsible of the deserialisation of the types stored in the ConfigurationDatabase (scalars, vectors and matrices). Each deserialised item is then type converted using the ScalarTypeConversion.
Note that this work does NOT include the ScalarTypeConversion work (see #269)

h1. Source code files modified

* Source/Core/BareMetal/L0Types/Vector.h
* Source/Core/BareMetal/L0Types/Matrix.h
* Source/Core/BareMetal/L4Configuration/AnyObject.h
* Source/Core/BareMetal/L4Configuration/AnyObject.cpp
* Source/Core/BareMetal/L4Configuration/TypeConversion.h
* Source/Core/BareMetal/L4Configuration/TypeConversion.cpp
* Source/Core/BareMetal/L4Configuration/ConfigurationDatabase.h
* Source/Core/BareMetal/L4Configuration/ConfigurationDatabase.cpp
* Source/Core/BareMetal/L4Configuration/FloatToInteger.cpp
* Source/Core/BareMetal/L4Configuration/IntegerToFloat.cpp
* Source/Core/BareMetal/L4Configuration/StringToFloat.cpp
* Source/Core/BareMetal/L4Configuration/StringToInteger.cpp
*
Test/Core/BareMetal/L0Types/VectorTest.h
* Test/Core/BareMetal/L0Types/VectorTest.cpp
* Test/Core/BareMetal/L0Types/MatrixTest.h
* Test/Core/BareMetal/L0Types/MatrixTest.cpp
* Test/Core/BareMetal/L4Configuration/AnyObjectTest.h
* Test/Core/BareMetal/L4Configuration/AnyObjectTest.cpp
* Test/Core/BareMetal/L4Configuration/TypeConversionTest.h
* Test/Core/BareMetal/L4Configuration/TypeConversionTest.cpp
* Test/Core/BareMetal/L4Configuration/ConfigurationDatabaseTest.h
* Test/Core/BareMetal/L4Configuration/ConfigurationDatabaseTest.cpp
* Test/GTest/AnyObjectGTest.cpp
* Test/GTest/TypeConversionGTest.cpp
* Test/GTest/ConfigurationDatabaseGTest.cpp

h1. Architecture & design review

*Date of the review:* 10/11/2015

*Person who did the review:* André Neto

*Version of architecture & design document:* N/A. As per the original MARTe implementation. The interface was prototyped in a dedicated branch and discussed in a technical meeting.

*Result of review:* N/A

*List of non-conformities:* N/A

h1. Code and documentation review

*Date of the review:* 25/11/2015 [on commit 8c35328] --/--/2015

*Person who did the review:* Ivan Herrero



*Result of review:* PASS



*List of non-conformities:* N/A N/A.

*Comments:*

* The Vector and Matrix classes implementation use the standard new and delete operators.
* On Vector and Matrix classes, the dataPointer member could be declared as a T* instead of a void*, so it will be unnecessary to use reinterpret_cast<T*> on code.
* On Vector and Matrix class, some functions could be non-members, like Product, Transpose, and so on.
* Some methods on Matrix class, like Determinant and Inverse, are declared as inline, but they are so big that it is useless.

h1. Unit test review

*Date of the review:* 25/11/2015 [on commit 8c35328] --/--/2015

*Person who did the review:* Ivan Herrero -----

*Result of coverage tests review:* PASS [PASS/FAIL]

*Result of functional tests review:* PASS [PASS/FAIL]

*Result of review:* PASS [PASS/FAIL]

*List of non-conformities:* N/A

Back