目的:远程亮灯、远程监视
设计:网页操作,通过服务器传到模块
上层:服务器、网页
动态网页:按钮s:
开灯关灯,查看图片
8个灯;图片隔一段时间自己更新
外观不要太low
服务器:
开两个端口:分别给http和tcp,二者隔离
类似中转站
下层:硬件从略
通讯格式:
·以“数据包”为单位
·一帧数据包 = “包头” + “包身”
·包头8个字节
1 终端号(连同一个服务器端口,有多个终端,分别有一个ID号,最多255个终端)
2 包类型
3~4 包长度(包括包头)
5~8 xx代号,如控制代号、数据包序号,等等
·包身是具体的数据
·不做包尾
·包类型:
控制(-2),仅服务器到终端
数据(-3),仅终端到服务器
回应(-4),仅终端到服务器
请求(-5),仅终端到服务器
·包长度:
包括包头这8个字节
是short int类型(不是字符串)
小端模式
·控制类包:
控制开关灯:灯号(0~255)、开(1)还是关(0)
·简例:
服务器发给1号终端,控制这个终端的1号灯开:
0x01 0xfc 0x0c 0x00 0x01 0x00 0x00 0x00 0x01 0x00 0x00 0x00
|---------------------包头---------------------|----------包身---------|
|-1号-|-类型-|---长度---|---控制代号(开灯)---|----------灯号---------|
·数据类包:
主要是终端传上去的图片信号,暂时传jpeg格式数据流
由于硬件限制,每个包最大2048字节。。。
·简例:
从1号终端发上去的jpeg流,分n多个包发:前n-1个包“类型”都填0xfe
·第一个包:
0x01 0xfb 0x00 0x08 0x01 0x00 0x00 0x00 0xff 0xd8 ...
|---------------------包头----------------------|-----包身---- ...
|-1号-|-类型-|长度(2048)|---数据包号(第1个)---|----JPEG流--- ...
·第n个包
0x01 0xfb 0x0a 0x00 0x?? 0x?? 0x?? 0x?? 0xff 0xd8 ...
|---------------------包头----------------------|---包身---|
|-1号-|-类型-|-长度(10)-|---数据包号(第n个)---|--JPEG流--|