【问题标题】:How to send a FlexRay Data in CAPL如何在 CAPL 中发送 FlexRay 数据
【发布时间】: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”键,则数据应无错误地落在总线上。

【问题讨论】:

    标签: embedded can-bus capl


    【解决方案1】:

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

    使用此函数frOutputDynFrame只能发送动态段中的帧 对于静态段使用frUpdateStatFrame

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-28
      • 2018-11-23
      • 1970-01-01
      • 2018-06-27
      • 2017-02-04
      • 2020-11-13
      • 1970-01-01
      相关资源
      最近更新 更多