继续梳理《AUTOSAR_EXP_VFB》,又开始了一个新的章节。看起来,整个文档的页数不多,但是我觉得这样的文档能够精读一遍还是很有挑战的。很多人其实都没有读过就有了丰富的AUTOSAR经验,我觉得我非常羡慕他们,在这个技术领域的探索上,我觉得我的前行似乎困难重重。
新的章节是关于VFB的通信的,首先梳理一下简介。
本节描述 VFB 的通信机制,原子软件组件可以使用这些机制相互通信。
第 4.2 节,错误类型,定义了可以出现在发送接收和客户端-服务器通信模型中的错误类型。
第 4.3 节,发送方-接收方通信,更详细地定义了发送方-接收方通信的功能语义。 本节还定义了定义 AUTOSAR 提供的通信模式的确切特征的通信属性。 与模式切换相关的一些细节在第 8 章,模式管理中进行了介绍。
第 4.4 节,客户端-服务器通信,对客户端-服务器执行相同的操作。
错误类型,这个正好是承接上面的简介部分。
错误分为两个简单的类别:基础设施错误和应用程序错误。
当发送方和接收方之间(用于发送方-接收方通信)或客户端和服务器之间(用于客户端-服务器通信)的基础结构失败时,将返回基础结构错误。 基础架构错误的典型示例是超时(这个有点出乎意料,可能我翻译的这个词语意思不是很对,看上去有些文不达意)。 如果客户端在一定时间内未收到服务器的响应(因为客户端和服务器之间的通信通道不可用或消息丢失),则会向客户端返回“超时”基础结构错误。可能的基础设施错误由 AUTOSAR 标准化。
应用程序错误是特定于应用程序的,必须定义为发送方接收方接口的一部分,用于发送方 - 接收方通信,或客户端 - 服务器接口,用于客户端 - 服务器通信。
发送方-接收方模式支持信息分发,其中发送方将信息分发给一个或多个接收方,或者接收方从多个发送方接收信息。 图 4.1 给出了如何在 AUTOSAR VFB 视图中对发送方-接收方通信进行建模的示例。接下来看看这个图:
这个图明显能够看出来的是可以发送给多方,没有看出来可以从多方接收。
在此示例中,有两个组件连接器将组件“Sender”的 PPort 与“Receiver 1”(分别为“Receiver 2”)的 RPort 连接起来。
与这些端口关联的发送方-接收方接口由数据元素组成,这些数据元素定义了由发送方发送并由接收方接收的数据。
数据元素的类型可以是非常简单的(例如“整数”),也可以是复杂的(可能很大)数据类型(例如数组或字符串)。 值的传输,即使是复杂数据类型,在逻辑上始终是原子的。
上面是对此图附加的一些解释,比较简单明确,肯定也不会涉及到我的疑问。
这是一条设计要求: 在配置时,发送者-接收者接口中每个数据元素的数据类型是已知的。
发送者可以为 SenderReceiver 接口中定义的每个数据元素提供一个新值。 精确的语义取决于数据元素是否被定义为“last-is-best”类型,或者数据元素是否被“排队”。
看起来,这种结构设计应该非常依赖于数据结构,如果考虑通用,可以直接全都是队列,这样,差异就只会表现在队列的大小以及是否支持复写等属性配置上。
这个设计要求,其实就是对上面描述的总结,不翻译了。
每个具有“last-is-best”语义的数据元素都可以配置为支持失效。 如果“last-is-best”数据元素支持无效,则发送组件可以向接收者指示数据元素“无效”(参见表 4.1 和表 4.2 中的属性 RECEIVE_INVALID 和 CAN_INVALIDATE)。
疑问:无效可以出现在什么情况下呢?队列空了??
在配置时,必须知道发送方-接收方接口中的每个“last-is-best”数据元素以及该数据元素是否支持“无效”的能力。
看起来,这种设计的可能性还是有很多种的。
内容有些多,这一次的梳理到此总结为一个小结。涉及到的内容主要是错误处理以及发送方-接收方这种模型下的通信功能支持设计。针对第二个主题,这次只算是一个开篇,后面还有详细的小结留作下一次的内容。