Документація CanStudio
Це офіційна документація для програми CanStudio, що призначена для моніторингу, аналізу, конфігурування та оновлення прошивок пристроїв, які працюють по CAN-шині (J1939) та інших інтерфейсах.
Зміст
- Розділ 1: Ліва Панель (Керування)
- Розділ 2: Вкладка "Decoded"
- Розділ 3: Вкладка "Raw" (Сирі дані)
- Розділ 4: Вкладка "Фільтри"
- Розділ 5: Вкладка "Params"
- Розділ 6: Вікно "Аналізувати лог"
Розділ 1: Ліва Панель (Керування)
Ліва панель є головним центром керування. Вона відповідає за підключення до обладнання, надсилання ручних команд та синхронізацію бібліотек.
1. Параметри Підключення
Цей блок дозволяє вибрати та налаштувати інтерфейс для спілкування з обладнанням.
Тип шини: Випадаюче меню для вибору одного з чотирьох режимів:
- PCAN: Для апаратних адаптерів PEAK-System (використовує
PCANBasic.dll).
- slcan: Для універсальних адаптерів (CANable, USB-CAN), які працюють через віртуальний COM-порт.
- Serial Configurator: Пряме підключення до конфігуратору через COM-порт для відправки текстових команд.
- Network Configurator: Підключення до пристрою через TCP/IP (мережевий шлюз).
Панель CAN/Serial: (з'являється для PCAN, slcan, Serial)
- Порт: Вибір COM-порту або каналу PCAN.
- Швидкість: Вибір бітрейту (напр., 500000) або швидкості порту (напр., 115200).
- Оновити: (Тільки для Serial/slcan) Оновлює список доступних COM-портів.
Панель Network: (з'являється для Network Configurator)
- IP Адреса / Порт: Мережеві налаштування сервера.
- IMEI / Passw: Облікові дані для команди логіну (
#L#...).
2. Кнопка "Підключити" та Індикатор Стану
- Кнопка (Підключити / Відключити): Запускає або зупиняє з'єднання.
- Індикатор стану (кольорова крапка): Показує "здоров'я" з'єднання в реальному часі.
- 🔴 Червоний (Disconnected): Немає підключення.
- 🟢 Зелений (OK): Підключено, дані з шини надходять.
- 🟡 Жовтий (No Messages): Підключено, але дані не надходили більше 2 секунд (можливо, шина "мовчить" або неправильний бітрейт).
- 🟠 Помаранчевий (Error): Сталася апаратна помилка шини (
BusError) або логічна помилка (0x0000000x), яка вимагає синхронізації.
3. Відправка Повідомлень
Цей блок призначений для надсилання "сирих" команд, згенерованих вручну або у вкладці "Params".
Важливо: Програма очікує команди у специфічному форматі. Кожен блок має починатися з адреси та пароля:
$01; TPASS: 11111; getparam 5034; getparam 5035;
- Текстове поле: Сюди вставляються команди.
- Завантажити TXT: Дозволяє завантажити команди з текстового файлу.
- Відправити: Надсилає вміст текстового поля в чергу команд для виконання.
4. Додаткові Інструменти
- Вікно підтвердження: Вмикає/вимикає спливаюче вікно, яке показує статуси (
OK, FAIL, retrying) для кожної відправленої команди getparam або setparam.
- Оновити бібліотеку (Sync): Запускає фонове сканування папки
Lib на наявність нових або змінених .xml файлів параметрів та оновлює внутрішню базу даних програми.
Розділ 2: Вкладка "Decoded" (Декодовані дані)
Це головне вікно для моніторингу текстових команд та відповідей. На відміну від вкладки "Raw", "Decoded" відображає лише завершені, зібрані повідомлення високорівневого протоколу.
Що тут відображається:
[TX] (Надіслані): Усі команди, які були надіслані з Лівої Панелі або "Params".
[RX] (Отримані): Зібрані відповіді від пристроїв (напр., Param ID: 5034 Val: 3 <5034 3>).
- Статус: Повідомлення про підключення, помилки та відповіді бутлоадера.
Ключові Особливості
- Кольорове Кодування:
TX (Надіслані) та RX (Отримані) мають різне забарвлення. Колір RX залежить від адреси відправника (0x01, 0x0A, 0xFE тощо).
- "Приклеювання" відповідей: (Для Serial/Network) Короткі відповіді (напр.,
<5034 3>) автоматично додаються до кінця попереднього рядка, що робить лог компактнішим.
Інтерфейс
- Панель Пошуку (Зверху): Дозволяє шукати текст у лозі, переходити між результатами (
<, >) та бачити їх кількість.
- Нижня Панель:
- Зберегти лог: Зберігає вміст тільки цієї вкладки у
.txt файл.
- Показувати час (мс): Якщо галочка встановлена, нові повідомлення будуть отримувати часову мітку (напр.,
[17:01:41.309]). Примітка: Ця функція не змінює вже існуючі рядки, щоб уникнути "зависання".
- Контекстне меню (Правий клік):
- Clear all: Повністю очищує вміст цього вікна та його кеш.
Розділ 3: Вкладка "Raw" (Сирі дані)
Це низькорівневий інструмент для моніторингу, розділений на дві під-вкладки.
3.1 Вкладка "Повний трейс" (Full Trace)
"Живий" лог, який показує кожне CAN-повідомлення в хронологічному порядку.
Структура колонок:
- Номер: Лічильник повідомлень (
1:).
- Час: Відносний час у мілісекундах від моменту підключення (напр.,
10.5).
- Dir: Напрямок (
RX або TX).
- ID (Hex): CAN ID (11-бітний
05C або 29-бітний 18F713AA), вирівняний по правому краю.
- DLC: Кількість байт.
- Data: Дані у форматі HEX.
Ключові Особливості:
- Фільтрація: Верхня панель дозволяє фільтрувати потік по
ID та D0-D7.
- Інтеграція з Фільтрами: Якщо повідомлення збігається з фільтром (з вкладки "Фільтри"), весь рядок підсвічується кольором цього фільтра і в кінці рядка додається розраховане значення (напр.,
... [MyFilter: 123.5]).
- Пауза: Зупиняє оновлення екрану (але не збір даних).
- Контекстне меню (Правий клік):
- Декод в АСКІ: Якщо увімкнено, додає текстове представлення даних (недруковані символи замінюються на
.).
- Створити фільтр: Відкриває діалог створення нового фільтра.
3.2 Вкладка "Унікальні ID"
Інструмент, що показує лише останнє повідомлення для кожного унікального CAN ID. Це "знімок стану" всієї шини.
Структура колонок:
- Delta(ms): (Вирівняно праворуч) Час у мілісекундах між двома останніми повідомленнями цього ID. Дозволяє оцінити частоту оновлення.
- Dir:
RX або TX.
- ID (Hex): (Вирівняно по центру) Унікальний CAN ID.
- DLC / Data: (Вирівняно по центру) Довжина та дані.
- Value (Обчислення): (Опціонально) Показує результат обчислень.
Ключові Особливості:
- Контекстне меню (Правий клік на ID):
- Обчислити значення: Відкриває діалог, де можна вказати біти, формулу (
x*10) та порядок байт (Big/Little Endian) для цього ID.
- Результат: Колонка "Value" автоматично розраховує та показує "живе" значення для цього ID при кожному оновленні.
3.3 Нижня Панель Інструментів (Загальна)
- Старт/Стоп запису: Керує записом "маркованого" фрагменту логу у фоновий файл.
- Зберегти записане: (Активна після "Стоп") Зберігає фрагмент (між "Старт" і "Стоп") у чистий
.trc файл, додаючи інформацію про обладнання.
- Зберегти лог: Зберігає вміст вкладки "Повний трейс" у файл (
.txt або .trc).
- Аналізувати лог: (Активна після відключення) Відкриває збережений лог сесії у вікні аналізу.
Розділ 4: Вкладка "Фільтри"
Ця вкладка є потужним інструментом для "просіювання" сирого CAN-трафіку в реальному часі, дозволяючи витягувати дані, виконувати математичні операції та логувати результати.
Інтерфейс
- Головна Таблиця: Список усіх створених фільтрів.
- Панель інструментів (кнопки):
- (Створити): Відкриває діалог створення нового фільтра.
- (Зберегти): Зберігає поточний набір фільтрів у
.json.
- (Завантажити): Завантажує набір фільтрів з
.json.
- (Графік): Відкриває діалог вибору, які фільтри відобразити на "живому" графіку.
Структура Фільтра (Колонки)
- Назва: Унікальна назва.
- CAN ID: Шаблон CAN ID для пошуку (напр.,
18F802 або _ (будь-який)).
- Байт-фільтр: Додаткова умова для байтів (напр.,
D0=01).
- Розрахунок: Показує, як обчислюється значення (напр.,
S:0 C:8 LE - Стартбіт 0, Кількість 8, Little-Endian).
- Останнє значення: "Живе", розраховане значення.
Іконки Статусу
- 🔵 (Pending/Очікування): Фільтр ще не "зловив" жодного повідомлення.
- 🟢 (OK): Фільтр працює, значення розраховано.
- 🟡 (Warn): Повідомлення надходять, але значення "застрягло" (напр.,
0 або FFF...).
Ключові Функції (Контекстне меню)
- Показати лог фільтру: Для кожного фільтра створюється індивідуальний
.txt файл, куди пишуться тільки ті повідомлення, які пройшли через цей фільтр. Ця опція відкриває вікно для перегляду цього індивідуального логу.
- Загальний лог фільтрів: Дозволяє вибрати декілька фільтрів, збирає дані з їх індивідуальних логів, сортує за часом і показує в одному спільному вікні.
- Побудувати графік: Будує "живий" графік для обраних фільтрів. Графік автоматично масштабує вісь Y, коли лінії ховаються через легенду.
- Видалити / Видалити декілька: Дозволяє видаляти фільтри по одному або масово.
Розділ 5: Вкладка "Params" (Параметри)
Це головна робоча вкладка для конфігурування пристроїв, відправки параметрів та оновлення прошивки. Вона інтегрована з базою даних (parameters.db), яка створюється з XML файлів у папці Lib.
1. Верхня Панель Інструментів
- Вибрати пристрій: Відкриває діалог для завантаження конфігурації пристрою з бази даних (XML).
- Додати знайдені: Додає у дерево пристрої, виявлені "наживо" на CAN-шині (через
DeviceMonitor) або через getpassport.
- Переглянути змінні: Відкриває вікно зі списком готових наборів змінних (з групи "Переменные" у XML).
- Очистити дерево: Повністю очищує дерево параметрів.
2. Дерево Параметрів
Тут відображаються завантажені пристрої та їхні параметри.
- Іконки Стану (Патерни): Показує "живий" статус пристрою (Онлайн/Офлайн) на основі отриманих від нього CAN-патернів (паспортів).
- 🟢 Онлайн: Пристрій надсилав патерни протягом останніх 10 секунд.
- 🔴 Офлайн: Пристрій "мовчить" більше 10 секунд.
- Чекбокси: Дозволяють вибрати окремі параметри або групи для масового читання (
Запит) або запису (Відправка).
- Колонка "Значення": Дозволяє редагувати значення. Параметри, змінені вручну, підсвічуються жовтим.
- Контекстне меню (Правий клік на пристрої):
- Завантажити прошивку: Запускає процес оновлення прошивки.
- Видалити пристрій: Прибирає пристрій з дерева.
- Drag-and-Drop: Дозволяє "перетягнути" змінну (з вікна "Переглянути змінні") на групу (напр., "CAN датчики") для автоматичного заповнення її параметрів.
3. Панель Керування (Нижня)
- Прогрес-бар та кнопка "✖" (Стоп): З'являється під час відправки команд або прошивки. Натискання на "✖" негайно скасовує всі поточні та майбутні операції в черзі.
- Пароль: Поле для введення
TPASS.
- Запит (Get): Збирає всі відмічені параметри (
getparam) в один блок команд.
- Відправка (Set): Збирає всі відмічені параметри (
setparam) в один блок команд.
- Поле результату: Тут відображаються згенеровані команди. Їх можна редагувати вручну.
- Відправити згенероване: Надсилає вміст текстового поля.
- ❗️ Блокування Безпеки: Якщо програма не бачить "живих" патернів від цільового пристрою (статус "Офлайн"), відправка команд на цей пристрій буде автоматично заблокована.
Розділ 6: Вікно "Аналізувати лог" (AnalysisDialog)
Це вікно відкривається при натисканні кнопки "Аналізувати лог" на вкладці "Raw". Воно не працює з "живими" даними, а призначене для глибокого "офлайн" аналізу файлу логу (continuous_trace_...txt), який був автоматично збережений під час останньої сесії підключення.
1. Завантаження та Відображення
- Імпорт в Базу Даних: При відкритті, програма зчитує текстовий
.txt лог і імпортує його у тимчасову базу даних (SQLite). Це дозволяє миттєво фільтрувати та сортувати мільйони повідомлень.
- Обмеження (1M): Для запобігання "зависанню" на гігантських файлах, імпорт обмежений першим 1,000,000 (мільйоном) рядків з лог-файлу.
- Без "Лінивого" Завантаження: Програма одразу завантажує всі дані з бази в пам'ять. Це може зайняти кілька секунд при старті, але гарантує миттєву прокрутку (скролінг) без "затримок", навіть на мільйоні рядків.
2. Керування Таблицею (Інтерфейс)
- Заголовки колонок:
- Вирівнювання: Всі заголовки вирівняні по центру (з відступом для трикутника фільтра).
- Клік (Виділення): Один клік на назву колонки (напр., "DLC" або "D0") виділяє всю колонку в таблиці.
- Подвійний клік (Фільтр по тексту): Дозволяє ввести текст для фільтрації (напр.,
18F802 у колонці "ID" або 01 у "D0").
- Клік на Трикутник (▼) (Фільтр по значенню): Відкриває меню з усіма унікальними значеннями у цій колонці, дозволяючи вибрати потрібні (напр., показати тільки
RX).
- Ширина колонок: Програма запам'ятовує ширину колонок, яку ви встановили. При наступному відкритті вікна аналізу ваші налаштування ширини відновляться.
- Колонки "Param" та "Value": Ці дві колонки призначені для ваших розрахунків. Вони порожні при завантаженні.
3. Обробка Даних (Розрахунки)
Є два способи заповнити колонки "Param" та "Value":
4. Видалення та Графіки (Контекстне меню)
- Клавіша
Delete:
- Якщо виділена ціла колонка (клікнувши на заголовок) "Param" або "Value" і натиснута клавіша
Delete, програма повністю очистить цю колонку в базі даних.
- Малювати графік (📈):
- Натисніть правою кнопкою миші на будь-яку комірку в колонці "Param" або "Value".
- Вибір "Малювати графік" миттєво побудує статичний графік (у новому вікні) для всіх значень у цій колонці, використовуючи колонку "Час (мс)" як вісь X.
- Це дозволяє візуально оцінити зміну параметра за весь час запису логу.