DDS(Data Distribution Service)————Publisher(7) DataWriterQos的TransportPriorityQosPolicy与LifespanQosPolicy详解
5.3.2.9 TransportPriorityQosPolicy
W a r n i n g : 这一部分 F a s t D D S 并没有实现 {\color{red}Warning:这一部分FastDDS并没有实现} Warning:这一部分FastDDS并没有实现
TransportPriorityQosPolicy
是一种在数据分发服务 (DDS) 中使用的 QoS (Quality of Service) 策略,用于控制数据传输的优先级。此策略允许用户指定消息的传输优先级,以确保关键消息在网络上得到更高的优先级处理,从而实现更低的延迟和更高的可靠性
主要属性
TransportPriorityQosPolicy
有一个主要属性:
value
:这是一个uint32_t
类型的,决定了底层数据传输的优先级,该值越高,优先级越高。
C + + 示例 {\color{green}C++示例} C++示例
TransportPriorityQosPolicy transportPriorityQosPolicy;
transportPriorityQosPolicy.value = 10;
dataWriterQos.transport_priority(transportPriorityQosPolicy);
5.3.2.10 LifespanQosPolicy
它可以在启用的实体上进行更改。 {\color{red}它可以在启用的实体上进行更改。} 它可以在启用的实体上进行更改。
LifespanQosPolicy
是一种在数据分发服务 (DDS) 中使用的 QoS (Quality of Service) 策略,用于控制数据样本的生存时间。此策略允许用户指定数据样本在系统中保留的最长时间。一旦数据样本超过其生存时间,它将被认为是无效的,并且不会再传递给订阅者,并且在持久化储存中也会被取消。
主要属性
LifespanQosPolicy
有一个主要属性:
duration
:用来记录最大的持续时间,默认的设置是无限时间,默认值为c_TimeInfinite
,当使用DataWriter的write()
方法可以隐式的调用时间戳,或者显示的调用write_w_timestamp()
来记录时间戳。在DataReader允许使用接收时间戳代替源时间戳。
C + + 示例 {\color{green}C++示例} C++示例
LifespanQosPolicy lifespanQosPolicy;
lifespanQosPolicy.duration = {5,0};
dataWriterQos.lifespan(lifespanQosPolicy);
X M L 示例 {\color{green}XML示例} XML示例
<data_writer profile_name="writer_xml_conf_lifespan_profile">
<qos>
<lifespan>
<duration>
<sec>5</sec>
<nanosec>0</nanosec>
</duration>
</lifespan>
</qos>
</data_writer>
<data_reader profile_name="reader_xml_conf_lifespan_profile">
<qos>
<lifespan>
<duration>
<sec>5</sec>
<nanosec>0</nanosec>
</duration>
</lifespan>
</qos>
</data_reader>