Home
Nevoit이(가) 2 주 전에 이 페이지를 수정함

Документація CanStudio

Це офіційна документація для програми CanStudio, що призначена для моніторингу, аналізу, конфігурування та оновлення прошивок пристроїв, які працюють по CAN-шині (J1939) та інших інтерфейсах.

Зміст

  1. Розділ 1: Ліва Панель (Керування)
  2. Розділ 2: Вкладка "Decoded"
  3. Розділ 3: Вкладка "Raw" (Сирі дані)
  4. Розділ 4: Вкладка "Фільтри"
  5. Розділ 5: Вкладка "Params"
  6. Розділ 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>) автоматично додаються до кінця попереднього рядка, що робить лог компактнішим.

Інтерфейс

  1. Панель Пошуку (Зверху): Дозволяє шукати текст у лозі, переходити між результатами (<, >) та бачити їх кількість.
  2. Нижня Панель:
    • Зберегти лог: Зберігає вміст тільки цієї вкладки у .txt файл.
    • Показувати час (мс): Якщо галочка встановлена, нові повідомлення будуть отримувати часову мітку (напр., [17:01:41.309]). Примітка: Ця функція не змінює вже існуючі рядки, щоб уникнути "зависання".
  3. Контекстне меню (Правий клік):
    • 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.
    • (Графік): Відкриває діалог вибору, які фільтри відобразити на "живому" графіку.

Структура Фільтра (Колонки)

  1. Назва: Унікальна назва.
  2. CAN ID: Шаблон CAN ID для пошуку (напр., 18F802 або _ (будь-який)).
  3. Байт-фільтр: Додаткова умова для байтів (напр., D0=01).
  4. Розрахунок: Показує, як обчислюється значення (напр., S:0 C:8 LE - Стартбіт 0, Кількість 8, Little-Endian).
  5. Останнє значення: "Живе", розраховане значення.

Іконки Статусу

  • 🔵 (Pending/Очікування): Фільтр ще не "зловив" жодного повідомлення.
  • 🟢 (OK): Фільтр працює, значення розраховано.
  • 🟡 (Warn): Повідомлення надходять, але значення "застрягло" (напр., 0 або FFF...).

Ключові Функції (Контекстне меню)

  1. Показати лог фільтру: Для кожного фільтра створюється індивідуальний .txt файл, куди пишуться тільки ті повідомлення, які пройшли через цей фільтр. Ця опція відкриває вікно для перегляду цього індивідуального логу.
  2. Загальний лог фільтрів: Дозволяє вибрати декілька фільтрів, збирає дані з їх індивідуальних логів, сортує за часом і показує в одному спільному вікні.
  3. Побудувати графік: Будує "живий" графік для обраних фільтрів. Графік автоматично масштабує вісь Y, коли лінії ховаються через легенду.
  4. Видалити / Видалити декілька: Дозволяє видаляти фільтри по одному або масово.

Розділ 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":

  • Метод 1: Панель Розрахунку (Нижня панель)

    1. Виділіть байти (напр., D0 та D1) у одному рядку, який вас цікавить.
    2. Натисніть кнопку "Розрахувати Param" або "Розрахувати Value".
    3. Програма знайде всі повідомлення з таким самим CAN ID у всьому лозі, витягне з них ці байти (D0, D1) і розрахує десяткове значення.
    4. *Примітка: Цей метод не видаляє попередні розрахунки, а додає нові (або оновлює існуючі).*
  • Метод 2: Контекстне меню (Правий клік)

    1. Натисніть правою кнопкою миші на колонку "Param" або "Value".
    2. Виберіть "𝑓(x) Застосувати формулу...".
    3. Введіть формулу (напр., x / 10) для перерахунку вже наявних у колонці значень.

4. Видалення та Графіки (Контекстне меню)

  • Клавіша Delete:
    • Якщо виділена ціла колонка (клікнувши на заголовок) "Param" або "Value" і натиснута клавіша Delete, програма повністю очистить цю колонку в базі даних.
  • Малювати графік (📈):
    • Натисніть правою кнопкою миші на будь-яку комірку в колонці "Param" або "Value".
    • Вибір "Малювати графік" миттєво побудує статичний графік (у новому вікні) для всіх значень у цій колонці, використовуючи колонку "Час (мс)" як вісь X.
    • Це дозволяє візуально оцінити зміну параметра за весь час запису логу.