1、概述
从规范上看配置主要有两大部分组成ComConfig与ComGeneral,规范显示如下。
实际在配置工具里面的体现如下
配置思维导图如下
2、ISOLAR-AB配置
2.1、ComGeneral
记录一下不太容易理解的配置项:
ComCancellationSupport:取消传输功能的API是否开启的静态代码配置。
ComEnableMDTForCyclicTransmission:在整个Com模块中实现对循环和重复传输的最小延迟时间监测(周期传输时 需要前置条件ComTxModeMode = PERIODIC或ComTxModeMode = MIXED,重复传输时 ComTxModeNumberOfRepetitions > 0)。
ComEnableSignalGroupArrayApi:打开信号组访问的API,这个API一般用于信号同步,上述有提到过这点。
ComRetryFailedTransmitRequests:如果该参数设置为true,则启用失败的传输请求重试,如果不设置该参数,则采用默认值。
ComSupportedIPduGroups:定义支持的I-PDU组的最大数量。
2.2、ComConfig
2.2.1、ComGwMapping
此处最好用脚本处理一下,根据一些特征,例如信号名字直接改动arxml不容易出错。
此处处理关键是源地址与目的地址的信号选择,也就是信号值的传递,此处信号值等同于了I-PUD。一个源地址是可以传输到许多目的地址的,在配置工具里面可以新建几个目的地址,源地址与目的地址的对应关系是1:n的关系。
2.2.2、ComIPduGroups
此处可以添加用户需要的,然后在ComIPdus里面使用
2.2.3、ComIPdus
ComIPduCouinter:
IPDU的序列控制
如果收到的counter与期望的counter不匹配,调用配置的通知接口ComIPduCoumterErorNotification;
coumter值的翻转,假如coumter配置为4个bit,期望counter为15之后翻转到0;
counter阀值 及匹配算法举例:期望counter为5,阀值为2,则当接收到的counter为5/6/7都是OK的。
此处理应有配置项:ComIPduCounterSize/ComIPduCounterStartPosition但是在ISOLAR-AB里面没体现
ComTxModeNumberOfRepetitions:定义了传输模式的重复次数和传输模式混合的事件驱动部分
ComTxModeRepetitionPeriod:定义当配置comtxmodennumberofrepetitions大于等于1且ComTxModeMode配置为DIRECT或MIXED时,多次传输的重复周期(以秒为单位)。在混合传输模式下,仅影响事件驱动部分
ComIPduCallout:该参数定义了对应I-PDU的callout函数的存在和名称。如果省略此参数,则不会对相应的I-PDU进行标注。
这个回调函数还是比较重要的,在发送前或者接收后处理自定义的数据比较自由。
ComIPduCancellationSupport:定义ComIPduType为NORMAL的i - pdu:如果底层ifmodule支持取消传输请求。定义ComIPduType为TP的i - pdu:如果底层TP模块支持RX和TX取消正在进行的请求。
ComIPduSignalProcessing:信号是延时发送还是立即发送方式
ComIPduErrorNotification:这个回调是在超时之后进入的回调
ComIpduNotificationCallback:发送 或接收之后产生的回调。
ComFirstTimeout:以秒为单位定义第一个截止日期监视超时周期的长度。此超时在截止日期监视服务启动(或重新启动)之后立即使用。连续时间段的超时时间为由ECUC配置。
ComTimeout:以秒为单位定义截止日期监视超时周期的长度。
2.2.4、ComSignals
ComBitPosition:这个signal的信号开始位置
ComBitSize:信号的长度,单位是bit
ComDataInvalidAction:此参数定义接收到无效信号时执行的操作。与信号组有关,如果包含的信号之一是无效信号时的操作。如果使用Replace,则ComSignallnitValue将用于替换。
ComErrorNotification:仅在发送端有效:要调用的Com_CbkTxErr回调函数的名称。如果省略此参数,则不会产生错误通知。
ComFirstTimeout:以秒为单位定义第一个截止日期监视超时周期的长度。此超时在截止日期监视服务启动(或重新启动)之后立即使用。
ComInitialValueOnly:该参数定义了将各自信号的初始值分别放入各自的PDU中,不通过RTE对其值进行更新。因此,Com实现不需要期望对该信号(组)进行任何API调用。
ComInvalidNotification:仅在接收端有效:要调用的Com_CbkInv回调函数的名称。通知RTE接收到无效信号/信号组的函数名称。只有当ComDatalnvalidAction配置为NOTIFY时才适用。
ComNotification:在发送端:要调用的Com_CbkTxAck回调函数的名称。接收端:要调用的Com_CbkRxAck回调函数的名称。如果省略此参数,则不会发生通知。(项目里面此处给RTE使用了,发送都配置了)
ComRxDataTimeoutAction:此参数定义接收截止日期监控计时器到期时执行的操作。
ComSignalDataInvalidValue:定义信号的数据无效值。当ComSignalType为UINT8、UINT16、UINT32、UINT64、SINT8、SINT16、SINT32、SINT64时,该字符串应按照AUTOSAR EcuC规范中整数类型章节的定义进行解释。如果ComSignalType为FLOAT32, FLOAT64,则该字符串应按照AUTOSAR EcuC规范中的Float Type章节中的定义进行解释。如果ComSignalType为BOOLEAN,则该字符串应按照AUTOSAR EcuC规范中的布尔类型章节中的定义进行解释。如果ComSignal是UINT8_N, UINT8_DYN,则该字符串将被解释为由空格分隔的字符的十进制表示。"97 98 100"表示字符串"abd",其中字符"a"位于字节0(最低地址),"b"位于字节1,"d"位于字节2和(最高地址)。对于ComSignalType UINT8_DYN,动态长度应设置为配置的字符数。空字符串“”应解释为0大小的动态信号。
ComSignalEndianness:定义信号的网络表示的端序。Intel为小端,motorola为大端。
ComSignalInitValue:信号的初始值。
ComSignalType:信号的AUTOSAR类别
ComSignalLength:配置信号类别UINT8_N 与UINT8_DYN 的时候,配置长度使用的。
UINT8_N表示一个固定长度的无符号8位整数数组
UINT8_DYN表示一个动态长度的无符号8位整数数组
ComTransferProperty:定义此信号是都可以触发响应的I-PDU的传输。如果一个信号组的至少一个组信号配置了“ComTransferProperty”属性,则该信号组的所有其他组信号也应配置该属性。
类型 | 描述 |
Pending | 不会主动发送 |
Triggered | 当DIRECT或者MIXED的时候,发送ComTxModeNumberOfRepetitions次 |
Triggered Without Repetition | 当DIRECT或者MIXED的时候,发送1次。 |
Triggered on change | 当前信号值与上一次发送值或者初始值不同,且当DIRECT或者MIXED的时候,发送ComTxModeNumberOfRepetitions次 |
Triggered on change Without Repetition | 当前信号值与上一次发送值或者初始值不同,且当DIRECT或者MIXED的时候,发送1次。 |
ComUpdateBitPosition:在I-PDU内的更新位位置。
2.2.5、ComTimeBase
ComGwTimeBase:调用函数Com_MainFunctionRouteSignals的周期,单位是S
ComRxTimeBase:接收周期主函数的时间。
ComTxTimeBase:发送接收周期主函数的时间。