Can bus 在公交车上接收之前,是否有办法修改独木舟接收信息?

Can bus 在公交车上接收之前,是否有办法修改独木舟接收信息?,can-bus,capl,canoe,Can Bus,Capl,Canoe,我正在从控制器接收CAN消息(假设消息ID=0x100信号S1、S2), 但我想在总线上接收之前更改Canoe Rx消息的信号。基本上,如果您想更改CAN帧中的某些内容,可以在capl中执行类似操作 例如: Framename: TEMP Signal you want to change: S1, S2 在您的案例中,消息TEMP/*或“消息0x100”上的*/ { /*如果将dbc或arxml分配给canoe项目,则可以直接 *使用帧名称和信号名称来操作数据。 *如果没有,您需要使用它

我正在从控制器接收CAN消息(假设消息ID=0x100信号S1、S2),
但我想在总线上接收之前更改Canoe Rx消息的信号。

基本上,如果您想更改CAN帧中的某些内容,可以在capl中执行类似操作

例如:

 Framename: TEMP
 Signal you want to change: S1, S2
在您的案例中,消息TEMP/*或“消息0x100”上的
*/
{
/*如果将dbc或arxml分配给canoe项目,则可以直接
*使用帧名称和信号名称来操作数据。
*如果没有,您需要使用它的ID并在上面写入字节。
*/
this.S1=任何_值;
this.S2=任何_值;
输出(本);
}
如果您没有将DBC/ARXML文件添加到项目中,但我强烈建议您这样做。在上面的代码中,唯一需要更改的是,必须指定覆盖哪些字节

您可以更改此选项:

this.S1=任何_值;
this.S2=任何_值;
为此:

this.byte(0)=任意_值;
字节(1)=任意_值;

但您需要知道需要覆盖哪些字节

如果无法在控制器发送消息之前修改消息,则修改消息的唯一选项是HIL(回路中的硬件),您可以将其放置在总线上的发送器(控制器)和CANoe VN之间

例如,如果你想坚持向量积,它们被称为CANStress模块

它们将嗅探总线上的消息,并在(由您)定义的触发器处,用您希望的任何内容覆盖物理层,成功地更改或错误注入总线


请注意,修改信号意味着您必须知道它们的映射,以及如何重新计算CRC标记并进行修改,否则,CANoe VN将不接受您的消息,并且如果他希望在CANoe模拟接收到消息之前更改消息,将报告Rx_Err CRC Check

,您的代码将仅在接收后(在消息上)修改内容,而不是在接收前。他希望“劫持”邮政卡:P在收到邮件后不要更改它。我理解它就像他收到了来自控制器的消息一样,他希望在收到之前更改消息。但我不太确定在这种情况下劫持邮政卡应该是什么。但我们会明白他到底是什么意思。但很高兴再次在这里见到你:迪恩·伊斯·吕尔克:)所以邮局1是控制器,邮局卡是信息,邮局2是独木舟模拟。如果他希望在用独木舟处理之前修改内容,他必须在路上抓到它,或者强迫管制员发送已经修改过的内容。此外,CANoe不能修改Rx消息的内容,它在跟踪上不可见。它只能覆盖已经收到的消息对象,但我认为这没有任何意义。好的,我刚才也看到了你的答案。我遗漏了两台设备之间需要向量VN框的部分,也完全遗漏了必须重新计算crc的部分。你是匈牙利人还是只是在谷歌上搜索翻译?是的,我是匈牙利人。罗马尼亚的匈牙利少数民族。如果您愿意,我们可以随时通过邮件用匈牙利语讨论FR和can协议和独木舟。你可以在我的个人资料描述中找到:)“在总线上接收之前”是指在发送者发送之前。这只能在发送方配置,不能在独木舟侧配置。