在这里,我们记录了一些对创建自己的接口或侦听器更有帮助的细节,但通常不需要与python can进行交互。
BusABC
顾名思义,BusABC类提供了CAN总线的抽象。该总线提供了一个围绕物理或虚拟CAN总线的包装器。
BusABC的特定于接口的实例由Bus类创建,请参阅面向用户的API的Bus。
Extending the BusABC class
具体实施必须实现以下内容:
- send()发送单个消息
- _recv_internal()接收单个消息(请参阅下面的注释!)
- 将channel_info属性设置为描述底层总线和/或通道的字符串
他们可能会执行以下操作:
- flush_tx_buffer() 允许丢弃任何尚未发送的消息
- shutdown() 以覆盖总线应该如何关闭
- _send_periodic_internal() 以覆盖基于软件的周期性发送并将其向下推送到内核或硬件。
- _apply_filters() 以将有效的过滤器应用于诸如OS内核或硬件之类的较低级别系统。
- _detect_available_configs() 以允许接口报告哪些配置当前可用于新连接。
- state() 属性以允许读取和/或更改总线状态。
Note
TL;DR:只覆盖_recv_internal(),从不直接记录()。
以前,具体的总线类必须直接重写recv(),而不是_r