当前位置: 首页 > news >正文

英语培训学校网站建设多少钱百度入驻

英语培训学校网站建设多少钱,百度入驻,wordpress tag分类,淘客返利怎么做网站3. DDS层 eProsima Fast DDS公开了两个不同的API,以在不同级别与通信服务交互。主要API是数据分发服务(DDS)数据中心发布订阅(DCPS)平台独立模型(PIM)API,简称DDS DCPS PIM&#xf…


3. DDS层

eProsima Fast DDS公开了两个不同的API,以在不同级别与通信服务交互。主要API是数据分发服务(DDS)数据中心发布订阅(DCPS)平台独立模型(PIM)API,简称DDS DCPS PIM,由Fast DDS遵循的数据分发服务1.4版规范定义。本节旨在解释Fast DDS下此API的主要特性和使用模式,并对其分为五个模块进行深入解释:

  • Core: 它定义了由其他模块细化的抽象类和接口。它还提供了服务质量(QoS)定义,以及支持中间件的基于通知的交互。
  • Domain: 它包含充当服务入口点的DomainParticipant类,以及许多类的工厂。DomainParticipant还充当构成服务的其他对象的容器。
  • Publisher: 它描述了发布端使用的类,包括Publisher和DataWriter类,以及PublisherListener和DataWriterListener接口。
    -Subscriber: 它描述了订阅端使用的类,包括Subscriber和DataReader类,以及SubscriberListener和DataReaderListener接口。
  • Topic: 它描述了用于定义通信主题和数据类型的类,包括Topic和TopicDescription类,以及TypeSupport和TopicListener接口。


3.1 Core

此模块定义其他模块将使用的基础结构类和类型。它包含实体类、QoS策略和状态的定义。

  • Entity: 实体是具有状态的DDS通信对象,可以使用策略进行配置。
  • Policy: 控制实体行为的每个配置对象。
  • Status: 与实体关联的每个对象,其值表示该实体的通信状态。


3.1.1 Entity

实体是所有DDS实体的抽象基类,意味着支持QoS策略、侦听器和状态的对象。



3.1.1.1 Entity的类型

  • DomainParticipant: 此实体是服务的入口点,充当发布服务器、订阅服务器和主题的工厂。有关详细信息,请参阅DomainParticipant。
  • Publisher: 它充当一个工厂,可以创建任意数量的DataWriter。有关详细信息,请参阅Publisher。
  • Subscriber: 它充当一个工厂,可以创建任意数量的DataReader。有关详细信息,请参阅订阅服务器。
  • Topic: 此实体位于发布实体和订阅实体之间,充当通道。有关详细信息,请参阅主题。
  • DataWriter: 是负责数据分发的对象。有关详细信息,请参阅DataWriter。
  • DataReader: 用于访问接收数据的对象。有关详细信息,请参阅DataReader。

下图显示了所有DDS实体之间的层次结构:



3.1.1.2 通用实体特征

所有实体类型都具有实体概念所共有的一些特征。这些是:

3.1.1.2.1 Entity标识符

每个实体都由一个唯一的ID标识,该ID在DDS实体与其对应的RTPS实体(如果存在)之间共享。该ID存储在Entity基类上声明的Instance Handle对象上,可以使用getter函数get_Instance_Handle()访问该对象。

3.1.1.2.1 QoS策略

可以使用一组配置策略来配置每个实体的行为。对于每个实体类型,都有一个对应的服务质量(QoS)类,该类对影响所述实体类型的所有策略进行分组。用户可以创建这些QoS类的实例,根据自己的需要修改包含的策略,并在创建过程中或稍后使用每个实体公开的set_QoS()函数来配置实体(DomainParticipant::set_qos(),Publisher::set_qos(),Subscriber::set.qos(),Topic::set.qos(),DataWriter::set_qos(),DataReader::set.qos())。有关可用策略及其说明的列表,请参阅策略。QoS类及其包含的策略在每个实体类型的文档中进行了解释。

3.1.1.2.3 Listener监听器

侦听器包含一些函数,实体使用这些函数来响应事件。因此,侦听器充当异步通知系统,允许实体向应用程序通知实体中的状态更改。因此,侦听器就像一个异步通知系统,允许实体向应用程序通知实体中的状态更改。

所有实体类型都定义一个抽象侦听器接口,该接口包含实体将触发的回调函数,以将状态更改传递给应用程序。用户可以实现自己的侦听器,从这些接口继承并实现应用程序所需的回调。然后,他们可以在创建过程中或稍后使用每个实体公开的set_listener()函数将这些侦听器链接到每个实体(DomainParticipant::set_listenr(),Publisher::set_litener(),Subscriber::set-listener((),Topic::set-liistener()),DataWriter::set _listener。每个实体类型的侦听器接口及其回调在每个实体类型文档中进行了解释。当事件发生时,它由具有非空侦听器的最低级别实体处理,并且在其StatusTask中启用了相应的回调。高级侦听器继承自低级侦听器,如下图所示:


注意:
on_data_on_readers()回调在on_data_available()之前拦截消息。这意味着如果启用了DomainParticipantListener,用户应该考虑默认情况下侦听器使用StatusMask::all()。由于保留了回调实体层次结构,在这种情况下将调用on_data_on_readers()。如果应用程序希望改用on_data_available(),则应禁用Statusask的相应位。


重要:
在创建实体时使用StatusMask::none()仅禁用DDS标准回调:

  • on_sample_rejected()
  • on_liveliness_changed()
  • on_requested_deadline_missed()
  • on_requested_incompatible_qos()
  • on_data_available()
  • on_subscription_matched()
  • on_sample_lost()
  • on_offered_incompatible_qos()
  • on_offered_deadline_missed()
  • on_liveliness_lost()
  • on_publication_matched()
  • on_inconsistent_topic()
  • on_data_on_readers()

始终启用特定于Fast DDS的任何回调:

  • on_participant_discovery()
  • on_ParticipantAuthentication()
  • on_subscriber_discovery()
  • on_publisher_discovery()
  • on_type_discovery()
  • on_type_dependencies_reply()
  • on_type_information_received()
  • on_unacknowledged_sample_removed()

警告: 只创建一个线程来侦听每个实现的侦听器,因此建议保持侦听器函数的简单性,将此类信息的处理留给适当的类。

警告:
不要在侦听器成员函数的范围内创建或删除任何实体,因为这可能会导致未定义的行为。相反,建议使用Listener类作为信息通道,并使用上层Entity类来封装此类行为。



3.1.1.2.4 Status

每个实体都与一组状态对象相关联,这些状态对象的值表示该实体的通信状态。这些状态值的更改会触发调用相应的Listener回调以异步通知应用程序。有关所有状态对象的列表及其内容的描述,请参见状态。在那里,您还可以找到哪个状态适用于哪个实体类型。



3.1.1.2.5 StatusCondition

每个实体都有一个StatusCondition,每当其启用状态更改时,都会通知它。StatusCondition提供实体和等待集之间的链接。有关详细信息,请参阅“条件和等待集”一节。



3.1.1.2.6 启用实体

所有实体都可以创建为已启用或未启用。默认情况下,工厂被配置为创建已启用的实体,但可以对已启用的工厂使用EntityFactoryQosPolicy进行更改。禁用的工厂创建禁用的实体,而不管其QoS如何。禁用实体的操作仅限于以下操作:

  • Set/Get 实体的QoS策略
  • Set/Get 实体监听器
  • Create/Delete 子实体
  • 得到实体的状态,即使他们没有改变
  • 查找操作

在这种状态下调用的其他函数都会返回NOT_ENABLED.




http://www.yayakq.cn/news/425505/

相关文章:

  • 网站建设实训报告ppt网店购物系统
  • 山西网站制作做网站时为什么导航时两行字
  • 标准营销型网站定做价格帮别人做网站违法吗
  • 青岛市城市建设局网站临沂做网站的公司有哪些
  • 惠州做网站的公司网站推广的一般流程是
  • 展厅设计制作网站新手如何做移动端网站
  • 营销型网站sem投放策略长春建立一个网站需要多少钱?
  • 做报纸网站建设网站征集图片的通知
  • 口碑好的网站推广软件有些网站仿出问题
  • 立水桥网站建设自学ui设计需要多久
  • ASP网站开发步骤与过程360免费wifi电脑版官方下载
  • 建设网站需要买什么手续天天爱天天做网站
  • 网站设计的主要特点司局网站维护廉政风险建设
  • 苏州网站制作电话哪个网站可以做图片链接
  • 苏州免费网站制作县区网站服务器机房建设
  • 网站文章多久才收录镜像网站是怎么做的
  • 龙泉驿区城乡建设局网站福州外语外贸学院
  • 做微网站广州网站优化快速获取排名
  • 西湖区住房和城乡建设局网站怎么看网站是否备案
  • 大兴黄村网站建设网站能实现什么功能
  • 能看建设动漫黄图的网站无水印做海报的网站
  • 企业网站教程 优帮云网站怎么记录搜索引擎的关键词
  • 网站建设的目标人群是什么浅谈京东企业的电子商务网站建设
  • 一般网站的优缺点抖音代运营协议
  • 广州建设银行分行招聘网站石排网站设计
  • 如何做网站链接分享朋友圈旅游电子商务网站建设目的
  • 优秀网名网站开发技术和seo的联系
  • 福建设备公司网站中国标准物质信息网网站建设
  • 怎样创建公司网站软件开发工资高吗
  • 中山网站建设优化做网站得先注册域名吗