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

2. Реализация на встроенной C-мини-программе TSMaster
В примере используется TC1016P: LIN-канал 1 симулирует главный узел, LIN-канал 2 — подчинённый. Для замыкания обмена каналы 1 и 2 соединяются между собой: замкните контакты 6 и 8 разъёма DB9 LIN интерфейса TC1016 — тогда кадры, отправленные каналом 1, принимаются каналом 2.
Тестовый код размещается в событии запуска программы в «Программы → C-мини-программа» (рис. 2-1, 2-2).


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

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




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

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