diff --git a/arduino/Screen code/Screen-code-full/Screen-code-full.ino b/arduino/Screen code/Screen-code-full/Screen-code-full.ino index bce5d52..60c88df 100644 --- a/arduino/Screen code/Screen-code-full/Screen-code-full.ino +++ b/arduino/Screen code/Screen-code-full/Screen-code-full.ino @@ -41,25 +41,3 @@ void loop() { displayText.writeText(Answer[i], 3, 0, 200, 0, true, true); delay(20000); } - - -// void writeText(char* text, int size, int posX, int posY, int screenTime, bool center){ -// //if true overwrites x -// if (center){ -// posX = centerText(text); -// } -// tft.setCursor(posX, posY); // Set the cursor to the top left corner -// tft.setTextSize(size); // Set textsize -// tft.println(text); -// delay(screenTime); -// } - -// int centerText(char* text) { -// int16_t x1, y1; -// uint16_t w, h; - -// tft.getTextBounds(text, 0, 0, &x1, &y1, &w, &h); // Calculate the width of the text -// int x = (tft.width() - w) / 2; // Calculate the x-coordinate for the centered text - -// return x; -// } \ No newline at end of file diff --git a/arduino/Screen code/Screen-code-full/displayText.cpp b/arduino/Screen code/Screen-code-full/displayText.cpp index 9044558..1971152 100644 --- a/arduino/Screen code/Screen-code-full/displayText.cpp +++ b/arduino/Screen code/Screen-code-full/displayText.cpp @@ -6,7 +6,7 @@ DisplayText::DisplayText(Adafruit_ST7796S_kbv& tftDisplay) : tft(tftDisplay) { tft.setCursor(0,0); tft.fillScreen(ST7796S_BLACK); } - +//display text public function void DisplayText::writeText(char* text, int size, int posX, int posY, int screenTime, bool center, bool bottom) { if (center) { posX = centerText(text); @@ -19,7 +19,7 @@ void DisplayText::writeText(char* text, int size, int posX, int posY, int screen printWordsFull(text); delay(screenTime); } - +//to center the text when enabled in the public function int DisplayText::centerText(char* text) { int16_t x1, y1; uint16_t w, h; @@ -27,7 +27,7 @@ int DisplayText::centerText(char* text) { int x = (tft.width() - w) / 2; return x; } - +//to dijsplay the text at the bottom when enabled in the public function int DisplayText::bottomText(char* text) { int16_t x1, y1; uint16_t w, h; @@ -36,13 +36,14 @@ int DisplayText::bottomText(char* text) { return y; } +//attempt to write the text out in full (wip) void DisplayText::printWordsFull(char* text) { char* textArray[100]; int i = 0; - + //copy the text into a variable so the string can be re-used later char* textCopy = strdup(text); - + //split the text into words and put them into a array char* word = strtok(text, " "); while (word != NULL) { textArray[i] = word; @@ -53,20 +54,22 @@ void DisplayText::printWordsFull(char* text) { int lineWidth = 0; int maxLineWidth = 320; // replace with the width of your TFT display int charWidth = 11; // replace with the width of your characters - for (int j = 0; j < i; j++) { + //count the amount of letters in the word int wordLength = strlen(textArray[j]); - // If the word won't fit on the current line, move to the next line + // If the word won't fit on the current line, move to the next line if (lineWidth + wordLength * charWidth > maxLineWidth) { tft.println(); + //reset lineWidth lineWidth = 0; } - + //print the text tft.print(textArray[j]); tft.print(" "); lineWidth += (wordLength + 1) * charWidth; // +1 for the space } + //removes textCopy out of the memory free(textCopy); } \ No newline at end of file diff --git a/arduino/Screen code/Screen-code-full/headerFile.h b/arduino/Screen code/Screen-code-full/headerFile.h index e4c5fcb..83372dd 100644 --- a/arduino/Screen code/Screen-code-full/headerFile.h +++ b/arduino/Screen code/Screen-code-full/headerFile.h @@ -3,8 +3,6 @@ #include "Adafruit_ST7796S_kbv.h" #include "displayText.h" - - #define TFT_CS 14 #define TFT_DC 13 #define TFT_RST 12