AT模块头文件, 提供对接AT模组的能力  
更多...
#include <stdint.h>
#include "core_list.h"
#include "aiot_sysdep_api.h"
 
浏览源代码.
 | 
| enum   | aiot_at_option_t { AIOT_ATOPT_UART_TX_FUNC, 
AIOT_ATOPT_USER_DATA, 
AIOT_ATOPT_DEVICE, 
AIOT_ATOPT_MAX
 } | 
|   | AT组件配置选项  更多...
  | 
|   | 
| enum   | rsp_result_t { AT_RSP_SUCCESS, 
AT_RSP_WAITING, 
AT_RSP_FAILED
 } | 
|   | 
| enum   | core_at_link_status_t { CORE_AT_LINK_DISABLE = 0, 
CORE_AT_LINK_DISCONN = 1, 
CORE_AT_LINK_CONN = 2
 } | 
|   | 模组数据链路状态  更多...
  | 
|   | 
| enum   | core_ip_status_t {  
  IP_DEINIT, 
IP_CSQ_ERROR, 
IP_CARD_ERROR, 
IP_ERR_OTHER, 
 
  IP_SUCCESS
 
 } | 
|   | 
 | 
| int32_t  | aiot_at_init (void) | 
|   | 初始化AT组件  更多...
  | 
|   | 
| int32_t  | aiot_at_setopt (aiot_at_option_t opt, void *data) | 
|   | 配置AT组件, 主要为配置串口发送回调函数  更多...
  | 
|   | 
| int32_t  | aiot_at_bootstrap (void) | 
|   | 模组启动, 内部发送模组相关的AT命令已启动模组, 启动完成后, 模组将获取到IP地址  更多...
  | 
|   | 
| int32_t  | aiot_at_nwk_open (uint8_t *socket_id) | 
|   | 为对应的链路ID创建ringbuf资源  更多...
  | 
|   | 
| int32_t  | aiot_at_nwk_connect (uint8_t socket_id, const char *host, uint16_t port, uint32_t timeout) | 
|   | 内部会调用模组相关的AT命令, 通过串口发送TCP建连命令。可对接到core_sysdep_network_establish网络接口  更多...
  | 
|   | 
| int32_t  | aiot_at_nwk_send (uint8_t socket_id, const uint8_t *buffer, uint32_t len, uint32_t timeout) | 
|   | 内部会调用模组相关的AT命令, 通过串口发送TCP数据。可对接到core_sysdep_network_send网络接口  更多...
  | 
|   | 
| int32_t  | aiot_at_nwk_recv (uint8_t socket_id, uint8_t *buffer, uint32_t len, uint32_t timeout_ms) | 
|   | 内部会从对应的数据ringbu中读取网络数据, 可对接到core_sysdep_network_recv网络接口  更多...
  | 
|   | 
| int32_t  | aiot_at_nwk_close (uint8_t socket_id) | 
|   | 内部会调用模组相关的AT命令, 关闭连接链路。可对接到core_sysdep_network_deinit网络接口  更多...
  | 
|   | 
| int32_t  | aiot_at_hal_recv_handle (uint8_t *data, uint32_t size) | 
|   | 为AT组件提供串口数据  更多...
  | 
|   | 
| int32_t  | aiot_at_deinit (void) | 
|   | 反初始化AT组件  更多...
  | 
|   | 
| int32_t  | core_at_ip_status (core_ip_status_t status) | 
|   | 
| int32_t  | core_at_socket_status (uint32_t id, core_at_link_status_t status) | 
|   | 
AT模块头文件, 提供对接AT模组的能力 
- 日期
 - 2019-12-27
 
- 版权所有
 - Copyright (C) 2015-2018 Alibaba Group Holding Limited 
 
 
      
        
          | #define MODULE_NAME_AT   "AT" | 
        
      
 
 
      
        
          | #define STATE_AT_BASE   (-0x1000) | 
        
      
 
-0x1000~-0x10FF表达SDK在AT模块内的状态码 
 
 
      
        
          | #define STATE_AT_ALREADY_INITED   (-0x1003) | 
        
      
 
 
      
        
          | #define STATE_AT_NOT_INITED   (-0x1004) | 
        
      
 
 
      
        
          | #define STATE_AT_UART_TX_FUNC_MISSING   (-0x1005) | 
        
      
 
 
      
        
          | #define STATE_AT_GET_RSP_FAILED   (-0x1006) | 
        
      
 
 
      
        
          | #define STATE_AT_RINGBUF_OVERFLOW   (-0x1007) | 
        
      
 
 
      
        
          | #define STATE_AT_RX_TIMEOUT   (-0x1008) | 
        
      
 
 
      
        
          | #define STATE_AT_NO_AVAILABLE_LINK   (-0x1009) | 
        
      
 
 
      
        
          | #define STATE_AT_TX_TIMEOUT   (-0x100A) | 
        
      
 
 
      
        
          | #define STATE_AT_TX_ERROR   (-0x100B) | 
        
      
 
 
      
        
          | #define STATE_AT_RINGBUF_NO_DATA   (-0x100C) | 
        
      
 
 
      
        
          | #define STATE_AT_UART_TX_FUNC_NULL   (-0x100D) | 
        
      
 
 
      
        
          | #define STATE_AT_NO_DATA_SLOT   (-0x100F) | 
        
      
 
 
      
        
          | #define STATE_AT_LINK_IS_DISCONN   (-0x1010) | 
        
      
 
 
      
        
          | #define STATE_AT_UART_TX_FAILED   (-0x1011) | 
        
      
 
 
      
        
          | #define AIOT_AT_CMD_LEN_MAXIMUM   (128)       /* AT命令最大长度 */ | 
        
      
 
 
      
        
          | #define AIOT_AT_RSP_LEN_MAXIMUM   (128)       /* AT应答最大长度 */ | 
        
      
 
 
      
        
          | #define AIOT_AT_TX_TIMEOUT_DEFAULT   (10000)      /* UART默认发送超时时间 */ | 
        
      
 
 
      
        
          | #define AIOT_AT_RX_TIMEOUT_DEFAULT   (10000)      /* UART默认接受等待超时时间 */ | 
        
      
 
 
      
        
          | #define AIOT_AT_DATA_RB_SIZE_DEFAULT   (4096)       /* 内部网络数据接收缓冲区大小,用户可根据接收数据流量的大小调整 */ | 
        
      
 
 
      
        
          | #define AIOT_AT_RSP_RB_SIZE_DEFAULT   (4096)       /* 内部应答报文接受缓冲区大小,用户可根据接收数据流量的大小调整 */ | 
        
      
 
 
      
        
          | #define AIOT_AT_CMD_RETRY_TIME   (3)         /* AT命令发送重试最大次数 */ | 
        
      
 
 
      
        
          | #define AIOT_AT_RINGBUF_RETRY_INTERVAL   (5)     /* RINGBUF数据长度检查间隔时间 */ | 
        
      
 
 
      
        
          | #define AIOT_AT_SOCKET_NUM   (5)         /* 支持的数据链路数量 */ | 
        
      
 
 
      
        
          | #define AIOT_AT_MAX_PACKAGE_SIZE   (1460)      /* 一帧报文最大的数据长度*/ | 
        
      
 
 
      
        
          | #define AT_SOCKET_ID_START   (1) | 
        
      
 
 
      
        
          | typedef int32_t(* aiot_at_uart_tx_func_t) (const uint8_t *p_data, uint16_t len, uint32_t timeout) | 
        
      
 
串口发送回调函数定义 
- 参数
 - 
  
    | [in] | p_data |  | 
    | [in] | len |  | 
    | [in] | timeout |  | 
  
   
- 返回
 - int32_t 
 
- 返回值
 - 
  
    | length,实际发送的字节数 |  | 
    | 0,发送超时 |  | 
    | -1,发送失败 |  | 
  
   
 
 
接受到应答数据后的用户处理回调函数原型定义 
- 参数
 - 
  
  
 
- 返回
 - rsp_result_t 
 
 
 
      
        
          | typedef void(* at_urc_handler_t) (char *line) | 
        
      
 
接受到应答数据后的用户处理回调函数原型定义 
- 参数
 - 
  
  
 
- 返回
 - int32_t 
 
- 返回值
 - 
  
  
 
 
 
AT组件配置选项 
| 枚举值 | 
|---|
| AIOT_ATOPT_UART_TX_FUNC  | 
 | 
| AIOT_ATOPT_USER_DATA  | 
 | 
| AIOT_ATOPT_DEVICE  | 
 | 
| AIOT_ATOPT_MAX  | 
 | 
 
 
| 枚举值 | 
|---|
| AT_RSP_SUCCESS  | 
 | 
| AT_RSP_WAITING  | 
 | 
| AT_RSP_FAILED  | 
 | 
 
 
模组数据链路状态 
| 枚举值 | 
|---|
| CORE_AT_LINK_DISABLE  | 
 | 
| CORE_AT_LINK_DISCONN  | 
 | 
| CORE_AT_LINK_CONN  | 
 | 
 
 
| 枚举值 | 
|---|
| IP_DEINIT  | 
 | 
| IP_CSQ_ERROR  | 
 | 
| IP_CARD_ERROR  | 
 | 
| IP_ERR_OTHER  | 
 | 
| IP_SUCCESS  | 
 | 
 
 
      
        
          | int32_t aiot_at_init  | 
          ( | 
          void  | 
           | ) | 
           | 
        
      
 
初始化AT组件 
- 返回
 - int32_t 
 
- 返回值
 - 
  
  
 
AT moduel API start 
 
 
配置AT组件, 主要为配置串口发送回调函数 
- 参数
 - 
  
  
 
- 返回
 - int32_t 
 
- 返回值
 - 
  
  
 
 
 
      
        
          | int32_t aiot_at_bootstrap  | 
          ( | 
          void  | 
           | ) | 
           | 
        
      
 
模组启动, 内部发送模组相关的AT命令已启动模组, 启动完成后, 模组将获取到IP地址 
- 返回
 - int32_t 
 
- 返回值
 - 
  
  
 
 
 
      
        
          | int32_t aiot_at_nwk_open  | 
          ( | 
          uint8_t *  | 
          socket_id | ) | 
           | 
        
      
 
为对应的链路ID创建ringbuf资源 
- 参数
 - 
  
  
 
- 返回
 - int32_t 
 
- 返回值
 - 
  
  
 
 
 
      
        
          | int32_t aiot_at_nwk_connect  | 
          ( | 
          uint8_t  | 
          socket_id,  | 
        
        
           | 
           | 
          const char *  | 
          host,  | 
        
        
           | 
           | 
          uint16_t  | 
          port,  | 
        
        
           | 
           | 
          uint32_t  | 
          timeout  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
内部会调用模组相关的AT命令, 通过串口发送TCP建连命令。可对接到core_sysdep_network_establish网络接口 
- 参数
 - 
  
    | socket_id | 链路ID  | 
    | host | 主机名  | 
    | port | 端口号  | 
    | timeout | 建连超时时间 | 
  
   
- 返回
 - int32_t 
 
- 返回值
 - 
  
  
 
 
 
      
        
          | int32_t aiot_at_nwk_send  | 
          ( | 
          uint8_t  | 
          socket_id,  | 
        
        
           | 
           | 
          const uint8_t *  | 
          buffer,  | 
        
        
           | 
           | 
          uint32_t  | 
          len,  | 
        
        
           | 
           | 
          uint32_t  | 
          timeout  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
内部会调用模组相关的AT命令, 通过串口发送TCP数据。可对接到core_sysdep_network_send网络接口 
- 参数
 - 
  
    | socket_id | 链路ID  | 
    | buffer | 指向外部数据缓冲区的指针  | 
    | len | 数据长度  | 
    | timeout | 发送超时时间 | 
  
   
- 返回
 - int32_t 
 
- 返回值
 - 
  
  
 
 
 
      
        
          | int32_t aiot_at_nwk_recv  | 
          ( | 
          uint8_t  | 
          socket_id,  | 
        
        
           | 
           | 
          uint8_t *  | 
          buffer,  | 
        
        
           | 
           | 
          uint32_t  | 
          len,  | 
        
        
           | 
           | 
          uint32_t  | 
          timeout_ms  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
内部会从对应的数据ringbu中读取网络数据, 可对接到core_sysdep_network_recv网络接口 
- 参数
 - 
  
    | socket_id | 链路ID  | 
    | buffer | 指向外部数据缓冲区的指针  | 
    | len | 外部数据缓冲区大小  | 
    | timeout_ms | 接收超时时间 | 
  
   
- 返回
 - int32_t 
 
- 返回值
 - 
  
  
 
 
 
      
        
          | int32_t aiot_at_nwk_close  | 
          ( | 
          uint8_t  | 
          socket_id | ) | 
           | 
        
      
 
内部会调用模组相关的AT命令, 关闭连接链路。可对接到core_sysdep_network_deinit网络接口 
- 参数
 - 
  
  
 
- 返回
 - int32_t 
 
- 返回值
 - 
  
  
 
 
 
      
        
          | int32_t aiot_at_hal_recv_handle  | 
          ( | 
          uint8_t *  | 
          data,  | 
        
        
           | 
           | 
          uint32_t  | 
          size  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
为AT组件提供串口数据 
- 参数
 - 
  
  
 
- 返回
 - int32_t 
 
- 返回值
 - 
  
    | >=0 | 操作成功,返回已经消费掉的数据  | 
    | <0 | 操作失败  | 
  
   
 
 
      
        
          | int32_t aiot_at_deinit  | 
          ( | 
          void  | 
           | ) | 
           |