在使用PREEvision定义AUTOSAR_CP Data Type之前,首先建立一个Data Type 存放路径,如下图所示,之后所有定义的数据可以存在此处。
1、PREEvision 数据类型定义与AUTOSAR数据类型定义映射表。PREEvision对于AUTOSAR定义的Private data type 进一步细分为integer、long、byte、float、double等多个类型。实际上AUTOSAR定义的数据类型中只有Value,所以我们这里统一按照Value处理就可以了。
定义一个Uint8数据类型:
主要定义属性如下:
2、Application Data Type 定义:选择之前建立的路径ADT_Private--new--data type--applicaion data typ--application value type,就可以建立一个Application Value Type,然后对它命名为ADT_Uint8;
- 2.1、定义物理最大值、最小值 Generic Physical Data Constraint;
- 2.2 属性定义如下
在ARXML中定义如下:
3、Implementation Data Type定义:同样方法建立一个实现数据类型Implementation Value,重命名为IDT_Uint8,Type Emitter 定义为“RTE”;
在ARXML中定义如下:
4、建立Application data type 与 Implementation data type 的映射关系,
主要有2种方法:
方法一:
- 4.1、鼠标左键放在目标Application data type区域,选中目标;
- 4.2、直接将其拖放到目标Implementation data type位置;
- 4.3、选择“Create Mapping”,如下图;
方法二:
- 4.4、选中目标Application data type,在左侧属性栏(Property Page)中找到Implementation data type via mapping属性;
- 4.5、将目标Implementation data type拖放到Implementation data type via mapping区域,如下图;
4.6、在Data Type mapping 路径中,能看到ADT-IDT的映射关系;
在ARXML中定义如下:
- 5、建立数据的基础类型BaseType,重命名为Uint8;
定义BaseType属性:
- Encoding: Unsigned Integer (NONE);
- Length Type: Fixed
- Bit Length: 8
- Byte Order: Motorola (Big Endian)
- Native Declaration: unsigned char
- Memmory Alignment: 64
在ARXML中定义如下:
- 6、建立Implementation data type--base type 的映射关系;
- 6.1、选中目标Implementation data type,在左侧属性栏(Property Page)中找到Implementation data type Attribute属性
- 6.2、将目标base Type拖放到Implementation data type via mapping区域,如下图:
- 7、定义一个枚举型的转换方式,这里仅需要定义网络值—物理值的转换。
7.1、选择路径--new—CompuMethod,重命名为Num;
7.2、再选择刚刚建立的CompuMethod—new—internal to physical conversion—text table conversion;
7.3、在生成的Text Table Conversion左侧属性栏—Conversion Parameter中,点击箭头,生成需要的枚举型变量;
7.4、依次双击枚举型变量“X”、“Y”区域,根据需要定义编码值;
在ARXML中定义如下:
8、建立Application data type--CompuMethod 的映射关系
8.1、选中目标Application data type,在左侧属性栏(Property Page)中找到Computation Method属性;
8.2、在Computation Method下来菜单中选择目标CompuMethod,如下图
9、定义一个数据单位Unit:
本数据不需要Unit,无需定义。详细定义见《1_Float》。
10、建立Application data type--Unit 的映射关系
本数据不需要Unit,无需定义。详细定义见《1_Float》
11、定义常数,用以定义数据的最大值、最小值、初始值、无效值等;
11.1、选择路径—new—Constants—Constant Specification,命名为demo_3;
11.2、选择刚刚建立的Constant Specification—new—Integer literal;
11.3、定义Integer literal;属性:Name: demo_3 , Value:3;
- 12、建立Application data type--Constant 的映射关系;
- 12.1、选中目标Application data type,在左侧属性栏(Property Page)中找到Application data type Attributes属性;
- 12.2、在Invalid Value下来菜单中选择目标Constant,如下图:
通过以上12个步骤,完整了简单数据类型uin8的定义;
将PREEvision定义的数据类型导入CANoe中,显示如下: