Я занят приложением типа IoT, для которого требуется физическое оборудование, подключенное через последовательный порт. Мы решили использовать архитектуру Azure IoT Edge для развертывания приложения на локальном ПК. Это помогает нашему циклу DevOps.
Для использования Azure IoT Edge требуется, чтобы наше приложение было контейнеризировано, поэтому предоставление доступа к последовательным портам может быть довольно сложной задачей. ПК 64-разрядный, работает под управлением Ubuntu 20.04 и имеет несколько портов USB, последовательный порт и порт LAN, к которым мы можем подключать устройства.
Мы последовали за этим великим туториал от Losant чтобы настроить это.
Наши варианты создания контейнера выглядят так:
{
"Конфигурация хоста": {
«Привязки портов»: {
"80/TCP": [
{
"ХостПорт": "5000"
}
]
},
«Привилегированный»: правда,
"Тома": {
"/dev": {}
}
}
}
Мы сопоставляем порт 80 нашего приложения с портом 5000 на ПК и устанавливаем тег Volumes и Privileged, как это предлагается в ссылке на руководство выше.
Само устройство подключено через USB, поэтому нам пришлось установить драйвер на Ubuntu 20.04 из веб-сайт FTDI.
Мой вопрос:
В некоторых случаях наше приложение найдет последовательный порт (tty/USB0), но в большинстве случаев нет. Если мы выключаем компьютер с подключенным устройством, приложение обычно находит устройство. Как мы можем изменить настройку ПК/настройку докера/настройку приложения, чтобы он всегда находил устройство?
ПРИМЕЧАНИЕ. Это дублирование этот вопрос на StackOverflow, так как я не был уверен, относится ли вопрос к этому или сюда.