【发布时间】:2019-09-09 12:02:47
【问题描述】:
我希望借助 CAPL 在总线上发送 FlexRay 数据。每当我发送时,我都会收到错误消息。
(系统 14-0002 FlexRay 1:无法映射帧 38(0, 1)A 的 PDU,驱动程序状态 = 267)。
如何在总线上发送数据?
我尝试在 Canalyzer 版本 11.0.3 中发送消息,Flexray Slot ID 为 38,Flags 设置为 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”键,则数据应无错误地落在总线上。
【问题讨论】: