@@ -193,19 +193,24 @@ bool ModemClass::buf_read(const string &prompt, string &data_res) {
193
193
while ( _serial->available () ){
194
194
char c = _serial->read ();
195
195
data_res += c;
196
+ #ifdef SELECTABLE_MODEM_DEBUG
197
+ if (enable_dbg) {
198
+ Serial.print (c);
199
+ }
200
+ #endif
196
201
197
202
if (read_by_size) {
198
203
if (read_by_size_finished (data_res)) {
199
204
found = true ;
200
205
read_by_size = false ;
201
206
res = true ;
202
- data_res = data_res.substr (0 , data_res.length () - sizeof (RESULT_OK));
207
+ data_res = data_res.substr (0 , data_res.length () - ( sizeof (RESULT_OK) - 1 ));
203
208
}
204
209
}
205
210
else {
206
211
if (string::npos != data_res.rfind (RESULT_DATA)) {
207
212
found = true ;
208
- data_res = data_res.substr (0 , data_res.length () - sizeof (RESULT_DATA));
213
+ data_res = data_res.substr (0 , data_res.length () - ( sizeof (RESULT_DATA) - 1 ));
209
214
if (prompt != DO_NOT_CHECK_CMD) {
210
215
if (removeAtBegin (data_res, prompt)) {
211
216
res = true ;
@@ -218,7 +223,7 @@ bool ModemClass::buf_read(const string &prompt, string &data_res) {
218
223
}
219
224
else if (string::npos != data_res.rfind (RESULT_OK)){
220
225
found = true ;
221
- data_res = data_res.substr (0 , data_res.length () - sizeof (RESULT_OK));
226
+ data_res = data_res.substr (0 , data_res.length () - ( sizeof (RESULT_OK) - 1 ) );
222
227
if (prompt != DO_NOT_CHECK_CMD) {
223
228
if (removeAtBegin (data_res, prompt)) {
224
229
res = true ;
@@ -230,7 +235,7 @@ bool ModemClass::buf_read(const string &prompt, string &data_res) {
230
235
break ;
231
236
}
232
237
else if (string::npos != data_res.rfind (RESULT_ERROR)) {
233
- data_res.substr (0 , data_res.length () - sizeof (RESULT_ERROR));
238
+ data_res.substr (0 , data_res.length () - ( sizeof (RESULT_ERROR) - 1 ));
234
239
res = false ;
235
240
break ;
236
241
}
0 commit comments