文档首页 > > SDK参考> SDK开发指南> LiteOS端云互通组件实战演练> (参考)端云互通组件无线接入实例> AT框架介绍

AT框架介绍

分享
更新时间: 2019/06/25 GMT+08:00

不论使用ESP8266还是SIM900A,都可以使用AT+UART方式接入,主要的差别在于具体的AT指令,但很多情况下都是类似的,LiteOS SDK端云互通组件提供了一种AT框架,也可以称之为AT模板,方便用户移植不同串口通信模块(需要支持TCP/IP协议栈),AT框架的方案如下图所示。

图1 AT框架方案结构图

结构图中AT Socket用于适配Atiny Socket接口,类似posix socket,AT Send用于调用at_cmd发送AT命令,AT Recv用于AT Analyse Task,通过LiteOS消息队列Post消息到用户接收任务。AT Analyse Task的主要功能是解析来自串口的消息,包括用户数据和命令的响应,串口USART主要是在中断或者DMA模式下接收数据,AT API Register是提供设备模块注册的API函数。

结构图中深蓝色的部分是AT框架公共部分代码,开发者不需要修改;浅蓝色的部分是设备相关代码,开发者需要编写相应的设备代码,根据at_api.h文件的定义,开发者只要实现以下函数接口即可:

typedef struct { 
     int32_t  (*init)(void);  /*初始化,初始化串口、IP网络等*/ 
     int8_t (*get_localmac)(int8_t *mac);/*获取本地MAC*/ 
     int8_t (*get_localip)(int8_t *ip, int8_t * gw, int8_t * mask);/*获取本地IP*/ 
     /*建立TCP或者UDP连接*/ 
     int32_t  (*connect)(const int8_t * host, const int8_t *port, int32_t proto); 
     /*发送,当命令发送后,如果超过一定的时间没收到应答,要返回错误*/ 
     int32_t  (*send)(int32_t id , const uint8_t  *buf, uint32_t len); 
     int32_t  (*recv_timeout)(int32_t id , int8_t  *buf, uint32_t len, int32_t timeout); 
     int32_t  (*recv)(int32_t id , int8_t  *buf, uint32_t len); 
      
     int32_t  (*close)(int32_t id);/*关闭连接*/ 
     int32_t  (*recv_cb)(int32_t id);/*收到各种事件处理,暂不实现 */ 
     int32_t  (*deinit)(void); 
 }at_adaptor_api;

at_api.h位于 LiteOS/include/at_frame。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区