【发布时间】:2016-01-11 09:53:22
【问题描述】:
我正在处理一个以前的工程师开始的项目。基本上,我们使用 WiFi 模块将数据从微控制器发送到我们的服务器。
到目前为止,我是这样解释代码的:
-模块创建一个AP,用户连接到该AP。
- 然后用户输入一个 IP/URL,允许他们选择他们的 WiFi 网络。
- 模块现在通过选定的网络进行通信。
- 模块每秒将一个套接字连接到我们的 TCP 服务器并发送一个数据包。
-如果服务器有一个命令给客户端,它会用一个命令包来响应。
我的困惑是试图理解数据包结构。
客户端发出的数据包以 [ESC][Z]['Connection ID'][0][0][0][6] 开头。我假设这与预定义的 UART 布局有关,但我以前从未使用过 UART。
然后,如果有命令,服务器会响应一个同样以 [ESC][Z]['Connection ID'][0][0][0][6] 开头的数据包。但是,客户端随后会使用一个以 [ESC][Z]['Connection ID'] 开头的数据包进行响应,然后是数据。
那么,我的数据包标题中的“0006”是什么?为什么客户端响应中不需要这些值?我假设“ESC”是向网络外部发送数据所必需的,并且“Z”是预定义的标头。但是,如果我错了,请纠正我!
【问题讨论】:
-
可以是字节长度吗? IE。不。数据字节以下。客户端对命令的响应看起来就像一个确认。
-
我真的不知道为什么我没有立即想到这一点,是的,下面的代码是序列号,它达到 6 个字节。 WiFi 模块的文档列出了一些 UART 命令,但没有解释数据,这就是我如此迷惑的原因。非常感谢!