From 9cfb9a60017d74dca70d5884d8d43b6d0b82cb86 Mon Sep 17 00:00:00 2001 From: Eric Helgeson Date: Sat, 10 Apr 2021 12:11:58 -0500 Subject: [PATCH] Fix issues with log file not being written. Add different blinks for error condidtions --- src/BlueSCSI.cpp | 48 +++++++++++++++++++++++++++++++++++++----------- 1 file changed, 37 insertions(+), 11 deletions(-) diff --git a/src/BlueSCSI.cpp b/src/BlueSCSI.cpp index e6a2303..f0ce7ad 100644 --- a/src/BlueSCSI.cpp +++ b/src/BlueSCSI.cpp @@ -263,6 +263,7 @@ byte SCSI_INFO_BUF[36] = { }; void onFalseInit(void); +void noSDCardFound(void); void onBusReset(void); void initFileLog(void); void finalizeFileLog(void); @@ -403,7 +404,7 @@ void setup() #if DEBUG Serial.println("SD initialization failed!"); #endif - onFalseInit(); + noSDCardFound(); } initFileLog(); readSCSIDeviceConfig(); @@ -445,18 +446,22 @@ void setup() } else { LOG_FILE.print("Bad LUN or SCSI id for image: "); LOG_FILE.println(name); + LOG_FILE.sync(); } + } else { + LOG_FILE.print("Not an image: "); + LOG_FILE.println(name); + LOG_FILE.sync(); } - // else { - // LOG_FILE.print("Not an image: "); - // LOG_FILE.println(name); - // } } } root.close(); // Error if there are 0 image files - if(scsi_id_mask==0) onFalseInit(); + if(scsi_id_mask==0) { + LOG_FILE.println("ERROR: No valid images found!"); + onFalseInit(); + } finalizeFileLog(); LED_OFF(); @@ -483,6 +488,7 @@ void initFileLog() { LOG_FILE.print("SdFat Max FileName Length: "); LOG_FILE.println(MAX_FILE_PATH); LOG_FILE.println("Initialized SD Card - lets go!"); + LOG_FILE.sync(); } /* @@ -521,15 +527,35 @@ void finalizeFileLog() { } /* - * Initialization failed. + * Initialization failed, blink 3x fast */ void onFalseInit(void) { + LOG_FILE.sync(); while(true) { - gpio_write(LED, high); - delay(500); - gpio_write(LED, low); - delay(500); + for(int i = 0; i < 3; i++) { + gpio_write(LED, high); + delay(250); + gpio_write(LED, low); + delay(250); + } + delay(3000); + } +} + +/* + * No SC Card found, blink 5x fast + */ +void noSDCardFound(void) +{ + while(true) { + for(int i = 0; i < 5; i++) { + gpio_write(LED, high); + delay(250); + gpio_write(LED, low); + delay(250); + } + delay(3000); } }