From 62b8182dee2e4c0bc326c1b8a23a1f15365fa65c Mon Sep 17 00:00:00 2001 From: Gabriel Marcano Date: Sun, 22 Dec 2024 23:16:14 -0800 Subject: Update Cart_Reader.ino - Don't use `Serial.read() - 48` to extract chars. Just treat the data as chars. This is more legible, and actually reduced the program storage space utilization slightly. --- Cart_Reader/Cart_Reader.ino | 54 +++++++++++---------------------------------- 1 file changed, 13 insertions(+), 41 deletions(-) diff --git a/Cart_Reader/Cart_Reader.ino b/Cart_Reader/Cart_Reader.ino index 1dc7f44..f83ea2d 100644 --- a/Cart_Reader/Cart_Reader.ino +++ b/Cart_Reader/Cart_Reader.ino @@ -2949,11 +2949,11 @@ byte questionBox_Serial(const __FlashStringHelper* question __attribute__((unuse while (Serial.available() == 0) { } - // Read the incoming byte: - int incomingByte = Serial.read() - 48; + // Read the incoming byte (can't be -1, as there must be data available) + char incomingByte = Serial.read(); // Page up (u) - if (incomingByte == 69) { + if (incomingByte == 'u') { if (currPage > 1) { lastPage = currPage; currPage--; @@ -2963,7 +2963,7 @@ byte questionBox_Serial(const __FlashStringHelper* question __attribute__((unuse } // Page down (d) - else if (incomingByte == 52) { + else if (incomingByte == 'd') { if (numPages > currPage) { lastPage = currPage; currPage++; @@ -2971,14 +2971,14 @@ byte questionBox_Serial(const __FlashStringHelper* question __attribute__((unuse } // Execute choice - else if ((incomingByte >= 0) && (incomingByte < 7)) { + else if ((incomingByte >= '0') && (incomingByte < '7')) { numPages = 0; } // Print the received byte for validation e.g. in case of a different keyboard mapping //Serial.println(incomingByte); //Serial.println(FS(FSTRING_EMPTY)); - return incomingByte; + return incomingByte - '0'; } #endif @@ -3192,20 +3192,21 @@ void checkUpdater() { uint8_t checkButton() { while (Serial.available() == 0) { } - int incomingByte = Serial.read() - 48; + // read() can't return -1 since there's data available. + char incomingByte = Serial.read(); //Next - if (incomingByte == 52) { + if (incomingByte == 'd') { return 1; } //Previous - else if (incomingByte == 69) { + else if (incomingByte == 'u') { return 2; } //Selection - else if ((incomingByte == 240) || (incomingByte == -16) || (incomingByte == 0)) { + else if ((incomingByte == ' ') || (incomingByte == '0')) { return 3; } @@ -3218,37 +3219,8 @@ void wait_serial() { } while (Serial.available() == 0) { } - int incomingByte = Serial.read() - 48; - /* if ((incomingByte == 53) && (fileName[0] != '\0')) { - // Open file on sd card - sd.chdir(folder); - if (myFile.open(fileName, O_READ)) { - // Get rom size from file - fileSize = myFile.fileSize(); - - // Send filesize - char tempStr[16]; - sprintf(tempStr, "%d", fileSize); - Serial.write(tempStr); - - // Wait for ok - while (Serial.available() == 0) { - } - - // Send file - for (unsigned long currByte = 0; currByte < fileSize; currByte++) { - // Blink led - if (currByte % 1024 == 0) - blinkLED(); - Serial.write(myFile.read()); - } - // Close the file: - myFile.close(); - } - else { - print_FatalError(open_file_STR); - } - }*/ + // Result is ignored, so don't even bother putting it in a variable + Serial.read(); } #endif -- cgit v1.2.3