Таблица планировщика (scheduler) протокола LIN — механизм диспетчеризации сообщений на шине LIN. Всё больше пользователей просили программный интерфейс для пользовательских таблиц планировщика, и начиная с TSMaster v2023.10.7.990 появились соответствующие API. Разберём программную реализацию пользовательской LIN-таблицы планировщика на C-мини-программе и на Python.

Ключевые слова: LIN, таблица планировщика, интерфейс вторичной разработки, пример C-мини-программы, пример Python.

1. Процесс реализации пользовательской таблицы планировщика

Общий процесс программного формирования и запуска пользовательской таблицы планировщика LIN показан на рис. 1-1.

Процесс реализации
Рис. 1-1. Процесс реализации пользовательской таблицы планировщика LIN

2. Реализация на встроенной C-мини-программе TSMaster

В примере используется TC1016P: LIN-канал 1 симулирует главный узел, LIN-канал 2 — подчинённый. Для замыкания обмена каналы 1 и 2 соединяются между собой: замкните контакты 6 и 8 разъёма DB9 LIN интерфейса TC1016 — тогда кадры, отправленные каналом 1, принимаются каналом 2.

Тестовый код размещается в событии запуска программы в «Программы → C-мини-программа» (рис. 2-1, 2-2).

Код C-мини-программы, часть 1
Рис. 2-1. Код C-мини-программы (часть 1)
Код C-мини-программы, часть 2
Рис. 2-2. Код C-мини-программы (часть 2)

Результат выполнения C-кода — на рис. 2-3.

Результат выполнения C-кода
Рис. 2-3. Результат выполнения C-мини-программы

3. Реализация через интерфейс вторичной разработки Python

Стенд тот же: TC1016P, канал 1 — главный узел, канал 2 — подчинённый, контакты 6 и 8 DB9 замкнуты. Пример кода Python для пользовательской таблицы планировщика — на рис. 3-1 – 3-4.

Код Python, часть 1
Рис. 3-1. Код Python (часть 1)
Код Python, часть 2
Рис. 3-2. Код Python (часть 2)
Код Python, часть 3
Рис. 3-3. Код Python (часть 3)
Код Python, часть 4
Рис. 3-4. Код Python (часть 4)

Запустите Python-скрипт, затем подключитесь к TSMaster и откройте окно LIN-сообщений — результат на рис. 3-5.

Результат выполнения Python-кода
Рис. 3-5. Результат выполнения Python-кода

Оба способа — встроенная C-мини-программа и внешний Python API — дают одинаковый результат; выбор зависит от того, где удобнее размещать логику: внутри проекта TSMaster или во внешнем скрипте.