Autosar DataType介绍

前言

看了一下基本的配置,发现Autosar的DataType的内容比较多,也比较复杂,所以单独开一章来记录一下


一.基本数据类型

1.1基本类型

Autosar的基本数据类型按照等级划分为三种:

  1. Application Data Types(只是在Dev软件的图形界面上使用的类型,只存在于概念中,不会在代码中体现)
  2. Implementation Data Types(是对Base Types改了个名字,方便代码生成时阅读的,比如我们经常做这么一件事typedef uint8 Std_ReturnType)
  3. Base Types(常用到的int、bool、float、uint16这样的基础类型)

1.2其他类型

Units:就是数据的单位,比如km、h和kg等
Compu Method:计算方法,比如我采样到的ADC是0-4095,那么如何转换成真实的电压值,可以在这里定义一个转换的计算方法。该计算方法可以是线性的,非线性的,基于查表的等等。这个计算方法会在代码中生成一个宏定义#define
Data Contraints:数据约束,就是对数据进行最大、最小值约束等操作
Constants:常量,比如#define LED_ON 1
在这里插入图片描述

二,详细数据介绍

2.1 新建数据类型的具体类型

我们新建一个应用数据类型时,有一下几种类型,我们详细看一下:
1. Boolean:bool类型
2. Value:值类型
3. String:字符串类型
4. Array:数组类型
5. Record:包含不同类型的数组(类似结构体)
6. Characteristic Table:键值表
7. Axis:角度值(分为线[x]、面[x:y]、立体[x:y:z])
8. Type Reference:类型参考
9. Data Reference:数据参考
10.union:联合体

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 详细举例介绍

2.2.1 创建一个Record类型的Application Data Types

// 例如我们要创建一个类似AdcKeyInfo的结构体
typedef struct{
	uint8_t KeyState; //按键状态
	uint8_t KeyCode; //按键值
}AdcKeyInfo_t;
  1. 首先我们要分别创建KeyState,KeyCode的值类型,我已经创建了几个类型,如下图所示:
    在这里插入图片描述
    在这里插入图片描述
  2. 创建ADTAdcKeyInfo,具体步骤如下图所示:
    在这里插入图片描述
    在这里插入图片描述
    这样我们就创建了一个ADTAdcKeyInfo的Record数据类型,包含了ADTAdcKeyState、ADTAdcKeyCode两个元素。

2.2.2 创建一个Record类型的Implementation Data Types

由于Implementation Data Types可以直接使用Base Type里面的基本类型,所以我们就不需要创建类似ADTAdcKeyState的类型了,而是直接创建IDTAdcKeyInfo,包含两个uint8_t的数据类型的(IDTAdcKeyState,IDTAdcKeyCode),如下图:
在这里插入图片描述
这样我们就分别创建了application data type和Implementation Data Types,但是要在DEV中使用他们还需要把这两个数据关联起来,就是把工具使用的类型与生存代码的类型关联起来。

2.2.3 创建Data Map关联数据

创建关联数据Maps如下图流程:
需要注意的是,关联的数据类型必须保持一值(类型、元素个数、元素类型等),不然会报错。
在这里插入图片描述

结束语

至此,一个包含两个元素(KeyState、KeyCode)的KeyInfo数据类型就基本创建成功了,具体里面的一些配置信息需要根据具体情况来设置,由于本人也是初次使用,不是很熟悉。

  • 26
    点赞
  • 118
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JZH2O

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值