@@ -471,7 +471,7 @@ class TinyGsmA6 : public TinyGsmModem<TinyGsmA6>,
471
471
String r5s(r5); r5s.trim();
472
472
DBG("### ..:", r1s, ",", r2s, ",", r3s, ",", r4s, ",", r5s);*/
473
473
data.reserve (64 );
474
- uint8_t index = 0 ;
474
+ uint8_t index = 0 ;
475
475
uint32_t startMillis = millis ();
476
476
do {
477
477
TINY_GSM_YIELD ();
@@ -501,24 +501,28 @@ class TinyGsmA6 : public TinyGsmModem<TinyGsmA6>,
501
501
index = 5 ;
502
502
goto finish;
503
503
} else if (data.endsWith (GF (" +CIPRCV:" ))) {
504
- int8_t mux = streamGetIntBefore (' ,' );
505
- int16_t len = streamGetIntBefore (' ,' );
504
+ int8_t mux = streamGetIntBefore (' ,' );
505
+ int16_t len = streamGetIntBefore (' ,' );
506
506
int16_t len_orig = len;
507
- if (len > sockets[mux]->rx .free ()) {
508
- DBG (" ### Buffer overflow: " , len, " ->" , sockets[mux]->rx .free ());
509
- } else {
510
- DBG (" ### Got: " , len, " ->" , sockets[mux]->rx .free ());
511
- }
512
- while (len--) { moveCharFromStreamToFifo (mux); }
513
- // TODO(?) Deal with missing characters
514
- if (len_orig > sockets[mux]->available ()) {
515
- DBG (" ### Fewer characters received than expected: " ,
516
- sockets[mux]->available (), " vs " , len_orig);
507
+ if (mux >= 0 && mux < TINY_GSM_MUX_COUNT && sockets[mux]) {
508
+ if (len > sockets[mux]->rx .free ()) {
509
+ DBG (" ### Buffer overflow: " , len, " ->" , sockets[mux]->rx .free ());
510
+ } else {
511
+ DBG (" ### Got: " , len, " ->" , sockets[mux]->rx .free ());
512
+ }
513
+ while (len--) {
514
+ moveCharFromStreamToFifo (mux);
515
+ }
516
+ // TODO(?) Deal with missing characters
517
+ if (len_orig > sockets[mux]->available ()) {
518
+ DBG (" ### Fewer characters received than expected: " ,
519
+ sockets[mux]->available (), " vs " , len_orig);
520
+ }
517
521
}
518
522
data = " " ;
519
523
} else if (data.endsWith (GF (" +TCPCLOSED:" ))) {
520
524
int8_t mux = streamGetIntBefore (' \n ' );
521
- if (mux >= 0 && mux < TINY_GSM_MUX_COUNT) {
525
+ if (mux >= 0 && mux < TINY_GSM_MUX_COUNT && sockets[mux] ) {
522
526
sockets[mux]->sock_connected = false ;
523
527
}
524
528
data = " " ;
@@ -529,7 +533,9 @@ class TinyGsmA6 : public TinyGsmModem<TinyGsmA6>,
529
533
finish:
530
534
if (!index) {
531
535
data.trim ();
532
- if (data.length ()) { DBG (" ### Unhandled:" , data); }
536
+ if (data.length ()) {
537
+ DBG (" ### Unhandled:" , data);
538
+ }
533
539
data = " " ;
534
540
}
535
541
// data.replace(GSM_NL, "/");
@@ -561,10 +567,11 @@ class TinyGsmA6 : public TinyGsmModem<TinyGsmA6>,
561
567
}
562
568
563
569
public:
564
- Stream& stream;
570
+ Stream& stream;
571
+
565
572
protected:
566
573
GsmClientA6* sockets[TINY_GSM_MUX_COUNT];
567
- const char * gsmNL = GSM_NL;
574
+ const char * gsmNL = GSM_NL;
568
575
};
569
576
570
577
#endif // SRC_TINYGSMCLIENTA6_H_
0 commit comments