@@ -44,16 +44,39 @@ SARA_R5::SARA_R5(int powerPin, int resetPin, uint8_t maxInitDepth)
44
44
_bufferedPollReentrant = false ;
45
45
_pollReentrant = false ;
46
46
_currentInitDepth = 0 ;
47
-
48
- memset (_saraRXBuffer, 0 , _RXBuffSize);
49
- memset (_pruneBuffer, 0 , _RXBuffSize);
50
- memset (_saraResponseBacklog, 0 , _RXBuffSize);
51
47
_saraResponseBacklogLength = 0 ;
52
48
}
53
49
54
50
#ifdef SARA_R5_SOFTWARE_SERIAL_ENABLED
55
51
bool SARA_R5::begin (SoftwareSerial &softSerial, unsigned long baud)
56
52
{
53
+ _saraRXBuffer = new char [_RXBuffSize];
54
+ if (_saraRXBuffer == NULL )
55
+ {
56
+ if (_printDebug == true )
57
+ _debugPort->println (F (" begin: not enough memory for _saraRXBuffer!" ));
58
+ return false ;
59
+ }
60
+ memset (_saraRXBuffer, 0 , _RXBuffSize);
61
+
62
+ _pruneBuffer = new char [_RXBuffSize];
63
+ if (_pruneBuffer == NULL )
64
+ {
65
+ if (_printDebug == true )
66
+ _debugPort->println (F (" begin: not enough memory for _pruneBuffer!" ));
67
+ return false ;
68
+ }
69
+ memset (_pruneBuffer, 0 , _RXBuffSize);
70
+
71
+ _saraResponseBacklog = new char [_RXBuffSize];
72
+ if (_saraResponseBacklog == NULL )
73
+ {
74
+ if (_printDebug == true )
75
+ _debugPort->println (F (" begin: not enough memory for _saraResponseBacklog!" ));
76
+ return false ;
77
+ }
78
+ memset (_saraResponseBacklog, 0 , _RXBuffSize);
79
+
57
80
SARA_R5_error_t err;
58
81
59
82
_softSerial = &softSerial;
@@ -69,6 +92,33 @@ bool SARA_R5::begin(SoftwareSerial &softSerial, unsigned long baud)
69
92
70
93
bool SARA_R5::begin (HardwareSerial &hardSerial, unsigned long baud)
71
94
{
95
+ _saraRXBuffer = new char [_RXBuffSize];
96
+ if (_saraRXBuffer == NULL )
97
+ {
98
+ if (_printDebug == true )
99
+ _debugPort->println (F (" begin: not enough memory for _saraRXBuffer!" ));
100
+ return false ;
101
+ }
102
+ memset (_saraRXBuffer, 0 , _RXBuffSize);
103
+
104
+ _pruneBuffer = new char [_RXBuffSize];
105
+ if (_pruneBuffer == NULL )
106
+ {
107
+ if (_printDebug == true )
108
+ _debugPort->println (F (" begin: not enough memory for _pruneBuffer!" ));
109
+ return false ;
110
+ }
111
+ memset (_pruneBuffer, 0 , _RXBuffSize);
112
+
113
+ _saraResponseBacklog = new char [_RXBuffSize];
114
+ if (_saraResponseBacklog == NULL )
115
+ {
116
+ if (_printDebug == true )
117
+ _debugPort->println (F (" begin: not enough memory for _saraResponseBacklog!" ));
118
+ return false ;
119
+ }
120
+ memset (_saraResponseBacklog, 0 , _RXBuffSize);
121
+
72
122
SARA_R5_error_t err;
73
123
74
124
_hardSerial = &hardSerial;
0 commit comments