Compare commits
11 Commits
ccfb444369
...
f31aa3261e
| Author | SHA1 | Date |
|---|---|---|
|
|
f31aa3261e | |
|
|
f7bff30a01 | |
|
|
605dfc3f2b | |
|
|
792e13d2b2 | |
|
|
b9abc83581 | |
|
|
2850fdeff7 | |
|
|
02b1489f27 | |
|
|
e8da4230f9 | |
|
|
cd7138fb2e | |
|
|
1a77bf2001 | |
|
|
2a3cf8264d |
|
|
@ -0,0 +1,5 @@
|
|||
idf_component_register(
|
||||
SRC_DIRS "src"
|
||||
INCLUDE_DIRS "." "src"
|
||||
REQUIRES arduino-esp32
|
||||
)
|
||||
|
|
@ -352,7 +352,7 @@ char Adafruit_GPS::read(void) {
|
|||
// Serial.print(c);
|
||||
|
||||
currentline[lineidx] = c;
|
||||
lineidx++;
|
||||
lineidx = lineidx + 1;
|
||||
if (lineidx >= MAXLINELENGTH)
|
||||
lineidx = MAXLINELENGTH -
|
||||
1; // ensure there is someplace to put the next received character
|
||||
|
|
|
|||
|
|
@ -565,7 +565,15 @@ char *Adafruit_GPS::build(char *nmea, const char *thisSource,
|
|||
|
||||
addChecksum(nmea); // Successful completion
|
||||
if (!noCRLF) { // Add Carriage Return and Line Feed to comply with NMEA-183
|
||||
sprintf(nmea, "%s\r\n", nmea);
|
||||
size_t len = strlen(nmea);
|
||||
char *nmeaWithCRLF =
|
||||
(char *)malloc(len + 3); // +2 for \r\n, +1 for null terminator
|
||||
if (nmeaWithCRLF) {
|
||||
strcpy(nmeaWithCRLF, nmea); // Copy original string
|
||||
strcat(nmeaWithCRLF, "\r\n"); // Append \r\n
|
||||
strcpy(nmea, nmeaWithCRLF); // Copy back to original buffer
|
||||
free(nmeaWithCRLF); // Free the allocated memory
|
||||
}
|
||||
}
|
||||
return nmea; // return pointer to finished product
|
||||
}
|
||||
|
|
@ -591,7 +599,8 @@ void Adafruit_GPS::addChecksum(char *buff) {
|
|||
i++;
|
||||
}
|
||||
|
||||
// Calculate the needed buffer size: original length + 3 (*XX) + 1 (null terminator)
|
||||
// Calculate the needed buffer size: original length + 3 (*XX) + 1 (null
|
||||
// terminator)
|
||||
int neededSize = strlen(buff) + 4;
|
||||
char *tempBuffer = (char *)malloc(neededSize);
|
||||
|
||||
|
|
@ -600,7 +609,8 @@ void Adafruit_GPS::addChecksum(char *buff) {
|
|||
snprintf(tempBuffer, neededSize, "%s*%02X", buff, cs);
|
||||
|
||||
// Copy the formatted string back to the original buffer
|
||||
// Note: Make sure the original buffer is large enough to hold the new string.
|
||||
// Note: Make sure the original buffer is large enough to hold the new
|
||||
// string.
|
||||
strcpy(buff, tempBuffer);
|
||||
|
||||
// Free the allocated memory to avoid memory leaks
|
||||
|
|
|
|||
Loading…
Reference in New Issue