Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ set(SOURCES
asn1Motion2DConvert.cpp
asn1OrientationConvert.cpp
asn1OrientationUtils.c
asn1PointConvert.cpp
asn1PoseConvert.cpp
asn1QuaterniondConvert.cpp
asn1QuaterniondUtils.c
Expand Down Expand Up @@ -54,6 +55,7 @@ set(HEADERS
asn1Motion2DConvert.hpp
asn1OrientationConvert.hpp
asn1OrientationUtils.h
asn1PointConvert.hpp
asn1PoseConvert.hpp
asn1QuaterniondConvert.hpp
asn1QuaterniondUtils.h
Expand All @@ -77,6 +79,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
Expand All @@ -86,7 +92,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
Expand All @@ -95,7 +101,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}
Expand Down
7 changes: 3 additions & 4 deletions src/asn1Matrix3dConvert.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down
6 changes: 2 additions & 4 deletions src/asn1Matrix4dConvert.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down
6 changes: 2 additions & 4 deletions src/asn1Matrix6dConvert.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down
29 changes: 29 additions & 0 deletions src/asn1PointConvert.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/*
* H2020 ESROCOS Project
* Company: GMV Aerospace & Defence S.A.U.
* Licence: GPLv2
*/

/*
* Conversion functions for asn1Point (implementation).
*/

#include "asn1PointConvert.hpp"
#include <cmath>

void Point_fromAsn1(base::Vector3d& result, const asn1SccPoint& asnVal)
{
for (int i = 0; i < 3; i++)
{
result[i] = asnVal.arr[i];
}
}

void Point_toAsn1(asn1SccPoint& result, const base::Vector3d& baseObj)
{
for (int i = 0; i < 3; i++)
{
result.arr[i] = baseObj[i];
}
}

21 changes: 21 additions & 0 deletions src/asn1PointConvert.hpp
Original file line number Diff line number Diff line change
@@ -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
1 change: 0 additions & 1 deletion src/asn1QuaterniondUtils.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
12 changes: 6 additions & 6 deletions src/asn1TransformWithCovarianceConvert.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}


12 changes: 6 additions & 6 deletions src/asn1TwistWithCovarianceConvert.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}


3 changes: 1 addition & 2 deletions src/asn1Vector3dConvert.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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];
}
Expand Down
1 change: 0 additions & 1 deletion src/asn1Vector3dUtils.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
3 changes: 1 addition & 2 deletions src/asn1Vector4dConvert.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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];
}
Expand Down
1 change: 0 additions & 1 deletion src/asn1Vector4dUtils.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
3 changes: 1 addition & 2 deletions src/asn1Vector6dConvert.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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];
}
Expand Down
1 change: 0 additions & 1 deletion src/asn1Vector6dUtils.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down