C++ file for display control
Dependencies: 4DGL mbed ConfigFile
Fork of 4DGLtest by
Diff: fs_datastructures.cpp
- Revision:
- 11:a5b0d98794c0
- Parent:
- 7:779c5b8d3b14
--- a/fs_datastructures.cpp Wed Jul 16 08:05:54 2014 +0000 +++ b/fs_datastructures.cpp Wed Jul 16 19:15:40 2014 +0000 @@ -35,7 +35,7 @@ extern int nFontWidth (int nfont_number ); //Prototype of function to retrieve font width (declared in display.cpp) extern int nLine2Pixel( int nLine ); //Prototype of function to calculate vertical pixelposition from line number (declared in display.cpp) extern int LeftOrRight( int nTextLine, string cString, int nChars, int nCharWidth ); //declared in display.cpp -extern int cRGB( int cRED, int cGREEN, int cBLUE ); //Prototype of function for assembly color word (declared in display.cpp) +extern unsigned int cRGB( char cRED, char cGREEN, char cBLUE ); //Prototype of function for assembly color word (declared in display.cpp) // FS_data_update_ID: // These global flags indicate what data has been updated. @@ -61,8 +61,9 @@ Key_Maintext_Update ; // : equal to keynumber whose main text line was updated, must be reset to -1 (!)when text has been read Key_Subtext_Update ; // : equal to keynumber whose sub text line was updated, must be reset to -1 (!) when text has been read */ - + { + int nLine = 1; //default value //check common flag if ( FSdata_received_flag ) //if set, check all structures and lock dynamic storage @@ -72,36 +73,82 @@ display.background_color( cRGB( BACKGROUND_COL.BG_RED, BACKGROUND_COL.BG_GREEN, BACKGROUND_COL.BG_BLUE ) ); Background_Col_Update = 0; } + if ( Key_Maintext_Update > -1 ) //Key_Maintext_Update contains the line number 00-49 is LSK text, 50-99 is RSK text //Currently used: //00-14 left side of screen --> left adjust, horizontal position = 0 //50-64 right side of screen --> right adjust, horizontal position calculated with righttext() (declared in display.cpp) + + //00 = LSK1 50 = RSK1 Print on LINE 3 + //01 = LSK2 51 = RSK2 Print on LINE 5 + //02 = LSK3 52 = RSK3 Print on LINE 7 + //03 = LSK4 53 = RSK4 Print on LINE 9 + //04 = LSK5 54 = RSK5 Print on LINE 11 + //05 = LSK6 55 = RSK6 Print on LINE 13 { + switch ( Key_Maintext_Update ) + { + case ( 00 ): nLine = 3; break; + case ( 50 ): nLine = 3; break; + case ( 01 ): nLine = 5; break; + case ( 51 ): nLine = 5; break; + case ( 02 ): nLine = 7; break; + case ( 52 ): nLine = 7; break; + case ( 03 ): nLine = 9; break; + case ( 53 ): nLine = 9; break; + case ( 04 ): nLine = 11; break; + case ( 54 ): nLine = 11; break; + case ( 05 ): nLine = 13; break; + case ( 55 ): nLine = 13; break; + } //display.graphic_string(char *s, int x, int y, char font, int color, char width multiplier, char height multiplier) display.graphic_string( SELKEY_MAINTEXT[Key_Maintext_Update].text , //Text to display LeftOrRight( Key_Maintext_Update, SELKEY_MAINTEXT[Key_Maintext_Update].text,24,24 )*nFontWidth( SELKEY_MAINTEXT[Key_Maintext_Update].font_size ) , //Horizontal position - nLine2Pixel( Key_Maintext_Update ), //Vertical position + nLine2Pixel( nLine ), //Vertical position nFontSize( SELKEY_MAINTEXT[Key_Maintext_Update].font_size ), //Font cRGB( SELKEY_MAINTEXT[Key_Maintext_Update].text_RED ,SELKEY_MAINTEXT[Key_Maintext_Update].text_GREEN ,SELKEY_MAINTEXT[Key_Maintext_Update].text_BLUE ), 1, 1 ); Key_Maintext_Update = -1; } + if ( Key_Subtext_Update > -1 ) //Key Subtext_Update contains the line number 00-49 is LSK subtext, 50-99 is RSK subtext //Currently used: //00-14 left side of screen --> left adjust, horizontal position = 0 //50-64 right side of screen --> right adjust, horizontal position calculated with righttext() (declared in display.cpp) + //00 = LSK1 50 = RSK1 Print on LINE 2 + //01 = LSK2 51 = RSK2 Print on LINE 4 + //02 = LSK3 52 = RSK3 Print on LINE 6 + //03 = LSK4 53 = RSK4 Print on LINE 8 + //04 = LSK5 54 = RSK5 Print on LINE 10 + //05 = LSK6 55 = RSK6 Print on LINE 12 { + switch ( Key_Maintext_Update ) + { + case ( 00 ): nLine = 2; break; + case ( 50 ): nLine = 2; break; + case ( 01 ): nLine = 4; break; + case ( 51 ): nLine = 4; break; + case ( 02 ): nLine = 6; break; + case ( 52 ): nLine = 6; break; + case ( 03 ): nLine = 8; break; + case ( 53 ): nLine = 8; break; + case ( 04 ): nLine = 10; break; + case ( 54 ): nLine = 10; break; + case ( 05 ): nLine = 12; break; + case ( 55 ): nLine = 12; break; + } //display.graphic_string(char *s, int x, int y, char font, int color, char width multiplier, char height multiplier) display.graphic_string( SELKEY_SUBTEXT[Key_Subtext_Update].text , //Text to display LeftOrRight( Key_Subtext_Update, SELKEY_SUBTEXT[Key_Subtext_Update].text,12,48 )*nFontWidth( SELKEY_SUBTEXT[Key_Subtext_Update].font_size ) , //Horizontal position - nLine2Pixel( Key_Subtext_Update ), //Vertical position + nLine2Pixel( nLine ), //Vertical position nFontSize( SELKEY_SUBTEXT[Key_Subtext_Update].font_size ), //Font cRGB( SELKEY_SUBTEXT[Key_Subtext_Update].text_RED ,SELKEY_SUBTEXT[Key_Subtext_Update].text_GREEN ,SELKEY_SUBTEXT[Key_Subtext_Update].text_BLUE ), 1, 1 ); //multiplier always on 1 Key_Subtext_Update = -1; } + if ( Text_Line_Update > 0) { //Text_Line_Update contains the the line number to write @@ -113,6 +160,7 @@ 1, 1 ); //multiplier always on 1 Text_Line_Update = 0; } + if ( CDU_Status_Update == 1 ) { /*