我希望借助CAPL在总线上发送FlexRay数据。每当我发送邮件时,都会出现错误。
(系统14-0002 FlexRay 1:无法映射帧38(0,1)A的PDU,驱动程序状态= 267)。
如何在总线上发送数据?
我尝试在Canalyzer版本11.0.3中发送消息,Flexray插槽ID为38,标志设置为0x10。消息通道和通道掩码设置为1。我使用了froutputDynFrame库函数。
注意:我为此使用XML文件(FlexRay数据库)。
includes
{
}
variables
{
frFrame (38,0,1) dummymsg;
}
on preStart
{
//dummymsg.fr_slotID=38;
dummymsg.fr_channelMask=1;
dummymsg.msgChannel = 1;
dummymsg.fr_flags=0x10;
}
on key 'a'
{
byte i = 0;
dummymsg.byte(i++) = 0x10; // Target Address
dummymsg.byte(i++) = 0x11;
dummymsg.byte(i++) = 0x12; // Source Address
dummymsg.byte(i++) = 0x13;
dummymsg.byte(i++) = 0x10;
dummymsg.byte(i++) = 0x00;
dummymsg.byte(i++) = 0x05;
dummymsg.byte(i++) = 0x10;
dummymsg.byte(i++) = 0x12;
dummymsg.byte(i++) = 0x34;
dummymsg.byte(i++) = 0x56;
dummymsg.FR_PayloadLength = 4;
froutputDynFrame(dummymsg);
}
如果按下键“ a”,则数据应正确无误地落在总线上。
答案 0 :(得分:0)
这取决于时间表。您确实需要具有Fibex数据库文件,或者至少在总线上至少具有正确的静态/动态分段配置。
使用此功能"myData": {
".indexOn": "timestamp"
}
只能发送动态段中的帧
对于静态细分,请使用frOutputDynFrame
要检查您是否能够发送帧/ PDU,您只需在仿真设置中插入FlexRay框架面板(或PDU面板)即可。