1
1
#include " DFRobot_SIMclient.h"
2
2
3
- int DFRobot_SIMclient::checkSignalQuality (void )
3
+ int DFRobot_SIMclient::checkSignalQuality (void )
4
4
{
5
- char signalBuffer[26 ];
6
- int i = 0 ,j = 0 ,k = 0 ;
7
- char *signalQuality;
8
- SIMcore. cleanBuffer (signalBuffer,26 );
9
- SIMcore. send_cmd (" AT+CSQ\r\n " );
10
- SIMcore. readBuffer (signalBuffer,26 );
11
- if (NULL != (signalQuality = strstr (signalBuffer, " +CSQ:" ))){
12
- i = *(signalQuality + 6 ) - 48 ;
13
- j = *(signalQuality + 7 ) - 48 ;
14
- k = (i * 10 ) + j;
15
- }else {
16
- SIMcore. closeCommand ();
17
- return 0 ;
18
- }
19
- if ( k == 99 ){
20
- SIMcore. closeCommand ();
21
- return 0 ;
22
- }else {
23
- SIMcore. setCommandCounter (1 );
24
- return k;
25
- }
5
+ char signalBuffer[26 ];
6
+ int i = 0 ,j = 0 ,k = 0 ;
7
+ char *signalQuality;
8
+ cleanBuffer (signalBuffer, 26 );
9
+ sendCmd (" AT+CSQ\r\n " );
10
+ readBuffer (signalBuffer, 26 );
11
+ if (NULL != (signalQuality = strstr (signalBuffer, " +CSQ:" ))){
12
+ i = *(signalQuality + 6 ) - 48 ;
13
+ j = *(signalQuality + 7 ) - 48 ;
14
+ k = (i * 10 ) + j;
15
+ }else {
16
+ closeCommand ();
17
+ return 0 ;
18
+ }
19
+ if ( k == 99 ){
20
+ closeCommand ();
21
+ return 0 ;
22
+ }else {
23
+ setCommandCounter (1 );
24
+ return k;
25
+ }
26
26
}
27
27
28
- bool DFRobot_SIMclient::initNet (void )
28
+ bool DFRobot_SIMclient::initNet (void )
29
29
{
30
- int count = 0 ;
31
- while (count < 3 ){
32
- if (SIMcore.check_send_cmd (" AT+CGATT?\r\n " ," 1" )){
33
- break ;
34
- }else {
35
- count++;
36
- delay (500 );
37
- }
38
- }
39
- if (count == 3 ){
40
- SIMcore.closeCommand ();
41
- return false ;
30
+ int count = 0 ;
31
+ while (count < 3 ){
32
+ if (checkSendCmd (" AT+CGATT?\r\n " ," 1" )){
33
+ break ;
34
+ }else {
35
+ count++;
36
+ delay (500 );
42
37
}
43
- if (SIMcore.check_send_cmd (" AT+CSTT\r\n " ," OK" )){
44
- if (SIMcore.check_send_cmd (" AT+CIICR\r\n " ," OK" )){
45
- SIMcore.setCommandCounter (2 );
46
- return true ;
47
- }else {
48
- SIMcore.closeCommand ();
49
- return false ;
50
- }
38
+ }
39
+ if (count == 3 ){
40
+ closeCommand ();
41
+ return false ;
42
+ }
43
+ if (checkSendCmd (" AT+CSTT\r\n " ," OK" )){
44
+ if (checkSendCmd (" AT+CIICR\r\n " ," OK" )){
45
+ setCommandCounter (2 );
46
+ return true ;
51
47
}else {
52
- SIMcore. closeCommand ();
53
- return false ;
48
+ closeCommand ();
49
+ return false ;
54
50
}
51
+ }else {
52
+ closeCommand ();
53
+ return false ;
54
+ }
55
55
}
56
56
57
- bool DFRobot_SIMclient::connect (char *server,Protocol ptl,int port)
57
+ bool DFRobot_SIMclient::connect (char *server, eProtocol ptl, int port)
58
58
{
59
- if (SIMcore.getCommandCounter () == 2 ){
60
- char num[4 ];
61
- char serverIP[100 ];
62
- SIMcore.cleanBuffer (serverIP,100 );
63
- itoa (port, num, 10 );
64
- SIMcore.send_cmd (" AT+CIPSTART=\" " );
65
- if (ptl == TCP){
66
- SIMcore.send_cmd (" TCP\" ,\" " );
67
- }else if (ptl == UDP){
68
- SIMcore.send_cmd (" UDP\" ,\" " );
69
- }else {
70
- Serial.println (" Wrong protocol" );
71
- return false ;
59
+ if (getCommandCounter () == 2 ){
60
+ char num[4 ];
61
+ char serverIP[100 ];
62
+ cleanBuffer (serverIP,100 );
63
+ itoa (port, num, 10 );
64
+ sendCmd (" AT+CIPSTART=\" " );
65
+ if (ptl == eTCP){
66
+ sendCmd (" TCP\" ,\" " );
67
+ }else if (ptl == eUDP){
68
+ sendCmd (" UDP\" ,\" " );
69
+ }else {
70
+ return false ;
71
+ }
72
+ sendCmd (server);
73
+ sendCmd (" \" ," );
74
+ sendCmd (num);
75
+ sendCmd (" \r\n " );
76
+ while (1 ){
77
+ while (checkReadable ()){
78
+ readBuffer (serverIP,100 );
79
+ if (NULL != strstr (serverIP," ALREADY CONNECT" )){
80
+ setCommandCounter (3 );
81
+ return true ;
72
82
}
73
- SIMcore.send_cmd (server);
74
- SIMcore.send_cmd (" \" ," );
75
- SIMcore.send_cmd (num);
76
- SIMcore.send_cmd (" \r\n " );
77
- while (1 ){
78
- while (SIMcore.checkReadable ()){
79
- SIMcore.readBuffer (serverIP,100 );
80
- if (NULL != strstr (serverIP," ALREADY CONNECT" )){
81
- SIMcore.setCommandCounter (3 );
82
- return true ;
83
- }
84
- if (NULL != strstr (serverIP," CONNECT OK" )){
85
- SIMcore.setCommandCounter (3 );
86
- return true ;
87
- }
88
- if (NULL != strstr (serverIP," CONNECT FAIL" )){
89
- return false ;
90
- }
91
- }
83
+ if (NULL != strstr (serverIP," CONNECT OK" )){
84
+ setCommandCounter (3 );
85
+ return true ;
92
86
}
93
- }else {
94
- return false ;
87
+ if (NULL != strstr (serverIP," CONNECT FAIL" )){
88
+ return false ;
89
+ }
90
+ }
95
91
}
92
+ }else {
93
+ return false ;
94
+ }
96
95
}
97
96
98
- bool DFRobot_SIMclient::send (char *data){
99
- if (SIMcore.getCommandCounter () == 3 ){
100
- char num[4 ];
101
- char resp[20 ];
102
- int len = strlen (data);
103
- itoa (len, num, 10 );
104
- SIMcore.send_cmd (" AT+CIPSEND=" );
105
- SIMcore.send_cmd (num);
106
- if (SIMcore.check_send_cmd (" \r\n " ," >" )){
107
- SIMcore.send_cmd (data);
108
- while (1 ){
109
- while (SIMcore.checkReadable ()){
110
- SIMcore.readBuffer (resp,20 );
111
- if (NULL != strstr (resp," OK" )){
112
- return true ;
113
- }
114
- if (NULL != strstr (resp," ERROR" )){
115
- return false ;
116
- }
117
- }
118
- }
119
- }else {
120
- SIMcore.closeCommand ();
97
+ bool DFRobot_SIMclient::send (char *data){
98
+ if (getCommandCounter () == 3 ){
99
+ char num[4 ];
100
+ char resp[20 ];
101
+ int len = strlen (data);
102
+ itoa (len, num, 10 );
103
+ sendCmd (" AT+CIPSEND=" );
104
+ sendCmd (num);
105
+ if (checkSendCmd (" \r\n " ," >" )){
106
+ sendCmd (data);
107
+ while (1 ){
108
+ while (checkReadable ()){
109
+ readBuffer (resp,20 );
110
+ if (NULL != strstr (resp," OK" )){
111
+ return true ;
112
+ }
113
+ if (NULL != strstr (resp," ERROR" )){
121
114
return false ;
115
+ }
122
116
}
117
+ }
123
118
}else {
124
- return false ;
119
+ closeCommand ();
120
+ return false ;
125
121
}
122
+ }else {
123
+ return false ;
124
+ }
126
125
}
127
126
128
- bool DFRobot_SIMclient::send (void *buffer,size_t len)
127
+ bool DFRobot_SIMclient::send (char *buffer,size_t len)
129
128
{
130
- if (SIMcore.getCommandCounter () == 3 ){
131
- char num[4 ];
132
- itoa (len, num, 10 );
133
- SIMcore.send_cmd (" AT+CIPSEND=" );
134
- SIMcore.send_cmd (num);
135
- if (SIMcore.check_send_cmd (" \r\n " ," >" )){
136
- if (SIMcore.check_send_cmd (buffer," OK" )){
137
- return true ;
138
- }else {
139
- SIMcore.setCommandCounter (3 );
140
- return false ;
141
- }
142
- }else {
143
- SIMcore.setCommandCounter (3 );
144
- return false ;
145
- }
146
- }else {
129
+ if (getCommandCounter () == 3 ){
130
+ char num[4 ];
131
+ itoa (len, num, 10 );
132
+ sendCmd (" AT+CIPSEND=" );
133
+ sendCmd (num);
134
+ if (checkSendCmd (" \r\n " ," >" )){
135
+ if (checkSendCmd (buffer," OK" )){
136
+ return true ;
137
+ }else {
138
+ setCommandCounter (3 );
147
139
return false ;
140
+ }
141
+ }else {
142
+ setCommandCounter (3 );
143
+ return false ;
148
144
}
145
+ }else {
146
+ return false ;
147
+ }
149
148
}
150
149
151
- bool DFRobot_SIMclient::close (void )
150
+ bool DFRobot_SIMclient::close (void )
152
151
{
153
- if (SIMcore.getCommandCounter () == 3 ){
154
- if (SIMcore.check_send_cmd (" AT+CIPSHUT\r\n " ," OK" )){
155
- SIMcore.setCommandCounter (2 );
156
- return true ;
157
- }else {
158
- SIMcore.setCommandCounter (2 );
159
- return false ;
160
- }
152
+ if (getCommandCounter () == 3 ){
153
+ if (checkSendCmd (" AT+CIPSHUT\r\n " ," OK" )){
154
+ setCommandCounter (2 );
155
+ return true ;
161
156
}else {
162
- return false ;
157
+ setCommandCounter (2 );
158
+ return false ;
163
159
}
160
+ }else {
161
+ return false ;
162
+ }
164
163
}
0 commit comments