【问题标题】:Disable messages and nodes禁用消息和节点
【发布时间】:2018-02-09 17:11:25
【问题描述】:

是否有一组函数可以在使用 CAPL 的 CANoe 模拟中禁用/启用消息?

我有一个名为 ECM_LS 的节点,它在我的模拟中发送消息 Engine_Test_Information_LS,我想编写一个禁用 ECM_LS 和 ECM_LS::Engine_Test_Information_LS 的测试。曾经看到过 disableNode() 或 canNodeOffline() 之类的函数,但记不太清楚了。

【问题讨论】:

  • 你的意思是“canOffline()”和“canOnline()”吗?
  • 并非如此。我正在寻找这样的功能,但只停止一个节点而不是所有模拟。

标签: can-bus capl


【解决方案1】:

您不需要禁用整个节点,您可以停止发送单个消息。 禁用函数是 TestDisableMsg():

  • 长 TestDisableMsg (dbMessage aMessage)
  • 长 TestDisableMsg (dword aMessageId)
  • long TestDisableMsg (char aMessageName[])

在您的情况下,它将是 TestDisableMsg(Engine_Test_Information_LS);

您可以使用 TestEnableMsg(Engine_Test_Information_LS); 启用发送消息

或者如果你真的需要禁用整个节点,你可以使用 ILNodeControlStop 和 ILNodeControlStart 来重启:

  • 长 ILNodeControlStart(char aNodeName[])
  • 长 ILNodeControlStop(char aNodeName[])

【讨论】:

    【解决方案2】:

    是的,你可以....!

    如果您使用的是 IL 配置,则使用 1)网络节点中的ILDisableMsg()函数。 2)启用使用ILEnablemsg()。

    假设如果你正在使用测试模块节点 1)testDisableMsg(dbMessage aMessage);在测试模块节点 2)testEnableMSg();再次启用该消息。

    假设您使用的是普通配置(无) 只需创建一个常量并使用 if 条件。如果那个条件是真的不要

    【讨论】:

      猜你喜欢
      • 2017-06-11
      • 2020-02-22
      • 2012-06-15
      • 1970-01-01
      • 2022-06-30
      • 1970-01-01
      • 2015-07-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多