Skip to content

Середовище розробки Windows (засноване на Cygwin)

WARNING

Це середовище розробки підтримується та утримується спільнотою. Воно може працювати або не працювати з поточними версіями PX4.

Цей інструментарій був рекомендований раніше, але наразі не працює з PX4 v1.12 і новіше через проблеми з пакетами. Бажано використовувати Windows WSL2-Based Development Environment.

Дивіться Встановлення інструментарію для отримання інформації про середовища та інструменти, які підтримуються основною командою розробників.

Наступні інструкції пояснюють як налаштувати (на базі Cygwin) середовище розробки на Windows 10 для PX4. Це середовище можна використовувати для створення PX4:

Інструкції з установки

  1. Завантажте останню версію готового до використання MSI інсталятора з: Github сторінки релізів або Amazon S3 (швидке завантаження).

  2. Запустіть, оберіть потрібне місце установки, дочекайтесь встановлення:

    jMAVSimOnWindows

  3. Позначте прапорець в кінці інсталяції клонувати репозиторій PX4, зібрати та запустити симуляцію з jMAVSim (це спрощує процес, щоб ви могли почати).

:::note Якщо ви пропустили цей крок, потрібно клонувати репозиторій PX4-Autopilot вручну. :::

WARNING

На момент написання встановлювачу бракує деяких залежностей (й ви не можете зібрати та додати їх, дивіться PX4-windows-toolchain#31).

Щоб додати їх самостійно:

  1. Перейдіть в директорію встановлення інструментів (за замовчуванням C:\PX4\)

  2. Запустіть run-console.bat (подвійний клік), щоб запустити bash консоль у середовищі Cygwin подібному до Linux.

  3. Введіть в консолі наступну команду:

    sh
    pip3 install --user kconfiglib jsonschema future

Початок роботи

Інструментарій використовує спеціально налаштовану консоль (яка запускається скриптом run-console.bat) з якої ви можете запускати звичайні команди збірки PX4:

  1. Перейдіть в директорію встановлення інструментів (за замовчуванням C:\PX4\)
  2. Запустіть run-console.bat (подвійний клік), щоб запустити bash консоль у Cygwin (потрібно використовувати цю консоль для збірки PX4).
  3. Клонуйте репозиторій PX4 PX4-Autopilot з цієї консолі:

:::note Пропустіть цей крок, якщо ви обрали у встановлювачі клонувати репозитарій PX4, зібрати та запустити симуляцію з jMAVSim. Клонування потрібно зробити тільки один раз! :::

sh
# Клонувати репозиторій PX4-Autopilot в домашню теку & підмодулі завантажують паралельно
git clone --recursive -j8 https://github.com/PX4/PX4-Autopilot.git

Тепер можна використовувати консоль/PX4-Autopilot репозиторій для збірки PX4.

  1. Наприклад, для запуску JMAVSim:

    sh
    # Перейдіть до репозиторію PX4-Autopilot
    cd Firmware
    # Збирає і запускає SITL симуляцію з jMAVSim, щоб протестувати налаштування
    make px4_sitl jmavsim

    Після цього консоль покаже:

    jMAVSimOnWindows

Наступні кроки

Після того, як ви закінчите налаштування інструментів командного рядка:

Усунення проблем

Інструменти моніторингу файлів проти швидкості інструментарію

Антивірус та інші інструменти моніторингу файлів у фоні можуть суттєво сповільнити встановлення інструментів та збірки PX4.

Можливо знадобиться тимчасово зупинити їх під час збірки (на власний розсуд).

Особливі випадки Windows & Git

Символи закінчення рядків Windows CR+LF проти Unix LF

Ми рекомендуємо примусити використання закінчення рядків Unix LF для кожного репозиторію, з яким ви працюєте з цим інструментарієм (також використовуйте редактор, який залишає їх незмінними під час збереження змін, тобто Eclipse або VSCode). Компіляція файлів вихідного коду також працює з закінченнями рядків CR+LF отриманих локально, але є випадки у Cygwin (наприклад виконання скриптів оболонки) які потребують закінчення рядків Unix (інакше ви отримаєте помилки типу $'\r': Command not found.). На щастя, git може це зробити для вас, якщо виконаєте дві команди в кореневому каталозі вашого репозиторію:

sh
git config core.autocrlf false
git config core.eol lf

Якщо ви працюєте з цим інструментарієм в декількох репозиторіях, ви також можете встановити ці дві конфігурації глобально для вашого комп'ютера:

sh
git config --global ...

Це не рекомендується, оскільки це може вплинути на будь-які інші (непов'язані) випадки використання git на вашій Windows машині.

Біт виконання прав доступу Unix

Під Unix є прапорець в правах доступу кожного файлу, який вказує на те, чи дозволено файлу виконуватись. git під Cygwin підтримує і враховує цей біт (навіть якщо файлова система Windows NTFS не використовує його). Це часто призводить до того що git знаходить "хибнопозитивну" різницю в правах доступу. Вивід diff в результаті може виглядати так:

sh
diff --git ...
old mode 100644
new mode 100755

Ми рекомендуємо відключити глобально перевірку прав доступу у Windows, щоб уникнути проблем:

sh
# глобально відключити перевірку біту виконання для комп'ютера
git config --global core.fileMode false

Для наявних репозиторіїв, що мають цю проблему викликану локальною конфігурацією, додатково виконайте:

sh
# прибрати локальну конфігурацію, щоб застосувати глобальну
git config --unset core.filemode

# прибрати локальну конфігурацію для всіх підмодулів
git submodule foreach --recursive git config --unset core.filemode