diff --git a/master/master/lib/logger.c b/master/master/lib/logger.c --- a/master/master/lib/logger.c +++ b/master/master/lib/logger.c @@ -66,7 +66,7 @@ void logger_setup() if(!sd_raw_init()) { - error_log(ERROR_SD_INIT); + error_log(ERROR_SD_INIT, true); return; } @@ -80,7 +80,7 @@ void logger_setup() if(!partition) { // Error opening partition. MBR might be screwed up. - error_log(ERROR_SD_PARTITION); + error_log(ERROR_SD_PARTITION, true); return; } @@ -90,7 +90,7 @@ void logger_setup() if(!fs) { // opening filesystem failed - error_log(ERROR_SD_PARTITION); + error_log(ERROR_SD_PARTITION, true); return; } @@ -103,7 +103,7 @@ void logger_setup() { // opening root directory failed _delay_ms(10); - error_log(ERROR_SD_FILE); + error_log(ERROR_SD_FILE, true); return; } @@ -122,14 +122,14 @@ void logger_setup() if(fat_create_file(dd, errorFilename, &errorDirEntry) == 0) { serial0_sendString("Error create errorlog\r\n"); - error_log(ERROR_SD_FILE); + error_log(ERROR_SD_FILE, true); } // Search for file in current directory and open it fd_errorlog = open_file_in_dir(fs, dd, errorFilename); if(!fd_errorlog) { serial0_sendString("Error open errorlog!\r\n"); - error_log(ERROR_SD_FILE); + error_log(ERROR_SD_FILE, true); return; } errorOffset=0; @@ -137,7 +137,7 @@ void logger_setup() { // Error seeking to file serial0_sendString("Error seek errorlog!\r\n"); - error_log(ERROR_SD_FILE); + error_log(ERROR_SD_FILE, true); fat_close_file(fd_errorlog); return; } @@ -153,14 +153,14 @@ void logger_setup() if(fat_create_file(dd, dataFilename, &dataDirEntry) == 0) { serial0_sendString("Error create datalog\r\n"); - error_log(ERROR_SD_FILE); + error_log(ERROR_SD_FILE, true); } // Search for file in current directory and open it fd_datalog = open_file_in_dir(fs, dd, dataFilename); if(!fd_datalog) { serial0_sendString("Error open datalog!\r\n"); - error_log(ERROR_SD_FILE); + error_log(ERROR_SD_FILE, true); return; } dataOffset=0; @@ -168,7 +168,7 @@ void logger_setup() { // Error seeking to file serial0_sendString("Error seek datalog!\r\n"); - error_log(ERROR_SD_FILE); + error_log(ERROR_SD_FILE, true); fat_close_file(fd_datalog); return; } @@ -192,19 +192,23 @@ void logger_log(char *buffer) } } -void error_log(uint8_t errNo) +void error_log(uint8_t errNo, bool flashLED) { char labelBuffer[32]; labelBuffer[0] = 0x00; if(errNo <= MAX_ERRNO) { - strncpy_P(labelBuffer,(char*)pgm_read_word(&(errorMessageLookup[errNo])),32); + strncpy_P(labelBuffer,(char*)pgm_read_word(&(errorMessageLookup[errNo])),32); } char errorLine[128]; snprintf(errorLine, 128, "%lu, %u, %s,\r\n", time_millis(), errNo, labelBuffer); error_log_rawwrite(errorLine); - led_errorcode(errNo); + + if(flashLED) + { + led_errorcode(errNo); + } } void error_log_rawwrite(char *buffer) diff --git a/master/master/lib/logger.h b/master/master/lib/logger.h --- a/master/master/lib/logger.h +++ b/master/master/lib/logger.h @@ -14,11 +14,13 @@ #ifndef LOGGER_H_ #define LOGGER_H_ +#include + void logger_setup(); uint8_t logger_writeLine(char* dateLine, uint8_t length); struct fat_file_struct* open_file_in_dir(struct fat_fs_struct* fs, struct fat_dir_struct* dd, const char* name); uint8_t find_file_in_dir(struct fat_fs_struct* fs, struct fat_dir_struct* dd, const char* name, struct fat_dir_entry_struct* dir_entry); -void error_log(uint8_t errNo); +void error_log(uint8_t errNo, bool flashLED); void error_log_rawwrite(char *buffer); void logger_log(char *buffer); void logger_closeLog(); diff --git a/master/master/lib/slavesensors.c b/master/master/lib/slavesensors.c --- a/master/master/lib/slavesensors.c +++ b/master/master/lib/slavesensors.c @@ -490,7 +490,7 @@ void slavesensors_process(uint8_t parseR // if we're requesting, we have no data, and we're over the timeout, this is bad! // setParserState(STATE_RESET); - meh, can't do this because it freaking increments the cirbufptr gotoNextSlaveOrSensor(true); - error_log(ERROR_SLAVETIMEOUT); + error_log(ERROR_SLAVETIMEOUT, false); // log error, don't blink LED } }