- 博客(77)
- 资源 (2)
- 问答 (2)
- 收藏
- 关注
原创 CANoe入门(8)-- CAPL 语言入门 -- ⑤用CAPL发送在DBC文件中的报文
本文介绍了在CANoe中关闭IL层自动发送的两种方法:通过IL配置界面取消勾选报文,或使用CAPL脚本中的ILControlStop()函数。同时详细说明了如何基于DBC文件定义CAN报文变量,包括以ID和报文类型两种方式声明变量。文章还提供了一个完整的报文发送示例,展示了如何设置定时器循环发送报文,以及如何为报文信号赋值(包括物理值、计数器更新和校验和计算)。最后提到后续将介绍如何从面板获取数据并通过报文发送。全文涵盖了从基础配置到报文发送的完整流程。
2025-07-08 16:55:51
165
原创 CANoe入门(7)-- CAPL 语言入门 -- ④用CAPL发送不在DBC文件中的报文
摘要:本文介绍了如何发送不在DBC文件中的自定义CAN报文。首先定义了一个ID为0x222的CAN报文全局变量,然后编写了设置报文长度和内容的发送函数。通过设置500ms定时器循环调用发送函数,实现周期发送该报文的功能。代码展示了变量声明、定时器设置和报文发送的全过程,并提供了调试输出建议。
2025-07-07 18:13:38
206
原创 CANoe入门(6)-- CAPL 语言入门 -- ③事件驱动
CAPL编程采用事件驱动机制,主要事件类型包括:1️⃣系统事件(如onpreStart用于初始化);2️⃣总线消息事件(如onmessage处理CAN报文);3️⃣定时器事件(实现周期性任务);4️⃣信号/环境变量事件(响应变化);5️⃣用户交互事件(如键盘操作);6️⃣错误处理事件(监控总线异常)。使用this关键字可直接访问触发对象,高频事件需优化性能,不同场景应选择合适的事件类型。事件需预定义,未定义将导致编译错误。
2025-07-07 11:21:21
847
原创 CANoe入门(5)-- CAPL 语言入门 -- ②常用数据类型及变量定义
本文摘要:介绍了CAPL编程语言中的数据类型与变量声明方法。基本数据类型包括整数(int、long等)、浮点(float、double)和字符(char)类型;复合数据类型包含结构体、枚举和关联类型。详细说明了全局/局部变量的声明规则,以及CAN/LIN报文变量、定时器变量的定义方式。特别指出CAPL函数内局部变量默认静态的特性。最后展示了数组、结构体和枚举等复合变量的具体声明语法和使用示例。
2025-07-04 15:37:19
345
原创 CANoe入门(4)-- CAPL 语言入门 -- ①CAPL 简介
CAPL是Vector公司开发的汽车总线专用脚本语言,主要用于CAN/LIN/FlexRay的仿真、测试与分析。其核心特点包括:1)类C语法但采用事件驱动模型,支持报文收发、信号读写等车载测试功能;2)深度集成于CANoe/CANalyzer工具链,可实现ECU仿真、故障注入和自动化测试;3)具有弱类型系统和实时交互优势,但缺乏指针支持和交互调试功能。该语言特别适合汽车电子测试场景,虽存在学习资源较少等局限,却是车载网络开发的高效工具。掌握C语言者较易入门CAPL。
2025-07-03 11:09:37
296
原创 CANoe入门(3)-- CANoe Panel中常见控件的用法
本文介绍了HMI界面的几种常用控件功能:1)Button控件支持按下/松开状态值设置和变量绑定;2)Switch控件模拟物理开关,可设置多状态;3)LED控件用于状态可视化,支持颜色/形状/闪烁配置;4)NumericUp/Down显示数值变量,带报警功能;5)StaticText为静态标签;6)Input/OutputBox实现双向交互;7)LCDControl数码管显示控件。各类控件主要通过属性面板绑定变量和配置参数,操作逻辑相似。
2025-07-03 09:30:54
287
原创 CANoe入门(2)-- 创建一个简单的Panel来改变TX的信号值
书接上文“CANoe入门(1)”,创建CANoe工程,并且导入DBC文件之后,如何对TX数据进行修改呢,两种方法,一是通过Panel,二是通过CAPL脚本。这里先学Panel。
2025-06-13 17:12:28
288
原创 error: ‘ui/ui_uimainwindow.h‘ file not found
问题:在刚好创建的Qt Designer Form Class类中,发现类的.cpp文件中有ui头文件未找到。解决:若修改了.ui文件,随手ctrl+s保存一下,不行再将工程重新构建或重启Qt,就会生成ui头文件。原因:.ui文件没有被识别到,或者.ui文件不存在,导致ui头文件未创建而报错。
2023-11-21 14:44:26
1130
原创 CAPL编程 - 实用CAPL代码片段
ECU通常都有很多请求/应答式的功能,比如BCM可以接收用户点击车窗、雨刮、遮阳帘等车身相关硬件的控制按钮向总线发出的开关请求(Request),然后由BCM向总线发出响应消息,并控制车窗、雨刮、遮阳帘等做出相应的反馈动作(Response)。无论是Simulation Setup中的仿真节点还是Test Setup中的Test Module所关联的CAPL脚本在做仿真或测试时都经常需要向总线模拟发送周期消息。测试报告中设置的命令如下,请您自行查阅CANoe帮助文档,或者查找自带的模板。
2023-11-21 09:36:06
934
1
原创 CAPL编程 - 事件驱动
CAPL是一种面向过程、由事件驱动的类C语言。事件驱动针对于顺序执行,其区别如下:顺序执行:顺序执行流程中,子例程或过程函数按照代码编写顺序逐句执行。事件驱动:CAPL程序由事件驱动,工程运行过程中发生指定的事件时才会运行相应的事件处理函数。顺序执行VS事件驱动。
2023-11-20 16:25:40
555
转载 CAPL编程 - 数据类型
CAPL是一种类C语言,CAPL数据类型的定义很多跟C语言类似,但也有很多独特的地方。 CAPL数据类型包括基本类型、结构体、枚举、关联类型和对象类型。变量的数据类型决定了变量存储占用的空间枚举变量的定义和使用同C语言:如果枚举成员的值未定义,那么第一个成员默认值为1,之后的成员按顺序依次加1. 枚举变量的定义和使用:3.关联类型CAPL支持一种类似Python字典和C++ Map的关联类型(Associative Fields),关联类型的元素是键值对(key value pairs)。
2023-11-14 17:42:44
1768
原创 Qt工程打包工具 windeployqt 的用法
重点:这里要注意的是,一定要和你编译的时候的选项一致,例如:你用的是下面这个,你就要打开“Qt 5.13.1 (MinGW 7.3.0 64-bit)”,不然打包好就会报找不到XXX.dll打开后,输入进入这个目录。
2023-11-09 17:04:25
777
原创 QT 信号和槽
不讲那么多大道理,直接上前面用Python QT 发现在线程或者定时器里操作控件,有很大概率导致程序闪退,所以如果想要在线程和定时器中操作控件,需要自定义信号和槽,不知道C++QT会不会有这个问题,这个经验不是很多。。
2023-11-01 13:56:09
250
原创 robot framework 写在用例前面的东西
Suite Setup SUT Suite SetupSuite Teardown SUT Suite TeardownTest Setup Test SetupForce Tags priority_smokeResource ../resources/common_kws.robotLibrary ../libraries/commonlib.pySuite Setup 是该文件中的用例运行之前要运行的.
2022-03-10 17:56:38
253
原创 Robot Framework 用户手册的中文翻译版
连接:关于本手册 - 《Robot Framework用户手册 v3.0》 - 书栈网 · BookStack关于本手册获取源码源文件格式翻译说明术语的翻译表格和代码示例 Robot Framework 是一个基于Python的、可扩展的、关键字驱动的测试自动化框架,用于端到端的验收测试或者验收驱动测试开发(ATDD)中。https://www.bookstack.cn/read/robotframework-3.0-zh/0f51b4a7ddb35c91.md...
2021-11-02 17:19:32
664
1
转载 C++中的双冒号 ::
第一种,类作用域,用来标明类的变量、函数 Human::setName(char* name); 第二种,命名空间作用域,用来注明所使用的类、函数属于哪一个命名空间的 std::cout << "Hello World" << std::endl; 第三种,全局作用域,用来区分局部、全局的。最容易被忽视的一种,很多时候写了一个全局函数或者想要调用一个全局函数,却发现IDE或者Editor找不到该函数,原因是因为局部函数与想要调用的全局
2021-08-25 15:35:33
175
原创 Windows下 robotframework 环境搭建
Windows下 robotframework 环境搭建1.安装Python,下载地址:https://www.python.org/downloads/windows/ 安装时直接全部安装 2.安装完升级pip 命令:python-mpipinstall--upgradepip3.安装robotframework 命令:pipinstallrobotframework4.安装robotframework ride 命令:p...
2021-05-25 15:32:33
304
原创 Python PyQt5 之简单拖放
# -*- coding: utf-8 -*-import sysfrom PyQt5.QtWidgets import (QPushButton, QWidget, QLineEdit, QApplication)#为了重新实现某些方法,所以要定义一个Button类,继承QPushButtonclass Button(QPu...
2019-10-24 10:44:10
510
转载 提高软件测试能力的20个方法
1. 想客户之所想,思客户之所思在测试的过程中时刻想着用户。培养自己对用户需求的共鸣。和用户沟通并且观察他们怎们样使用你的软件。多从用户的角度去考虑问题,从小白的角度去使用,用专家的态度去更改。2. 多读Bug如果你和一个团队的软件测试工程师一起工作,那么请阅读他们每天发的Bug,特别是那些针对你的测试部分的Bug 。你可以从别人如何找到Bug中学到很多东西。提高自己的观察力。3....
2019-10-24 09:57:05
508
原创 嵌入式软件测试-1
软件测试级别包括单元测试,部件(集成)测试,配置项测试与系统测试。单元测试:检查每个软件单位能否正确的实现设计说明中的功能、性能、接口和其他设计约束等要求,发现单元内可能存在的各种错误。静态测试采用代码审查的方法时,通常要对寄存器的使用、程序格式、入口和出口的连接、程序语言的使用、存储器的使用等内容进行检查。采用静态分析方法,通常对软件单元的功能、性能、接口、局部数据结构、独立路径、错误处理...
2019-10-23 14:51:39
1136
原创 资源链接
Javascript的学习:https://www.w3school.com.cn/js/index.aspPyQT 学习:http://code.py40.com/pyqt5/14.htmlPython 学习:https://www.runoob.com/python/python-tutorial.htmlRobot Framework:https://www.jianshu.co...
2019-10-23 10:57:08
972
原创 Python PyQt5 对话框之QFileDialog
#-*- coding: UTF-8 -*-'''这个例子是一个窗口里有一个TextEdit控件,菜单项Open会显示用于选择文件的QtGui.QFileDialog对话框选定文件的内容会显示到TextEdit控件中'''import sysfrom PyQt5.QtWidgets import (QApplication ,QMainWindow ,QTextEdit , ...
2019-09-30 15:42:43
2035
原创 python PyQt5 对话框之QFontDialog
#-*- coding: UTF-8 -*-'''这个例子里我们可以通过按钮弹出fontDailog 通过fontDailog 改变标签的字体'''import sysfrom PyQt5.QtWidgets import (QApplication ,QWidget ,QFontDialog , QVBoxLayout ,QPushButton ,QSizeP...
2019-09-30 11:24:51
555
原创 python PyQt5 对话框之QColorDialog
# -*- coding: UTF-8 -*-'''这个例子显示一个按钮和一个QFrame。QFrame的背景为黑色。通过QColorDialog,我们可以改变它的背景。'''import sysfrom PyQt5.QtWidgets import (QWidget ,QApplication ,QColorDialog ,QPushButton ,QFrame)from PyQt5...
2019-09-24 16:40:38
748
原创 python PyQt5 对话框之QInputDialog
# -*- coding: UTF-8 -*-"""这个例子显示一个按钮和一个文本框,用户点击按钮显示一个输入框,用户输入信息会显示在文本框中。"""import sysfrom PyQt5.QtWidgets import (QWidget ,QApplication ,QPushButton ,QLineEdit ,QInputDialog )class Example(QWi...
2019-09-24 13:44:48
1189
原创 Python PyQt5 窗口显示在屏幕中间、关闭窗口、消息框
# -*- coting: UTF-8 -*-import sysfrom PyQt5.QtWidgets import (QWidget ,QPushButton ,QApplication ,QDesktopWidget , QMessageBox)from PyQt5.QtCore import QCoreApplicationclass Example(QWidget): ...
2019-09-23 11:40:47
2357
原创 python PyQt5 简单控件的使用示例--QLineEdit,持续更新中......
# -*- coding: UTF-8 -*-import sysfrom PyQt5.QtWidgets import (QWidget , QLineEdit , QLabel , QApplication )from PyQt5.QtGui import QIconclass Example(QWidget): def __init__(self): s...
2019-09-20 14:38:44
1075
原创 Python PyQt5 简单控件的使用示例--QPixmap,持续更新中......
# -*- coding: UTF-8 -*-import sysfrom PyQt5.QtWidgets import (QWidget , QHBoxLayout , QLabel , QApplication)'''QPixmap是用于处理图像的控件。是优化的显示图像在屏幕上。在我们的代码示例中,我们将使用QPixmap窗口显示一个图像。'''from PyQt5.QtGui...
2019-09-20 10:50:46
1672
原创 python PyQt5 简单控件的使用示例--QLabel、QCheckBox、QPushButton,持续更新.......
# -*- coding: UTF-8 -*-import sysfrom PyQt5.QtWidgets import QWidget, QLabel,QCheckBox, QApplication , QPushButton ,QSliderfrom PyQt5.QtGui import QColorfrom PyQt5.QtCore import Qtfrom PyQt5.QtG...
2019-09-19 17:43:31
644
原创 Python 类的继承
继承编写类时,并非总是要从空白开始。如果你要编写的类是另一个现成类的特殊版本,可使用继承 继承 。一个类继承 继承 另一个类时,它将自动获得另一个类的所有属性和方法;原有的 类称为父类 ,而新类称为子类 。子类继承了其父类的所有属性和方法,同时还可以定义自己的属性和方法。子类的方法__init__() 创建子类的实例时,Python首先需要完成的任务是给父类的所有属性赋值。为此,子类的方法...
2019-09-04 19:02:58
634
Qt 的简单示例 - 地址簿
2025-05-28
haxm windows_v6_0_1
2019-05-08
appium 启动一个服务和UI的APP,启动时服务总是启动不了
2019-05-27
QT GUI程序 如何每秒刷新一下
2016-01-06
TA创建的收藏夹 TA关注的收藏夹
TA关注的人