问题
如何使用 CANape 发送 CAN 报文或 CAN 标志的信号?
答:可以:
可以通过以下步骤实现。在 CANape 中打开Tools | Function Editor 并定义New 项目函数.
Example 1:
例如,定义一个帧,ID 为0x100
,数据字节填充为0x01
。通过设备ExampleDevice_send
在 CAN 总线上发送帧。
Function SendExchangeFrame ()
{
ExampleDevice_send.SendMessage(0x100, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01);
return ;
}
有关函数SendMessage()
的更多细节,请参阅 CANape 帮助。
Example 2:
下一个示例显示了一个针对现有 CAN 设备ExampleDevice_send
的函数,该设备带有描述文件(DBC 文件),其中描述了信号 (SendSignal_01
;SendSignal_02
) 。这些信号应发送到 CAN 总线,其中SendSignal_01
的固定值为0x10
,0x20
的固定值为SendSignal_02
。
Function SendExchangeSignal ()
{
ExampleDevice_send.SendSignal_01 = 0x10;
ExampleDevice_send.SendSignal_02 = 0x20;
return ;
}
Example 3:
另一个使用场景可以是 XCP 至 CAN 网关。设备XCPSim
的信号channel1
和channel2
应路由的 CAN 设备XCPtoCAN_V01
的信号XCPtoCAN_Sig_01
和XCPtoCAN_Sig_02
。XCP 和 CAN 信号的数据类型必须匹配。
Function XCPtoCAN ()
{
XCPtoCAN_V01.XCPtoCAN_Sig_01 = XCPsim.channel1;
XCPtoCAN_V01.XCPtoCAN_Sig_02 = XCPsim.channel2;
return ;
}
下一步打开Start | Measurement Configuration, ,转到Functions 和insert 的测量函数。然后Select 刚刚创建的项目功能SendExchangeFrame();
或SendExchangeSignal()
或XCPtoCAN()
。
通过Measurement mode 可以定义何时调用测量功能,从而何时发送 CAN 报文。在将 XCP 信号路由到 CAN 的情况下,最好使用与 XCP 信号相同的测量模式。