Небольшой приём TSMaster: как вывести в график период отправки конкретного DBC-сообщения. Поскольку в базе DBC хранится только номинальный период, для наблюдения за фактическим циклом отправки понадобится мини-программа.
Ключевые слова: TSMaster, DBC, период отправки сообщения, C-мини-программа, пользовательская переменная.
1. Создайте пользовательскую переменную Cycle
Создайте пользовательскую переменную с именем Cycle — именно её значение будет выводиться в график (рис. 1-1).

2. Добавьте наблюдение за Cycle в график
В модуле «Графика» добавьте переменную Cycle в список наблюдаемых (рис. 2-1).

3. Создайте C-мини-программу с событием отправки
Создайте C-мини-программу и добавьте в неё событие отправки сообщения, которое нужно отслеживать (в примере — сообщение с идентификатором 0x64) (рис. 3-1).

4. Вычислите период отправки
Событие отправки срабатывает при каждой успешной отправке сообщения 0x64. Достаточно взять время отправки текущего сообщения и вычесть время предыдущего — получится фактический период отправки. Реализация показана на рис. 4-1 и 4-2.


5. Разбор кода
- Строка 1: функция отправки привязана к каналу 1. Если обработчик должен срабатывать по всем каналам, закомментируйте эту проверку.
- Строка 3: метка времени берётся из структуры сообщения
ACANFD(совпадает с абсолютным временем в окне сообщений). - Строка 4: если сообщение отправлено впервые, период не вычисляется.
- Строка 11: библиотечная функция записывает вычисленный период в пользовательскую переменную
Cycle— теперь его можно наблюдать в графике.
