0x06 LiteOS_Lab仓库组件详解--AT框架总结
摘要:由于前面几篇文章都属于源码级解析,本篇文章带领大家实践使用整个AT框架,将前面的知识串联在一起讲解,让大家能真正将AT框架运用到实际开发当中。
初始化:
我们的初始化流程和上图一致,由下到上进行初始化。
1. 在Uart.c文件实现将uart注册进driver层中的函数并调用宏定义等待初始化driver层时自动注册:
2. 调用driver层中的初始化函数,初始化driver层并自动注册之前用OSDRIV_EXPORT注册的设备。
现在at层就可以使用driver.h中提供的设备初始化、读、写等函数了
3. 调用at层中的初始化函数,该初始化中创建了一个用于接收数据的任务,并在任务的一开始就调用driver层中的设备初始化函数对串口设备进行了初始化,然后循环检测串口设备中是否有数据,并判断这些数据是否是我们需要的。
4. 调用at_oobregister将我们关心的关键词和其对应的处理函数注册进at框架,只要at框架中的接收任务发现串口设备中出现了该关键词,就会自动调用相应的处理函数。
当nbiot收到CDP服务器(BC28模块+LWM2M协议)下发的数据就会给单片机发送一条以“\r\n+NNMI:“字符串开头,数据为+NNMI:x,str的异步消息,告诉单片机:“我收到了一条服务器下发的数据,第x号网络接口,内容为str字符串,你准备来解析吧。”at框架中的接收任务就会自动调用刚才我们注册好的”boudica150_rcvdel函数进行解析。”
我做了一个实验,通过华为设备接入服务中的“在线调试”,下发一个数据为10进制的4660,也就是16进制的0x1234,实验结果如下图所示:
这是在线调试下发命令的截图:
这是BC28收到数据的截图:
使用AT框架中提供的函数来收发AT指令
到这里AT框架就算讲解完毕了,大家有啥问题欢迎留言,希望大家能享受组件化编程带来的乐趣!
- 点赞
- 收藏
- 关注作者
评论(0)