Awesome
wxCAN-Sniffer - CAN bus sniffer (PC side)
- Возможности
- Статья
- Сборка приложения в Windows
- Сборка приложения в Linux
- Сборка приложения в macOS
- License
Возможности
- Отображение передаваемых в CAN-шине пакетов
- Отображение выбранных данных в двоичном и десятичном виде
- Построение графика по выбранному пакету + следующий байт
- Сохранение всех данных в журнал
- Отправка своего пакета в CAN-шину
Статья
Сборка приложения в Windows
Используя Windows CMake
- Понадобится Visual Studio 2022 Community (используется компилятор и SDK) и CMake
- Запустить Developer Command Prompt for VS 2022 и перейти в директорию с исходниками
- Запустить подготовку проекта к сборке, будет автоматически скачан и подготовлен пакет wxWidgets в директорию
./build
:
cmake -S . -B build
- Запустить сборку (результат будет в
./build/Release
):
cmake --build build -j --config Release
- Если необходима отладочная сборка (результат будет в
./build/Debug
):
cmake --build build -j
Если по каким-либо причинам подготовка завершается с ошибкой, то в файле CMakeLists.txt можно указать версию wxWidgets убрав комментарий со строки GIT_TAG v3.2.5 и задав в ней номер версии.
Используя Visual Studio 2022 Community
Сначала необходимо собрать wxWidgets в static-режиме и потом само приложение.
1. Сборка Windows wxWidgets
- Понадобится Visual Studio 2022 Community
- Скачать и установить wxWidgets если это установщик, либо распаковать, если это архив. Например в директорию
C:/wxWidget
- Создать переменную окружения
WXWIN
и присвоить ей значение директорииC:/wxWidgets
- В директории
C:/wxWidgets/build/msw
открыть файл решенияwx_vc17.sln
для Visual Studio 2022 - В Solution Explorer, с помощью клавиши Shift, выделить все проекты, кроме _custom_build и зайти в Properties проектов
- В разделе C/C++ → Code Generation изменить параметр Runtime Library:
- для конфигурации Debug выбрать /MTd
- для конфигурации Release выбрать /MT
- Нажать Ok и скомпилировать (Ctrl+B) библиотеки wxWidgets по очереди для Debug и Release конфигураций.
2. Сборка приложения в Visual Studio
- Открыть файл решения
wxCAN-Sniffer.sln
- Выбрать необходимую конфигурацию Release или Debug
- Произвести сборку нажав F7 (результат будет в
./x64/Release
или./x64/Debug
соответственно)
Сборка приложения в Linux
Используя Linux CMake
- Понадобится установить следующие пакеты:
sudo apt-get install build-essential
sudo apt-get install libgtk-3-dev
sudo apt-get install libglu1-mesa-dev freeglut3-dev mesa-common-dev
sudo apt-get install cmake
- Запустить подготовку проекта к сборке, будет автоматически скачан и подготовлен пакет wxWidgets в директорию
./build-release
:
cmake -S . -B build-release -DCMAKE_BUILD_TYPE=Release
или отладочной сборки в ./build-debug
:
cmake -S . -B build-debug -DCMAKE_BUILD_TYPE=Debug
- Запустить сборку Release (результат будет в
./build-release
):
cmake --build build-release -j
или Debug (результат будет в ./build-debug
):
cmake --build build-debug -j
По каким-то причинам, сборка через CMake в Linux требует огромных ресурсов памяти. На компьютере с 8 ГБ оперативной памяти сборка не завершалась. Помогло увеличение размера swap-файла до 64 ГБ:
sudo swapoff /swapfile
sudo fallocate -l 64G /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
Если по каким-либо причинам подготовка завершается с ошибкой, то в файле CMakeLists.txt можно указать версию wxWidgets убрав комментарий со строки GIT_TAG v3.2.5 и задав в ней номер версии.
Используя Visual Studio Code
1. Сборка Linux wxWidgets
- Понадобится Visual Studio Code и установить следующие пакеты:
sudo apt-get install build-essential
sudo apt-get install libgtk-3-dev
sudo apt-get install libglu1-mesa-dev freeglut3-dev mesa-common-dev
- Скачать и установить wxWidgets:
git clone https://github.com/wxWidgets/wxWidgets.git
- Обновить необходимые зависимости:
cd wxWidgets
git submodule update --init src/stc/lexilla
git submodule update --init src/stc/scintilla
git submodule update --init src/expat
git submodule update --init src/jpeg
git submodule update --init src/png
git submodule update --init src/tiff
git submodule update --init src/zlib
git submodule update --init 3rdparty/catch
git submodule update --init 3rdparty/nanosvg
git submodule update --init 3rdparty/pcre
- Подготовить директорию
./gtk-build
для сборки и запустить настройку:
mkdir gtk-build
cd gtk-build
../configure --with-gtk=3 --with-opengl --disable-shared
- Запустить сборку (использовать 8 потоков):
make -j8
- Установить собранный пакет в систему:
sudo make install
sudo ldconfig
- Скопировать файл setup.h (обратите внимание на номер версии в директориях, если версия отличается от 3.3, то её надо поправить):
sudo cp ./lib/wx/include/gtk3-unicode-static-3.3/wx/setup.h /usr/local/include/wx-3.3/wx
2. Сборка приложения в Visual Studio Code
- Открыть директорию проекта
./wxCAN-Sniffer/wxCAN-Sniffer
в редакторе Visual Studio Code - Открыть файл Application.cpp
- В меню Terminal выбрать пункт Run Task, выбрать необходимую конфигурацию C/C++: GCC build release или C/C++: GCC build debug (результат будет в этой же директории)
Сборка приложения в macOS
Сборка и работа приложения возможна
License
MIT