From a0caf67d7cd0ce102a2b06235d95a0dd42d307c4 Mon Sep 17 00:00:00 2001 From: devdl11 Date: Fri, 8 Apr 2022 18:33:27 +0200 Subject: [PATCH] [review] revert flasher code --- bootloader/utility.h | 1 - ion/src/device/flasher/display_light.cpp | 8 ++- ion/src/device/flasher/display_verbose.cpp | 84 ++++++++++++---------- ion/src/device/flasher/main.cpp | 2 +- 4 files changed, 54 insertions(+), 41 deletions(-) diff --git a/bootloader/utility.h b/bootloader/utility.h index 1a4589541..1d24f989a 100644 --- a/bootloader/utility.h +++ b/bootloader/utility.h @@ -2,7 +2,6 @@ #define _BOOTLOADER_ITOA_H_ namespace Utility { - static char * itoa(int value, char * result, int base); static int versionSum(const char * version, int length); } diff --git a/ion/src/device/flasher/display_light.cpp b/ion/src/device/flasher/display_light.cpp index 1549c5763..ec5ba1188 100644 --- a/ion/src/device/flasher/display_light.cpp +++ b/ion/src/device/flasher/display_light.cpp @@ -1,10 +1,16 @@ #include +#include namespace Flasher { namespace Display { void init() { - Ion::Display::pushRectUniform(KDRect(0,0,Ion::Display::Width,Ion::Display::Height), KDColor::RGB24(0xFFFF00)); + KDRect screen = KDRect(0,0,Ion::Display::Width,Ion::Display::Height); + Ion::Display::pushRectUniform(KDRect(0,0,Ion::Display::Width,Ion::Display::Height), KDColor::RGB24(0x5e81ac)); + KDContext * ctx = KDIonContext::sharedContext(); + ctx->setOrigin(KDPointZero); + ctx->setClippingRect(screen); + ctx->drawString("RECOVERY MODE", KDPoint(10, 10), KDFont::LargeFont, KDColorWhite, KDColor::RGB24(0x5e81ac)); } } diff --git a/ion/src/device/flasher/display_verbose.cpp b/ion/src/device/flasher/display_verbose.cpp index aad0b6c45..ed7b5ff29 100644 --- a/ion/src/device/flasher/display_verbose.cpp +++ b/ion/src/device/flasher/display_verbose.cpp @@ -1,47 +1,55 @@ #include #include +#include "image.h" namespace Flasher { -namespace Display { + namespace Display { -constexpr static int sNumberOfMessages = 5; -constexpr static int sNumberOfLanguages = 2; + constexpr static int sNumberOfMessages = 5; -constexpr static const char * sMessages[sNumberOfLanguages][sNumberOfMessages] = { - {"RECOVERY MODE", - "Your calculator is waiting", - "for a new software.", - "Follow the instructions", - "on your computer to continue."}, - {"MODE RECUPERATION", - "Votre calculatrice attend", - "l'installation d'un nouveau logiciel.", - "Suivez les instructions sur", - "votre ordinateur pour continuer."} -}; + constexpr static const char * sMessages[sNumberOfMessages] = { + "RECOVERY MODE", + "Your calculator is waiting", + "for Upsilon to be installed.", + "Follow the instructions", + "on your computer to continue.", + }; + + void init() { + KDRect screen = KDRect(0,0,Ion::Display::Width,Ion::Display::Height); + Ion::Display::pushRectUniform(screen, KDColor::RGB24(0x2B2B2B)); + KDContext * ctx = KDIonContext::sharedContext(); + ctx->setOrigin(KDPointZero); + ctx->setClippingRect(screen); + KDCoordinate margin = 30; + KDCoordinate currentHeight = margin; + + /* Title */ + const char * title = sMessages[0]; + KDSize titleSize = KDFont::LargeFont->stringSize(title); + ctx->drawString(title, KDPoint((Ion::Display::Width-titleSize.width())/2, currentHeight), + KDFont::LargeFont, KDColorWhite, KDColor::RGB24(0x2B2B2B)); + currentHeight = (uint16_t)((Ion::Display::Height*2)/3); + + /* Logo */ + for (int i = 0; i < IMAGE_WIDTH; ++i) { + for (int j = 0; j < IMAGE_HEIGHT; ++j) { + ctx->setPixel(KDPoint(i+(uint16_t)((Ion::Display::Width-IMAGE_WIDTH)/2), + j+(titleSize.height()+margin+15)), + KDColor::RGB16(image[i+(j*IMAGE_WIDTH)])); + } + } + + /* Messages */ + const char * message; + for (int i = 1; i < sNumberOfMessages; ++i) { + message = sMessages[i]; + KDSize messageSize = KDFont::SmallFont->stringSize(message); + ctx->drawString(message, KDPoint((Ion::Display::Width-messageSize.width())/2, currentHeight), + KDFont::SmallFont, KDColorWhite, KDColor::RGB24(0x2B2B2B)); + currentHeight += messageSize.height(); + } + } -void init() { - KDRect screen = KDRect(0,0,Ion::Display::Width,Ion::Display::Height); - Ion::Display::pushRectUniform(screen, KDColorWhite); - KDContext * ctx = KDIonContext::sharedContext(); - ctx->setOrigin(KDPointZero); - ctx->setClippingRect(screen); - KDCoordinate margin = 20; - KDCoordinate currentHeight = 0; - for (int i = 0; i < sNumberOfLanguages; i++) { - currentHeight += margin; - const char * title = sMessages[i][0]; - KDSize titleSize = KDFont::LargeFont->stringSize(title); - ctx->drawString(title, KDPoint((Ion::Display::Width-titleSize.width())/2, currentHeight), KDFont::LargeFont); - currentHeight += 2*titleSize.height(); - for (int j = 1; j < sNumberOfMessages; j++) { - const char * message = sMessages[i][j]; - KDSize messageSize = KDFont::SmallFont->stringSize(message); - ctx->drawString(message, KDPoint((Ion::Display::Width-messageSize.width())/2, currentHeight), KDFont::SmallFont); - currentHeight += messageSize.height(); } - } -} - -} } diff --git a/ion/src/device/flasher/main.cpp b/ion/src/device/flasher/main.cpp index 3dcfcd80d..09f05e8ca 100644 --- a/ion/src/device/flasher/main.cpp +++ b/ion/src/device/flasher/main.cpp @@ -11,6 +11,6 @@ void ion_main(int argc, const char * const argv[]) { Ion::USB::enable(); while (!Ion::USB::isEnumerated()) { } - Ion::USB::DFU(false); + Ion::USB::DFU(false, false, 0); } }