iot_vat.h 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. #ifndef __IOT_VAT_H__
  2. #define __IOT_VAT_H__
  3. #include "am_openat_vat.h"
  4. #include "iot_network.h"
  5. #define URC_QUEUE_COUNT 10 /* global urc count */
  6. #define AT_CMD_QUEUE_COUNT 50
  7. #define AT_CMD_EXECUTE_DELAY 10 /* 10 ms */
  8. #define AT_CMD_DELAY "DELAY:"
  9. #define AT_CMD_END "\x0d\x0a"
  10. #define AT_CMD_CR '\x0d'
  11. #define AT_CMD_LF '\x0a'
  12. #define STR_TO_INT(x) (x-'0') /*数字的char转换为int*/
  13. typedef enum
  14. {
  15. AT_RSP_ERROR = -1,
  16. AT_RSP_WAIT= 0,
  17. AT_RSP_CONTINUE = 1, /* 继续执行下一条AT队列里的命令 */
  18. AT_RSP_PAUSE= 2, /* 暂停执行AT队列命令 */
  19. AT_RSP_FINISH = 3, /* 停止执行AT队列命令 */
  20. AT_RSP_FUN_OVER = 4, /* 功能模块化AT命令组执行完毕,可以把本次运行的功能清除 */
  21. AT_RSP_STEP_MIN = 10,
  22. AT_RSP_STEP = 20, /* 继续执行本条AT命令 */
  23. AT_RSP_STEP_MAX = 30,
  24. }AtCmdRsp;
  25. typedef AtCmdRsp (*AtCmdRspCB)(char *pRspStr);
  26. typedef VOID (*UrcCB)(char *pUrcStr, u16 len);
  27. typedef VOID (*ResultNotifyCb)(BOOL result);
  28. typedef struct AtCmdEntityTag
  29. {
  30. char* p_atCmdStr; /*AT命令字符串*/
  31. u16 cmdLen; /*AT命令长度*/
  32. AtCmdRspCB p_atCmdCallBack; /*AT命令回调函数*/
  33. }AtCmdEntity;
  34. typedef struct UrcEntityTag
  35. {
  36. char* p_urcStr;
  37. UrcCB p_urcCallBack;
  38. }UrcEntity;
  39. typedef struct _CELL_INFO
  40. {
  41. u32 CellId; //cell ID
  42. u32 Lac; //LAC
  43. u16 Mcc; //MCC
  44. u16 Mnc; //MNC
  45. u16 rssi; //rssi
  46. }CELL_INFO;
  47. typedef struct _gsmloc_cellinfo
  48. {
  49. CELL_INFO Cellinfo[6];
  50. }gsmloc_cellinfo;
  51. /**
  52. * @defgroup iot_sdk_sys 系统接口
  53. * @{
  54. */
  55. /**@example vat/demo_vat.c
  56. * vat接口示例
  57. */
  58. /**用来设置虚拟AT通道的回调函数
  59. *@param vatHandle: 虚拟AT主动上报或者AT命令结果返回的回调函数
  60. *@return TRUE: 成功 FALSE: 失败
  61. **/
  62. BOOL iot_vat_init(PAT_MESSAGE vatHandle);
  63. /**用来发送AT命令
  64. *@param cmdStr: AT命令字符串
  65. *@param cmdLen: AT命令长度
  66. *@return TRUE: 成功 FALSE: 失败
  67. *@note 注意,AT命令字符串cmdStr中需要包含"\r\n"或者"\r"结尾
  68. **/
  69. BOOL iot_vat_send_cmd(UINT8* cmdStr, UINT16 cmdLen);
  70. /**用来批量发送AT命令
  71. *@param cmd: AT命令参数
  72. *@param cmd_count: AT命令个数
  73. *@return TRUE: 成功 FALSE: 失败
  74. **/
  75. BOOL iot_vat_push_cmd(AtCmdEntity cmd[],u8 cmd_count);
  76. /** @}*/
  77. #endif