涂鸦SDK软件移植步骤

1. 简介

sdk软件移植分为以下几个步骤: 步骤1: 编写MCU基础程序,移植SDK文件 步骤2: 确认protocol.h宏定义 步骤3: 移植protocol.c文件及函数调用 步骤4: DP上报下发函数完善调用

2. 软件移植详细说明

2.1 编写MCU基础程序,移植SDK文件

首先在原项目工程中,加入mcu_sdk文件夹中的.c.h文件,添加相应头文件引用路径。完成MCU相关外设初始化,包括:串口、外部中断(按键)、定时器(指示灯闪烁)等。

2.2 确认protocol.h宏定义

2.2.1 确认产品信息

PRODUCT_KEY 为产品PID宏定义,请确保代码与网站所列两者一致,该PID为每个产品的唯一标识。如果不是重新下载最新SDK开发包。 MCU_VER为软件版本,默认1.0.0 。若MCU需要OTA功能,OTA升级后需更新版本号。 CONFIG_MODE为配网方式,通常选择“默认配网”方式。

2.2.2 确认MCU是否需要支固件升级

如需要支持MCU固件OTA升级,请开启该宏(默认关闭)。

2.2.3 定义收发缓存

修改缓冲区大小,根据DP点定义,串口接收和发送缓存大小要大于数据最长的DP数据长度。默认大小24。需要做MCU OTA升级的用户缓存大小建议大于260字节。接收队列大小,若RAM紧张可以适当缩小。

2.2.4 定义模块工作方式(必要)

1)如果配网触发及指示由MCU控制(配网按键和LED接在MCU端),选择“模块和MCU配合处理”工作模式(常用),请保持 define 被注释状态
  1. 如果wifi指示灯和按键是接在wifi模块上的(模块自处理工作模式),那么请开启 “#ifdef WIFI_CONTROL_SELF_MODE” 然后根据实际的硬件连接,将指示灯和按键所连接的GPIO脚位填入下面两行

2.2.5 确认MCU是否需要支持校时功能

如需要支持校时功能,请开启该宏 并在Protocol.c文件内mcu_write_rtctime实现代码,mcu在wifi模块正确联网后可调用mcu_get_system_time()函数发起校时功能

2.2.6 确认是否开启WiFi产测功能(开启)

为保证最终量产效率及品质,建议开启该宏。具体产测功能实现,见步骤六产测部分。

2.3 移植protocol.c文件及函数调用

1、在需要使用到wifi相关文件的文件中include "wifi.h"文件。如main.c 2、在MCU外设初始化后调用mcu_api.c文件中的wifi_protocol_init()函数 3、将MCU串口单字节发送函数填入protocol.c文件中uart_transmit_output函数内,并删除#error。例如:
4、在串口接收中断服务函数里面调用mcu_api.c文件内的uart_receive_input函数,并将接收到的字符作为参数传入。例如:
5、单片机进入while循环后调用mcu_api.c文件内的wifi_uart_service()函数。 main.c中示例代码结构如下: include “wifi.h” … void main(void) { wifi_protocol_init(); … while(1) { wifi_uart_service(); … } } 注意: MCU必须在while中直接调用mcu_api.c 内的wifi_uart_service()函数程序正常初始化完成后,建议不进行关串口中断,如必须关中断,关中断时间必须短,关中断会引起串口数据包丢失,请勿在中断内调用上报函数。

2.4 DP点数据上报和下发函数处理

2.4.1 所有DP数据上报

在模块重启或者重新配网后,WiFi模块主动下发状态查询指令,此时需要MCU上报设备所有DP状态给WiFi模块进行同步
  1. 打开protocol.c 找到函数all_data_update(void)
  2. 把所有需要上报的DP点初值填入相应上报函数,为面板提供开机显示初值。 注意:用户请勿随意调用all_data_update()函数,该函数会在特定时间主动调用

2.4.2 单个DP数据上报

在某DP点状态发生变化时,mcu需要主动上报,APP会更新显示。上报格式为 mcu_dp_xxxx_updata(DPID_X,n),DPID_X为状态改变的DP点。all_data_update()内的函数,均可单独调用。 例如: mcu_dp_bool_update(DPID_SWITCH,1); //BOOL型数据上报 mcu_dp_value_update(DPID_TEMPER_SET,25); //VALUE型数据上报 mcu_dp_string_update(DPID_DAY,“1234”,4); //STRING型数据上报

2.4.3 DP数据下发处理函数

在protocol.c文件中,每个可下发的DP点,都有一个单独下发数据处理函数。格式为dp_download_xxx_handle(),xxx为可下发DP点。函数解析功能点之后,MCU需在相应位置完成逻辑控制。 以接收到开关DP数据为例: MCU_ON_switch1()和MCU_OFF_switch1()为MCU控制开关函数,完成具体动作。当设备状态在非APP控制下发生变化,MCU中需要调用mcu_dp_bool_update(DPID_SWITCH_1,switch_1);上传功能点(开关)状态实时状态,形成反馈,一般接收处理函数已经自动调用该函数;

软件移植步骤