- 博客(335)
- 收藏
- 关注
原创 Scripts
以下模块可从python can调用。例如,它们可以由python-m can.logger或can_logger.py调用(如果使用pip安装)。
2023-09-04 18:03:21
494
原创 Multicast IP Interface
该模块通过多播IPv4和IPv6在UDP上实现CAN和CAN FD消息的传输。此虚拟接口允许在多个进程甚至主机之间进行通信。这与虚拟接口不同,虚拟接口只能在单个进程中传递消息,但不需要网络堆栈。它在UDP上运行以具有尽可能低的延迟(与使用TCP相反),并且因为正常的IP多播本质上是不可靠的,因为接收方是未知的。这使得自组织网络不需要中央服务器,但也是所谓的不可靠网络。然而,在实践中,局域网(LAN)通常应该足够可靠,以便该接口正常工作。Note。
2023-08-29 18:16:18
1475
原创 Virtual
虚拟接口可以用作编写操作系统和驱动程序独立测试的一种方式。任何连接到同一通道(来自同一Python进程)的VirtualBus实例都将相互接收消息。如果消息应跨进程或主机边界发送,请考虑使用多播IP接口,并参考虚拟接口对不同虚拟接口进行比较和一般性讨论。
2023-08-29 18:00:05
1232
原创 National Instruments NI-XNET
该接口增加了对National Instruments的NI-XNET CAN控制器的支持。NoteNI-XNET仅支持windows平台。
2023-08-29 17:52:13
903
1
原创 Internal API
init将信息传输到CAN总线。覆盖此方法以启用传输路径。msg (Message) – 消息对象。timeout (float | None) – 如果>0,根据驱动程序的实现,等待消息得到确认或传输队列准备就绪的时间最多为几秒钟。如果超过超时,将引发异常。可能不是所有接口都支持。无无限期阻塞。CanOperationError – 如果发送时发生错误None。
2023-08-28 16:48:50
263
原创 Utilities
自动配置检测可能不是由每个平台上的每个接口来实现的。在这种情况下,此方法不会引发错误,而是返回该接口的空列表。可迭代的dict,每个dict都适合在can.BusABC的构造函数中使用。检测接口当前可以连接的所有配置/通道。
2023-08-23 12:41:39
211
原创 Bit Timing Configuration
注意此功能是实验性的。在未来的版本中,实现可能会发生变化。ISO 11898中规定的CAN协议允许针对给定应用优化比特率、采样点和采样数量。这些被称为比特定时的参数可以被调整以满足通信系统和物理通信信道的要求。这些参数包括:tseg1: 时间段1(TSEG1)是从同步段结束到采样点的时间量。它以时间量(TQ)表示.tseg2: 时间段2(TSEG2)是从采样点到比特结束的时间量。以TQ表示.sjw: 同步跳跃宽度(SJW)是控制器可以重新同步每个位的TQ的最大数量.
2023-08-23 12:38:17
398
原创 Error Handling
请记住,某些函数和方法可能会引发不同的异常。例如,验证典型的自变量和参数可能会导致ValueError。应始终为手头的功能记录这一点。
2023-08-22 12:32:42
231
原创 Broadcast Manager
取消此定期任务。CanError – 如果对已停止的任务调用了stop。None重新启动已停止的定期任务。None。
2023-08-22 11:40:41
206
原创 Asyncio support
Python 3.4及更高版本中内置的asyncio模块可用于在单个线程中编写异步代码。此库支持使用can.Notifier类在事件循环中异步接收消息。每个CAN总线仍将有一个线程,但用户应用程序将完全在事件循环中执行,从而实现更简单的并发性,而无需担心线程问题。但是,具有有效文件描述符的接口将在没有线程的情况下得到本机支持。如果您更喜欢编写基于协程的代码而不是使用回调,也可以使用can.AsyncBufferedReader侦听器。
2023-08-22 10:56:58
171
原创 Reading and Writing Messages
调用此方法是为了处理给定的消息。msg (Message) – 传递的消息None执行翻转。None确定是否满足滚转条件。bool。
2023-08-22 10:47:39
206
原创 Message
可能的问题包括dlc字段与数据长度不匹配,或者创建的消息is_remote_frame和is_error_frame都设置为True.CAN消息中的arbitration_id字段的长度可以是11位(标准寻址,CAN 2.0A)或29位(扩展寻址,CAN 2.0 B),python可以通过is_extended_id属性来暴露这种差异.它的用途因帧类型而异——对于数据帧,它表示消息中包含的数据量,在远程帧中,它表示请求的数据量。消息可以使用扩展标识符,是远程或错误帧,包含数据,并且可以与信道相关联。
2023-08-21 16:51:43
139
原创 Bus的翻译
将信息传输到CAN总线.覆盖此方法以启用传输路径.参数:timeout (float | None) – 如果>0,根据驱动程序的实现,等待消息得到确认或传输队列准备就绪的时间最多为几秒钟。如果超过超时,将引发异常。可能不是所有接口都支持。无无限期阻塞。CanOperationError – 如果发送时发生错误None。
2023-08-21 15:02:33
189
原创 Configuration
通常,该库与特定的CAN接口一起使用,这可以在代码中指定,从配置文件或环境变量中读取。有关实现,请参见can.util.load_config()。CAN_CONFIG环境变量允许使用JSON设置任何总线配置.can对象公开了一个rc字典,可以用来设置接口和通道.可以通过插件接口添加其他接口类型.
2023-08-21 14:38:04
147
原创 Installation
要安装正常运行时间库,请运行pip-install-python-can[pcan].如果使用python 3.3或更高版本调用,此版本的python can将直接使用socketcan,否则该接口将通过ctypes使用.2.测试IXXAT自己的工具(即MiniMon)是否正常工作,以确保驱动程序安装正确,硬件是否正常工作.2.安装XL驱动程序库或将vxlapi.dll和/或vxlapi64.dll复制到您的工作目录中.2.测试Kvaser自己的工具是否正常工作,以确保驱动程序安装正确,硬件是否正常工作.
2023-08-21 14:27:42
247
转载 argparse --- 命令行选项、参数和子命令解析器
argparse 是 Python 内置的一个用于命令项选项与参数解析的模块,通过在程序中定义好我们需要的参数,argparse 将会从 sys.argv 中解析出这些参数,并自动生成帮助和使用信息。当然,Python 也有第三方的库可用于命令行解析,而且功能也更加强大,比如 docopt,Click。
2022-05-14 18:22:48
682
原创 tarfile --- 读写tar归档文件
tarfile 模块可以用来读写tar 归档,包括使用gzip, bz2 和lzma 压缩的归档。请使用zipfile 模块来读写.zip 文件,或者使用shutil 的高层级函数。
2022-05-11 21:31:51
303
原创 shelve --- Python 对象持久化
使用json或者pickle持久化数据,能dump多次,但load的话只能取到最新的dump,如果想要实现dump多次不被覆盖,就可以想到使用shelve模块。shelve模块可以持久化所有pickle所支持的数据类型。另外,写程序的时候如果不想用关系数据库那么重量级的去存储数据,也可以用到shelve。shelf也是用key来访问的,使用起来和字典类似。
2022-05-09 19:07:17
305
原创 shutil --- 高阶文件操作
shutil 模块提供了一系列对文件和文件集合的高阶操作。特别是提供了一些支持文件拷贝和删除的函数。对于单个文件的操作,请参阅os 模块。
2022-05-09 17:13:26
220
原创 linecache --- 随机读写文本行
linecache模块的作用是将文件内容读取到内存中,进行缓存,而不是每次都要从硬盘中读取,这样效率提高很多,又省去了对硬盘IO控制器的频繁操作。linecache里面最常用到的就是getline方法,简单实用可以直接从内容中读到指定的行,日常编程中如果涉及读取大文件,一定要使用首选linecache模块,相比open()那种方法要快N倍,它是你读取文件的效率之源。
2022-05-08 23:37:24
343
转载 fnmatch --- Unix 文件名模式匹配
此模块提供了Unix shell 风格的通配符,它们并不等同于正则表达式(关于后者的文档参见re 模块)
2022-05-08 22:47:56
216
转载 glob --- Unix 风格路径名模式扩展
glob 模块可根据Unix 终端所用规则找出所有匹配特定模式的路径名,但会按不确定的顺序返回结果。波浪号扩展不会生效,但*, ? 以及表示为[] 的字符范围将被正确地匹配
2022-05-08 00:25:26
221
原创 fileinput --- 迭代来自多个输入流的行
此模块实现了一个辅助类和一些函数用来快速编写访问标准输入或文件列表的循环。如果你只想要读写一个文件请参阅open()。
2022-05-06 23:11:03
151
原创 pathlib --- 面向对象的文件系统路径
该模块提供表示文件系统路径的类,其语义适用于不同的操作系统。路径类被分为提供纯计算操作而没有I/O 的纯路径,以及从纯路径继承而来但提供I/O 操作的具体路径
2022-04-21 21:45:05
776
原创 operator --- 标准运算符替代函数
operator 模块提供了一套与Python 的内置运算符对应的高效率函数。例如,operator.add(x, y) 与表达式x+y 相同。许多函数名与特殊方法名相同,只是没有双下划线。为了向后兼容性,也保留了许多包含双下划线的函数。为了表述清楚,建议使用没有双下划线的函数。函数包含的种类有:对象的比较运算、逻辑运算、数学运算以及序列运算。对象比较函数适用于所有的对象,函数名根据它们对应的比较运算符命名。
2022-04-13 21:48:17
249
原创 functools --- 高阶函数和可调用对象上的操作
functools模块是Python的标准库的一部分,它是为高阶函数而实现的。高阶函数是作用于或返回另一个函数或多个函数的函数。一般来说,对这个模块而言,任何可调用的对象都可以作为一个函数来处理
2022-04-13 20:13:06
291
原创 itertools --- 为高效循环而创建迭代器的函数
迭代器(生成器)在Python中是一种很常用也很好用的数据结构,比起列表(list)来说,迭代器最大的优势就是延迟计算,按需使用,从而提高开发体验和运行效率,以至于在Python 3中map,filter等操作返回的不再是列表而是迭代器。话虽这么说但大家平时用到的迭代器大概只有range了,而通过iter函数把列表对象转化为迭代器对象又有点多此一举,这时候我们今天的主角itertools就该上场了。
2022-03-30 22:03:11
399
原创 array --- 高效的数值数组
当我们需要1000万个浮点数的时候,数组(array)的效率要比列表(list)要高得多,因为数组在背后存的并不是float对象,而是数字的机器翻译,也就是字节表述。这一点和c语言中的数组一样
2022-03-27 16:05:50
183
原创 collections --- 容器数据类型
这个模块实现了特定目标的容器,以提供Python 标准内建容器dict , list , set , 和tuple 的替代选泽,有ChainMap,Counter,deque,defaultdict,namedtuple() 命名元组的工厂函数等对象
2022-03-27 01:36:24
483
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人