0x06 LiteOS_Lab仓库组件详解--AT框架总结

举报
樊心昊 发表于 2020/06/22 15:25:21 2020/06/22
【摘要】 摘要:由于前面几篇文章都属于源码级解析,本篇文章带领大家实践使用整个AT框架,将前面的知识串联在一起讲解,让大家能真正将AT框架运用到实际开发当中。 初始化:我们的初始化流程和上图一致,由下到上进行初始化。1. 在Uart.c文件实现将uart注册进driver层中的函数并调用宏定义等待初始化driver层时自动注册: 2. 调用driver层中的初始化函数,初始化d...

摘要:由于前面几篇文章都属于源码级解析,本篇文章带领大家实践使用整个AT框架,将前面的知识串联在一起讲解,让大家能真正将AT框架运用到实际开发当中。

 

初始化:

image.png

我们的初始化流程和上图一致,由下到上进行初始化。

1.     在Uart.c文件实现将uart注册进driver层中的函数并调用宏定义等待初始化driver层时自动注册:

    image.png

 

2.     调用driver层中的初始化函数,初始化driver层并自动注册之前用OSDRIV_EXPORT注册的设备。

image.png

现在at层就可以使用driver.h中提供的设备初始化、读、写等函数了

 

3.     调用at层中的初始化函数,该初始化中创建了一个用于接收数据的任务,并在任务的一开始就调用driver层中的设备初始化函数对串口设备进行了初始化,然后循环检测串口设备中是否有数据,并判断这些数据是否是我们需要的。

image.png

4.     调用at_oobregister将我们关心的关键词和其对应的处理函数注册进at框架,只要at框架中的接收任务发现串口设备中出现了该关键词,就会自动调用相应的处理函数。

image.png

当nbiot收到CDP服务器(BC28模块+LWM2M协议)下发的数据就会给单片机发送一条以“\r\n+NNMI:“字符串开头,数据为+NNMI:x,str的异步消息,告诉单片机:“我收到了一条服务器下发的数据,第x号网络接口,内容为str字符串,你准备来解析吧。”at框架中的接收任务就会自动调用刚才我们注册好的”boudica150_rcvdel函数进行解析。”

 

我做了一个实验,通过华为设备接入服务中的“在线调试”,下发一个数据为10进制的4660,也就是16进制的0x1234,实验结果如下图所示:

这是在线调试下发命令的截图:

image.png

这是BC28收到数据的截图:

image.png

使用AT框架中提供的函数来收发AT指令:

image.png



PS:到这里AT框架就算讲解完毕了,大家有啥问题欢迎留言,希望大家能享受组件化编程带来的乐趣!


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。