MicroPython:Библиотеки/pyb/Класс CAN: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
Нет описания правки
Строка 39: Строка 39:
* [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.send()|CAN.send(data, id, *, timeout=0, rtr=False)]]
* [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.send()|CAN.send(data, id, *, timeout=0, rtr=False)]]
* [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.rxcallback()|CAN.rxcallback(fifo, fun)]]
* [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.rxcallback()|CAN.rxcallback(fifo, fun)]]
* [[MicroPython:Библиотеки/pyb/Класс CAN/
* [[MicroPython:Библиотеки/pyb/Класс CAN/
* [[MicroPython:Библиотеки/pyb/Класс CAN/
* [[MicroPython:Библиотеки/pyb/Класс CAN/
* [[MicroPython:Библиотеки/pyb/Класс CAN/
* [[MicroPython:Библиотеки/pyb/Класс CAN/


* CAN.rxcallback(fifo, fun) – регистрирует функцию, которая будет вызвана при приеме сообщения в пустой FIFO.
== Константы ==
** fifo – FIFO, получающий сообщение.
** fun – функция, которая будет вызвана, когда FIFO перестанет быть пустым.
Функция обратного вызова принимает два аргумента. Первый – это сам объект CAN, а второй – это целое число, информирующее о причине запуска функции обратного вызова:
** «0» – сообщение принято в пустой FIFO.
** «1» – FIFO заполнен.
** «2» – сообщение было потеряно из-за полного FIFO.
Пример использования CAN.rxcallback(fifo, fun):
 
<syntaxhighlight lang="python" enclose="div">
def cb0(bus, reason):
  print('cb0')
  if reason == 0:
      print('в режиме ожидания')
  if reason == 1:
      print('полный')
  if reason == 2:
      print('переполнение')
 
can = CAN(1, CAN.LOOPBACK)
can.rxcallback(0, cb0)
</syntaxhighlight>


== Константы ==
* [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.NORMAL|CAN.NORMAL]]
* [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.LOOPBACK|CAN.LOOPBACK]]
* [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.SILENT|CAN.SILENT]]
* [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.SILENT_LOOPBACK|CAN.SILENT_LOOPBACK]]
* [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.STOPPED|CAN.STOPPED]]
* [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.ERROR_ACTIVE|CAN.ERROR_ACTIVE]]
* [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.ERROR_WARNING|CAN.ERROR_WARNING]]
* [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.ERROR_PASSIVE|CAN.ERROR_PASSIVE]]
* [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.BUS_OFF|CAN.BUS_OFF]]
* [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.LIST16|CAN.LIST16]]
* [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.MASK16|CAN.MASK16]]
* [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.LIST32|CAN.LIST32]]
* [[MicroPython:Библиотеки/pyb/Класс CAN/CAN.MASK32|CAN.MASK32]]


* CAN.NORMAL, CAN.LOOPBACK, CAN.SILENT, CAN.SILENT_LOOPBACK – режимы работы CAN-шины, используемые в init().
* CAN.NORMAL, CAN.LOOPBACK, CAN.SILENT, CAN.SILENT_LOOPBACK – режимы работы [[CAN-шины]], используемые в init().
* CAN.STOPPED, CAN.ERROR_ACTIVE, CAN.ERROR_WARNING, CAN.ERROR_PASSIVE, CAN.BUS_OFF – режимы работы CAN-контроллера, возвращаемые функцией state().
* CAN.STOPPED, CAN.ERROR_ACTIVE, CAN.ERROR_WARNING, CAN.ERROR_PASSIVE, CAN.BUS_OFF – режимы работы [[CAN-контроллер]]а, возвращаемые функцией state().
* CAN.LIST16, CAN.MASK16, CAN.LIST32, CAN.MASK32 – режимы работы фильтра, используемые в setfilter().
* CAN.LIST16, CAN.MASK16, CAN.LIST32, CAN.MASK32 – режимы работы фильтра, используемые в setfilter().
<syntaxhighlight lang="python" enclose="div">


=См.также=
=См.также=

Версия от 22:06, 4 октября 2020

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Класс CAN – коммуникационная шина CAN[1]

В классе CAN реализован коммуникационный протокол CAN. На физическом уровне он состоит из 2 линий: RX и TX. Для подключения PyBoard к шине CAN нужно использовать CAN-трансивер – чтобы преобразовать сигналы CAN-логики от PyBoard в правильные уровни напряжения на шине.

Пример использования (работает, даже если ничего не подключено):

from pyb import CAN
can = CAN(1, CAN.LOOPBACK)
# задаем фильтр для получения сообщений с id 123, 124, 125 и 126:
can.setfilter(0, CAN.LIST16, 0, (123, 124, 125, 126))
can.send('message!', 123)   # отправляем сообщение с ID 123
can.recv(0)                 # получаем сообщение на FIFO 0

Конструкторы

Методы класса

Методы

Константы

  • CAN.NORMAL, CAN.LOOPBACK, CAN.SILENT, CAN.SILENT_LOOPBACK – режимы работы CAN-шины, используемые в init().
  • CAN.STOPPED, CAN.ERROR_ACTIVE, CAN.ERROR_WARNING, CAN.ERROR_PASSIVE, CAN.BUS_OFF – режимы работы CAN-контроллера, возвращаемые функцией state().
  • CAN.LIST16, CAN.MASK16, CAN.LIST32, CAN.MASK32 – режимы работы фильтра, используемые в setfilter().

См.также

Внешние ссылки