C++ file for display control

Dependencies:   4DGL mbed ConfigFile

Fork of 4DGLtest by Stephane ROCHON

Committer:
WillemBraat
Date:
Thu Jun 26 11:41:45 2014 +0000
Revision:
3:f7bce78b04c1
Parent:
2:83393983a43f
Child:
6:904d00252480
CDU Display code file

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kerpower 0:772a63029ab0 1
Kerpower 0:772a63029ab0 2 #include "mbed.h"
Kerpower 0:772a63029ab0 3 #include "TFT_4DGL.h"
WillemBraat 3:f7bce78b04c1 4 #include "keyboard.h"
WillemBraat 3:f7bce78b04c1 5 #include "display.h"
Kerpower 0:772a63029ab0 6
WillemBraat 3:f7bce78b04c1 7 #include <string>
WillemBraat 3:f7bce78b04c1 8 using namespace std;
WillemBraat 3:f7bce78b04c1 9
WillemBraat 3:f7bce78b04c1 10 int key_hit_ID;
Kerpower 0:772a63029ab0 11
WillemBraat 3:f7bce78b04c1 12 //Driving Ethernet Jack LED's
WillemBraat 3:f7bce78b04c1 13 /*
WillemBraat 3:f7bce78b04c1 14 #define FIO1PIN (*(unsigned long*)0x2009C034UL)
WillemBraat 3:f7bce78b04c1 15 DigitalOut Green(p30), Yellow(p29); //Leds are on pins 29 and 30
WillemBraat 3:f7bce78b04c1 16 Green = !(FIO1PIN&amp;(1&lt;&lt;25)); //Link
WillemBraat 3:f7bce78b04c1 17 Yellow= !(FIO1PIN&amp;(1&lt;&lt;26)); //Speed
WillemBraat 3:f7bce78b04c1 18 */
WillemBraat 3:f7bce78b04c1 19
WillemBraat 3:f7bce78b04c1 20
WillemBraat 3:f7bce78b04c1 21
WillemBraat 3:f7bce78b04c1 22 //Pin definition prototypes
WillemBraat 3:f7bce78b04c1 23 extern PwmOut BGL_LED;
WillemBraat 3:f7bce78b04c1 24 extern AnalogIn BGL_POT;
WillemBraat 3:f7bce78b04c1 25 extern InterruptIn CDU_KB_INT;
WillemBraat 3:f7bce78b04c1 26 extern I2C CDU_KB; //Communication lines
Kerpower 0:772a63029ab0 27
WillemBraat 3:f7bce78b04c1 28 //VGA Control line definitions prototypes
WillemBraat 3:f7bce78b04c1 29 extern DigitalOut VGA_SOURCE; // control line for video switch between internal and external video
WillemBraat 3:f7bce78b04c1 30 extern DigitalOut VGA_SELECT; // select or deselect video switch
WillemBraat 3:f7bce78b04c1 31 extern TFT_4DGL display;
WillemBraat 3:f7bce78b04c1 32
WillemBraat 3:f7bce78b04c1 33 //CDU screen prototypes
WillemBraat 3:f7bce78b04c1 34 void CDU_StartScreen();
WillemBraat 3:f7bce78b04c1 35 void CDU_ScreenAlign();
WillemBraat 3:f7bce78b04c1 36
WillemBraat 3:f7bce78b04c1 37 //Keyboard Function prototypes
WillemBraat 3:f7bce78b04c1 38 void CDU_KB_INT_ON( int p5);
WillemBraat 3:f7bce78b04c1 39 void CDU_KB_GET_KEY();
Kerpower 0:772a63029ab0 40
WillemBraat 3:f7bce78b04c1 41 //String manipulation prototypes
WillemBraat 3:f7bce78b04c1 42 char* str2char( string cString );
WillemBraat 3:f7bce78b04c1 43 int centertext( string cString, int nChars, int nCharWidth );
WillemBraat 3:f7bce78b04c1 44 int righttext( string cString, int nChars, int nCharWidth );
WillemBraat 3:f7bce78b04c1 45
WillemBraat 3:f7bce78b04c1 46
WillemBraat 3:f7bce78b04c1 47 //Temporary inputs for testing
WillemBraat 3:f7bce78b04c1 48 DigitalIn pb_up( p27 );
WillemBraat 3:f7bce78b04c1 49 DigitalIn pb_dn( p28 );
WillemBraat 3:f7bce78b04c1 50
WillemBraat 3:f7bce78b04c1 51 DigitalOut led1(LED1);
WillemBraat 3:f7bce78b04c1 52 DigitalOut led2(LED2);
WillemBraat 3:f7bce78b04c1 53
WillemBraat 3:f7bce78b04c1 54
WillemBraat 3:f7bce78b04c1 55
WillemBraat 3:f7bce78b04c1 56 int main() {
WillemBraat 3:f7bce78b04c1 57 char cText[24];
WillemBraat 3:f7bce78b04c1 58 int nLineCounter=0;
WillemBraat 3:f7bce78b04c1 59
Kerpower 0:772a63029ab0 60
WillemBraat 3:f7bce78b04c1 61 display.baudrate(9600); //115200
WillemBraat 3:f7bce78b04c1 62 //display.display_control(0x0c, 0x01); //Set resolution to 640*480
WillemBraat 3:f7bce78b04c1 63 display.display_control(IMAGE_FORMAT, NEW); //set correct image for reading from SD
WillemBraat 3:f7bce78b04c1 64
WillemBraat 3:f7bce78b04c1 65 CDU_StartScreen();
WillemBraat 3:f7bce78b04c1 66 display.cls();
WillemBraat 3:f7bce78b04c1 67 display.showpicture(0x00, 0x00, 0x00, 0x14, 0x00, 0x01, 0xB5); // Testscreen
WillemBraat 3:f7bce78b04c1 68 wait_ms(4000);
WillemBraat 3:f7bce78b04c1 69 display.cls();
WillemBraat 3:f7bce78b04c1 70 display.showpicture(0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00); // Engravity logo
WillemBraat 3:f7bce78b04c1 71 wait_ms(2000);
WillemBraat 3:f7bce78b04c1 72 CDU_ScreenAlign();
WillemBraat 3:f7bce78b04c1 73
WillemBraat 3:f7bce78b04c1 74
WillemBraat 3:f7bce78b04c1 75 while (! pb_dn )
WillemBraat 3:f7bce78b04c1 76 {}
WillemBraat 3:f7bce78b04c1 77
WillemBraat 3:f7bce78b04c1 78 display.cls();
WillemBraat 3:f7bce78b04c1 79
WillemBraat 3:f7bce78b04c1 80 display.graphic_string( "PERF INIT" , 8*24, LINE1, FONT_24X34, WHITE, 1, 1 );
WillemBraat 3:f7bce78b04c1 81
WillemBraat 3:f7bce78b04c1 82 display.graphic_string( "GW/CRZ CG" , 0, LINE2, FONT_15X17, WHITE, 1, 1 );
WillemBraat 3:f7bce78b04c1 83 display.graphic_string( "CRZ ALT" , 41*12, LINE2, FONT_15X17, WHITE, 1, 1 );
WillemBraat 3:f7bce78b04c1 84
WillemBraat 3:f7bce78b04c1 85 display.graphic_string( "___._ / 26.2%" , 0, LINE3, FONT_24X34, WHITE, 1, 1 );
WillemBraat 3:f7bce78b04c1 86 display.graphic_string( "_____" , 19*24, LINE3, FONT_24X34, WHITE, 1, 1 );
WillemBraat 3:f7bce78b04c1 87
WillemBraat 3:f7bce78b04c1 88 display.graphic_string( "FUEL" , 0, LINE4, FONT_15X17, WHITE, 1, 1 );
WillemBraat 3:f7bce78b04c1 89 display.graphic_string( "CRZ/WIND" , 40*12, LINE4, FONT_15X17, WHITE, 1, 1 );
WillemBraat 3:f7bce78b04c1 90
WillemBraat 3:f7bce78b04c1 91 display.graphic_string( "0.0" , 0, LINE5, FONT_24X34, WHITE, 1, 1 );
WillemBraat 3:f7bce78b04c1 92 display.graphic_string( "000$ /---" , 15*24, LINE5, FONT_24X34, WHITE, 1, 1 );
WillemBraat 3:f7bce78b04c1 93
WillemBraat 3:f7bce78b04c1 94 display.graphic_string( "ZFW" , 0, LINE6, FONT_15X17, WHITE, 1, 1 );
WillemBraat 3:f7bce78b04c1 95 display.graphic_string( "___._ " , 0, LINE7, FONT_24X34, WHITE, 1, 1 );
WillemBraat 3:f7bce78b04c1 96
WillemBraat 3:f7bce78b04c1 97 display.graphic_string( "RESERVES" , 0, LINE8, FONT_15X17, WHITE, 1, 1 );
WillemBraat 3:f7bce78b04c1 98 display.graphic_string( "__._ " , 0, LINE9, FONT_24X34, WHITE, 1, 1 );
WillemBraat 3:f7bce78b04c1 99
WillemBraat 3:f7bce78b04c1 100 display.graphic_string( "COST INDEX" , 0, LINE10, FONT_15X17, WHITE, 1, 1 );
WillemBraat 3:f7bce78b04c1 101 display.graphic_string( "TRANS ALT" , 39*12, LINE10, FONT_15X17, WHITE, 1, 1 );
WillemBraat 3:f7bce78b04c1 102
WillemBraat 3:f7bce78b04c1 103 display.graphic_string( "___" , 0, LINE11, FONT_24X34, WHITE, 1, 1 );
WillemBraat 3:f7bce78b04c1 104 display.graphic_string( "_____" , 19*24, LINE11, FONT_24X34, WHITE, 1, 1 );
WillemBraat 3:f7bce78b04c1 105
WillemBraat 3:f7bce78b04c1 106 display.graphic_string( "------------------------------------------------" , 0, LINE12, FONT_15X17, WHITE, 1, 1 );
Kerpower 0:772a63029ab0 107
WillemBraat 3:f7bce78b04c1 108 display.graphic_string( "<INDEX" , 0, LINE13, FONT_24X34, WHITE, 1, 1 );
WillemBraat 3:f7bce78b04c1 109 display.graphic_string( "N1 LIMIT>" , 15*24, LINE13, FONT_24X34, WHITE, 1, 1 );
WillemBraat 3:f7bce78b04c1 110
WillemBraat 3:f7bce78b04c1 111 display.graphic_string( "SCRATCHPAD DATA LINE", righttext("SCRATCHPAD DATA LINE", 24, LARGECHAR) , LINE14, FONT_24X34, RED, 1, 1 );
WillemBraat 3:f7bce78b04c1 112
WillemBraat 3:f7bce78b04c1 113
WillemBraat 3:f7bce78b04c1 114
WillemBraat 3:f7bce78b04c1 115 while (! pb_dn )
WillemBraat 3:f7bce78b04c1 116 {}
WillemBraat 3:f7bce78b04c1 117
WillemBraat 3:f7bce78b04c1 118 display.cls();
WillemBraat 3:f7bce78b04c1 119 sprintf( cText, "<--%03d", nLineCounter );
WillemBraat 3:f7bce78b04c1 120 display.graphic_string( cText , 0, nLineCounter, FONT_24X34, WHITE, 1, 1 );
WillemBraat 3:f7bce78b04c1 121
WillemBraat 3:f7bce78b04c1 122 led1=1;
WillemBraat 3:f7bce78b04c1 123 wait_ms(100);
WillemBraat 3:f7bce78b04c1 124 led1=0;
WillemBraat 3:f7bce78b04c1 125
WillemBraat 3:f7bce78b04c1 126 while (1)
WillemBraat 3:f7bce78b04c1 127 {
WillemBraat 3:f7bce78b04c1 128 if (pb_up)
WillemBraat 3:f7bce78b04c1 129 {
WillemBraat 3:f7bce78b04c1 130 nLineCounter++;
WillemBraat 3:f7bce78b04c1 131 if ( nLineCounter > 480 )
WillemBraat 3:f7bce78b04c1 132 {
WillemBraat 3:f7bce78b04c1 133 nLineCounter=480;
WillemBraat 3:f7bce78b04c1 134 }
WillemBraat 3:f7bce78b04c1 135 else
WillemBraat 3:f7bce78b04c1 136 {
WillemBraat 3:f7bce78b04c1 137 display.graphic_string( " " , 0, (nLineCounter-1), FONT_24X34, WHITE, 1, 1 );
WillemBraat 3:f7bce78b04c1 138 //display.text_string( "ABCDEFGHIJKLMNOPQRSTUVWX" , 0,(nLineCounter-1), FONT_24X34, WHITE );
WillemBraat 3:f7bce78b04c1 139 }
WillemBraat 3:f7bce78b04c1 140
WillemBraat 3:f7bce78b04c1 141 }
WillemBraat 3:f7bce78b04c1 142 if (pb_dn)
WillemBraat 3:f7bce78b04c1 143
WillemBraat 3:f7bce78b04c1 144 {
WillemBraat 3:f7bce78b04c1 145 nLineCounter--;
WillemBraat 3:f7bce78b04c1 146 if ( nLineCounter < 0 )
WillemBraat 3:f7bce78b04c1 147 {
WillemBraat 3:f7bce78b04c1 148 nLineCounter=0;
WillemBraat 3:f7bce78b04c1 149 }
WillemBraat 3:f7bce78b04c1 150 else
WillemBraat 3:f7bce78b04c1 151 {
WillemBraat 3:f7bce78b04c1 152 display.graphic_string( " " , 0, (nLineCounter+1), FONT_24X34, WHITE, 1, 1 );
WillemBraat 3:f7bce78b04c1 153 //display.text_string( " " , 0,(nLineCounter+1), FONT_24X34, WHITE );
WillemBraat 3:f7bce78b04c1 154 }
WillemBraat 3:f7bce78b04c1 155 }
WillemBraat 3:f7bce78b04c1 156
WillemBraat 3:f7bce78b04c1 157 sprintf( cText, "<--%03d", nLineCounter );
WillemBraat 3:f7bce78b04c1 158 display.graphic_string( cText , 0, nLineCounter, FONT_24X34, WHITE, 1, 1 );
WillemBraat 3:f7bce78b04c1 159
Kerpower 0:772a63029ab0 160 }
WillemBraat 3:f7bce78b04c1 161
WillemBraat 3:f7bce78b04c1 162
Kerpower 0:772a63029ab0 163 }