【DaVinci Developer学习笔记】2-SWC的Software Design-RunnableEntity(中)

2.4  AccessPoints

       在DaVinci Developer中,配置Runnable的Access Points是为了指定该Runnable与其他SWC/CDD之间进行通信的方式和端口。通过配置Access Points,可以定义和管理SWC/CDD之间的数据交换和消息传递。

       Triggers与Access Points是通过Triggers的触发条件来关联的。Triggers定义了Runnable何时被执行,而Access Points则是Runnable与其他部分(例如Sensor、Actuator等)进行数据交换的接口。

       具体而言,当Runnable配置Trigger为On Data Reception(接口接收到数据)、Access Points为Read Data(non-queued)(读取该接口接收到的最新数据),则Runnable触发时,就会去访问该访问点对应的端口原型进行数据接收。可以简单地理解Runnable受Trigger触发后,去访问Access Points对对应端口原型进行相应操作。

       Runnable中可配置的Access Points的类型、描述、前置条件见下表2.3:

表2.3 Access Points的类型、描述、前置条件

Access Points

Description

Precondition

Receive Data(queued)

按队列形式读取S/R端口接口原型中指定的数据原型,适用于需要处理来自多个发送方的数据的情况

SWC实例化S/R端口接口类型,作为接收方Receiver,且该S/R类型在定义时,其数据元素原型勾选了Use queued communication

Read Data(non-queued)

读取S/R端口接口原型中指定的最新数据,之前的数据将被覆盖,适用于只需要获取最新数据的情况

SWC实例化S/R端口接口类型,作为接收方Receiver

Send Data(queued)

需通过S/R端口接口原型发送的数据将被放入队列中批量发送,无法立即发送,适用于大量数据需要发送的情况

SWC实例化S/R端口接口类型,作为接收方Sender,且该S/R类型在定义时,其数据元素原型勾选了Use queued communication

Write Data(non-queued)

需通过S/R端口接口原型发生的数据将被立即发送出去,适合实时性要求较高的场景

SWC实例化S/R端口接口类型,作为接收方Sender

Invoke Operations

通过C/S端口接口原型调用指定的操作

SWC实例化C/S端口接口类型,作为客户端Client

Send Mode Switches

通过模式转换端口接口原型发送需转换的模式

SWC实例化模式转换端口接口 类型,作为发送方Sender

Read Received Mode

读取模式转换端口接口原型接收的待转换的模式

SWC实例化模式转换端口接口 类型,作为接收方Receiver

Read Sent Mode

作为发送方发送完需转换的模式后,再读取已发送的模式

SWC实例化模式转换端口接口 类型,作为发送方Sender

Internal Triggering Point

作为内部触发点以触发SWC其他Runnable

可直接在New中新建,有Standard和Queued两种 Implementation

默认任何Runnable均可配置

Raise External Trigger

其他SWC通过Trigger接口发送信号以充当外部触发事件

SWC实例化触发接口类型,作为发送方Sender,外部接收方Receiver以此接收外部触发

       上表中部分Access Points还可进一步设置属性,具体情况见下图2.4所示:

图2.4 部分Access Points属性配置结构

特别说明:

       在创建Trigger:On Operation Call Return时,若Access Points未定义Invoke Operations的访问点,系统会自动创建,且硬性规定异步操作响应,异步读取返回模式为Polling轮询。若将Polling改为None,系统会自动将None改为Polling。

       Ack Only:发送方只会收到接收方发送的确认信息(ACK),而不会接收到实际的数据包。例如在访问点Send Mode Switches中,则表示接收只需发送确认信号,而不进行实际的模式切换。通常Ack Only用于测试和调试,以验证通信链路的可靠性和确认机制的正确性。

       Standard:是Internal Triggering Point的一个触发方式,在这种触发方式下,当一个触发点被激活时,它只会触发一个相关的组件。这意味着,每次触发点被激活时,只有一个组件会被选中并处理。适用于只需要触发单个组件的情况。

       Queued:是Internal Triggering Point的另一个触发方式,在这种触发方式下,当一个软件组件发生事件时,该事件将被排队并等待其他相关的组件处理。这意味着,当一个触发点被激活时,它可以激活多个相关的组件,并按照排队的顺序进行处理。

       Explicit by argument(Read):通过参数来显式地指定要读取的数据。代码中,需要明确指定要读取的数据对象,并将其作为参数传递给Read函数。适用于需要明确指定读取哪些数据的情况。

       Implicit(IRead):一种隐式的读取方式。在代码中不需要显式地指定要读取的数据对象,而是通过设置相关的属性或配置项来自动读取特定的数据。适用于需要自动读取数据的情况。

       Explicit Write:通过显式的方式将数据直接写入到特定的数据项中。在DaVinci Developer中,可以明确指定要写入的数据项和要写入的数据的值。(个人理解,这种写是非自动的,需要人为介入

       Implicit Write:通过隐式的方式将数据写入到数据项中。在DaVinci Developer中,可以使用规则和条件来定义数据项的写入逻辑,并在符合特定条件时自动将数据写入到数据项中。(个人理解,这种写是自动的,不需要人为介入

       Polling:轮询是访问点Invoke Operation异步调用时的一种操作方式,指定期间内反复查询操作的状态,以确定操作是否已经完成。若完成,获取其结果;反之,则可继续等待并再次查询。

       Waiting:等待是访问点Invoke Operation异步调用时的另一种操作方式,在查询操作状态时暂停程序执行,并等待操作完成。通过等待,可以让程序暂时停止执行,直到操作完成或Timeout时间超时为止。

返回总目录

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值