当前位置: 代码迷 >> 综合 >> 从零学习VH6501(四) ——干扰触发的次数配置(Repetitions 类)
  详细解决方案

从零学习VH6501(四) ——干扰触发的次数配置(Repetitions 类)

热度:36   发布时间:2023-09-20 13:03:02.0

? 相关文章

从零学习VH6501(四) ——干扰触发的次数配置(Repetitions 类)

  • ?从零学习VH650系列文章目录汇总,点击跳转?

  • ?本章节内容演示源码下载,点击跳转?


?前言

  • ? 针对VH6501的操作,CAPL封装了如下几个类,我们前面已经讲解了 Sequences 类 ,Trigger Configration 类, 最后我们再来看下Repetitions
  • ?演示软硬件环境 Win10 x64CANoe 11 SP2 x64VH6501 CAN Disturbance Interface
    从零学习VH6501(四) ——干扰触发的次数配置(Repetitions 类)

从零学习VH6501(四) ——干扰触发的次数配置(Repetitions 类)

目录

  • ? 相关文章
  • ?前言
  • 触发次数配置
  • ?总结

从零学习VH6501(四) ——干扰触发的次数配置(Repetitions 类)

触发次数配置

CanDisturbanceTriggerRepetitions :这个类比较简单,它没有方法,只有四个参数,定义了当触发发生时,连续触发的次数

从零学习VH6501(四) ——干扰触发的次数配置(Repetitions 类)


1?? 下面的这个脚本就是直接在总线上连续触发31帧格式错误报文

  • 如果小伙伴是顺序学习的,可以看出,演示代码的功能是一点一点丰富起来的,从最简单的方式,一章节一章节的增加代码,学习类库。
testcase TC_04()
{
    CanDisturbanceFrameTrigger frameTrigger;CanDisturbanceSequence     sequence;CanDisturbanceTriggerRepetitions repetitions;dword                       deviceID; long                       valditiyMask;message 0x100              triggerMessage;long                       validityMask;long                        result;//clear the sequencesequence.Clear();deviceID = 1;//configure the message should be triggered//ID must standard ID and a CAN message must on the busvalidityMask = @sysvar::CanDisturbance::Enums::ValidityMaskFlags::IDBase  | @sysvar::CanDisturbance::Enums::ValidityMaskFlags::IDE | @sysvar::CanDisturbance::Enums::ValidityMaskFlags::FDF ;//validityMask = 0;frameTrigger.SetMessage(triggerMessage, deviceID, validityMask);frameTrigger.TriggerFieldType =   @sysvar::CanDisturbance::Enums::FieldType::AckDelimiter;frameTrigger.TriggerFieldOffset = 0;//configure a sequence 320 FPGA ticks long and send a recessive bit at the Ack slot//bit on the bus. result = sequence.AppendToSequence(320, 'd');//Define 33 repetitions and one cycle with a 1 ms hold off time repetitions.Cycles = 1;repetitions.HoldOffCycles = 1;//100msrepetitions.HoldOffRepetitions = 0;repetitions.Repetitions = 31;if(result == 1){
    result = canDisturbanceTriggerEnable(deviceID, frameTrigger, sequence,repetitions);if(result == 1){
    write("Trigger is enabled");}else{
    write("Enable trigger error Result =%d", result);}}
}

2?? 运行结果,可以看到连续触发了31错误报文。

repetitions.HoldOffRepetitions = 0;
repetitions.Repetitions = 31;//连续触发31帧格式错误报文

从零学习VH6501(四) ——干扰触发的次数配置(Repetitions 类)


3?? 将上面脚本的代码换成如下的代码,对比观察下下面贴图的输出

repetitions.Cycles = 2;
repetitions.HoldOffCycles = 1000;//1000ms
repetitions.HoldOffRepetitions = 100;
repetitions.Repetitions = 5;

从零学习VH6501(四) ——干扰触发的次数配置(Repetitions 类)


3?? CanDisturbanceTriggerRepetitions 帮助文档的解释

  • Cycles : 周期发送几个cycle
  • HoldOffCycles :每两个cycle之间的时间间隔
  • HoldOffRepetitions:没两个错误帧之间的时间间隔
  • Repetitions:连续发几帧

从零学习VH6501(四) ——干扰触发的次数配置(Repetitions 类)


从零学习VH6501(四) ——干扰触发的次数配置(Repetitions 类)

End

?总结

从零学习VH6501(四) ——干扰触发的次数配置(Repetitions 类)

从零学习VH6501(四) ——干扰触发的次数配置(Repetitions 类)

? 有需要这个系列演示文章所用demo工程的,可以关注下方公众号网盘自取啦,感谢阅读。
从零学习VH6501(四) ——干扰触发的次数配置(Repetitions 类)

  • ?要有最朴素的生活,最遥远的梦想,即使明天天寒地冻,路遥马亡!

  • ? 有微信的小伙伴可以关注下浪哥车载诊断,一个行业内小小圈子,群里有网盘资料源码还有各路大神 闲时交流交流技术,聊聊工作机会啥的。

  • ?如果这篇博客对你有帮助,请 “点赞” “评论”“收藏”一键三连 哦!码字不易,大家的支持就是我坚持下去的动力。
    从零学习VH6501(四) ——干扰触发的次数配置(Repetitions 类)