Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: 4DGL mbed ConfigFile
Fork of 4DGLtest by
Revision 11:a5b0d98794c0, committed 2014-07-16
- Comitter:
- WillemBraat
- Date:
- Wed Jul 16 19:15:40 2014 +0000
- Parent:
- 10:5706b75d40fa
- Commit message:
- Rewritten function CDU_DSP_CSS()
Changed in this revision
| display.cpp | Show annotated file Show diff for this revision Revisions of this file |
| fs_datastructures.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/display.cpp Wed Jul 16 08:05:54 2014 +0000
+++ b/display.cpp Wed Jul 16 19:15:40 2014 +0000
@@ -103,8 +103,8 @@
*/
-DigitalOut VGA_SOURCE( p7 ); // control line for video switch between internal and external video
-DigitalOut VGA_SELECT( p8 ); // select or deselect video switch
+//DigitalOut VGA_SOURCE( p7 ); // control line for video switch between internal and external video
+//DigitalOut VGA_SELECT( p8 ); // select or deselect video switch
//Control lines for VGA driver board
TFT_4DGL display(p13,p14,p15); // serial tx, serial rx, reset pin
@@ -117,7 +117,7 @@
std::string cInput( cString );
char* cText = new char[nStrLen+1];
strncpy(cText, cInput.c_str(), nStrLen);
- cText[nStrLen+1] = '\0';
+ cText[nStrLen] = '\0';
return cText;
}
@@ -177,11 +177,11 @@
return ( nFont );
}
-int cRGB( int cRED, int cGREEN, int cBLUE )
+unsigned int cRGB( char cRED, char cGREEN, char cBLUE )
{
//assemble separate colors into 1 integer value as 0xRRGGBB
//Display driver requires this format
- int RGB = cBLUE + 8*cGREEN + 64*cRED;
+ unsigned int RGB = cBLUE + 256*cGREEN + 65536*cRED;
return ( RGB );
}
@@ -190,6 +190,14 @@
//decide to print data left aligned or right aligned
//00 - 49 is left side of screen
//50 - 99 is right side of screen
+
+ //00 = LSK1 50 = RSK1
+ //01 = LSK2 51 = RSK2
+ //02 = LSK3 52 = RSK3
+ //03 = LSK4 53 = RSK4
+ //05 = LSK5 54 = RSK5
+ //06 = LSK6 56 = RSK6
+
int nHorPos = 0;
// nChars is number of characters on this line (24 or 48)
// nCharWidth is the character width in pixels
--- 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 )
{
/*
