На сборочных конвейерах (End-of-Line, EOL) и в автоматизированных лабораториях верификации ПО внешняя управляющая программа (написанная на C#, Python, C++ или LabVIEW) часто вызывает проект TSMaster в фоновом режиме для выполнения последовательности перепрошивки ЭБУ по протоколу UDS. Чтобы оператор или система верхнего уровня видели не только итоговый вердикт OK / NOK, но и живую шкалу прогресса в процентах и лог каждого диагностического сервиса в реальном времени, инженеры TOSUN разработали эталонную связку на базе COM/RPC-автоматизации и локального UDP-канала телеметрии.
1. Постановка задачи и архитектура взаимодействия
При классическом вызове автоматизированного процесса прошивки через COM-интерфейс управляющее приложение запускает диагностическую последовательность (Automated Diagnostic Flow) в TSMaster. Для непрерывной трансляции промежуточного статуса используется двухконтурная схема:
- Контур управления (Control Plane — COM / RPC): внешнее приложение инициализирует экземпляр TSMaster, загружает рабочий проект, выбирает нужную конфигурацию прошивки и запускает или останавливает диагностический поток.
- Контур статуса в реальном времени (Status Plane — UDP Socket): встроенный скрипт внутри проекта TSMaster перехватывает системные переменные прогресса прошивки и сообщения каждого шага последовательности, мгновенно пересылая их в виде легковесных UDP-пакетов во внешний GUI или CLI-терминал.
2. Пошаговая настройка диагностического контура в TSMaster
Шаг 1. Конфигурация транспортного уровня и файлов прошивки
В модуле Basic Diagnostic Config задаются параметры диагностического канала (CAN, CAN FD или DoIP), идентификаторы физического и функционального запросов/ответов, тайминги ISO-TP (P2, P2*), DLL-библиотека алгоритма безопасности Seed & Key и прикрепляются файлы данных прошивки (.hex, .s19, .bin, .vbf) вместе с драйвером Flash Driver.
Шаг 2. Построение последовательности Automated Diagnostics
В редакторе диагностических последовательностей собирается полный цикл репрограммирования: предпрограммирующий шаг (чтение идентификаторов 0x22, переход в расширенную сессию 0x10 03, отключение DTC 0x85 и связи 0x28), шаг программирования (Programming Session 0x10 02, Security Access 0x27, стирание памяти 0x31, загрузка блоков 0x34 / 0x36 / 0x37, проверка контрольной суммы) и финальный сброс ЭБУ (0x11 01).
Шаг 3. Настройка трансляции прогресса и логов по UDP
В проекте TSMaster создаётся компактный C Mini Program скрипт, который подписывается на изменение системной переменной процента выполнения прошивки и события диагностического лога, упаковывает их в текстовый или JSON-кадр и отправляет через встроенный сетевой стек на локальный UDP-порт (например, 127.0.0.1:8888).
3. Демонстрация работы во внешнем клиенте автоматизации
При запуске внешнего управляющего скрипта (например, на Python) приложение по COM/RPC стартует процесс прошивки в TSMaster и одновременно слушает UDP-сокет:
- В консоли или графическом окне оператора плавно от 0% до 100% обновляется индикатор прогресса передачи блоков
TransferData (0x36); - В реальном времени выводятся названия выполняемых шагов, время выполнения каждого сервиса и итоговый статус верификации контрольной суммы.