diff --git a/speeduino/SD_logger.cpp b/speeduino/SD_logger.cpp index c98b4766..0d3b1573 100644 --- a/speeduino/SD_logger.cpp +++ b/speeduino/SD_logger.cpp @@ -330,7 +330,9 @@ bool createLogFile() currentLogFileNumber = getNextSDLogFileNumber(); //Create the filename - sprintf(filenameBuffer, "%s%04d.%s", LOG_FILE_PREFIX, currentLogFileNumber, LOG_FILE_EXTENSION); + //sprintf(filenameBuffer, "%s%04d.%s", LOG_FILE_PREFIX, currentLogFileNumber, LOG_FILE_EXTENSION); + if(currentLogFileNumber > MAX_LOG_FILES) { currentLogFileNumber = 1; } //If we've run out of file numbers, start again from 1 + snprintf(filenameBuffer, 13, "%s%04d.%s", LOG_FILE_PREFIX, currentLogFileNumber, LOG_FILE_EXTENSION); logFile.close(); if (logFile.open(filenameBuffer, O_RDWR | O_CREAT | O_TRUNC)) @@ -364,7 +366,8 @@ bool getSDLogFileDetails(uint8_t* buffer, uint16_t logNumber) if(logFile.isOpen()) { endSDLogging(); } char filenameBuffer[13]; //8 + 1 + 3 + 1 - sprintf(filenameBuffer, "%s%04d.%s", LOG_FILE_PREFIX, logNumber, LOG_FILE_EXTENSION); + if(logNumber > MAX_LOG_FILES) { logNumber = MAX_LOG_FILES; } //If we've run out of file numbers, start again from 1 + snprintf(filenameBuffer, 13, "%s%04d.%s", LOG_FILE_PREFIX, logNumber, LOG_FILE_EXTENSION); if(sd.exists(filenameBuffer)) { diff --git a/speeduino/SD_logger.h b/speeduino/SD_logger.h index 13bb353b..59a78570 100644 --- a/speeduino/SD_logger.h +++ b/speeduino/SD_logger.h @@ -49,7 +49,7 @@ //Test values only #define SD_LOG_FILE_SIZE 10000000 //Default 10mb file size -#define MAX_LOG_FILES 10000 +#define MAX_LOG_FILES 9999 #define LOG_FILE_PREFIX "SPD_" #define LOG_FILE_EXTENSION "csv" #define RING_BUF_CAPACITY (SD_LOG_ENTRY_SIZE * 10) //Allow for 10 entries in the ringbuffer. Will need tuning