From 42fb3f52bcdf07830f402dd48831a3946041eaf5 Mon Sep 17 00:00:00 2001 From: Th3maz1ng Date: Wed, 1 May 2019 22:02:11 +0200 Subject: [PATCH] Updated the IOInfo view (added port direction info : Input/Output), added a new error view --- src/app/views.cpp | 47 ++++++++++++++++++++++++++++++++++++++--------- src/app/views.h | 4 ++++ 2 files changed, 42 insertions(+), 9 deletions(-) diff --git a/src/app/views.cpp b/src/app/views.cpp index a87bdde..1e4eca4 100644 --- a/src/app/views.cpp +++ b/src/app/views.cpp @@ -79,21 +79,50 @@ boolean dummy(Adafruit_SSD1306 &display, void *pData) boolean ioInfo(Adafruit_SSD1306 &display, void *pData) { - boolean *p = (boolean *) pData; + ViewIoInfoPacket *p = (ViewIoInfoPacket *) pData; + char buff[30] = ""; display.setCursor(0,2); display.print(F("0 1 2 3 4 5 6 7")); + sprintf(buff,"%c %c %c %c %c %c %c %c", + p->ioMode[0] ? 'O' : 'I', + p->ioMode[1] ? 'O' : 'I', + p->ioMode[2] ? 'O' : 'I', + p->ioMode[3] ? 'O' : 'I', + p->ioMode[4] ? 'O' : 'I', + p->ioMode[5] ? 'O' : 'I', + p->ioMode[6] ? 'O' : 'I', + p->ioMode[7] ? 'O' : 'I'); + display.setCursor(0,15); + display.print(buff); - p[0] ? display.fillRect(0,15,9,30,WHITE) : display.drawRect(0,15,9,30,WHITE);//0 - p[1] ? display.fillRect(13,15,9,30,WHITE) : display.drawRect(13,15,9,30,WHITE);//1 - p[2] ? display.fillRect(30,15,9,30,WHITE) : display.drawRect(30,15,9,30,WHITE);//2 - p[3] ? display.fillRect(48,15,9,30,WHITE) : display.drawRect(48,15,9,30,WHITE);//3 - p[4] ? display.fillRect(66,15,9,30,WHITE) : display.drawRect(66,15,9,30,WHITE);//4 - p[5] ? display.fillRect(84,15,9,30,WHITE) : display.drawRect(84,15,9,30,WHITE);//5 - p[6] ? display.fillRect(102,15,9,30,WHITE) : display.drawRect(102,15,9,30,WHITE);//6 - p[7] ? display.fillRect(119,15,9,30,WHITE) : display.drawRect(119,15,9,30,WHITE);//7 + p->ioState[0] ? display.fillRect(0,31,9,17,WHITE) : display.drawRect(0,31,9,17,WHITE);//0 + p->ioState[1] ? display.fillRect(13,31,9,17,WHITE) : display.drawRect(13,31,9,17,WHITE);//1 + p->ioState[2] ? display.fillRect(30,31,9,17,WHITE) : display.drawRect(30,31,9,17,WHITE);//2 + p->ioState[3] ? display.fillRect(48,31,9,17,WHITE) : display.drawRect(48,31,9,17,WHITE);//3 + p->ioState[4] ? display.fillRect(66,31,9,17,WHITE) : display.drawRect(66,31,9,17,WHITE);//4 + p->ioState[5] ? display.fillRect(84,31,9,17,WHITE) : display.drawRect(84,31,9,17,WHITE);//5 + p->ioState[6] ? display.fillRect(102,31,9,17,WHITE) : display.drawRect(102,31,9,17,WHITE);//6 + p->ioState[7] ? display.fillRect(119,31,9,17,WHITE) : display.drawRect(119,31,9,17,WHITE);//7 display.setCursor(0,56); display.println(F("I/O INFO")); return true; } + +boolean sysErrorInfo(Adafruit_SSD1306 &display, void *pData) +{ + SAB *p = (SAB *)pData; + + char error_str[300]; + + display.print("Rst reason : ");display.println(ESP.getResetReason()); + display.print("RTC : ");display.println((p->getError() & SAB::RTC_BEGIN_ERR) != 0 ? "ERROR":"OK"); + display.print("DISPLAY : ");display.println((p->getError() & SAB::DISP_BEGIN_ERR) != 0 ? "ERROR":"OK"); + display.print("SDCard : ");display.println((p->getError() & SAB::SDCARD_INIT_ERR) != 0 ? "ERROR":"OK"); + display.print("IO : ");display.println((p->getError() & SAB::IO_INIT_ERR) != 0 ? "ERROR":"OK"); + + display.setCursor(0,56); + display.print(F("SYS ERROR CODE : "));display.println(p->getError()); + return true; +} diff --git a/src/app/views.h b/src/app/views.h index 049e1ce..85eb1b6 100644 --- a/src/app/views.h +++ b/src/app/views.h @@ -46,6 +46,10 @@ boolean ioInfo(Adafruit_SSD1306 &display, void *pData); typedef struct viewIoInfoPacket { boolean ioState[8]; + boolean ioMode[8]; }ViewIoInfoPacket; +//System Error View +boolean sysErrorInfo(Adafruit_SSD1306 &display, void *pData); + #endif //VIEWS_H