Проект

Общее

Профиль

Фильтр

Идея

Прежде чем описывать фильтр, расскажем идею и принцип работы.

И так, мы подключились с помощью CAN-Hacker к шине данных. Сообщения сообщения из неё, прежде чем обработаться прошивкой, проходят через встроенный в кремний аппаратный фильтр, позволяющий задать 28 правил фильтрации. После этого прошивка CAN-Hacker делает обработку данных и преобразует их в поток данных согласно принятому протоколу, о котором знает наша программа. После обработки, данные уходят в USB и прилетают в программу, которая общается с CAN-Hacker через эмулируемый "железкой" последовательный порт. Далее программа полученные данные преобразует в удобные и понятные структуры у себя внутри и раскладывает в 2 очереди. Первая очередь обрабатывается программным фильтром. Так, в очереди, которая обрабатывается программным фильтром, регистрируются такие элементы интерфейса, как монитор, функция записи потока, окна отображения битовых представлений данных. Ко второй очереди, которая работает в обход программного фильтра, подключаются задачи из панели передачи данных, бомбер и отладчик.

Панель и окно фильтрации

В зависимости от настроек и разрешающей способности экрана монитора, программа отображает фильтр либо в виде боковой панели на основной форме программы, либо в виде отдельного окна. Ниже представлен вид фильтра в виде панели для CAN-Hacker на протоколе Lawicel, в виде панели для CAN-Hacker v3.x и в виде отдельного окна.

Как видим окно фильтрации представлено двумя областями. Область с настройками шлюза и область настройки самого аппаратного фильтра. Сам фильтр можно вызвать нажав на кнопку в панели быстрого доступа или на комбинацию клавиш Ctrl+F.

Note: На данный момент разработка интерфейса для настройки программного фильтра приостановлена в угоду
реализации более важного на данный момент функционала.
После его реализации разработка интерфейса программного фильтра продолжится.

Шлюз

CAN-Hacker v3.x предоставляет возможность пересылки сообщений из одного канала в другой.

На этой панели у нас расположены "галки", отвечающие за включение и выключение функции пересылки сообщений из канала 1 в канал 2 "Transmit CAN1 => CAN2" и из канала 2 в канал 1 "Transmit CAN2 => CAN1".
Ниже располагается интерфейс функционала блокировки пересылки заданного сообщения из канала 1 в канал 2 и наоборот. Блокировка включается путём задания кода сообщения и нажатия кнопки "Lock". Если мы хотим заблокировать другое сообщение, то достаточно указать новый код и нажать на кнопку "Lock". Отключение функционала происходит по нажатию кнопки "Unlock".

Аппаратный фильтр

Фильтр представлен в виде таблицы из 5 столбцов: индикатор активности фильтра, номер канала, номер фильтра в канале и маска/код фильтра. Если фильтр активен, то в первом столбце появляется индикатор . Сделать активным фильтр можно щёлкнув левой кнопкой мышки по ячейке первого столбца необходимого фильтра или кнопками клавиатуры выбрать необходимую строку с фильтром и нажать пробел.

Если мы хотим отредактировать значения фильтра, то необходимо по нужной строке щёлкнуть 2 раза левой кнопкой мыши или на нужно строке нажать клавишу Enter. В результате откроется окно настройки фильтра.

Filter-Panel-L.png (3,73 КБ) Dmitriy Balashov, 26.03.2019 10:11

Filter-Panel-CH3.png (14,5 КБ) Dmitriy Balashov, 26.03.2019 10:11

Filter-Window.png (15,8 КБ) Dmitriy Balashov, 26.03.2019 10:11

Panel-GateWay.png (2,75 КБ) Dmitriy Balashov, 26.03.2019 10:38

Panel-Filter.png (7,21 КБ) Dmitriy Balashov, 26.03.2019 10:45

Panel-Filter.png (8,27 КБ) Dmitriy Balashov, 26.03.2019 10:59

Panel-Filter-ActiveFilter.png (403 байта) Dmitriy Balashov, 26.03.2019 11:02

Window-Filter.png (3,63 КБ) Dmitriy Balashov, 26.03.2019 11:07