From 669a7fa9f00cad4df15f42c1df8b1380fd18e6b9 Mon Sep 17 00:00:00 2001 From: Bilal Wehbe Date: Fri, 1 Jun 2018 16:35:43 +0200 Subject: [PATCH 1/6] fix cmake dependency --- src/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9dbdb26..ca63364 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -95,7 +95,7 @@ target_include_directories(${LIB} PUBLIC ${CMAKE_INSTALL_PREFIX}/include PRIVATE ${CMAKE_CURRENT_BINARY_DIR} ) -add_dependencies(${LIB} ${LIB}_local_types) +add_dependencies(${LIB} ${LIB}_local_types_generate_c) # Install headers, libraries and pkg-config file install(FILES ${HEADERS} From 51e4e7e6844eaf95f9d772a1a01b9dc100f35307 Mon Sep 17 00:00:00 2001 From: Bilal Wehbe Date: Fri, 15 Jun 2018 11:35:31 +0200 Subject: [PATCH 2/6] added generated C types to library --- src/CMakeLists.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ca63364..5662bc9 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -77,6 +77,10 @@ set(HEADERS ia5stringConvert.hpp ) +file(GLOB TYPE_SOURCES + ${${LIB}_BINARY_DIR}/asn1/*.c +) + # ASN.1 types are imported and compiled locally to the project, but not installed esrocos_asn1_types_package(${LIB}_local_types OUTDIR asn1 @@ -86,7 +90,7 @@ esrocos_asn1_types_package(${LIB}_local_types link_directories(${CMAKE_INSTALL_PREFIX}/lib) # Target library -add_library(${LIB} SHARED ${SOURCES}) +add_library(${LIB} SHARED ${SOURCES} ${TYPE_SOURCES}) set_target_properties(${LIB} PROPERTIES LINKER_LANGUAGE CXX) esrocos_pkgconfig_dependency(${LIB} eigen3 From 31bae3d5afafee6465f61141b5fb025e6fe81ae2 Mon Sep 17 00:00:00 2001 From: Steffen Planthaber Date: Fri, 31 Aug 2018 11:53:12 +0200 Subject: [PATCH 3/6] adapted to type update from CDFF --- src/asn1Matrix3dConvert.cpp | 7 +++---- src/asn1Matrix4dConvert.cpp | 6 ++---- src/asn1Matrix6dConvert.cpp | 6 ++---- src/asn1QuaterniondUtils.c | 1 - src/asn1TransformWithCovarianceConvert.cpp | 12 ++++++------ src/asn1TwistWithCovarianceConvert.cpp | 12 ++++++------ src/asn1Vector3dConvert.cpp | 3 +-- src/asn1Vector3dUtils.c | 1 - src/asn1Vector4dConvert.cpp | 3 +-- src/asn1Vector4dUtils.c | 1 - src/asn1Vector6dConvert.cpp | 3 +-- src/asn1Vector6dUtils.c | 1 - 12 files changed, 22 insertions(+), 34 deletions(-) diff --git a/src/asn1Matrix3dConvert.cpp b/src/asn1Matrix3dConvert.cpp index 2515fdc..82b6e18 100644 --- a/src/asn1Matrix3dConvert.cpp +++ b/src/asn1Matrix3dConvert.cpp @@ -19,11 +19,10 @@ void Matrix3d_fromAsn1(base::Matrix3d& result, const asn1SccMatrix3d& asnVal) void Matrix3d_toAsn1(asn1SccMatrix3d& result, const base::Matrix3d& baseObj) { - result.nCount = 3; - for (int j = 0; j < result.nCount; j++) + + for (int j = 0; j < 3; j++) { - result.arr[j].nCount = 3; - for (int i = 0; i < result.arr[j].nCount; i++) + for (int i = 0; i < 3; i++) { result.arr[j].arr[i] = baseObj(i, j); } diff --git a/src/asn1Matrix4dConvert.cpp b/src/asn1Matrix4dConvert.cpp index 6811ff8..5d11641 100644 --- a/src/asn1Matrix4dConvert.cpp +++ b/src/asn1Matrix4dConvert.cpp @@ -20,11 +20,9 @@ void Matrix4d_fromAsn1(base::Matrix4d& result, const asn1SccMatrix4d& asnVal) void Matrix4d_toAsn1(asn1SccMatrix4d& result, const base::Matrix4d& baseObj) { - result.nCount = 4; - for (int j = 0; j < result.nCount; j++) + for (int j = 0; j < 4; j++) { - result.arr[j].nCount = 4; - for (int i = 0; i < result.arr[j].nCount; i++) + for (int i = 0; i < 4; i++) { result.arr[j].arr[i] = baseObj(i, j); } diff --git a/src/asn1Matrix6dConvert.cpp b/src/asn1Matrix6dConvert.cpp index 9441e43..23c2b56 100644 --- a/src/asn1Matrix6dConvert.cpp +++ b/src/asn1Matrix6dConvert.cpp @@ -22,11 +22,9 @@ void Matrix6d_fromAsn1(base::Matrix6d& result, const asn1SccMatrix6d& asnVal) void Matrix6d_toAsn1(asn1SccMatrix6d& result, const base::Matrix6d& baseObj) { - result.nCount = 6; - for (int j = 0; j < result.nCount; j++) + for (int j = 0; j < 6; j++) { - result.arr[j].nCount = 6; - for (int i = 0; i < result.arr[j].nCount; i++) + for (int i = 0; i < 6; i++) { result.arr[j].arr[i] = baseObj(i, j); } diff --git a/src/asn1QuaterniondUtils.c b/src/asn1QuaterniondUtils.c index fc698fb..4ba9e92 100644 --- a/src/asn1QuaterniondUtils.c +++ b/src/asn1QuaterniondUtils.c @@ -15,7 +15,6 @@ asn1SccQuaterniond Quaterniond_create(double w, double x, double y, double z) { asn1SccQuaterniond result; - result.nCount = 4; result.arr[0] = x; result.arr[1] = y; result.arr[2] = z; diff --git a/src/asn1TransformWithCovarianceConvert.cpp b/src/asn1TransformWithCovarianceConvert.cpp index 49f1c32..bdfcb1c 100644 --- a/src/asn1TransformWithCovarianceConvert.cpp +++ b/src/asn1TransformWithCovarianceConvert.cpp @@ -15,17 +15,17 @@ void TransformWithCovariance_fromAsn1(base::TransformWithCovariance& result, const asn1SccTransformWithCovariance& asnVal) { - Vector3d_fromAsn1(result.translation, asnVal.translation); - Orientation_fromAsn1(result.orientation, asnVal.orientation); - Matrix6d_fromAsn1(result.cov, asnVal.cov); + Vector3d_fromAsn1(result.translation, asnVal.data.translation); + Orientation_fromAsn1(result.orientation, asnVal.data.orientation); + Matrix6d_fromAsn1(result.cov, asnVal.data.cov); } void TransformWithCovariance_toAsn1(asn1SccTransformWithCovariance& result, const base::TransformWithCovariance& baseObj) { - Vector3d_toAsn1(result.translation, baseObj.translation); - Orientation_toAsn1(result.orientation, baseObj.orientation); - Matrix6d_toAsn1(result.cov, baseObj.cov); + Vector3d_toAsn1(result.data.translation, baseObj.translation); + Orientation_toAsn1(result.data.orientation, baseObj.orientation); + Matrix6d_toAsn1(result.data.cov, baseObj.cov); } diff --git a/src/asn1TwistWithCovarianceConvert.cpp b/src/asn1TwistWithCovarianceConvert.cpp index a01dbfa..9f837ac 100644 --- a/src/asn1TwistWithCovarianceConvert.cpp +++ b/src/asn1TwistWithCovarianceConvert.cpp @@ -14,17 +14,17 @@ void TwistWithCovariance_fromAsn1(base::TwistWithCovariance& result, const asn1SccTwistWithCovariance& asnVal) { - Vector3d_fromAsn1(result.vel, asnVal.vel); - Vector3d_fromAsn1(result.rot, asnVal.rot); - Matrix6d_fromAsn1(result.cov, asnVal.cov); + Vector3d_fromAsn1(result.vel, asnVal.data.vel); + Vector3d_fromAsn1(result.rot, asnVal.data.rot); + Matrix6d_fromAsn1(result.cov, asnVal.data.cov); } void TwistWithCovariance_toAsn1(asn1SccTwistWithCovariance& result, const base::TwistWithCovariance& baseObj) { - Vector3d_toAsn1(result.vel, baseObj.vel); - Vector3d_toAsn1(result.rot, baseObj.rot); - Matrix6d_toAsn1(result.cov, baseObj.cov); + Vector3d_toAsn1(result.data.vel, baseObj.vel); + Vector3d_toAsn1(result.data.rot, baseObj.rot); + Matrix6d_toAsn1(result.data.cov, baseObj.cov); } diff --git a/src/asn1Vector3dConvert.cpp b/src/asn1Vector3dConvert.cpp index 110282e..2dcb0af 100644 --- a/src/asn1Vector3dConvert.cpp +++ b/src/asn1Vector3dConvert.cpp @@ -22,8 +22,7 @@ void Vector3d_fromAsn1(base::Vector3d& result, const asn1SccVector3d& asnVal) void Vector3d_toAsn1(asn1SccVector3d& result, const base::Vector3d& baseObj) { - result.nCount = 3; - for (int i = 0; i < result.nCount; i++) + for (int i = 0; i < 3; i++) { result.arr[i] = baseObj[i]; } diff --git a/src/asn1Vector3dUtils.c b/src/asn1Vector3dUtils.c index 6a5869c..d60feda 100644 --- a/src/asn1Vector3dUtils.c +++ b/src/asn1Vector3dUtils.c @@ -14,7 +14,6 @@ asn1SccVector3d Vector3d_create(double x, double y, double z) { asn1SccVector3d result; - result.nCount = 3; result.arr[0] = x; result.arr[1] = y; result.arr[2] = z; diff --git a/src/asn1Vector4dConvert.cpp b/src/asn1Vector4dConvert.cpp index 4723967..a3a9018 100644 --- a/src/asn1Vector4dConvert.cpp +++ b/src/asn1Vector4dConvert.cpp @@ -21,8 +21,7 @@ void Vector4d_fromAsn1(base::Vector4d& result, const asn1SccVector4d& asnVal) void Vector4d_toAsn1(asn1SccVector4d& result, const base::Vector4d& baseObj) { - result.nCount = 4; - for (int i = 0; i < result.nCount; i++) + for (int i = 0; i < 4; i++) { result.arr[i] = baseObj[i]; } diff --git a/src/asn1Vector4dUtils.c b/src/asn1Vector4dUtils.c index 83ba877..4bd8fc5 100644 --- a/src/asn1Vector4dUtils.c +++ b/src/asn1Vector4dUtils.c @@ -14,7 +14,6 @@ asn1SccVector4d Vector4d_create(double x, double y, double z, double w) { asn1SccVector4d result; - result.nCount = 4; result.arr[0] = x; result.arr[1] = y; result.arr[2] = z; diff --git a/src/asn1Vector6dConvert.cpp b/src/asn1Vector6dConvert.cpp index cfdf566..cea07b8 100644 --- a/src/asn1Vector6dConvert.cpp +++ b/src/asn1Vector6dConvert.cpp @@ -21,8 +21,7 @@ void Vector6d_fromAsn1(base::Vector6d& result, const asn1SccVector6d& asnVal) void Vector6d_toAsn1(asn1SccVector6d& result, const base::Vector6d& baseObj) { - result.nCount = 6; - for (int i = 0; i < result.nCount; i++) + for (int i = 0; i < 6; i++) { result.arr[i] = baseObj[i]; } diff --git a/src/asn1Vector6dUtils.c b/src/asn1Vector6dUtils.c index ce46622..1a7cc84 100644 --- a/src/asn1Vector6dUtils.c +++ b/src/asn1Vector6dUtils.c @@ -14,7 +14,6 @@ asn1SccVector6d Vector6d_create(double v0, double v1, double v2, double v3, double v4, double v5) { asn1SccVector6d result; - result.nCount = 6; result.arr[0] = v0; result.arr[1] = v1; result.arr[2] = v2; From 34fe46dbbb70f01a1f63667cd88d2bc9d31f27ef Mon Sep 17 00:00:00 2001 From: Steffen Planthaber Date: Fri, 31 Aug 2018 16:31:43 +0200 Subject: [PATCH 4/6] added point converter --- src/CMakeLists.txt | 2 ++ src/asn1PointConvert.cpp | 30 ++++++++++++++++++++++++++++++ src/asn1PointConvert.hpp | 21 +++++++++++++++++++++ 3 files changed, 53 insertions(+) create mode 100644 src/asn1PointConvert.cpp create mode 100644 src/asn1PointConvert.hpp diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 5662bc9..0732b8c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -16,6 +16,7 @@ set(SOURCES asn1Motion2DConvert.cpp asn1OrientationConvert.cpp asn1OrientationUtils.c + asn1PointConvert.cpp asn1PoseConvert.cpp asn1QuaterniondConvert.cpp asn1QuaterniondUtils.c @@ -54,6 +55,7 @@ set(HEADERS asn1Motion2DConvert.hpp asn1OrientationConvert.hpp asn1OrientationUtils.h + asn1PointConvert.hpp asn1PoseConvert.hpp asn1QuaterniondConvert.hpp asn1QuaterniondUtils.h diff --git a/src/asn1PointConvert.cpp b/src/asn1PointConvert.cpp new file mode 100644 index 0000000..19759b4 --- /dev/null +++ b/src/asn1PointConvert.cpp @@ -0,0 +1,30 @@ +/* + * H2020 ESROCOS Project + * Company: GMV Aerospace & Defence S.A.U. + * Licence: GPLv2 + */ + +/* + * Conversion functions for asn1Point (implementation). + */ + +#include "asn1PointConvert.hpp" +#include + +void Point_fromAsn1(base::Vector4d& result, const asn1SccPoint& asnVal) +{ + for (int i = 0; i < 3; i++) + { + result[i] = asnVal.arr[i]; + result[3] = 0; + } +} + +void Point_toAsn1(asn1SccPoint& result, const base::Vector4d& baseObj) +{ + for (int i = 0; i < 3; i++) + { + result.arr[i] = baseObj[i]; + } +} + diff --git a/src/asn1PointConvert.hpp b/src/asn1PointConvert.hpp new file mode 100644 index 0000000..42cc3ee --- /dev/null +++ b/src/asn1PointConvert.hpp @@ -0,0 +1,21 @@ +/* + * H2020 ESROCOS Project + * Company: GMV Aerospace & Defence S.A.U. + * Licence: GPLv2 + */ + +/* + * Conversion functions for asn1Point (header). + */ + +#ifndef ASN1POINTCONVERT_HPP +#define ASN1POINTCONVERT_HPP + +#include "baseTypes.h" +#include "base/Eigen.hpp" + +// Conversion functions +void Point_fromAsn1(base::Vector3d& result, const asn1SccPoint& asnVal); +void Point_toAsn1(asn1SccPoint& result, const base::Vector3d& baseObj); + +#endif //ASN1POINTCONVERT_HPP From 1ececbb617c3c69c6b8da8c0abec82989e1561ad Mon Sep 17 00:00:00 2001 From: Steffen Planthaber Date: Fri, 31 Aug 2018 16:40:59 +0200 Subject: [PATCH 5/6] fixed poit convert --- src/asn1PointConvert.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/asn1PointConvert.cpp b/src/asn1PointConvert.cpp index 19759b4..9c0f68f 100644 --- a/src/asn1PointConvert.cpp +++ b/src/asn1PointConvert.cpp @@ -11,7 +11,7 @@ #include "asn1PointConvert.hpp" #include -void Point_fromAsn1(base::Vector4d& result, const asn1SccPoint& asnVal) +void Point_fromAsn1(base::Vector3d& result, const asn1SccPoint& asnVal) { for (int i = 0; i < 3; i++) { @@ -20,7 +20,7 @@ void Point_fromAsn1(base::Vector4d& result, const asn1SccPoint& asnVal) } } -void Point_toAsn1(asn1SccPoint& result, const base::Vector4d& baseObj) +void Point_toAsn1(asn1SccPoint& result, const base::Vector3d& baseObj) { for (int i = 0; i < 3; i++) { From e493fcc6fc624b4d10ca306e7b8afeb57ef04120 Mon Sep 17 00:00:00 2001 From: Alexander Fabisch Date: Tue, 11 Sep 2018 17:02:32 +0200 Subject: [PATCH 6/6] Fix Point converter --- src/asn1PointConvert.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/asn1PointConvert.cpp b/src/asn1PointConvert.cpp index 9c0f68f..98780a7 100644 --- a/src/asn1PointConvert.cpp +++ b/src/asn1PointConvert.cpp @@ -16,7 +16,6 @@ void Point_fromAsn1(base::Vector3d& result, const asn1SccPoint& asnVal) for (int i = 0; i < 3; i++) { result[i] = asnVal.arr[i]; - result[3] = 0; } }