Initial rough cut form of getting bmp's shown on-screen that are stored on sd card
|
@ -40,6 +40,7 @@ These libraries are used by the project and can be installed via the Arduino IDE
|
||||||
- Button for accessing password selection pop-up to help with password entry over serial
|
- Button for accessing password selection pop-up to help with password entry over serial
|
||||||
- This should be configured via a text file on the sd card
|
- This should be configured via a text file on the sd card
|
||||||
- Way to display pinouts stored on micro sd card
|
- Way to display pinouts stored on micro sd card
|
||||||
|
- **YOU WILL NEED TO UPDATE THE CODE TO ADD NEW IMAGES**
|
||||||
- Max number of files is 20
|
- Max number of files is 20
|
||||||
- Max filename length is 24 (this includes the ```.``` and extension of the file)
|
- Max filename length is 24 (this includes the ```.``` and extension of the file)
|
||||||
- The pinouts should be stored as bmp files *up to* 24 bit
|
- The pinouts should be stored as bmp files *up to* 24 bit
|
||||||
|
|
|
@ -105,7 +105,6 @@ void listPrevious(gslc_tsElemRef*);
|
||||||
//<Save_References !Start!>
|
//<Save_References !Start!>
|
||||||
gslc_tsElemRef* m_SliderDiagrams = NULL;
|
gslc_tsElemRef* m_SliderDiagrams = NULL;
|
||||||
gslc_tsElemRef* m_pElemBatteryLevel= NULL;
|
gslc_tsElemRef* m_pElemBatteryLevel= NULL;
|
||||||
gslc_tsElemRef* m_pElemImgPin = NULL;
|
|
||||||
gslc_tsElemRef* m_pElemLsDiagrams = NULL;
|
gslc_tsElemRef* m_pElemLsDiagrams = NULL;
|
||||||
gslc_tsElemRef* m_pElemRd1152 = NULL;
|
gslc_tsElemRef* m_pElemRd1152 = NULL;
|
||||||
gslc_tsElemRef* m_pElemRd96 = NULL;
|
gslc_tsElemRef* m_pElemRd96 = NULL;
|
||||||
|
@ -115,6 +114,12 @@ gslc_tsElemRef* m_pElemRdUARTA = NULL;
|
||||||
gslc_tsElemRef* m_pElemSDInfo = NULL;
|
gslc_tsElemRef* m_pElemSDInfo = NULL;
|
||||||
gslc_tsElemRef* m_pElemStatusText = NULL;
|
gslc_tsElemRef* m_pElemStatusText = NULL;
|
||||||
gslc_tsElemRef* m_pElemText = NULL;
|
gslc_tsElemRef* m_pElemText = NULL;
|
||||||
|
gslc_tsElemRef* pImgFthM0Bsc = NULL;
|
||||||
|
gslc_tsElemRef* pImgKbdFw = NULL;
|
||||||
|
gslc_tsElemRef* pImgPi4Overview = NULL;
|
||||||
|
gslc_tsElemRef* pImgPi4Pins = NULL;
|
||||||
|
gslc_tsElemRef* pImgPiOrientation = NULL;
|
||||||
|
gslc_tsElemRef* pImgRpi = NULL;
|
||||||
//<Save_References !End!>
|
//<Save_References !End!>
|
||||||
|
|
||||||
// Keyboard map related
|
// Keyboard map related
|
||||||
|
@ -365,8 +370,13 @@ void handlerKeyboard() {
|
||||||
|
|
||||||
// Process key press events
|
// Process key press events
|
||||||
if (key.state == BBQ10Keyboard::StatePress) {
|
if (key.state == BBQ10Keyboard::StatePress) {
|
||||||
|
// Override ALL keyboard handling and hide popup if it's on-screen
|
||||||
|
if (popupOnScreen) {
|
||||||
|
gslc_PopupHide(&m_gui);
|
||||||
|
popupOnScreen = false;
|
||||||
|
}
|
||||||
// Move right through screens
|
// Move right through screens
|
||||||
if (key.key == KBD_BTN_4) {
|
else if (key.key == KBD_BTN_4) {
|
||||||
if (popupOnScreen) {
|
if (popupOnScreen) {
|
||||||
// Do nothing -- need to clear popup first
|
// Do nothing -- need to clear popup first
|
||||||
}
|
}
|
||||||
|
@ -413,8 +423,30 @@ void handlerKeyboard() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (key.key == KBD_SW_OK) {
|
else if (key.key == KBD_SW_OK) {
|
||||||
|
if (gslc_GetPageCur(&m_gui) == E_WIRING) {
|
||||||
|
int16_t selection = gslc_ElemXListboxGetSel(&m_gui, m_pElemLsDiagrams);
|
||||||
|
char selectionText[MAX_FILE_NAME_CHARS];
|
||||||
|
|
||||||
|
gslc_ElemXListboxGetItem(&m_gui, m_pElemLsDiagrams, selection, selectionText, MAX_FILE_NAME_CHARS);
|
||||||
|
#if defined(DBG_LOG) || defined(DBG_TOUCH) || defined(DBG_FRAME_RATE) || defined(DBG_DRAW_IMM) || defined(DBG_DRIVER)
|
||||||
|
Serial.println(selectionText);
|
||||||
|
#endif
|
||||||
|
char fullPath[sizeof(DIRECTORY_PINOUTS) + 1 + MAX_FILE_NAME_CHARS];
|
||||||
|
strncat(fullPath, DIRECTORY_PINOUTS, sizeof(DIRECTORY_PINOUTS));
|
||||||
|
strncat(fullPath, "/", sizeof(char));
|
||||||
|
strncat(fullPath, selectionText, MAX_FILE_NAME_CHARS);
|
||||||
|
#if defined(DBG_LOG) || defined(DBG_TOUCH) || defined(DBG_FRAME_RATE) || defined(DBG_DRAW_IMM) || defined(DBG_DRIVER)
|
||||||
|
Serial.println(fullPath);
|
||||||
|
#endif
|
||||||
|
// gslc_tsImgRef imageRef = gslc_GetImageFromSD(fullPath, GSLC_IMGREF_FMT_BMP24);
|
||||||
|
// gslc_ElemSetImage(&m_gui, m_pElemImgPin, imageRef, imageRef);
|
||||||
|
gslc_PopupShow(&m_gui, E_PG_DIAGRAM, true);
|
||||||
|
popupOnScreen = true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
uiKeyBuffer.push(key.key);
|
uiKeyBuffer.push(key.key);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// Process keys 'normally'
|
// Process keys 'normally'
|
||||||
else {
|
else {
|
||||||
char output[28];
|
char output[28];
|
||||||
|
|
|
@ -49,6 +49,12 @@
|
||||||
// Defines for resources
|
// Defines for resources
|
||||||
// ------------------------------------------------
|
// ------------------------------------------------
|
||||||
//<Resources !Start!>
|
//<Resources !Start!>
|
||||||
|
#define IMG_FEATHERM0BSC "/pinouts/feather-m0-bsc.bmp"
|
||||||
|
#define IMG_KBDFW "/pinouts/kbd-fw.bmp"
|
||||||
|
#define IMG_PI4OVERVIEW "/pinouts/pi4-overview.bmp"
|
||||||
|
#define IMG_PI4PINS "/pinouts/pi4-pins.bmp"
|
||||||
|
#define IMG_PIORIENTATION "/pinouts/pi-orientation.bmp"
|
||||||
|
#define IMG_RPI "/pinouts/rpi.bmp"
|
||||||
//<Resources !End!>
|
//<Resources !End!>
|
||||||
|
|
||||||
// ------------------------------------------------
|
// ------------------------------------------------
|
||||||
|
@ -56,11 +62,13 @@
|
||||||
// ------------------------------------------------
|
// ------------------------------------------------
|
||||||
//<Enum !Start!>
|
//<Enum !Start!>
|
||||||
enum {E_PG_BASE,E_PG_MAIN,E_CONF_RPI,E_WIRING,E_SD_CARD,E_PG_DIAGRAM};
|
enum {E_PG_BASE,E_PG_MAIN,E_CONF_RPI,E_WIRING,E_SD_CARD,E_PG_DIAGRAM};
|
||||||
enum {E_ELEM_BATT_LEVEL,E_ELEM_IMG_PIN,E_ELEM_LS_DIA,E_ELEM_RD96
|
enum {E_ELEM_BATT_LEVEL,E_ELEM_IMG_FTH,E_ELEM_IMG_FW,E_ELEM_IMG_PI
|
||||||
,E_ELEM_RD_1152,E_ELEM_RD_UART0,E_ELEM_RD_UART5,E_ELEM_RD_UARTA
|
,E_ELEM_IMG_PI4A,E_ELEM_IMG_PI4B,E_ELEM_IMG_PIB,E_ELEM_LS_DIA
|
||||||
,E_ELEM_STATUS,E_ELEM_TEXT,E_ELEM_TEXT11,E_ELEM_TEXT3
|
,E_ELEM_RD96,E_ELEM_RD_1152,E_ELEM_RD_UART0,E_ELEM_RD_UART5
|
||||||
,E_ELEM_TEXT4,E_ELEM_TX96,E_ELEM_TX_1152,E_ELEM_TX_SD_INFO
|
,E_ELEM_RD_UARTA,E_ELEM_STATUS,E_ELEM_TEXT,E_ELEM_TEXT11
|
||||||
,E_ELEM_TX_UART1,E_ELEM_TX_UART5,E_SLR_DIAGRAMS,E_STATUS_LINE};
|
,E_ELEM_TEXT3,E_ELEM_TEXT4,E_ELEM_TX96,E_ELEM_TX_1152
|
||||||
|
,E_ELEM_TX_SD_INFO,E_ELEM_TX_UART1,E_ELEM_TX_UART5,E_SLR_DIAGRAMS
|
||||||
|
,E_STATUS_LINE};
|
||||||
enum {E_GRP_SPD,E_GRP_UART};
|
enum {E_GRP_SPD,E_GRP_UART};
|
||||||
// Must use separate enum for fonts with MAX_FONT at end to use gslc_FontSet.
|
// Must use separate enum for fonts with MAX_FONT at end to use gslc_FontSet.
|
||||||
enum {E_AO_NOTOMONO8PT7B,MAX_FONT};
|
enum {E_AO_NOTOMONO8PT7B,MAX_FONT};
|
||||||
|
@ -91,7 +99,7 @@ enum {E_AO_NOTOMONO8PT7B,MAX_FONT};
|
||||||
#define MAX_ELEM_SD_CARD 1 // # Elems total on page
|
#define MAX_ELEM_SD_CARD 1 // # Elems total on page
|
||||||
#define MAX_ELEM_SD_CARD_RAM MAX_ELEM_SD_CARD // # Elems in RAM
|
#define MAX_ELEM_SD_CARD_RAM MAX_ELEM_SD_CARD // # Elems in RAM
|
||||||
|
|
||||||
#define MAX_ELEM_PG_DIAGRAM 1 // # Elems total on page
|
#define MAX_ELEM_PG_DIAGRAM 6 // # Elems total on page
|
||||||
#define MAX_ELEM_PG_DIAGRAM_RAM MAX_ELEM_PG_DIAGRAM // # Elems in RAM
|
#define MAX_ELEM_PG_DIAGRAM_RAM MAX_ELEM_PG_DIAGRAM // # Elems in RAM
|
||||||
//<ElementDefines !End!>
|
//<ElementDefines !End!>
|
||||||
|
|
||||||
|
@ -143,7 +151,6 @@ char m_acTextboxBuf3[696]; // NRows=12 NCols=58
|
||||||
//<Extern_References !Start!>
|
//<Extern_References !Start!>
|
||||||
extern gslc_tsElemRef* m_SliderDiagrams;
|
extern gslc_tsElemRef* m_SliderDiagrams;
|
||||||
extern gslc_tsElemRef* m_pElemBatteryLevel;
|
extern gslc_tsElemRef* m_pElemBatteryLevel;
|
||||||
extern gslc_tsElemRef* m_pElemImgPin;
|
|
||||||
extern gslc_tsElemRef* m_pElemLsDiagrams;
|
extern gslc_tsElemRef* m_pElemLsDiagrams;
|
||||||
extern gslc_tsElemRef* m_pElemRd1152;
|
extern gslc_tsElemRef* m_pElemRd1152;
|
||||||
extern gslc_tsElemRef* m_pElemRd96;
|
extern gslc_tsElemRef* m_pElemRd96;
|
||||||
|
@ -155,6 +162,12 @@ extern gslc_tsElemRef* m_pElemStatusText;
|
||||||
extern gslc_tsElemRef* m_pElemText;
|
extern gslc_tsElemRef* m_pElemText;
|
||||||
extern gslc_tsElemRef* m_pTextSlider;
|
extern gslc_tsElemRef* m_pTextSlider;
|
||||||
extern gslc_tsElemRef* m_pTextSlider3;
|
extern gslc_tsElemRef* m_pTextSlider3;
|
||||||
|
extern gslc_tsElemRef* pImgFthM0Bsc;
|
||||||
|
extern gslc_tsElemRef* pImgKbdFw;
|
||||||
|
extern gslc_tsElemRef* pImgPi4Overview;
|
||||||
|
extern gslc_tsElemRef* pImgPi4Pins;
|
||||||
|
extern gslc_tsElemRef* pImgPiOrientation;
|
||||||
|
extern gslc_tsElemRef* pImgRpi;
|
||||||
//<Extern_References !End!>
|
//<Extern_References !End!>
|
||||||
|
|
||||||
// Define debug message function
|
// Define debug message function
|
||||||
|
@ -355,11 +368,41 @@ void InitGUIslice_gen()
|
||||||
// PAGE: E_PG_DIAGRAM
|
// PAGE: E_PG_DIAGRAM
|
||||||
|
|
||||||
|
|
||||||
// Create E_ELEM_IMG_PIN using Image
|
// Create E_ELEM_IMG_FTH using Image
|
||||||
pElemRef = gslc_ElemCreateImg(&m_gui,E_ELEM_IMG_PIN,E_PG_DIAGRAM,(gslc_tsRect){0,0,320,240},
|
pElemRef = gslc_ElemCreateImg(&m_gui,E_ELEM_IMG_FTH,E_PG_DIAGRAM,(gslc_tsRect){0,37,320,166},
|
||||||
gslc_GetImageFromSD(NULL,GSLC_IMGREF_FMT_RAW1));
|
gslc_GetImageFromSD((const char*)IMG_FEATHERM0BSC,GSLC_IMGREF_FMT_BMP24));
|
||||||
gslc_ElemSetFillEn(&m_gui,pElemRef,false);
|
gslc_ElemSetFillEn(&m_gui,pElemRef,false);
|
||||||
m_pElemImgPin = pElemRef;
|
pImgFthM0Bsc = pElemRef;
|
||||||
|
|
||||||
|
// Create E_ELEM_IMG_PI4A using Image
|
||||||
|
pElemRef = gslc_ElemCreateImg(&m_gui,E_ELEM_IMG_PI4A,E_PG_DIAGRAM,(gslc_tsRect){81,0,156,240},
|
||||||
|
gslc_GetImageFromSD((const char*)IMG_PI4OVERVIEW,GSLC_IMGREF_FMT_BMP24));
|
||||||
|
gslc_ElemSetFillEn(&m_gui,pElemRef,false);
|
||||||
|
pImgPi4Overview = pElemRef;
|
||||||
|
|
||||||
|
// Create E_ELEM_IMG_PI4B using Image
|
||||||
|
pElemRef = gslc_ElemCreateImg(&m_gui,E_ELEM_IMG_PI4B,E_PG_DIAGRAM,(gslc_tsRect){54,0,210,240},
|
||||||
|
gslc_GetImageFromSD((const char*)IMG_PI4PINS,GSLC_IMGREF_FMT_BMP24));
|
||||||
|
gslc_ElemSetFillEn(&m_gui,pElemRef,false);
|
||||||
|
pImgPi4Pins = pElemRef;
|
||||||
|
|
||||||
|
// Create E_ELEM_IMG_PIB using Image
|
||||||
|
pElemRef = gslc_ElemCreateImg(&m_gui,E_ELEM_IMG_PIB,E_PG_DIAGRAM,(gslc_tsRect){80,0,158,240},
|
||||||
|
gslc_GetImageFromSD((const char*)IMG_PIORIENTATION,GSLC_IMGREF_FMT_BMP24));
|
||||||
|
gslc_ElemSetFillEn(&m_gui,pElemRef,false);
|
||||||
|
pImgPiOrientation = pElemRef;
|
||||||
|
|
||||||
|
// Create E_ELEM_IMG_PI using Image
|
||||||
|
pElemRef = gslc_ElemCreateImg(&m_gui,E_ELEM_IMG_PI,E_PG_DIAGRAM,(gslc_tsRect){39,0,241,240},
|
||||||
|
gslc_GetImageFromSD((const char*)IMG_RPI,GSLC_IMGREF_FMT_BMP24));
|
||||||
|
gslc_ElemSetFillEn(&m_gui,pElemRef,false);
|
||||||
|
pImgRpi = pElemRef;
|
||||||
|
|
||||||
|
// Create E_ELEM_IMG_FW using Image
|
||||||
|
pElemRef = gslc_ElemCreateImg(&m_gui,E_ELEM_IMG_FW,E_PG_DIAGRAM,(gslc_tsRect){2,0,317,240},
|
||||||
|
gslc_GetImageFromSD((const char*)IMG_KBDFW,GSLC_IMGREF_FMT_BMP24));
|
||||||
|
gslc_ElemSetFillEn(&m_gui,pElemRef,false);
|
||||||
|
pImgKbdFw = pElemRef;
|
||||||
//<InitGUI !End!>
|
//<InitGUI !End!>
|
||||||
|
|
||||||
//<Startup !Start!>
|
//<Startup !Start!>
|
||||||
|
|
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 156 KiB |
Before Width: | Height: | Size: 223 KiB After Width: | Height: | Size: 223 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 112 KiB |
Before Width: | Height: | Size: 110 KiB After Width: | Height: | Size: 110 KiB |
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 148 KiB |
Before Width: | Height: | Size: 170 KiB After Width: | Height: | Size: 170 KiB |