# PCANBasic.py
#
# ~~~~~~~~~~~~
#
# PCAN-Basic API
#
# ~~~~~~~~~~~~
#
# ------------------------------------------------------------------
# Author : Keneth Wagner
# Last change: 18.05.2016 Wagner
#
# Language: Python 2.7
# ------------------------------------------------------------------
#
# Copyright (C) 1999-2016 PEAK-System Technik GmbH, Darmstadt
# more Info at http://www.peak-system.com
#
# Module Imports
#
from ctypes import *
import platform
# ///////////////////////////////////////////////////////////
# Type definitions
# ///////////////////////////////////////////////////////////
TPCANHandle = c_ushort # Represents a PCAN hardware channel handle
TPCANStatus = int # Represents a PCAN status/error code
TPCANParameter = c_ubyte # Represents a PCAN parameter to be read or set
TPCANDevice = c_ubyte # Represents a PCAN device
TPCANMessageType = c_ubyte # Represents the type of a PCAN message
TPCANType = c_ubyte # Represents the type of PCAN hardware to be initialized
TPCANMode = c_ubyte # Represents a PCAN filter mode
TPCANBaudrate = c_ushort # Represents a PCAN Baud rate register value
TPCANBitrateFD = c_char_p # Represents a PCAN-FD bit rate string
TPCANTimestampFD = c_ulonglong # Represents a timestamp of a received PCAN FD message
# ///////////////////////////////////////////////////////////
# Value definitions
# ///////////////////////////////////////////////////////////
# Currently defined and supported PCAN channels
#
PCAN_NONEBUS = TPCANHandle(0x00) # Undefined/default value for a PCAN bus
PCAN_ISABUS1 = TPCANHandle(0x21) # PCAN-ISA interface, channel 1
PCAN_ISABUS2 = TPCANHandle(0x22) # PCAN-ISA interface, channel 2
PCAN_ISABUS3 = TPCANHandle(0x23) # PCAN-ISA interface, channel 3
PCAN_ISABUS4 = TPCANHandle(0x24) # PCAN-ISA interface, channel 4
PCAN_ISABUS5 = TPCANHandle(0x25) # PCAN-ISA interface, channel 5
PCAN_ISABUS6 = TPCANHandle(0x26) # PCAN-ISA interface, channel 6
PCAN_ISABUS7 = TPCANHandle(0x27) # PCAN-ISA interface, channel 7
PCAN_ISABUS8 = TPCANHandle(0x28) # PCAN-ISA interface, channel 8
PCAN_DNGBUS1 = TPCANHandle(0x31) # PCAN-Dongle/LPT interface, channel 1
PCAN_PCIBUS1 = TPCANHandle(0x41) # PCAN-PCI interface, channel 1
PCAN_PCIBUS2 = TPCANHandle(0x42) # PCAN-PCI interface, channel 2
PCAN_PCIBUS3 = TPCANHandle(0x43) # PCAN-PCI interface, channel 3
PCAN_PCIBUS4 = TPCANHandle(0x44) # PCAN-PCI interface, channel 4
PCAN_PCIBUS5 = TPCANHandle(0x45) # PCAN-PCI interface, channel 5
PCAN_PCIBUS6 = TPCANHandle(0x46) # PCAN-PCI interface, channel 6
PCAN_PCIBUS7 = TPCANHandle(0x47) # PCAN-PCI interface, channel 7
PCAN_PCIBUS8 = TPCANHandle(0x48) # PCAN-PCI interface, channel 8
PCAN_PCIBUS9 = TPCANHandle(0x409) # PCAN-PCI interface, channel 9
PCAN_PCIBUS10 = TPCANHandle(0x40A) # PCAN-PCI interface, channel 10
PCAN_PCIBUS11 = TPCANHandle(0x40B) # PCAN-PCI interface, channel 11
PCAN_PCIBUS12 = TPCANHandle(0x40C) # PCAN-PCI interface, channel 12
PCAN_PCIBUS13 = TPCANHandle(0x40D) # PCAN-PCI interface, channel 13
PCAN_PCIBUS14 = TPCANHandle(0x40E) # PCAN-PCI interface, channel 14
PCAN_PCIBUS15 = TPCANHandle(0x40F) # PCAN-PCI interface, channel 15
PCAN_PCIBUS16 = TPCANHandle(0x410) # PCAN-PCI interface, channel 16
PCAN_USBBUS1 = TPCANHandle(0x51) # PCAN-USB interface, channel 1
PCAN_USBBUS2 = TPCANHandle(0x52) # PCAN-USB interface, channel 2
PCAN_USBBUS3 = TPCANHandle(0x53) # PCAN-USB interface, channel 3
PCAN_USBBUS4 = TPCANHandle(0x54) # PCAN-USB interface, channel 4
PCAN_USBBUS5 = TPCANHandle(0x55) # PCAN-USB interface, channel 5
PCAN_USBBUS6 = TPCANHandle(0x56) # PCAN-USB interface, channel 6
PCAN_USBBUS7 = TPCANHandle(0x57) # PCAN-USB interface, channel 7
PCAN_USBBUS8 = TPCANHandle(0x58) # PCAN-USB interface, channel 8
PCAN_USBBUS9 = TPCANHandle(0x509) # PCAN-USB interface, channel 9
PCAN_USBBUS10 = TPCANHandle(0x50A) # PCAN-USB interface, channel 10
PCAN_USBBUS11 = TPCANHandle(0x50B) # PCAN-USB interface, channel 11
PCAN_USBBUS12 = TPCANHandle(0x50C) # PCAN-USB interface, channel 12
PCAN_USBBUS13 = TPCANHandle(0x50D) # PCAN-USB interface, channel 13
PCAN_USBBUS14 = TPCANHandle(0x50E) # PCAN-USB interface, channel 14
PCAN_USBBUS15 = TPCANHandle(0x50F) # PCAN-USB interface, channel 15
PCAN_USBBUS16 = TPCANHandle(0x510) # PCAN-USB interface, channel 16
PCAN_PCCBUS1 = TPCANHandle(0x61) # PCAN-PC Card interface, channel 1
PCAN_PCCBUS2 = TPCANHandle(0x62) # PCAN-PC Card interface, channel 2
PCAN_LANBUS1 = TPCANHandle(0x801) # PCAN-LAN interface, channel 1
PCAN_LANBUS2 = TPCANHandle(0x802) # PCAN-LAN interface, channel 2
PCAN_LANBUS3 = TPCANHandle(0x803) # PCAN-LAN interface, channel 3
PCAN_LANBUS4 = TPCANHandle(0x804) # PCAN-LAN interface, channel 4
PCAN_LANBUS5 = TPCANHandle(0x805) # PCAN-LAN interface, channel 5
PCAN_LANBUS6 = TPCANHandle(0x806) # PCAN-LAN interface, channel 6
PCAN_LANBUS7 = TPCANHandle(0x807) # PCAN-LAN interface, channel 7
PCAN_LANBUS8 = TPCANHandle(0x808) # PCAN-LAN interface, channel 8
PCAN_LANBUS9 = TPCANHandle(0x809) # PCAN-LAN interface, channel 9
PCAN_LANBUS10 = TPCANHandle(0x80A) # PCAN-LAN interface, channel 10
PCAN_LANBUS11 = TPCANHandle(0x80B) # PCAN-LAN interface, channel 11
PCAN_LANBUS12 = TPCANHandle(0x80C) # PCAN-LAN interface, channel 12
PCAN_LANBUS13 = TPCANHandle(0x80D) # PCAN-LAN interface, channel 13
PCAN_LANBUS14 = TPCANHandle(0x80E) # PCAN-LAN interface, channel 14
PCAN_LANBUS15 = TPCANHandle(0x80F) # PCAN-LAN interface, channel 15
PCAN_LANBUS16 = TPCANHandle(0x810) # PCAN-LAN interface, channel 16
# Represent the PCAN error and status codes
#
PCAN_ERROR_OK = TPCANStatus(0x00000) # No error
PCAN_ERROR_XMTFULL = TPCANStatus(0x00001) # Transmit buffer in CAN controller is full
PCAN_ERROR_OVERRUN = TPCANStatus(0x00002) # CAN controller was read too late
PCAN_ERROR_BUSLIGHT = TPCANStatus(0x00004) # Bus error: an error counter reached the 'light' limit
PCAN_ERROR_BUSHEAVY = TPCANStatus(0x00008) # Bus error: an error counter reached the 'heavy' limit
PCAN_ERROR_BUSWARNING = TPCANStatus(PCAN_ERROR_BUSHEAVY) # Bus error: an error counter reached the 'warning' limit
PCAN_ERROR_BUSPASSIVE = TPCANStatus(0x40000) # Bus error: the CAN controller is error passive
PCAN_ERROR_BUSOFF = TPCANStatus(0x00010) # Bus error: the CAN controller is in bus-off state
PCAN_ERROR_ANYBUSERR = TPCANStatus(
PCAN_ERROR_BUSWARNING | PCAN_ERROR_BUSLIGHT | PCAN_ERROR_BUSHEAVY | PCAN_ERROR_BUSOFF | PCAN_ERROR_BUSPASSIVE) # Mask for all bus errors
PCAN_ERROR_QRCVEMPTY = TPCANStatus(0x00020) # Receive queue is empty
PCAN_ERROR_QOVERRUN = TPCANStatus(0x00040) # Receive queue was read too late
PCAN_ERROR_QXMTFULL = TPCANStatus(0x00080) # Transmit queue is full
PCAN_ERROR_REGTEST = TPCANStatus(0x00100) # Test of the CAN controller hardware registers failed (no hardware found)
PCAN_ERROR_NODRIVER = TPCANStatus(0x00200) # Driver not loaded
PCAN_ERROR_HWINUSE = TPCANStatus(0x00400) # Hardware already in use by a Net
PCAN_ERROR_NETINUSE = TPCANStatus(0x00800) # A Client is already connected to the Net
PCAN_ERROR_ILLHW = TPCANStatus(0x01400) # Hardware handle is invalid
PCAN_ERROR_ILLNET = TPCANStatus(0x01800) # Net handle is invalid
PCAN_ERROR_ILLCLIENT = TPCANStatus(0x01C00) # Client handle is invalid
PCAN_ERROR_ILLHANDLE = TPCANStatus(
PCAN_ERROR_ILLHW | PCAN_ERROR_ILLNET | PCAN_ERROR_ILLCLIENT) # Mask for all handle errors
PCAN_ERROR_RESOURCE = TPCANStatus(0x02000) # Resource (FIFO, Client, timeout) cannot be created
PCAN_ERROR_ILLPARAMTYPE = TPCANStatus(0x04000) # Invalid parameter
PCAN_ERROR_ILLPARAMVAL = TPCANStatus(0x08000) # Invalid parameter value
PCAN_ERROR_UNKNOWN = TPCANStatus(0x10000) # Unknown error
PCAN_ERROR_ILLDATA = TPCANStatus(0x20000) # Invalid data, function, or action
PCAN_ERROR_CAUTION = TPCANStatus(
0x2000000) # An operation was successfully carried
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
简单的Python程序(基于Python3.7)实现PCAN自动发送CAN报文。。。。 程序定义了每隔10ms、100ms、1000ms各发送若干帧数据。 修改main.py文件中的msg.ID、msg.MSGTYPE、msg.DATA可以修改帧ID、帧类型和数据。
资源推荐
资源详情
资源评论
收起资源包目录
PEAK CAN自动发送CAN报文的python程序.7z (5个子文件)
PEAK CAN自动发送CAN报文的python程序
main.py 3KB
__pycache__
PCANBasic.cpython-37.pyc 18KB
PCANBasic.dll 2.37MB
PCANBasic.pyc 20KB
PCANBasic.py 32KB
共 5 条
- 1
资源评论
森旺电子
- 粉丝: 7176
- 资源: 265
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功