是否有办法在Vector CANoe中自动将BLF转换为CSV?
我的第一种方法是使用import can filename = "logfile.blf" logging = can.BLFReader(filename) for msg in logging: print(msg) ,但这导致了我向开发人员报告的错误. BLF格式是专有的,有些秘密,因此我了解在开源库中支持它可能是有问题的. 因此,我然后考虑使用vector 提供的解决方案进行: COM ,但到目前为止尚未提出解决方案. (下面的代码片段在vbscript中,因为这是 CANoe docs中使用的内容,但是我也有Python脚本使用win32com) 所以我首先尝试了: Dim app, measurement, loggings, logging, exporter, expfilter Set app = CreateObject("CANoe.Application") Set loggings = app.Configuration.Offli
122 2023-12-04
编程技术问答社区
如何在不使用VB脚本的情况下,通过命令提示符打开一个特定的CANoe配置?
是否有可能通过命令提示符打开特定的CANoe配置? 我尝试通过使用命令: 通过命令提示符打开sample.cfg之类的配置. C:\Users\Downloads\Sample>CANoe64 sample.cfg 使用此命令,我可以启动CANoe应用程序,但不能使用指定的配置. CANoe应用程序从默认配置开始. 解决方案 您可以简单地提及 C:\Users\Downloads\Sample>sample.cfg 这将打开独木舟注册版本中的配置.
42 2023-03-28
编程技术问答社区
使用win32com的CANoe多个实例
我正在尝试使用python(win32com模块)创建两个独木舟实例. 我正在尝试创建两个对象并打开配置,但仅创建一个实例.我该如何创建两个独木舟实例? 我在应用程序中禁用了仅允许一个实例的选项(我可以手动打开两个独木舟实例). application = win32com.client.DispatchEx("CANoe.Application") application.Open(config) application2 = win32com.client.DispatchEx("CANoe.Application") application2.Open(config2) 解决方案 可以做到这一点,但是不建议. 您可以导航到can.ini文件并在[System]标签下更改以下内容. (默认值为0) SingleCOMClient=1 关于这条线的警告.因此,请谨慎使用此选项! 重新启动独木舟以使这种变化生效. .ini文件可以在C:\
20 2023-03-20
编程技术问答社区
如何在CANoe/CAPL中包含一个.h或.dll文件
我希望将标题.h或.dll文件集成在CAPL(concretly visa32.dll,visa.h或sicl.h)中以控制万用表34461a.如何将.h文件或.dll文件包含在独木舟中? 我创建了一个称为万用表的ECU模块.谢谢, 解决方案 包括CAPL中的外部DLL是可能的,但是您需要为要使用的所有功能创建一个包装器. 看一下具有此类包装器的Directorty.这是一个MSVC项目,导出了一些简单的功能,例如int f(int a, int b) {return a+b;}. 您需要要做的是将库文件(visa32.dll,visa.h)添加到此capldll项目中,并为您要从独木舟调用的所有功能定义包装器.例如,如果您在Visa32.dll中具有int visa_init(double arg),则将创建一个包装器: int CAPLEXPORT far CAPLPASCAL capl_visa_init(double arg) { return
90 2022-10-30
编程技术问答社区
是否有可能通过一个.dbc文件来请求所有需要的ODB II PIDs?
我要做的是通过在 Vector db Editor++ 中制作的 .dbc 文件请求所有所需的 PID. 我对 CAN 通信有足够的了解,因此能够使用 1 或 2 个 PID 来执行此操作,因为 DLC 允许每个 CAN 消息最多 8 个字节的数据.我也熟悉这个关于 PID 查询和响应的资源 https://en.wikipedia.org/wiki/OBD-II_PIDs#CAN_.2811-bit.29_bus_format 我无法理解的是诊断工具如何能够查询特定车辆制造商决定提供的每个 PID,所以我觉得这是可能的.然而,如果我使用 $7DF 的请求 ID,我只能单独使用此消息 ID 进行查询,这就是我目前只能在该 CAN 消息中放置两个 PID(信号)的原因. 解决方案 诊断工具如何能够查询特定车辆制造商决定提供的每个 PID? 你不能向 ECU 请求任何你想要的东西(至少以正常的方式!).只有您可以请求的 OBD 相关 PID.ISO 15031
286 2022-08-09
编程技术问答社区
使用CAPL和CANalyzer在按下按钮时发送周期性的CAN信号
我正在尝试将一组 CAN 帧发送到 CAN 总线.我使用 CAPL 进行编程,使用 CANalyzer8.5 进行模拟,使用面板设计器创建按钮.我的要求是首先使用 PANEL 设计器创建一个按钮.只有在按下按钮时,它才会开始向总线发送周期性的 CAN 帧.我对如何实现它有点困惑.到目前为止,我已经设法使用 CAPL 编写了两个单独的程序.第一个程序在启动时定期发送数据.按下按钮时,第二个代码仅发送一次数据.我想合并两个代码以在按下按钮时开始定期发送. 第一个代码 /*@!Encoding:1252*/ includes { } variables { msTimer mytimer; message 0x100 A={dlc=8}; message 0x200 B={dlc=8}; message 0x300 C={dlc=8}; message 0x400 D={dlc=8}; } on start { setTimer(mytimer,50); }
1038 2022-08-09
编程技术问答社区
计时器是否在运行,而循环是活动的?
这是我的代码: setTimer(delay, (SEEDKEY_MAXTRY * SEEDKEY_FREQ) + (LOGIN_MAXTRY * LOGIN_FREQ)); do { // waits, until all operations have been executed; } while(isTimerActive(delay)); 我确切地知道执行我的命令需要多长时间,所以我将计时器 delay 设置为显式值.我必须等待,直到我返回一些值. 模拟卡在这一点上,我的面板进入 Windows-“无响应",我可以结束模拟的唯一方法是通过任务管理器. 我认为唯一的解释是,当我在 do ... while 语句中时,计时器需要更多时间,或者根本不执行.(与 while {} 相同) 有人可以证实这个想法,或者通过给我一个解决我的问题来证明我错了吗? 解决方案 好吧,我总能找到解决方法,因为 CAPL 在 stackoverflow 上不太
226 2022-08-09
编程技术问答社区
CAPL中除了testwaitfortimeout()之外的延迟函数
我有一个控制 GPIB 电源的 CAPL 测试节点.该 CAPL 生成一个每 3 ms 修改一次的信号.我的 CAPL 如下所示: ... testcase wavGenerator() { GPIBWrite(myDevice, "VOLT", voltValue); testwaitfortimeout(3); ... } 问题是这个 testwaitfortimeout() 函数会在测试报告中生成一个注释,并且由于我对每个测试用例使用这个函数 2000/3000 次,我以一个巨大的测试报告结束. 我已经尝试实现一个函数来生成像 waitfortimeout() 那样的“延迟",如下所示: void delay(int ms) { float refTime; refTime = timeNowFloat(); while(timeNowFloat()
4336 2022-08-09
编程技术问答社区
使用CAPL在CANoe中通过ISO-TP(传输协议)传输数据
将 CAPL 与 CANoe 结合使用,通过 CAN 上的 ISO-TP 传输大量数据.是否有一个例程可以处理嵌入在 CAPL 中的数据分段,还是我需要编写自己的解释? 解决方案 看看 OSEK_TP CANoe 演示.它展示了如何通过 ISO-TP(传输协议,ISO 15765-2)传输和接收数据.有关实现细节,请参阅 nodeA.can 文件和 OSEL_TP API 参考. 这是最小的例子: 创建和配置连接: long handle; handle = CanTpCreateConnection(0); // 0 = Normal mode CanTpSetTxIdentifier(handle, 0x700); // Tx CAN-ID CanTpSetRxIdentifier(handle, 0x708); // Rx CAN-ID 发送数据: BYTE data[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
700 2022-08-09
编程技术问答社区