[修改]:添加at_client_wait_connect

This commit is contained in:
zylx 2018-08-09 13:56:41 +08:00
parent 5768d3692d
commit 53f0ec07d0
2 changed files with 48 additions and 13 deletions

View File

@ -34,6 +34,7 @@
#ifndef AT_DEVICE_NOT_SELECTED #ifndef AT_DEVICE_NOT_SELECTED
#define ESP8266_MODULE_SEND_MAX_SIZE 2048 #define ESP8266_MODULE_SEND_MAX_SIZE 2048
#define ESP8266_WAIT_CONNECT_TIME 5000
/* set real event by current socket and current state */ /* set real event by current socket and current state */
#define SET_EVENT(socket, event) (((socket + 1) << 16) | (event)) #define SET_EVENT(socket, event) (((socket + 1) << 16) | (event))
@ -557,20 +558,29 @@ int at_client_port_init(void)
if (at_exec_cmd(at_resp_set_info(resp, 256, 0, rt_tick_from_millisecond(5000)), cmd) < 0) \ if (at_exec_cmd(at_resp_set_info(resp, 256, 0, rt_tick_from_millisecond(5000)), cmd) < 0) \
{ \ { \
LOG_E("RT AT send commands(%s) error!", cmd); \ LOG_E("RT AT send commands(%s) error!", cmd); \
return -1; \ result = -RT_ERROR; \
goto __exit; \
} \ } \
} while(0); \ } while(0); \
static int esp8266_net_init(void) static int esp8266_net_init(void)
{ {
at_response_t resp = RT_NULL; at_response_t resp = RT_NULL;
rt_err_t result = RT_EOK;
rt_size_t i; rt_size_t i;
resp = at_create_resp(128, 0, rt_tick_from_millisecond(5000)); resp = at_create_resp(128, 0, rt_tick_from_millisecond(5000));
if (!resp) if (!resp)
{ {
LOG_E("No memory for response structure!"); LOG_E("No memory for response structure!");
return -RT_ENOMEM; result = -RT_ENOMEM;
goto __exit;
}
if (at_client_wait_connect(ESP8266_WAIT_CONNECT_TIME))
{
result = -RT_ETIMEOUT;
goto __exit;
} }
/* reset module */ /* reset module */
AT_SEND_CMD(resp, "AT+RST"); AT_SEND_CMD(resp, "AT+RST");
@ -592,17 +602,26 @@ static int esp8266_net_init(void)
AT_DEVICE_WIFI_SSID, AT_DEVICE_WIFI_PASSWORD) != RT_EOK) AT_DEVICE_WIFI_SSID, AT_DEVICE_WIFI_PASSWORD) != RT_EOK)
{ {
LOG_E("AT network initialize failed, check ssid(%s) and password(%s).", AT_DEVICE_WIFI_SSID, AT_DEVICE_WIFI_PASSWORD); LOG_E("AT network initialize failed, check ssid(%s) and password(%s).", AT_DEVICE_WIFI_SSID, AT_DEVICE_WIFI_PASSWORD);
return -RT_ERROR; result = -RT_ERROR;
goto __exit;
} }
AT_SEND_CMD(resp, "AT+CIPMUX=1"); AT_SEND_CMD(resp, "AT+CIPMUX=1");
__exit:
if (resp) if (resp)
{ {
at_delete_resp(resp); at_delete_resp(resp);
} }
LOG_I("AT network initialize success!"); if (!result)
{
LOG_I("AT network initialize success!");
}
else
{
LOG_E("AT network initialize failed (%d)!", result);
}
return RT_EOK; return RT_EOK;
} }

View File

@ -34,6 +34,7 @@
#ifndef AT_DEVICE_NOT_SELECTED #ifndef AT_DEVICE_NOT_SELECTED
#define M26_MODULE_SEND_MAX_SIZE 1460 #define M26_MODULE_SEND_MAX_SIZE 1460
#define M26_WAIT_CONNECT_TIME 5000
/* set real event by current socket and current state */ /* set real event by current socket and current state */
#define SET_EVENT(socket, event) (((socket + 1) << 16) | (event)) #define SET_EVENT(socket, event) (((socket + 1) << 16) | (event))
@ -641,7 +642,8 @@ int at_client_port_init(void)
{ \ { \
if (at_exec_cmd(at_resp_set_info(resp, 128, resp_line, rt_tick_from_millisecond(timeout)), cmd) < 0) \ if (at_exec_cmd(at_resp_set_info(resp, 128, resp_line, rt_tick_from_millisecond(timeout)), cmd) < 0) \
{ \ { \
return -RT_ERROR; \ result = -RT_ERROR; \
goto __exit; \
} \ } \
} while(0); \ } while(0); \
@ -656,17 +658,19 @@ int m26_net_init(void)
at_response_t resp = RT_NULL; at_response_t resp = RT_NULL;
int i, qimux, qimode; int i, qimux, qimode;
char parsed_data[10]; char parsed_data[10];
rt_err_t result = RT_EOK;
const char *line_buffer = RT_NULL; const char *line_buffer = RT_NULL;
resp = at_create_resp(128, 0, rt_tick_from_millisecond(300)); resp = at_create_resp(128, 0, rt_tick_from_millisecond(300));
if (!resp) if (!resp)
{ {
LOG_E("No memory for response structure!"); LOG_E("No memory for response structure!");
return -RT_ENOMEM; result = -RT_ENOMEM;
goto __exit;
} }
LOG_D("Start initializing the M26/MC20 module"); LOG_D("Start initializing the M26/MC20 module");
/* wait M26 startup finish */ /* wait M26 startup finish */
at_client_wait_connect(5000); at_client_wait_connect(M26_WAIT_CONNECT_TIME);
/* disable echo */ /* disable echo */
AT_SEND_CMD(resp, 0, 300, "ATE0"); AT_SEND_CMD(resp, 0, 300, "ATE0");
@ -692,7 +696,8 @@ int m26_net_init(void)
if (i == CPIN_RETRY) if (i == CPIN_RETRY)
{ {
LOG_E("SIM card detection failed!"); LOG_E("SIM card detection failed!");
return -RT_ERROR; result = -RT_ERROR;
goto __exit;
} }
/* waiting for dirty data to be digested */ /* waiting for dirty data to be digested */
rt_thread_delay(rt_tick_from_millisecond(10)); rt_thread_delay(rt_tick_from_millisecond(10));
@ -711,7 +716,8 @@ int m26_net_init(void)
if (i == CSQ_RETRY) if (i == CSQ_RETRY)
{ {
LOG_E("Signal strength check failed (%s)", parsed_data); LOG_E("Signal strength check failed (%s)", parsed_data);
return -RT_ERROR; result = -RT_ERROR;
goto __exit;
} }
/* check the GSM network is registered */ /* check the GSM network is registered */
for (i = 0; i < CREG_RETRY; i++) for (i = 0; i < CREG_RETRY; i++)
@ -728,7 +734,8 @@ int m26_net_init(void)
if (i == CREG_RETRY) if (i == CREG_RETRY)
{ {
LOG_E("The GSM network is register failed (%s)", parsed_data); LOG_E("The GSM network is register failed (%s)", parsed_data);
return -RT_ERROR; result = -RT_ERROR;
goto __exit;
} }
/* check the GPRS network is registered */ /* check the GPRS network is registered */
for (i = 0; i < CGREG_RETRY; i++) for (i = 0; i < CGREG_RETRY; i++)
@ -745,7 +752,8 @@ int m26_net_init(void)
if (i == CGREG_RETRY) if (i == CGREG_RETRY)
{ {
LOG_E("The GPRS network is register failed (%s)", parsed_data); LOG_E("The GPRS network is register failed (%s)", parsed_data);
return -RT_ERROR; result = -RT_ERROR;
goto __exit;
} }
AT_SEND_CMD(resp, 0, 300, "AT+QIFGCNT=0"); AT_SEND_CMD(resp, 0, 300, "AT+QIFGCNT=0");
@ -776,14 +784,22 @@ int m26_net_init(void)
AT_SEND_CMD(resp, 2, 300, "AT+QILOCIP"); AT_SEND_CMD(resp, 2, 300, "AT+QILOCIP");
__exit:
if (resp) if (resp)
{ {
at_delete_resp(resp); at_delete_resp(resp);
} }
LOG_I("AT network initialize success!"); if (!result)
{
LOG_I("AT network initialize success!");
}
else
{
LOG_E("AT network initialize failed (%d)!", result);
}
return RT_EOK; return result;
} }
int m26_ping(int argc, char **argv) int m26_ping(int argc, char **argv)