Одноплатный компьютер должен работать под управлением дистрибутива Debian или Ubuntu, Linux. Для удаленного доступа необходимо установить OpenSSH сервер и задать определенные настройки. В качестве терминала для удаленного доступа можно использовать MobaXterm. Все последующие действия выполняются на одноплатном компьютере.
- Если пакет
sudoне установлен, то установите данный пакет от имени пользователяroot, с помощью команд:
apt-get update
apt-get install -y sudo- Для установки OpenSSH сервера и настройки доступа выполните следующие команды:
sudo apt-get update
sudo apt-get install -y openssh-server mc
sudo mcedit /etc/ssh/sshd_config- В открывшемся редакторе задайте следующие параметры:
PermitRootLogin yes
PasswordAuthentication yesОстальные необходимые параметры добавятся автоматически при первом подключении к устройству, используя расширение.
-
Затем сохраните изменения F2 и выйдите из редактора F10.
-
Перезапустите OpenSSH сервер для применения новых настроек:
sudo systemctl reload ssh
sudo systemctl status sshПоследняя команда выводит текущий статус службы.
Добавление устройства
Все настройки, включая приватные ключи, шаблоны, по умолчанию располагаются в папке профиля пользователя по пути %userprofile%\fastiot (расположение можно изменить в настройках). При первом подключении к устройству создается пара ключей: приватный и публичный. Приватный ключ копируется в папку %userprofile%\fastiot\settings\keys и используется для конфигурирования устройства и запуска удаленной отладки, публичный ключ хранится на самом удаленном устройстве.
Важный момент заключается в выборе учетной записи для создания на устройстве, которая будет использоваться для управления устройством и удаленной отладки. Первый вариант это учетная запись debugvscode (название можно изменить в настройках), второй вариант это root:
Выбор учетной записи для создания на устройстве
При выборе варианта debugvscode создаетcя файл настройки прав доступа 20-gpio-fastiot.rules к устройствам используя подсистему udev. Создается группа с названием iot, и в нее добавляется пользователь debugvscode. Затем группе iot выдаются права доступа к gpiochip, led и pwm. Далее для доступа к другим аппаратным интерфесам пользователь debugvscode добавляется в соответствующие группы с доступом такие как: video, i2c, spi, spidev, kmem, tty, dialout, input, audio, для доступа к I2C, SPI, и т.д.
В связи с тем, что тестирование выполнялось только на Armbian, возможно не все права доступа были добавлены. Поэтому, если возникнут проблемы с правами доступа к gpiochip, PWM и т.д., то выбирайте — root.
Для запуска .NET IoT приложении и выполнения удаленной отладки необходимо установить:
- Среду исполнения - .NET Runtime;
- Удаленный отладчик - .NET Debugger (vsdbg).
Минимальный набор пакетов для запуска .NET приложений
- Теперь необходимо создать проект. Для создания проекта необходимо нажать на кнопку Create project:
- Выбрать устройство для удаленной отладки:
- Выбрать шаблон для проекта:
- Задать название проекта:
- Указать папку сохранения проекта:
- Выбрать версию .NET framework:
- Доступные Launch для запуска удаленной отладки:
- Теперь переходим в
Run and Debug:
- Выбираем конфигурацию Launch для запуска:
- Запускаем проект на отладку меню
Run > Start Debugging:
- Пример вывода сообщений при удаленной отладки:
Примеры проектов с добавленной конфигурацией Launch (/.vscode/launch.json) и Tasks (/.vscode/tasks.json) располагаются в папке samples.
В папке с проектом будет размещен файл template.fastiot.yaml. Этот файл необходим для определения идентификатора шаблона при добавлении Launch. Если его удалить, то не будет точного определения шаблона из которого был сформирован проект. Из файла template.fastiot.yaml берется только строка идентификатор шаблона id: dotnet-console.
Конфигурации Launch (/.vscode/launch.json) и Tasks (/.vscode/tasks.json) содержат абсолютные пути к бинарным файлам, которые загружаются на устройство, например /cygdrive/d/Anton/Projects/Tests/DotnetConsoleAppRuntimeInfo/bin/Debug/net5.0/linux-arm/. В связи с этим, если вы изменяете путь к папке Applicationdatafolder в настройках или переименовываете/перемещаете папку с проектом, то пути становятся несуществующими. В этом случае необходимо перестроить (Rebuild) Launch. Выбрать необходимый Launch и затем вызвать контекстное меню, нажать на пункт меню Rebuild.
Вызов команды Rebuild
Некоторые опции Launch можно изменить из окна LAUCHS. Изменяются следующие опции:
- Console (terminal) - параметр определяет, в каком окне консоли (терминала) запускается конечное приложение. Значение по умолчанию:
internalConsole. Более подробно Console (terminal) window; - Just My Code - отладка только моего кода. Значение по умолчанию:
true. Более подробно How to disable the “Just My Code” setting on the VS Code debugger;














