枚举代码生成与嵌入式编码器(autosar.tlc)

76(30天)
你好,
有人知道什么导致了下面的错误信息,如何我能解决这个问题吗?我有一个仿真软件模万博1manbetx型,使用“State_Car.m”中定义的枚举
classdefState_Car < 万博1manbetxSimulink.IntEnumType
枚举
PARKEN_BN_NIO (1)
PARKEN_BN_IO (2)
STANDFKT_KUNDE_NICHT_IM_FZG (3)
WOHNEN (5)
PRUEFEN_ANALYSE_DIAGNOSE (7)
FAHRBEREITSCHAFT_HERSTELLEN (8)
。(10)
FAHRBEREITSCHAFT_BEENDEN (12)
SIGNAl_UNBEFUELLT (15)
结束
结束
我得到的错误信息在构建过程是:
# # #为模型构建过程:“swc_heat_2017b”一个错误而中止。
枚举类型的头文件State_Car,应该设置为Rte_Type.h。要修复这个错误,更新的getHeaderFile方法返回Rte_Type.h枚举类型

接受的答案

卢卡斯Lebert
卢卡斯Lebert 2018年7月5日
编辑:卢卡斯Lebert 2020年8月20日
嗨,赵昱!
按照AUTOSAR标准,所有数据类型必须Rte_type.h定义生成。这是错误的原因,是不可能使用不同的头在AUTOSAR代码生成。
内部数据类型使用仅仅SWC(不是一个端口的定义),你只需要像Rte_type指定头文件。h只有如果你想要的数据类型作为IncludedDataTypeSet出口。
这是一个小例子getHeaderFile的实现方法:
classdefState_Car < 万博1manbetxSimulink.IntEnumType
枚举
(1)
(2)
结束
方法(静态= true)
函数retVal = getHeaderFile ()
retVal =“Rte_Type.h”;
结束
结束
结束
祝你有美好的一天!
卢卡斯~
7评论
阿里乌斯派信徒
阿里乌斯派信徒 2022年9月11日
我添加了这个方法枚举类型,但仿真软件不能编译仿真模型(Ctrl + D)。万博1manbetx

登录置评。

更多的答案(2)

Manuel Stumpf
Manuel Stumpf 2018年7月16日
它看起来像我有一个类似的问题:是否可以使用RTE引用数据类型在一个子系统(如国家流)?我想使用相同的数据类型的内部子系统和外部接口引用我的SWC。现在我越来越像上面的错误消息。
问候,曼努埃尔
2的评论
Manuel Stumpf
Manuel Stumpf 2018年7月16日
由于卢卡斯,
你回答的问题给了我暗示我需要。代码生成Autosar成功了!再次感谢曼努埃尔

登录置评。


振威的太阳
振威的太阳 2018年9月11日
嗨,我是同样的问题。我不需要在“Rte_Types def的数据。h”由于这门课只是为了我的SWC使用。谁有解决这个问题吗?
1评论
塔伦Jhamnani
塔伦Jhamnani 2020年8月31日
classdef(枚举)EnColor < uint8
枚举
红色(0)
绿色(1)
蓝色(2)
结束
方法(静态= true)
函数retValue = getDefaultValue ()
retValue = EnColor.Red;
结束
结束
结束
定义枚举如上所述,您可以更改基本数据类型。其次,卢卡斯推荐设置。
生成的代码将类似下图:
typedef uint8_T EnColor;
#定义红((EnColor) 0)
#定义绿色((EnColor) 1)
#定义蓝色((EnColor) 2)

登录置评。

s manbetx 845


释放

R2017b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!