Skip to content

CAN Plugin

Yurii Solodzhuk edited this page Feb 12, 2026 · 3 revisions

Плагін для роботи з CAN bus (пристрої Systec).

Встановлення

pip install pyqtier[can]

Використання

# app/widgets/main_window.py
from pyqtier.plugins.can_plugin import CanPluginManager, CanDataProcessor


class MainWindow(PyQtierMainWindow):
    def setup_view(self):
        self.can = CanPluginManager(with_bitrate=True, default_bitrate=500000)
        self.can.setup_view(self.view.can_widget, self.view.statusbar)
        self.can.set_data_processor(MyCanProcessor())

    def create_behavior(self):
        self.can.connected.connect(self.on_connected)
        self.can.disconnected.connect(self.on_disconnected)
        self.can.message_received.connect(self.on_message)
        self.can.data_ready.connect(self.on_data)
        self.can.error_occurred.connect(self.on_error)

Відправлення повідомлень

# Стандартний CAN frame
self.can.send_message(can_id=0x123, data=b'\x01\x02\x03\x04')

# Розширений CAN frame
self.can.send_message(can_id=0x18FF1234, data=b'\x01\x02', extended=True)

# Через словник
self.can.send_data({"id": 0x123, "data": b'\x01\x02'})

Фільтрація повідомлень

self.can.set_message_filter(can_id=0x123, mask=0x7FF)

Інформація про пристрій

is_available = self.can.is_device_available()
info = self.can.get_adapter_info(device_id=0)

Сигнали

Сигнал Опис
connected Успішне підключення
disconnected Відключення
connection_lost Втрата з'єднання
error_occurred Помилка
message_received Отримано CAN-повідомлення (сире)
data_ready Оброблені дані (після Data Processor)
devices_list_updated Оновлення списку пристроїв

Підтримувані bitrate

10000, 20000, 50000, 100000, 125000, 250000, 500000, 800000, 1000000


<< USB/Serial Plugin | Modbus Plugin >>

Clone this wiki locally