Как общаться с помощью libcoap через USB в Linux?
Я хочу общаться через USB по протоколу COAP.
В настоящее время я планирую использовать libcoap, у него есть примеры, но он основан на сервере-клиенте UDP.
Что делать, если я хочу использовать USB?
Спасибо
1 ответ
Немного зависит от сценария развертывания, но в целом я бы рекомендовал использовать USB Ethernet между ними (CDC-ECM). Затем вы можете использовать CoAP через USB, как вы используете его через любое другое сетевое соединение. (Если вы используете RIOT для своего встраиваемого устройства и пример собираетеgcoap на плате с собственным USB-портом и включаете модуль usbus_cdc_ecm, вы получите это почти из коробки).
Большим недостатком этого подхода является то, что вы зависите от капризов сетевой настройки ОС хоста. Вероятно, он займет хотя бы локальный интерфейс IPv6, чтобы вы могли продолжать запросы к
fe80::addr:ess
(или даже использовать многоадресную рассылку по локальному каналу, чтобы найти ваше устройство), но здесь могут быть подводные камни.
Есть предложение которое будет выполнять CoAP через последовательный slipmux,порт , но а) я не знаю его реализации, и б) оно оставляет у вас аналогичные проблемы, связанные с тем, как убедиться, что ваше приложение действительно может найти правильный последовательный порт.
Было бы невозможно указать CoAP поверх пользовательских команд USB (которые затем будут приняты приложением), но должны быть действительно веские причины, чтобы не просто использовать сеть USB, чтобы оправдать их, и я не уверен, что важна сложность обеспечения правильной настройки NetworkManager.