WiFi屏厨电开发主要用到两个编辑器,VisualTFT和Visual Studio Code
│ main.lua # 主程序入口├─dciot_build├─Font # 自定义字体文件├─Images # 静态资源图片文件│ │ back_main.png│ ││ └─selector slides│ └─ ── an.png├─output # 固件输出目录│ │ DCIOT.PKG│ └─truefont└─Waves
准备素材
将设计图切图后,把素材保存到工程目录下的Images目录内备用
选择目标尺寸设备
填写功能定义
根据平台的功能定义,对应将名称和数据长度填入device_function对象中,私有协议配置将相应的协议配置写入protocol_config中
对接电控协议
找到main.lua中电控协议处理部分;重写ProcessUartCommand方法,实现对协议帧格式的解析;重写AnalyzeDeviceFunctionState方法,实现对数据域的解析并赋值到虚拟设备状态中;重写GetDeviceCommand方法,实现控制指令的生成
on_function_state_change事件处理方法,将状态变化的功能联动显示到界面上;在on_control_notify方法中,处理对应的控件交互事件,调用SendFunctionValues方法将设定值生成控制指令并发送给电控板开发者私有协议配置自动解析需要在main.lua中做相应配置,具体技巧如下,找到main.lua中的protocol_config变量,修改其定义
protocol_config = {endian_type=0, --大小端编码规则,0:小端,1:大端length=9, --帧长,变长填nil,同时指定长度所在的字节范围索引,length_start, length_endlength_offset=nil, --长度相对于整帧长度的偏移值,即length+length_offset=整帧长度check_type='crc16', --校验算法,sum,crc16...check_data_start=0, --校验数据起始位置,0开始check_data_end=-2, --校验数据结束位置,正数:第几个字节,0:末尾,负数:末尾往前几个字节,包含校验数据本身--帧结构描述,主要用于指令的生成,设置该项后,协议解析库会将数据分别解析设置到各个字段中--其中Data数据域部分定义和云端定义的虚拟设备不一致,请在此处重写定义structs={{name='head', length=1, value={0xA5}},{name="type", length=2},{name='data', length=4},{name='check', length=2}},--如果下行帧和上行帧格式有差异,请在此分开定义,否则不要定义任何值structs_response=nil}
WiFi屏和油烟机电控板
VisualTFT软件打开工程文件夹中扩展名为tftprj的文件,如图示
优化界面效果
修改UI效果,包括但不限于修改背景图,修改按钮背景图,如图示
扩展功能按钮
根据业务需求,扩展不同的功能按钮组件,例如油烟机项目中扩展三挡风按钮,灯光组件和电源按钮
编译烧录运行
项目UI搭建完成,编译工程,如图示
将工程目录下的output目录下的DCIOT.PKG文件复制到U盘根目录,将U盘插到板卡上重新上电等待烧录成功,成功后先拔掉U盘再重新上电,如图示
串口工具连接调试口, 波特率115200
Lua脚本调试,Visual Studio Code 安装Lua Debug插件,开启Test方法调试自己的方法,调试通过后注释Test方法。
合理规划控件编号,简化程序开发,建议分配规则