11.1 概述
当需要分布式系统不同事件关联的时候,不同应用程序或ECU之间时间同步(TS)是最重要的,不论是及时跟踪这些事件或及时在在精确的时间点出发它们。
基于这个原因, 给应用程序给时间同步API, 因此它可以检索与其他实体/ ECU同步的时间信息。
时间同步功能由系统预构建的不同的时间基础资源(TBR)来提供。
11.2 设计
对Adaptive 平台来说,为了满足所有必要的时间同步的需求,可以考虑下面三种不同的技术
* Classic平台的StbM
* chrono库-无论是std::chrono(C++11)或boost::chrono
* Time POSIX 接口
分析完这些模块的接口和它们覆盖的功能之后,设计时间同步的动机是提供一个类似std::chorono 风格 , 封装Classic平台的StbM模块提供的功能。
时间同步模块考虑下面几个方面的功能:
*启动行为
*构建行为(初始化)
*正常操作
* 错误处理
在将来的发布版本会考虑下面几个方面的功能
* 关闭行为
* 错误分类
* 版本检查
11.3 架构
应用程序能够访问每个时间基础资源(TBR)不同的专用类实现。
通过这个句柄,应用程序能够查询Time Base提供的类型(上面提到的五种类型之一),然后获得Time Base类型的专用类实现。通过这个句柄,应用程序能够直接创建一个定时器。
在其他节点或ECU,TS模块并不提供同步TBR到Time Base的方式类似网络时间协议或time agreement 协议。
TBRs的实现具有专门的循环功能,用来从时间同步以太网来检索时间信息,类似同步TBR。
应用程序使用TBR提供和管理的时间信息。因此,TBR就像时间基础代理,提供访问同步的Time Base。如此,TS模块可以从实时的Time Base 提供者中抽象。