Embedded 如何在CAPL中发送FlexRay数据

Embedded 如何在CAPL中发送FlexRay数据,embedded,can-bus,capl,Embedded,Can Bus,Capl,我希望在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 { } variab

我希望在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”键,数据应无误地落在总线上。

这取决于时间表。您确实需要在总线上具有Fibex数据库文件或至少正确配置静态/动态分段

使用此功能只能发送动态段中的帧
frOutputDynFrame
对于静态段,请使用
frUpdateStatFrame

要检查是否能够发送帧/PDU,只需在模拟设置中插入FlexRay帧面板(或PDU面板)