我们有自己的运行 MQX RTOS 的飞思卡尔 K60 微控制器板。我们可以通过 TCP POST(并且很可能是 GET)数据到 Xively,但是我们的数据计划是有限的,TCP 会重新发送并消耗大量开销。我听说 UDP 似乎是我们最好的解决方案。我们很难知道如何通过 UDP GET 和 POST 到 Xively。我们知道我们必须编写自己的层,有什么提示吗?此外,是否有任何技巧可以让 Xively 回复微控制器客户端?
问问题
346 次
1 回答
0
Xively 目前仅支持基于 TCP 的协议,它们是:
- HTTP 和 HTTPS
- WebSocket、Telnet 和 MQTT(每个都有和没有 TLS)
您应该首先尝试使用带有 CSV 数据格式的 HTTP,TCP 有效负载很可能最终会变得足够小。为此,您可以使用非常便携的Xively C 库。我检查了飞思卡尔应用笔记 AN3907,看起来 C 库的移植应该是微不足道的,因为"MQX RTCS 套接字与 Unix BSD 4.4 兼容"。因此,您应该能够使用现有的 POSIX 通信层,尽管您可能需要包含一些不同的标头并确保您已初始化堆栈以及使用静态 IP 或使用 DHCP 配置设备。要考虑发送的数据量,请参阅 RTCS 提供的 RX/TX 计数器。
但是,您可以选择使用 MQTT。您最终将发送更小的数据包。MQTT 的基本功能应该很快就会添加到 Xively C 库中。
如果你说你需要一种你称之为“ack back to our controller”的方式,那么 MQTT 就是你所需要的。这是一个发布/订阅协议,尽管您需要保持持久连接。
于 2013-09-13T15:48:57.653 回答