? 相关文章
-
?从零学习VH650系列文章目录汇总,点击跳转?
-
?本章节内容演示源码下载,点击跳转?
?前言
- ? 针对VH6501的操作,CAPL封装了如下几个类,我们前面已经讲解了
Sequences
类 ,TriggerConfigration
类, 最后我们再来看下Repetitions
类- ?演示软硬件环境
Win10 x64
;CANoe 11 SP2 x64
;VH6501 CAN Disturbance Interface
目录
- ? 相关文章
- ?前言
- 触发次数配置
- ?总结
触发次数配置
CanDisturbanceTriggerRepetitions
:这个类比较简单,它没有方法,只有四个参数,定义了当触发发生时,连续触发的次数
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帧格式错误报文
3?? 将上面脚本的代码换成如下的代码,对比观察下下面贴图的输出
repetitions.Cycles = 2;
repetitions.HoldOffCycles = 1000;//1000ms
repetitions.HoldOffRepetitions = 100;
repetitions.Repetitions = 5;
3?? CanDisturbanceTriggerRepetitions 帮助文档的解释
- Cycles : 周期发送几个cycle
- HoldOffCycles :每两个cycle之间的时间间隔
- HoldOffRepetitions:没两个错误帧之间的时间间隔
- Repetitions:连续发几帧
End |
?总结
? 有需要这个系列演示文章所用demo工程的,可以关注下方公众号网盘自取啦,感谢阅读。
- ?要有最朴素的生活,最遥远的梦想,即使明天天寒地冻,路遥马亡!
- ? 有微信的小伙伴可以关注下浪哥车载诊断,一个行业内小小圈子,群里有
网盘资料
,源码
,还有各路大神
闲时交流交流技术,聊聊工作机会啥的。
- ?如果这篇博客对你有帮助,请 “点赞” “评论”“收藏”一键三连 哦!码字不易,大家的支持就是我坚持下去的动力。