From 80eb517edab947f1632edf7852d8327531358109 Mon Sep 17 00:00:00 2001 From: Greek Date: Fri, 28 Jan 2022 13:27:14 +0100 Subject: [PATCH] CYCLONE DDS COMPATIBILITY: Disable PUSH_MODE It seems that Cyclone DDS discards a DATA message before it has received a HEARTBEAT, but still ACKs it in the ACKNACKs. --- src/ros2/dds_user_config.vhd | 2 +- src/ros2/ros_package.vhd | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ros2/dds_user_config.vhd b/src/ros2/dds_user_config.vhd index 52cb345..09ce264 100644 --- a/src/ros2/dds_user_config.vhd +++ b/src/ros2/dds_user_config.vhd @@ -94,7 +94,7 @@ package body user_config is procedure set_sim_timing (ref : inout CONFIG_TYPE; sel : in boolean) is begin if (sel) then - ref.HEARTBEAT_PERIOD := gen_duration(10 us); + ref.HEARTBEAT_PERIOD := gen_duration(50 us); ref.HEARTBEAT_RESPONSE_DELAY := gen_duration(500 ns); ref.HEARTBEAT_SUPPRESSION_DELAY := gen_duration(100 ns); ref.ACKNACK_RESPONSE_DELAY := gen_duration(500 ns); diff --git a/src/ros2/ros_package.vhd b/src/ros2/ros_package.vhd index 34f8ddd..e27ee9b 100644 --- a/src/ros2/ros_package.vhd +++ b/src/ros2/ros_package.vhd @@ -430,6 +430,7 @@ package body ros_package is config.MAX_SAMPLES := profile.HISTORY_DEPTH; config.MAX_INSTANCES := profile.HISTORY_DEPTH; config.MAX_SAMPLES_PER_INSTANCE := profile.HISTORY_DEPTH; + config.PUSH_MODE := FALSE; -- CycloneDDS compatibility end procedure; function gen_fqn(ns : string; node : string; name : string) return USER_STRING_TYPE is