我想使用 COAP 协议通过 USB 进行通信。
我目前正计划使用 libcoap,它有示例,但它基于 UDP 服务器客户端。
如果我想使用USB,必须做什么?
谢谢
取决于部署场景,但总的来说,我建议在中间使用 USB 以太网(CDC-ECM)。然后,您可以通过 USB 使用 CoAP,就像在任何其他网络连接上使用它一样。(如果您将RIOT用于您的嵌入式设备并在带有本机 USB 的板上构建gcoap示例并启用 usbus_cdc_ecm 模块,那么您几乎可以立即使用它)。
这种方法的一大缺点是您会受到主机操作系统网络设置的影响。可能它至少会占用 IPv6 链路本地接口,因此您可以继续请求fe80::addr:ess
(甚至使用链路本地多播来查找您的设备),但可能存在缺陷。
有一个slipmux提案可以通过串行执行CoAP,但是a)我不知道它的实现,并且b)它给您留下了类似的问题,即如何确保您的应用程序能够真正找到正确的串行端口。
通过自定义 USB 命令指定 CoAP 并非不可能(然后将由应用程序占用),但需要有充分的理由不只是通过 USB 网络来证明它们的合理性,我不确定确保正确设置 NetworkManager 的复杂性是否重要。