dds中多久info.current_count_change会变为-1
时间: 2023-06-17 19:03:58 浏览: 222
在DDS中,当一个数据写入Publisher中并且被发送到DataWriter时,DataWriter会发布一个DataSample。此时,DataWriter会将DataWriterCache中的相关计数器(如Info.current_count_change)更新,并在发布完成后通知DataReader。
当DataReader接收到DataSample时,它会将相关计数器更新,并在接收完成后通知DataWriter。因此,时间取决于发布和接收数据的速度和延迟。
一般情况下,当DataWriter发布一个数据时,Info.current_count_change会立即从0变为1,表示有一个新的数据可用。当DataReader接收到该数据时,Info.current_count_change会再次更新,表示当前可用数据的数量。如果DataWriter未能成功发布数据,则Info.current_count_change不会更新。如果DataWriter停止发布数据,则Info.current_count_change会变为-1。
相关问题
dds中的info.current_count_change是什么‘’
DDS(Data Distribution Service)中的`info.current_count_change`是一个结构体,用于表示数据发布者(publisher)或订阅者(subscriber)当前数据数量的变化情况。具体来说,它包含以下几个字段:
- `kind`: 表示该变化的种类,可取值为`ALIVE`、`NOT_ALIVE_DISPOSED`、`NOT_ALIVE_UNREGISTERED`,分别表示数据实体的状态为“存活”、“已删除”、“已注销”。
- `total_count`: 表示该实体的总数,包括已删除的实体。
- `total_count_change`: 表示该实体总数的变化量。
- `current_count`: 表示该实体当前的数量(不包括已删除的实体)。
- `current_count_change`: 表示该实体当前数量的变化量。
其中,`info.current_count_change`主要用于DDS中QoS(Quality of Service)的相关设置,例如`DDS::ReaderListener`和`DDS::DataWriterListener`中的回调函数中可以获取到该结构体,以便进行相关的处理。
阅读全文