mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2026-09-23 12:15:32 +08:00
[net][at] update AT component V1.3.0, change as follows:
- AT Socket feature supports multi-client connections; - Fix `send data error, current socket (0) state (0) is error` issue when the socket is closed; - Improve dirty data processing when AT device hard reset; - Improve `at_obj_set_urc_table()` fucntion, Support for setting multiple URC tables; - Improve RAW data print format;
This commit is contained in:
@@ -18,7 +18,7 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define AT_SW_VERSION "1.2.0"
|
||||
#define AT_SW_VERSION "1.3.0"
|
||||
|
||||
#define AT_CMD_NAME_LEN 16
|
||||
#define AT_END_MARK_LEN 4
|
||||
@@ -124,9 +124,11 @@ struct at_response
|
||||
{
|
||||
/* response buffer */
|
||||
char *buf;
|
||||
/* the maximum response buffer size */
|
||||
/* the maximum response buffer size, it set by `at_create_resp()` function */
|
||||
rt_size_t buf_size;
|
||||
/* the number of setting response lines
|
||||
/* the length of current response buffer */
|
||||
rt_size_t buf_len;
|
||||
/* the number of setting response lines, it set by `at_create_resp()` function
|
||||
* == 0: the response data will auto return when received 'OK' or 'ERROR'
|
||||
* != 0: the response data will return when received setting lines number data */
|
||||
rt_size_t line_num;
|
||||
@@ -138,15 +140,24 @@ struct at_response
|
||||
|
||||
typedef struct at_response *at_response_t;
|
||||
|
||||
struct at_client;
|
||||
|
||||
/* URC(Unsolicited Result Code) object, such as: 'RING', 'READY' request by AT server */
|
||||
struct at_urc
|
||||
{
|
||||
const char *cmd_prefix;
|
||||
const char *cmd_suffix;
|
||||
void (*func)(const char *data, rt_size_t size);
|
||||
void (*func)(struct at_client *client, const char *data, rt_size_t size);
|
||||
};
|
||||
typedef struct at_urc *at_urc_t;
|
||||
|
||||
struct at_urc_table
|
||||
{
|
||||
size_t urc_size;
|
||||
const struct at_urc *urc;
|
||||
};
|
||||
typedef struct at_urc *at_urc_table_t;
|
||||
|
||||
struct at_client
|
||||
{
|
||||
rt_device_t device;
|
||||
@@ -154,9 +165,12 @@ struct at_client
|
||||
at_status_t status;
|
||||
char end_sign;
|
||||
|
||||
char *recv_buffer;
|
||||
/* the current received one line data buffer */
|
||||
char *recv_line_buf;
|
||||
/* The length of the currently received one line data */
|
||||
rt_size_t recv_line_len;
|
||||
/* The maximum supported receive data length */
|
||||
rt_size_t recv_bufsz;
|
||||
rt_size_t cur_recv_len;
|
||||
rt_sem_t rx_notice;
|
||||
rt_mutex_t lock;
|
||||
|
||||
@@ -164,7 +178,7 @@ struct at_client
|
||||
rt_sem_t resp_notice;
|
||||
at_resp_status_t resp_status;
|
||||
|
||||
const struct at_urc *urc_table;
|
||||
struct at_urc_table *urc_table;
|
||||
rt_size_t urc_table_size;
|
||||
|
||||
rt_thread_t parser;
|
||||
@@ -207,7 +221,7 @@ rt_size_t at_client_obj_recv(at_client_t client, char *buf, rt_size_t size, rt_i
|
||||
void at_obj_set_end_sign(at_client_t client, char ch);
|
||||
|
||||
/* Set URC(Unsolicited Result Code) table */
|
||||
void at_obj_set_urc_table(at_client_t client, const struct at_urc * table, rt_size_t size);
|
||||
int at_obj_set_urc_table(at_client_t client, const struct at_urc * table, rt_size_t size);
|
||||
|
||||
/* AT client send commands to AT server and waiter response */
|
||||
int at_obj_exec_cmd(at_client_t client, at_response_t resp, const char *cmd_expr, ...);
|
||||
|
||||
Reference in New Issue
Block a user