Python周立功CAN接口卡接口库函数
周立功CAN相关资源下载
首先,把下载的库函数文件(由上面链接下载)都放在工作目录下。库函数文件总共有三个文件:ControlCAN.h、
ControlCAN.lib、ControlCAN.dll 和一个文件夹 kerneldlls。
from ctypes import *
class _VCI_INIT_CONFIG(Structure):_fields_ = [('AccCode', c_ulong),('AccMask', c_ulong),('Reserved', c_ulong),('Filter', c_ubyte),('Timing0', c_ubyte),('Timing1', c_ubyte),('Mode', c_ubyte)]class _VCI_CAN_OBJ(Structure):_fields_ = [('ID', c_uint),('TimeStamp', c_uint),('TimeFlag', c_byte),('SendType', c_byte),('RemoteFlag', c_byte),('ExternFlag', c_byte),('DataLen', c_byte),('Data', c_byte*8),('Reserved', c_byte*3)]class _RX_CAN_OBJ(Structure):_fields_ = [('ID', c_uint),('TimeStamp', c_uint),('TimeFlag', c_byte),('SendType', c_byte),('RemoteFlag', c_byte),('ExternFlag', c_byte),('DataLen', c_byte),('Data', c_byte*8),('Reserved', c_byte*3)]vic = _VCI_INIT_CONFIG()
vic.AccCode = 0x00000000
vic.AccMask = 0xffffffff
vic.Filter =1
vic.Timing0 = 0x01
vic.Timing1 = 0x1c
vic.Mode = 0vco = _VCI_CAN_OBJ()
vco.ID = 0x18ff3010
vco.SendType = 0
vco.RemoteFlag = 0
vco.ExternFlag = 1
vco.DataLen = 8
vco.Data = (5, 2, 3, 4, 5, 6, 7, 8)rxdata=_RX_CAN_OBJ()canLib = windll.LoadLibrary('./ControlCAN.dll')
print("下面执行操作返回“1”表示操作成功!")
print('打开设备: %d' % (canLib.VCI_OpenDevice(3, 0, 0)))
print('设置波特率: %d' % (canLib.VCI_SetReference(3, 0, 0, 0, pointer(c_int(0x1C0008)))))
print('初始化: %d' % (canLib.VCI_InitCAN(3, 0, 0, pointer(vic))))
print('启动: %d' % (canLib.VCI_StartCAN(3, 0, 0)))
print('清空缓冲区: %d' % (canLib.VCI_ClearBuffer(3, 0, 0)))
print('发送: %d' % (canLib.VCI_Transmit(3, 0, 0, pointer(vco), 1)))# print('接收: %d' % (canLib.VCI_Receive(3, 0, 0, pointer(rxdata),100,400)))
while canLib.VCI_GetReceiveNum(3,0,0)==0 :continue
print("接收缓存数量:",canLib.VCI_GetReceiveNum(3,0,0))
if(canLib.VCI_Receive(3, 0, 0, pointer(rxdata),100,400)):print('从缓存读取一帧数据:', bytearray(rxdata.Data).hex())
else:print("接收缓存区为空")
print("接收缓存数量:",canLib.VCI_GetReceiveNum(3,0,0))
运行结果如下:
Python周立功CAN接口卡接口库函数相关推荐
- Python调用周立功CAN接口卡接口库函数(接收数据)
上篇博文<Python调用周立功CAN接口卡接口库函数>仅做了发送数据例程,有网友在测试接收时出现了问题,在此给出自己的接收数据代码. 在此需要强调的是,因为经济水平有限,自己所使用的CA ...
- Python调用周立功CAN接口卡接口库函数
偶尔会用到周立功CAN接口卡,于是试着使用Python调用其接口函数.查阅CAN测试软件与接口函数使用手册,只讲述了VC和VB的调用方法.在这里通过ctypes模块导入动态链接库并访问动态链接库中的函 ...
- 调用python-can库使用周立功CAN接口卡发送数据
查阅python-can文档,知晓其支持部分周立功CAN接口卡,故写例程验证数据的发送.另外,使用的python版本为3.4,在安装python-can时提示找不到windows-curses对应版本 ...
- 周立功 zlg PCIe-9120I CAN卡无法使用python开启
2018年走了- 2019年来了- 工作日第一天就排了一颗打雷- 前两天领导指派任务做一个仪表的上位机, 公司用的都是zlg的USB-CAN盒或者PCIe-CAN卡, 且官方提供的接口\例程都是非py ...
- 周立功CAN二次开发接口使用(C#)
通过C#实现通讯: 1.建一个CANDevice实体类,传递一些参数,并且保存一些设备的型号.ID,以及波特率等参数 using System; using System.Collections.Ge ...
- Python基于周立功盒子的二次开发的封装和调用
Python基于周立功盒子的二次开发的封装和调用 一.介绍 前面我们介绍如何拿到官网给的例程并使用起来,但在使用的过程中,我们发现官网给的例子非常的冗长,可读性不好,于是我进行分解和封装,使得 ...
- Python基于周立功盒子的二次开发的准备工作
Python基于周立功盒子的二次开发的准备工作 一.基本介绍 基于周立功的二次开发是python通过调用zlgcan.dll,来实现CAN卡的通讯收发报文的,在python中通过ctypes模 ...
- python解析can报文,Python实现Can接收发送 DBC分析报文 周立功ZLG 绘制曲线 支持离线回放.rar...
[实例简介] Python实现Can接收发送 DBC分析报文 绘制曲线 支持离线回放 CAN分析工具 环境:windows & python3 设备:周立功USBCAN-I(可在源码中修改支持 ...
- 周立功 CAN PCI接口卡C#语言示例
周立功CAN pci接口卡提供的示例代码都是VC,VB和Delphi的,没有C#.net的例子.但是在使用C#调用CAN api的时候,由于这些api对数据类型的校验非常严格,所以,调试起来比较麻烦. ...
最新文章
- Compressive sensing
- 自己动手写C语言编译器(3)
- 特征提取(Feature Detection)之——HOG (Histogram of Oriented Gradient)特征
- activemq安全设置 设置admin的用户名和密码
- Python 第三方模块之 beautifulsoup(bs4)- 解析 HTML
- python网络爬虫的学习
- 高速信号传输约翰逊 pdf_智芯文库 | 高速数字电路的设计与仿真
- 未初始化的类,通过指针调用其非静态函数
- android - Unable to add window -- token null is not for an application的解决方案
- spoolsv进程占用CPU近100%,电脑反应慢
- mPaas集成项目、新建mPaaS项目
- 创建一个 C++ 控制台应用程序项目
- 【博弈论-完全信息动态博弈】 扩展式博弈
- Studio用布局编辑器设计UI界面
- 【自然语言处理】BERT GPT
- 如何在web项目中访问HTML页面
- Android(Java)加载SO文件
- win10电脑耳机插上突然没音(已解决)
- 【C++/嵌入式笔试面试八股】大纲介绍
- AntV G6设置连线箭头