C++ file for display control
Dependencies: 4DGL mbed ConfigFile
Fork of 4DGLtest by
main.cpp@3:f7bce78b04c1, 2014-06-26 (annotated)
- 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?
User | Revision | Line number | New 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&(1<<25)); //Link |
WillemBraat | 3:f7bce78b04c1 | 17 | Yellow= !(FIO1PIN&(1<<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 | } |