- Подключение через последовательный порт или Wi-Fi
- Отображение передаваемых в CAN-шине пакетов
- Отображение выбранных данных в двоичном и десятичном виде
- Построение графика по выбранному пакету + следующий байт/байты
- Сохранение всех данных в журнал
- Отправка своего пакета в CAN-шину
- Понадобится 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.8 и задав в ней номер версии.
Сначала необходимо собрать wxWidgets в static-режиме и потом само приложение.
- Понадобится Visual Studio 2022 Community
- Запустить Developer Command Prompt for VS 2022 и перейти в директорию с исходниками
- Загрузить wxWidgets из GitHub:
git clone --recurse-submodules https://github.com/wxWidgets/wxWidgets.git
- Создать переменную окружения
WXWIN
и присвоить ей значение директории%your_path%/wxWidgets
- Запустить последовательно сборку отладочной и релизной версии:
cd wxWidgets/build/msw
nmake /f makefile.vc RUNTIME_LIBS=static TARGET_CPU=X64 BUILD=debug
nmake /f makefile.vc RUNTIME_LIBS=static TARGET_CPU=X64 BUILD=release
- Открыть файл решения
wxCAN-Sniffer.sln
- Выбрать необходимую конфигурацию Release или Debug
- Произвести сборку нажав F7 (результат будет в
./x64/Release
или./x64/Debug
соответственно)
- Понадобится установить следующие пакеты:
sudo apt-get install build-essential libgtk-3-dev libglu1-mesa-dev freeglut3-dev mesa-common-dev 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
PS: По каким-то причинам, сборка через 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.8 и задав в ней номер версии.
- Понадобится Visual Studio Code и установить следующие пакеты:
sudo apt-get install build-essential libgtk-3-dev libglu1-mesa-dev freeglut3-dev mesa-common-dev
- Скачать и установить wxWidgets:
git clone --recurse-submodules https://github.com/wxWidgets/wxWidgets.git
- Подготовить директорию
./gtk-build
для сборки, запустить настройку и сборку (использовать 8 потоков):
cd wxWidgets; mkdir gtk-build; cd gtk-build; ../configure --with-gtk=3 --with-opengl --disable-shared; 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
- Открыть директорию проекта
./wxCAN-Sniffer/wxCAN-Sniffer
в редакторе Visual Studio Code - Открыть файл Application.cpp
- В меню Terminal выбрать пункт Run Build Task, выбрать необходимую конфигурацию C/C++: G++ build release или C/C++: GCC build debug (результат будет в этой же директории)
- Будет необходимо добавить пользователя в группу с правами доступа к последовательному порту:
sudo addgroup $USERNAME dialout
Сборка и работа приложения возможна.
MIT