目录
2.1 前言
由于在网络上关于DaVinci Developer的文章内容实在很少,官方文档又生涩难懂,故而在此分享本人在日常学习Developer操作过程中的理解与总结,内容参考了AUTOSAR官方文档、Vector操作文档以及CSDN上已有的大佬的博客,望与诸君共同学习、共同交流、共同进步。
如有疑误,望诸君多多海涵,在评论区下留言共同讨论!
第2章内容主要介绍以Application Software Component为例的RunnableEntity中触发器(Triggers)、访问点(AccessPoints)、属性(Properties),内容丰富全是干货,希望对大家有所帮助。
2.2 Runnable Entity List
在ASUTOSAR应用层APPL的SWC中,Runnable是作为函数存在(除了Calibration SWC)。在DaVinci Developer内,Runnable Entity List下方3个按键如图2.1所示,且按键“New”还可扩展出三个选项:Runnable、Server Runnables和Init Runnable,见下表2.1所述。

New | Decsription |
Runnable | 以默认名创建Runnable,不自带Triggers |
Server Runnables | 当该SWC实例化C/S端口接口类型且作为Server,可直接在"New"中选择Server Runnables创建Runnable,并且带有对应于C/S接口原型中操作的Trigger:On Operation Invocation |
Init Runnable | 创建带有Trigger:Init 的Runnable |
点击配置一个Runnable时,右侧属性配置框上方出现4个项目卡:
Triggers:触发器,用于激活Runnable运行。哪些触发器允许配置,取决于SWC是否配置了对应的端口接口原型;
Access Points:访问点,对应于该Runnable运行时所访问的端口与操作。与Triggers相同,哪些访问点可配置,取决于Runnable是否配置了对应的端口接口原型;
Properties:属性框,用于配置Runnable的基本属性,包括命名、符号、是否并发调用、最小启动间隔、(针对Triggers的)激活原因;
Description:描述,可对该Runnable进行功能描述,起注释作用。
2.3 Triggers
在一个Runnable中总共可配置14个Triggers,它们各自的描述和前置条件(precondition)见下表2.2:
Triggers | Description | Precondition | Activation Reason |
Init | 初始化时触发Runnable | 默认任何Runnable均可配置,且同一个Runnable只允许存在一个Init,不允许存在其他Trigger | 无 |
Background | 触发的Runnable必须映射在优先级最低的Task上,再由RTE重复调度 | 默认任何Runnable均可配置,但不允许存在其他Trigger | ✔ |
Periodic(下文有特别说明) | 周期性触发Runnable | 默认任何Runnable均可配置 | ✔ |
On Data Reception | 当SWC的某S/R端口接口原型接收到指定数据原型时触发 | SWC配置S/R端口接口原型,作为接收端Receiver | ✔ |
On Data Reception Error | 当SWC的某S/R端口接口原型接收指定数据原型发生错误时触发 | ✔ | |
On Data Send Completion | 当SWC的某S/R端口接口原型发送指定数据原型完成时触发 | SWC配置S/R端口接口原型,作为接收端Sender,且在其通讯规范中使用了Tx Acknowledge | ✔ |
On Operation Invocation | 当SWC的某C/S端口接口原型中指定的操作被其他Client SWC调用时触发 | SWC配置C/S端口接口原型,作为服务器Server | 无 |
On Operation Call Return | 当指定操作调用时会触发该Runnable用异步轮询的方式读取返回值 | SWC配置C/S端口接口原型,作为服务器Client | ✔ |
On Mode Entry | 当SWC的模式转换接口原型接收到指定的模式时触发 | SWC配置模式转换接口原型,作为接收方Receiver | ✔ |
On Mode Exit | 当SWC的模式转换接口原型中的模式,由指定的模式转换为其他模式时触发 | ✔ | |
On Transition | 当SWC的模式转换接口原型中的模式,由指定模式转换为另一指定模式(顺序不可反)时触发 | ✔ | |
On Mode Switch Acknowledge | 当SWC的模式转换接口原型作为发送方Sender,收到模式转换完成的确认时触发 | SWC配置模式转换接口原型作为接收方Sender,在其模式转换通信规范中Use Mode Switch Acknowledge | ✔ |
On Internal Trigger Occurred | 当指定的内部触发事件发生时触发,包括ECU内部定时器、状态机、任务调度等等 | Runnbale在Access Points创建Internal Triggering Point,其他Runnable就可以以此作为触发 | ✔ |
On External Trigger Occurred | 当指定的外部触发事件发生时触发,包括来自其他ECU的信号、传感器输入、总线消息等等 | SWC配置触发接口原型,作为接收方Receiver | ✔ |
特别说明,创建Periodic Trigger时还需做如下图2.2所示中的设置:

Offset是指触发器在每个周期内的偏移量,用于确定周期触发器何时开始触发。例如:若设置一个周期为10s的触发器,并且将Offset设置为5s,那么触发器将在每个周期 第5秒开始触发。
当SWC引用模式转换端口接口原型(Mode Switch Port Interface Prototype)且作为接收方Receiver时,除了带有Init Trigger的Runnable,其余Runnable均可对其Triggers配置Disabled in Mode。其含义是:软件组件原型处于指定模式时,配置有对应该模式的Disable in Mode的Triggers将无效,无法以此作为触发条件。见下图2.3所示为Disable in Mode配置流程示例:

在【DaVinci Developer学习笔记】2-SWC的Software Design-RunnableEntity(下)中的2.5Properties里介绍了关于Activation Reason的配置