在lib目录下有三个文件夹分别为http_get、tcp_server和waveshare_epd,分别对应抓取http图片、TCP服务器、墨水屏相关的函数
目录:Cloud_RPI/lib/tcp_server
在tcp_sver.py中创建了一个tcp_sver类,使用过程中需要对其进行继承,并重构它的handle函数
- def handle(self)
每次有新客户端连接到服务器都会调用handle函数进行处理
- def Get_msg(self)
接收信息 | 返回信息 |
---|---|
'$'+数据+'#' | 数据 |
- def Send_cmd(self,cmd)
参数cmd为需要发送的字符串
需要发送内容 | 实际发送内容 |
---|---|
cmd | ‘;’+cmd+'/'+校验 |
- def Send_data(self,data)
参数data为需要发送的队列信息(包含地址长度等信息),具体可以参考用户手册第二章的数据格式部分,建议使用下方的flush_buffer函数
需要发送内容 | 实际发送内容 |
---|---|
data | 0x57+data+校验 |
可以将Send_cmd和Send_data这两函数理解为两种封包模式
- def set_size(self,w,h)
参数w为图像宽度,参数h为图像高度,用于确定需要发送的数据长度
因为我们以黑白墨水屏为例,一个像素点的数据长度为1bit,不难推出一下公式
数据总长=(图像宽度(w)/8)*图像高度(h) |
---|
- #ID含有中文时,可能导致进度条出现错位现象
- def flush_buffer(self,DATA)
参数DATA为需要为图像队列,图像队列可以由image对象经过下文中的getbuffer函数转化而来
发送数据 | 发送次数 | 单帧数据长度(len) | 发送内容 |
---|---|---|---|
DATA(图像队列) | 数据总长/单帧数据长度(len) | 1024 Byte(用户可定义) | 0x57+4 Byte addr+ 4 Byte len +1 Byte num + len Byte data+校验 |
每次传输数据长度不应超过1100Byte,否则将会导致数据丢失.
具体请参考用户手册第二章通讯协议
- def check_batter(self)
- def Shutdown(self)
- def Reboot(self)
目录:Cloud_RPI/lib/http_get
- def Get_PNG(Url,Name)
该函数会从Url参数对应的网址下载图片,将其以Name参数为文件名,存储到当前目录下。
目录:Cloud_RPI/lib/waveshare_epd
- def getbuffer(self, image):