研究fastdds v2.8.0 1之 基础模块
阅读 dds 协议 1.4 版本 , 结合fastdds 2.8 的代码理解dds。
Entity 理解
DCPS基础设施模块由以下类组成:
Entity
DomainEntity
QosPolicy
Listener
Status
WaitSet
Condition
GuardCondition
StatusCondition
1、Entity
是所有DCPS 对象的基础类
virtual fastrtps::types::ReturnCode_t enable()
该函数用于使该对象可用
void close()
该函数用于禁用该对象
const StatusMask& get_status_mask() const
该函数返回 statusmask 状态
statusmask:
是uint32 类型的数据,存储所有的状态,每个bit 表示一个状态
0、dds::core::status::InconsistentTopicStatus
1、dds::core::status::OfferedDeadlineMissedStatus
2、dds::core::status::RequestedDeadlineMissedStatus
5、dds::core::status::OfferedIncompatibleQosStatus
6、dds::core::status::RequestedIncompatibleQosStatus
7、dds::core::status::SampleLostStatus
8、dds::core::status::SampleRejectedStatus
9、dds::core::status::data_on_readers
10、dds::core::status::data_available
11、dds::core::status::LivelinessLostStatus
12、dds::core::status::LivelinessChangedStatus
13、dds::core::status::PublicationMatchedStatus
14、dds::core::status::SubscriptionMatchedStatus
const StatusMask& get_status_changes() const
获取目前的 status, statusmask 会记录已经触发的状态
InstanceHandle_t& get_instance_handle() const
InstanceHandle_t 等同于 GUID 唯一标识某个entity,例如某个(datareader , datawriter, publisher,subscriber 等)
该函数目的是获取 该entity 的 GUID,唯一标识该 enetity
bool is_enabled() const
判断该entity 是否启动
StatusCondition& get_statuscondition()
获取该entity 触发status 的 条件
protected 属性
void set_instance_handle(
const InstanceHandle_t& handle)