74 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /****************************************************************************
 | |
| 
 | |
| Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
 | |
| 
 | |
| This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
 | |
| be copied by any method or incorporated into another program without
 | |
| the express written consent of Aerospace C.Power. This Information or any portion
 | |
| thereof remains the property of Aerospace C.Power. The Information contained herein
 | |
| is believed to be accurate and Aerospace C.Power assumes no responsibility or
 | |
| liability for its use in any way and conveys no license or title under
 | |
| any patent or copyright and makes no representation or warranty that this
 | |
| Information is free from patent or copyright infringement.
 | |
| 
 | |
| ****************************************************************************/
 | |
| 
 | |
| #ifndef _APP_ATCMD_PROC_H_
 | |
| #define _APP_ATCMD_PROC_H_
 | |
| 
 | |
| #include "app_types.h"
 | |
| 
 | |
| #ifdef __cplusplus
 | |
|   extern "C" {
 | |
| #endif
 | |
| 
 | |
| #define ATCMD_MAXARGS       20
 | |
| #define ATCMD_QUERY_FLAG    1
 | |
| 
 | |
| void app_atcmd_printf(const char *fmt, ...);
 | |
| 
 | |
| #define AT_RESP(fmt, ...)          app_atcmd_printf(fmt, ##__VA_ARGS__)
 | |
| #define AT_RESP_OK()               app_atcmd_printf("OK\r\n\r\n")
 | |
| #define AT_RESP_ERROR()            app_atcmd_printf("ERROR\r\n\r\n")
 | |
| #define AT_RESP_FAIL()             app_atcmd_printf("FAILED\r\n\r\n")
 | |
| #define AT_RESP_EQU(cmd,fmt, ...)  app_atcmd_printf("+"cmd":"fmt, ##__VA_ARGS__)
 | |
| 
 | |
| typedef enum {
 | |
|     AT_RET_OK   = 0x00,
 | |
|     AT_RET_ERR  = 0x01,
 | |
|     AT_RET_FAIL = 0x02,
 | |
|     AT_RET_NULL
 | |
| } AT_RET;
 | |
| 
 | |
| typedef AT_RET (*at_call_back_func)(uint16_t argc, char *argv[]);
 | |
| 
 | |
| typedef struct {
 | |
|     char *name;                   /* Command Name */
 | |
|     uint16_t maxargs;             /* Maximum Number of Arguments */
 | |
|     at_call_back_func test_cmd;   /* AT Test Command */
 | |
|     at_call_back_func query_cmd;  /* AT Query Command */
 | |
|     at_call_back_func setup_cmd;  /* AT Setup Command */
 | |
|     at_call_back_func exe_cmd;    /* AT EXE Command */
 | |
|     char *usage;                  /* Usage Message */
 | |
|     uint8_t is_remote;            /* Is Support Remote Command */
 | |
| } cmd_tbl_t;
 | |
| 
 | |
| typedef struct cmd_cb_node {
 | |
|     cmd_tbl_t cmd_cb;
 | |
|     struct cmd_cb_node *next;
 | |
| } cmd_cb_node_t;
 | |
| 
 | |
| app_source_e app_atcmd_get_source(void);
 | |
| uint16_t app_atcmd_get_echo(void);
 | |
| void app_atcmd_set_echo(uint16_t flag);
 | |
| void app_atcmd_data_parse(uint8_t *buffer, uint32_t buffer_len, app_source_e source);
 | |
| void app_atcmd_data_handle (uint16_t data_id, app_source_e data_src,
 | |
|     uint8_t *data, uint32_t data_len, void *info);
 | |
| 
 | |
| #ifdef __cplusplus
 | |
|  }
 | |
| #endif
 | |
| 
 | |
| #endif  /* _APP_ATCMD_PROC_H_ */
 | |
| 
 |