1
1
/*
2
- * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
2
+ * SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD
3
3
*
4
4
* SPDX-License-Identifier: Apache-2.0
5
5
*/
@@ -18,14 +18,14 @@ using namespace esp_modem;
18
18
19
19
command_result net_open (CommandableIf *t)
20
20
{
21
- ESP_LOGV (TAG, " %s" , __func__ );
21
+ ESP_LOGV (TAG, " %s" , __func__);
22
22
std::string out;
23
23
auto ret = dce_commands::generic_get_string (t, " AT+QISTATE?\r " , out, 1000 );
24
24
if (ret != command_result::OK) {
25
25
return ret;
26
26
}
27
27
if (out.find (" +QISTATE: 0" ) != std::string::npos) {
28
- ESP_LOGV (TAG, " %s" , out.data () );
28
+ ESP_LOGV (TAG, " %s" , out.data ());
29
29
ESP_LOGD (TAG, " Already there" );
30
30
return command_result::FAIL;
31
31
} else if (out.empty ()) {
@@ -36,47 +36,47 @@ command_result net_open(CommandableIf *t)
36
36
37
37
command_result net_close (CommandableIf *t)
38
38
{
39
- ESP_LOGV (TAG, " %s" , __func__ );
39
+ ESP_LOGV (TAG, " %s" , __func__);
40
40
dce_commands::generic_command (t, " AT+QICLOSE=0\r " , " OK" , " ERROR" , 10000 );
41
41
esp_modem::Task::Delay (1000 );
42
42
return dce_commands::generic_command (t, " AT+QIDEACT=1\r " , " OK" , " ERROR" , 40000 );
43
43
}
44
44
45
45
command_result tcp_open (CommandableIf *t, const std::string &host, int port, int timeout)
46
46
{
47
- ESP_LOGV (TAG, " %s" , __func__ );
47
+ ESP_LOGV (TAG, " %s" , __func__);
48
48
std::string ip_open = R"( AT+QIOPEN=1,0,"TCP",")" + host + " \" ," + std::to_string (port) + " \r " ;
49
49
auto ret = dce_commands::generic_command (t, ip_open, " +QIOPEN: 0,0" , " ERROR" , timeout);
50
50
if (ret != command_result::OK) {
51
- ESP_LOGE (TAG, " %s Failed" , __func__ );
51
+ ESP_LOGE (TAG, " %s Failed" , __func__);
52
52
return ret;
53
53
}
54
54
return command_result::OK;
55
55
}
56
56
57
57
command_result tcp_close (CommandableIf *t)
58
58
{
59
- ESP_LOGV (TAG, " %s" , __func__ );
59
+ ESP_LOGV (TAG, " %s" , __func__);
60
60
return dce_commands::generic_command (t, " AT+QICLOSE=0\r " , " OK" , " ERROR" , 10000 );
61
61
}
62
62
63
63
command_result tcp_send (CommandableIf *t, uint8_t *data, size_t len)
64
64
{
65
- ESP_LOGV (TAG, " %s" , __func__ );
65
+ ESP_LOGV (TAG, " %s" , __func__);
66
66
assert (0 ); // Remove when fix done
67
67
return command_result::FAIL;
68
68
}
69
69
70
70
command_result tcp_recv (CommandableIf *t, uint8_t *data, size_t len, size_t &out_len)
71
71
{
72
- ESP_LOGV (TAG, " %s" , __func__ );
72
+ ESP_LOGV (TAG, " %s" , __func__);
73
73
assert (0 ); // Remove when fix done
74
74
return command_result::FAIL;
75
75
}
76
76
77
77
command_result get_ip (CommandableIf *t, std::string &ip)
78
78
{
79
- ESP_LOGV (TAG, " %s" , __func__ );
79
+ ESP_LOGV (TAG, " %s" , __func__);
80
80
std::string out;
81
81
auto ret = dce_commands::generic_get_string (t, " AT+QIACT?\r " , out, 5000 );
82
82
if (ret != command_result::OK) {
@@ -130,12 +130,15 @@ Responder::ret Responder::recv(uint8_t *data, size_t len)
130
130
auto *recv_data = (char *)data;
131
131
if (data_to_recv == 0 ) {
132
132
const std::string_view head = " +QIRD: " ;
133
- auto head_pos = std::search (recv_data, recv_data + len, head.begin (), head.end ());
134
- if (head_pos == recv_data + len) {
133
+ const std::string_view recv_data_view = std::string_view (recv_data, len);
134
+ auto head_pos_found = recv_data_view.find (head);
135
+ if (head_pos_found == std::string_view::npos) {
135
136
return ret::FAIL;
136
137
}
137
138
139
+ auto *head_pos = recv_data + head_pos_found;
138
140
auto next_nl = (char *)memchr (head_pos + head.size (), ' \n ' , MIN_MESSAGE);
141
+
139
142
if (next_nl == nullptr ) {
140
143
return ret::FAIL;
141
144
}
0 commit comments