ML307R OpenCPU丨APP_DEMO_SDK使用介绍

ML307R_APP_DEMO_SDK是在ML307R_OpenCPU_Standard_SDK标准代码基础上,新增了面向用户APP层的demo示例,区别于标准代码中的examples的示例代码,app_demo里已对用户常用参数进行提取,用户简单修改参数后即可实现联网自动化、数据透传、FOTA等功能,且各功能均可独立自动运行。

下图ML307R_APP_DEMO_SDK使用的常见流程及相关函数接口介绍

一、代码框架

本demo相关文件均存放在SDK的app_demo文件夹中,文件包含:

①app_demo_custom ——APP层源代码

②SConscript ——编译脚本

③README ——说明文件

④使用指南

1.1 app_demo_custom源代码

APP层源代码,包含有app_demo_midwareincsrc文件。

app_demo_midware:demo中使用的中间层文件,将ML307R 原生cm开头的函数进行抽象和封装,实现包含:asocket、GPIO、LED、Log日志、网络模块、MQTT、RTC、串口等常用功能,demo基于该中间件进行开发,用户同时也可以参考和使用。

src:demo的.c源文件,目前包含:main主函数、SOCKET、MQTT、OS、FOTA 5项功能,各功能如下:

功能

测试函数名

函数功能

main主函数

app_demo_main_task

完成初始化、开启网络自维护

SOCKET

app_asocket_demo_func

自动完成SOCKET连接搭建一路透传通路

MQTT

app_mqtt_demo_func

自动完成MQTT连接搭建一路透传通路

OS操作系统

app_os_demo_func

操作系统,会开启信号量、定时器、消息队列

FOTA

app_http_fota_demo_func

可完成一次FOTA升级过程

inc:demo的.h源文件,和.c源文件相对应。包含c文件使用的函数库以及对外部开放的函数声明。

 

1.2 SConscript编译脚本

SConscript脚本中包含了以上源文件的编译规则,需要将需要编译的文件进行添加,本SDK中已添加完成。注意:建议.c代码都放入到flash_source_files中运行。

二、开始测试

2.1 测试准备

步骤1:编译需预安装python3.7以上版本,安装完python后,打开命令行执行pip install scons安装scons工具。详细编译环境搭建请参考《ML307R_SDK开发指导手册》

步骤2:以测试socket功能为例,将main主函数测试变量区中的宏定义APP_SOCKET_DEMO_TEST设置为1,其余设置为0,建议每次只打开测试一个功能。

步骤3:在SDK根目录下,先执行scons -c清除历史编译信息,再执行相应编译命令启动编译。

编译命令

测试函数名

        scons

编译custom用户层代码

scons -c

清除编译历史编译信息

scons demo=y

编译标准代码中的demo即examples中的demo

scons app_demo=y

编译app_demo中的代码,即本文提到的demo

步骤4:scons app_demo=y执行编译,编译成功后固件在out/image/目录下。

步骤5:使用aboot工具下载固件,具体参考《维护诊断工具用户手册》

步骤6:例如使用ML307R开发板进行测试,需插入可正常使用4G物联卡,接好电源、两路串口和天线,在电脑串口助手工具打开相关串口,再执行上电开机操作。

2.2 测试结果

1、使用串口工具连接模组DBG 口打印日志,打印相关开机信息即说明固件下载成功,demo开始运行。

2、使用串口工具连接UART0,发现服务器下发了117.136.30.2:54244 CONNECTED OK  说明TCP连接完成。

3、查看LOG部分关键字 出现HAL_SOCKET_MSG_CONNECTED 再次确认了TCP已连接完成。

三、搭建用户工程

3.1搭建用户工程

前文已经介绍了如何运行app_demo,本章节将介绍如何添加用户自己的工程,这里提供两种方法:

方法一:基于app_demo_custom创建用户工程

基于app_demo_custom中添加自己的文件,因为app_demo_custom已经添加好了app_demo_midware中间件,ML307R的所有cm接口、中间件接口都可以使用。步骤如下:
   ①创建自己的c文件和h文件,注意文件同名,以test.c为例子如下

方法二:基于custom创建用户工程

①可见custom是一个空的工程,首先我们需要将app_demo_midware中的所有源码拷贝至该路径下。

②根据需求添加自己的.c和.h  以添加app_demo_socket.c和test.c为例

3.2修改变量

每个demo开设了用户参数变量区,用户可根据自己的需求进行参数修改。

SOCKET

MQTT

FOTA

如有其他修改需求,请在充分理解代码的基础上,修改app_demo_xxxx的代码,而非修改app_demo_midware的代码。

  • 常见问题

问1:app_demo与SDK的examples程序有什么区别?

答:examples 中的demo属于标准SDK中的demo,测试方法主要是通过输入串口命令进行单一功能调试。

app_demo中的demo是标准SDK demo的补充,更面向于用户层的demo,通过简单修改即可实现DTU设备透传功能。

建议用户结合两种demo进行参考和开发。

问2:编译无法通过问题

答:①确认scons是否安装成功

cmd命令中输入scons -v如果能读取到版本 则说明安装无误,如果没有请按照《ML307R_SDK开发指导手册》进行编译环境搭建。

②提示缺少某某文件

首先确认该文件是否存在,其次查看SConscript是否有加入该文件的编译,最后查看路径是否正确,常见问题为多一层路径或少一层路径。

问3:现有功能与未来功能

现有功能

未来新增功能

main主函数

文件系统读写

SOCKET

IIC器件读写

MQTT

SPI器件读写

OS操作系统

休眠功能

FOTA

DUMP死机排查

后续我们将以app_demo方式开放更多面向用户侧的demo程序,欢迎客户体验及提出建议。

  • 28
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值