diff --git a/built_packages b/built_packages index 1f5f2aac4..02e61511f 100755 --- a/built_packages +++ b/built_packages @@ -6,13 +6,13 @@ https://github.com/ament/ament_package.git 3397bb0ae1cc93d93e1e27da31c0bcb0f4fe0 https://github.com/ament/googletest.git 7c20e2597a2d1503cf9afa159206ab8e9b233830 https://github.com/ament/uncrustify_vendor.git 0291bc988c45846400aca50cb973bf04a4de3d56 https://github.com/eProsima/Micro-CDR.git cb4403a8780095df94a7b1936b1e00153c90070d -https://github.com/eProsima/Micro-XRCE-DDS-Client.git 9b9278c0b3a633aa7ad634bda2fd2c4f04093dcf +https://github.com/eProsima/Micro-XRCE-DDS-Client.git e3f6439013a1a9ecb0d4011d19d7a4cec2c84655 https://github.com/micro-ROS/micro_ros_msgs.git e3664463e78ae5d0c34d86be92d707b3d9dfd27d https://github.com/micro-ROS/rcl 2132f688d46f1fc850bfc3d4a09b7145f0f2eee6 https://github.com/micro-ROS/rcutils a8dd9189045a01212850264938f9973cb94ca6ae -https://github.com/micro-ROS/rmw-microxrcedds.git bde5c13ab5f1cf37a659d490e93914bc5f62a9ab +https://github.com/micro-ROS/rmw-microxrcedds.git d30a81fd9b3f0221ee0851d798b3a8f6d4489166 https://github.com/micro-ROS/rosidl_typesupport.git 007649631c321081d5ccce1173c7079565d95596 -https://github.com/micro-ROS/rosidl_typesupport_microxrcedds.git 862f0758b2b45623fce9d66c1f39e690f6299dad +https://github.com/micro-ROS/rosidl_typesupport_microxrcedds.git b02e3d342228e9f041515c270e7497208fff7a17 https://github.com/ros-controls/control_msgs 338ef98b4a4d763fe5df39e86a1967844ceb506e https://github.com/ros2/ament_cmake_ros.git 7b6b599c3fc8023806db2a97b344e8610902adac https://github.com/ros2/common_interfaces.git 6356bc82f3a034f5d2c61c6760df0007a6cadfb0 diff --git a/src/cortex-m0plus/libmicroros.a b/src/cortex-m0plus/libmicroros.a index 188e3ee74..31009682d 100755 Binary files a/src/cortex-m0plus/libmicroros.a and b/src/cortex-m0plus/libmicroros.a differ diff --git a/src/cortex-m3/libmicroros.a b/src/cortex-m3/libmicroros.a index 5350910bc..87fc98cfb 100755 Binary files a/src/cortex-m3/libmicroros.a and b/src/cortex-m3/libmicroros.a differ diff --git a/src/cortex-m4/libmicroros.a b/src/cortex-m4/libmicroros.a index ca4f3f6a7..b224854c7 100755 Binary files a/src/cortex-m4/libmicroros.a and b/src/cortex-m4/libmicroros.a differ diff --git a/src/cortex-m7/fpv5-d16-softfp/libmicroros.a b/src/cortex-m7/fpv5-d16-softfp/libmicroros.a index b38226d12..43b3bba11 100755 Binary files a/src/cortex-m7/fpv5-d16-softfp/libmicroros.a and b/src/cortex-m7/fpv5-d16-softfp/libmicroros.a differ diff --git a/src/cortex-m7/fpv5-sp-d16-hardfp/libmicroros.a b/src/cortex-m7/fpv5-sp-d16-hardfp/libmicroros.a index 34e16eb04..08383af2a 100755 Binary files a/src/cortex-m7/fpv5-sp-d16-hardfp/libmicroros.a and b/src/cortex-m7/fpv5-sp-d16-hardfp/libmicroros.a differ diff --git a/src/cortex-m7/fpv5-sp-d16-softfp/libmicroros.a b/src/cortex-m7/fpv5-sp-d16-softfp/libmicroros.a index 0154f1dad..b0c4a6994 100755 Binary files a/src/cortex-m7/fpv5-sp-d16-softfp/libmicroros.a and b/src/cortex-m7/fpv5-sp-d16-softfp/libmicroros.a differ diff --git a/src/esp32/libmicroros.a b/src/esp32/libmicroros.a index cee1ef31c..ca8dca7f2 100755 Binary files a/src/esp32/libmicroros.a and b/src/esp32/libmicroros.a differ diff --git a/src/imxrt1062/fpv5-d16-hard/libmicroros.a b/src/imxrt1062/fpv5-d16-hard/libmicroros.a index 512a40377..8809482d3 100755 Binary files a/src/imxrt1062/fpv5-d16-hard/libmicroros.a and b/src/imxrt1062/fpv5-d16-hard/libmicroros.a differ diff --git a/src/mk20dx256/libmicroros.a b/src/mk20dx256/libmicroros.a index ae0865ac2..fe55c2d36 100755 Binary files a/src/mk20dx256/libmicroros.a and b/src/mk20dx256/libmicroros.a differ diff --git a/src/mk64fx512/fpv4-sp-d16-hard/libmicroros.a b/src/mk64fx512/fpv4-sp-d16-hard/libmicroros.a index 8f9dcf8c0..297cdd764 100755 Binary files a/src/mk64fx512/fpv4-sp-d16-hard/libmicroros.a and b/src/mk64fx512/fpv4-sp-d16-hard/libmicroros.a differ diff --git a/src/mk66fx1m0/fpv4-sp-d16-hard/libmicroros.a b/src/mk66fx1m0/fpv4-sp-d16-hard/libmicroros.a index 8f9dcf8c0..297cdd764 100755 Binary files a/src/mk66fx1m0/fpv4-sp-d16-hard/libmicroros.a and b/src/mk66fx1m0/fpv4-sp-d16-hard/libmicroros.a differ diff --git a/src/uxr/client/config.h b/src/uxr/client/config.h index 238448dce..47687623d 100755 --- a/src/uxr/client/config.h +++ b/src/uxr/client/config.h @@ -67,5 +67,18 @@ #define UCLIENT_TWEAK_XRCE_WRITE_LIMIT +/* #undef UCLIENT_HARD_LIVELINESS_CHECK */ + +#ifdef UCLIENT_HARD_LIVELINESS_CHECK +#define UXR_CONFIG_HARD_LIVELINESS_CHECK_TIMEOUT_STR "10000" +#endif + + +// Version checks +#if UXR_CLIENT_VERSION_MAJOR >= 3 +#error UCLIENT_HARD_LIVELINESS_CHECK shall be included in session API +#error MTU must be included in CREATE_CLIENT_Payload properties +#error Reorder ObjectInfo https://github.com/eProsima/Micro-XRCE-DDS/issues/137 +#endif #endif // _UXR_CLIENT_CONFIG_H_ diff --git a/src/uxr/client/core/type/xrce_types.h b/src/uxr/client/core/type/xrce_types.h index cc9fe0c6d..f733245e1 100755 --- a/src/uxr/client/core/type/xrce_types.h +++ b/src/uxr/client/core/type/xrce_types.h @@ -24,6 +24,7 @@ extern "C" #endif // ifdef __cplusplus #include +#include #include #include @@ -40,7 +41,24 @@ extern "C" #define UXR_SAMPLE_DELTA_SEQUENCE_MAX 8 #define UXR_PACKED_SAMPLES_SEQUENCE_MAX 8 #define UXR_TRANSPORT_LOCATOR_SEQUENCE_MAX 4 + +#ifdef UCLIENT_PROFILE_SHARED_MEMORY +#define PROFILE_SHARED_MEMORY_SEQ_COUNT 1 +#else +#define PROFILE_SHARED_MEMORY_SEQ_COUNT 0 +#endif // ifdef UCLIENT_PROFILE_SHARED_MEMORY + +#ifdef UCLIENT_HARD_LIVELINESS_CHECK +#define HARD_LIVELINESS_CHECK_SEQ_COUNT 1 +#else +#define HARD_LIVELINESS_CHECK_SEQ_COUNT 0 +#endif // ifdef UCLIENT_HARD_LIVELINESS_CHECK + +#if (PROFILE_SHARED_MEMORY_SEQ_COUNT + HARD_LIVELINESS_CHECK_SEQ_COUNT) == 0 #define UXR_PROPERTY_SEQUENCE_MAX 1 +#else +#define UXR_PROPERTY_SEQUENCE_MAX PROFILE_SHARED_MEMORY_SEQ_COUNT + HARD_LIVELINESS_CHECK_SEQ_COUNT +#endif // if (PROFILE_SHARED_MEMORY_SEQ_COUNT + HARD_LIVELINESS_CHECK_SEQ_COUNT) == 0 typedef struct Time_t { diff --git a/src/uxr/client/profile/transport/ip/tcp/tcp_transport_posix_nopoll.h b/src/uxr/client/profile/transport/ip/tcp/tcp_transport_posix_nopoll.h new file mode 100755 index 000000000..892433ee5 --- /dev/null +++ b/src/uxr/client/profile/transport/ip/tcp/tcp_transport_posix_nopoll.h @@ -0,0 +1,32 @@ +// Copyright 2018 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef UXR_CLIENT_PROFILE_TRANSPORT_IP_TCP_TCPTRANSPORTPOSIXNOPOLL_H_ +#define UXR_CLIENT_PROFILE_TRANSPORT_IP_TCP_TCPTRANSPORTPOSIXNOPOLL_H_ + +#ifdef __cplusplus +extern "C" +{ +#endif // ifdef __cplusplus + +typedef struct uxrTCPPlatform +{ + int fd; +} uxrTCPPlatform; + +#ifdef __cplusplus +} +#endif // ifdef __cplusplus + +#endif // UXR_CLIENT_PROFILE_TRANSPORT_IP_TCP_TCPTRANSPORTPOSIXNOPOLL_H_ \ No newline at end of file diff --git a/src/uxr/client/transport.h b/src/uxr/client/transport.h index e235f5b46..99f4b8c17 100755 --- a/src/uxr/client/transport.h +++ b/src/uxr/client/transport.h @@ -33,7 +33,9 @@ #endif //UCLIENT_PROFILE_UDP #ifdef UCLIENT_PROFILE_TCP -#if defined(UCLIENT_PLATFORM_POSIX) +#if defined(UCLIENT_PLATFORM_POSIX_NOPOLL) +#include +#elif defined(UCLIENT_PLATFORM_POSIX) #include #elif defined(UCLIENT_PLATFORM_WINDOWS) #include diff --git a/src/uxr/client/util/ping.h b/src/uxr/client/util/ping.h index a1589528e..20ba934a4 100755 --- a/src/uxr/client/util/ping.h +++ b/src/uxr/client/util/ping.h @@ -33,7 +33,7 @@ extern "C" #define UXR_PING_BUF 16 // 4 (HEADER SIZE) + 4 (SUBHEADER_SIZE) + 8 (GET_Info payload) #define GET_INFO_MSG_SIZE 8 -#define GET_INFO_REQUEST_ID 9 +#define GET_INFO_REQUEST_PING_ID 10 struct uxrSession;