Starting with ESP8266(6)–Simple TCP command server

ESP8266 Non-OS SDK开发探坑之六-简单的TCP控制服务

Starting with ESP8266 — Light a LED

Starting with ESP8266 (2)–Touch to control relay status-circuit design & electronic components selection

Starting with ESP8266(3) — Touch to control Relay-Programming & PCB design

Starting with ESP8266(4)–User parameters securely save & load on flash

Starting with ESP8266(5)–Simple HTTP configure server

Starting with ESP8266(6)–Simple TCP command server

这边承接上文,用esp8266 sdk 开发tcp server, 对接收到的请求进行处理。

建立连接和回调函数什么的没啥好说的

接收回调函数里主要完成对接收到的消息的解包。

其实TCP Server完全可以做成和web server一样用http协议进行通信,然后在数据域内填充POST请求参数,或者json数据。这里我再造造轮子,让大家有更多的选择。我简单定义了个交互协议(格式),就是首先两个字节的固定帧头,定义在User_config.h

我这里为了调试方便,用了ascii码的Az做帧头,实际用的时候并不理想,因为内容部分很容易出现Az字样,存在一定的问题。第3、4字节是长度字段,unsigned short,高字节在前,低字节在后的编码。后面即是数据。数据部分我懒得做json解析了,只支持固定的几个命令。

响应函数里封装了响应头,也是固定帧头和长度信息+数据域:

这篇比较简单,继续插播我打的板,这回实物到了:

AC-DC继电器控制版(智能开关)

  AC供电版散件

DC供电版

DC供电版散件

代码见:

ESP8266_NONOS_SDK-2.2.1-WebServer

https://github.com/atp798/BlogStraka/

 

发表评论