77范文网 - 专业文章范例文档资料分享平台

CANoe与NET结合

来源:网络收集 时间:2020-04-15 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

需求说明:

CANoe诊断,报文存储于excel。直接选择/打开excel,从excel读取报文,send报文,再监测receive的报文,并将receive的报文写回excel中。

解析需求点:

使用CANoe诊断环境 选择并读写excel

解决策略/方法:

在CANoe使用.NET测试方法,解决如何选择并读写excel

操作说明:

1. 打开CANoe,new configuration,选择CAN_500kBaud_1ch.tcn 2. Configuration?Options…,弹出CANoe Options对话框:

? Programming?.NET Debugging, 设置.NET Debugger为Visual Studio 20xx(电脑已安装

版本)

? External Programs? Tools,设置.NET file editor为

‘Exec32\\Scripts\\Edit_NET_Source_with_VS_20xx.vbs’ 3. Insert .NET Test Module

4. 新建一个cs文件,右键.net test module ?configuration,点击file选择新建的cs文件。

5. 点击Edit,弹出VS操作cs文件,将下列一个发送消息的简单程序copy 到cs文件

(ID/DLC/Message信息自己定义)

using System; using Vector.Tools;

using Vector.CANoe.Runtime; using Vector.CANoe.Threading; using Vector.Diagnostics; using Vector.Scripting; using Vector.Scripting.UI; using Vector.CANoe.TFS;

publicclasstester : TestModule {

publicoverridevoid Main()

{ // test sequence definiton: SimpleTest(); }

// Test cases need to be marked with an attribute: [TestCase(\)] publicvoid SimpleTest() {

Report.TestStep(\);

byte[] data = newbyte[] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; CANFrame msg = new CANFrame(0x500, 4); // ID=0x500, DLC=4 msg.SetRawData(data); msg.Send();

Report.TestStepPass(\); } }

6. 在CANoe的.NET test module上compile,编译成功,运行将发送一条message

发送报文后,如何接收报文,CANoe都是以事件方式处理,定义一个报文事件类(继承

Vector.CANoe.Runtime.DynamicHandlers),在main函数中调用即可

任何报文触发:

[OnCANFrame]

public void onMessage(CANFrame frame) { … }

固定ID触发: [OnCANFrame(1, 500)]

public void Frame500Received(CANFrame frame) {…}

? 具体报文事件类代码:

public class MsgHandler : DynamicHandlers {

[OnCANFrame(1, 500)]

public void Frame500Received(CANFrame frame) {

Output.WriteLine(\接收报文事件触发:\string.Join(\,frame.Bytes)); } }

? 并在main函数中调用报文事件类即可,在main函数中第一行添加如下代码:

MsgHandler rec = new MsgHandler();

再次在CANoe编译执行,打开write窗口可以看到发送、接收的一些信息

7. 接收报文事件已经处理,但如何获取报文信息写入excel,这里使用一个CANoe环境变量来做中间桥

梁:

? CANoe菜单栏configuration?System Variable,添加namespace为test,name为temp,

data type为String

? 在Frame500Received函数最后一行添加代码:

test.temp.Value = string.Join(\,frame.Bytes); ? 在main函数最后一行添加代码:

Output.WriteLine(\接收报文:\ + test.temp.Value);

8. 接收报文已可传递,如何读写excel,.Net有很多方法,不赘述,写成一个classlibrary进行

调用。同时CANoe需要设置添加这个dll文件:右键testmodule的configuration,在Components添加dll文件即可。

CANoe还可以与CAPL互相调用,也可以调用sln,具体方法有待继续研究……

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库CANoe与NET结合在线全文阅读。

CANoe与NET结合.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/959987.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: