前言
继续学习《CANoe开发从入门到精通》。
今天在《CANoe仿真工程开发》的基础上,开发实现pyqt5应用程序来操控CANoe工程。
一、COM接口技术
COM(Component Object Model,组件对象模型)是一种描述如何建立可动态互变组件的规范,此规范提供了为保证能够互相操作,客户端和组件应遵循的一些二进制和网络标准。通过这种标准将可以在任意两个组件之间进行通信,而不用考虑其所处的操作环境是否相同、使用的开发语言是否一致以及是否运行于同一台计算机。
从早期版本开始,CANoe就开始支持COM接口技术。通过COM Server可以实现以下功能:
(1)创建和修改CANoe的配置;
(2)实现测量的自动控制,如工程加载、开始或结束测量、开始测试模块等;
(3)与外部应用软件的数据交换,如读写信号、系统变量等;
(4)开发用户的自定义面板,实现自动化测试;
(5)远程控制CANoe进行测量;
(6)调用CANoe中自定义的CAPL函数。
CANoe COM Server对于大家熟悉的编程语言或脚本语言都有很好的支持,例如Visual Basic、Delphi、C/C++、C#、Python、LabVIEW、VBScript、JScript、Perl和VBA等。
在CANoe安装时,COM Server已经注册好了。如果安装文件夹有变,或者目前注册的CANoe版本不是用户所期望的。可以直接找到CANoe 的安装文件夹( 例 如 CANoe 16 SP4 64-bit 安 装 文 件 夹 D:\Program Files\Vector CANoe 16\Exec64 ) , 执 行RegisterComponents.exe。
二、UI界面设计
1、Pycharm新建工程;
2、右键,找到"External Tools",选择QT Designer,进入QT5的UI设计界面
3、添加相应的控件、设置好参数。最终的UI界面如下:
设计完成后,保存为CanoeDemo.ui。
4、回到PyCharm工程,CanoeDemo.ui文件,然后右键,找到"External Tools",选择PyUIC,将UI设计文件转换为CanoeDemo.py文件。
CanoeDemo.py文件如下:
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'CanoeDemo.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_CanoeDemo(object):
def setupUi(self, CanoeDemo):
CanoeDemo.setObjectName("CanoeDemo")
CanoeDemo.resize(633, 508)
CanoeDemo.setMouseTracking(True)
CanoeDemo.setTabletTracking(True)
CanoeDemo.setAutoFillBackground(True)
self.groupBox = QtWidgets.QGroupBox(CanoeDemo)
self.groupBox.setGeometry(QtCore.QRect(10, 0, 531, 111))
self.groupBox.setObjectName("groupBox")
self.lineEdit = QtWidgets.QLineEdit(self.groupBox)
self.lineEdit.setGeometry(QtCore.QRect(20, 20, 401, 20))
self.lineEdit.setObjectName("lineEdit")
self.OpenButton = QtWidgets.QPushButton(self.groupBox)
self.OpenButton.setGeometry(QtCore.QRect(440, 20, 75, 23))
self.OpenButton.setObjectName("OpenButton")