在我们的例子中,我有一个名为TEMP的FlexRay PDU,它在每个周期中都被填充,我想对该PDU进行超时,但它没有updatebit。
我有一个面板,可以在其中检查启用按钮,以决定是否应将其发送出去。
adsProfile() {
this.navCtrl.push(AdsProfilePage, {Name :this.name,Address:this.address});
}
无论我将按钮设置为什么,PDU都会在每个循环中传输。
答案 0 :(得分:0)
我自己不使用Vector CANoe或CANalyzer,并且几乎没有公共文档,因此我只能提供一些常规调试提示:
答案 1 :(得分:0)
FRUpdatePDU()不会发送PDU的另一个实例,它只是使用frPDU对象中的数据更新下一个迭代,因为我们正在谈论静态帧的PDU,一旦VN开始发送它,就无法停止它分别由PDU控制。
框架与PDU 框架是网络上的物理Flexray框架。 PDU是帧有效负载的一部分(或全部)的虚拟化。 打个比方:邮政卡车是FlexRay框架,其中的盒子是PDU。对于邮政服务(Flexray协议-OSI层1),重要的单位是卡车本身,而对于您(客户)来说,则是卡车中的箱子。您将永远不会对在盒子中运送好东西的卡车感兴趣,仅对内容本身感兴趣。
调用FrUpdatePDU()时,不仅开始发送PDU,而且还激活(发送非空帧)其插槽。 通过将下面的帧设置为非空帧,可以确保(在静态帧的情况下)自动从该点开始周期性地发送该帧,无论您要对PDU做什么(卡车仍在行驶,甚至如果您不想在其中发送邮件)。
解决方案: 我想您没有IL DLL可以为您提供帮助,因此您仅限于CANoe环境作为FlexRay IL常规功能提供的功能。
来自DBCofTEMPPDU的帧帧帧
在frStartCycle * {
if (@FR_namespace::TEMP_Enablebutton==1)
{
mframe.fr_flags=0x0;
frUpdateStatFrame(mframe);
TEMP_Pdu.byte(0xAA);
FrUpdatePDU(TEMP_Pdu, 1, 1));
}
else
{
mframe.fr_flags=0x80;
frUpdateStatFrame(mframe);
}
}
因此,实际上您还需要修改框架。关于帧标志,请在“帮助”中签出frframe的定义。