New work version with additional functions

Dependencies:   4DGL-UC ConfigFile MODSERIAL mbed mbos

Fork of CDU_Mbed_35 by Engravity-CDU

Committer:
WillemBraat
Date:
Wed Oct 08 14:14:52 2014 +0000
Revision:
20:2d6ac4577e68
New release with additional new functions.
; * File handling for config files
; * CDU setup & test screens
; * External power monitoring

Who changed what in which revision?

UserRevisionLine numberNew contents of line
WillemBraat 20:2d6ac4577e68 1 /****************************************************************************/
WillemBraat 20:2d6ac4577e68 2 /* This file contains entry points to setup and test procedures for the CDU */
WillemBraat 20:2d6ac4577e68 3 /* Prerequisitions: */
WillemBraat 20:2d6ac4577e68 4 /* 1. S-EXEC flag must be set to avoid interference from fs communications */
WillemBraat 20:2d6ac4577e68 5 /* 2. Keyboard interrupt routine must be redefined */
WillemBraat 20:2d6ac4577e68 6 /****************************************************************************/
WillemBraat 20:2d6ac4577e68 7
WillemBraat 20:2d6ac4577e68 8 #include "mbed.h"
WillemBraat 20:2d6ac4577e68 9 #include "TFT_4DGL.h"
WillemBraat 20:2d6ac4577e68 10 #include "display.h"
WillemBraat 20:2d6ac4577e68 11
WillemBraat 20:2d6ac4577e68 12 #include <string>
WillemBraat 20:2d6ac4577e68 13 using namespace std;
WillemBraat 20:2d6ac4577e68 14
WillemBraat 20:2d6ac4577e68 15 void CDU_ScreenAlign();
WillemBraat 20:2d6ac4577e68 16 void CDU_displayclear();
WillemBraat 20:2d6ac4577e68 17 void ExitKey( string cTitleText );
WillemBraat 20:2d6ac4577e68 18
WillemBraat 20:2d6ac4577e68 19 extern TFT_4DGL display;
WillemBraat 20:2d6ac4577e68 20 //extern void CDU_KB_INT_DISABLE(); //disable keyhandler and start internal keyhandler
WillemBraat 20:2d6ac4577e68 21 extern int key_hit_ID;
WillemBraat 20:2d6ac4577e68 22
WillemBraat 20:2d6ac4577e68 23 //int righttext( string cString, int nChars, int nCharWidth )
WillemBraat 20:2d6ac4577e68 24 //int centertext( string cString, int nChars, int nCharWidth )
WillemBraat 20:2d6ac4577e68 25 extern char* str2char( string cString );
WillemBraat 20:2d6ac4577e68 26 extern int righttext( string cString, int nChars, int nCharWidth );
WillemBraat 20:2d6ac4577e68 27 extern int centertext( string cString, int nChars, int nCharWidth );
WillemBraat 20:2d6ac4577e68 28
WillemBraat 20:2d6ac4577e68 29
WillemBraat 20:2d6ac4577e68 30 void CDU_Maint()
WillemBraat 20:2d6ac4577e68 31 // Main selection screen SETUP and MAINT
WillemBraat 20:2d6ac4577e68 32 {
WillemBraat 20:2d6ac4577e68 33 ExitKey( "CDU MAINTENANCE");
WillemBraat 20:2d6ac4577e68 34 display.graphic_string( str2char( "< SETUP" ), 0, LINE3, FONT_24X34, WHITE, 2, 2 );
WillemBraat 20:2d6ac4577e68 35 display.graphic_string( str2char( "LIGHT TEST >" ), righttext( "LIGHT TEST >", 24,24) , LINE3, FONT_24X34, WHITE, 2, 2 );
WillemBraat 20:2d6ac4577e68 36 display.graphic_string( str2char( "KEYBOARD TEST >" ), righttext( "KEYBOARD TEST >", 24,24) , LINE5, FONT_24X34, WHITE, 2, 2 );
WillemBraat 20:2d6ac4577e68 37 display.graphic_string( str2char( "FIRMWARE >" ), righttext( "FIRMWARE >", 24,24) , LINE9, FONT_24X34, WHITE, 2, 2 );
WillemBraat 20:2d6ac4577e68 38 }
WillemBraat 20:2d6ac4577e68 39
WillemBraat 20:2d6ac4577e68 40 //Setup screens
WillemBraat 20:2d6ac4577e68 41 void CDU_Setup()
WillemBraat 20:2d6ac4577e68 42 {
WillemBraat 20:2d6ac4577e68 43 ExitKey( "CDU SETUP" );
WillemBraat 20:2d6ac4577e68 44 display.graphic_string( str2char( "< USB" ), 0, LINE3, FONT_24X34, WHITE, 2, 2 );
WillemBraat 20:2d6ac4577e68 45 display.graphic_string( str2char( "< ETHERNET" ), 0, LINE5, FONT_24X34, WHITE, 2, 2 );
WillemBraat 20:2d6ac4577e68 46 display.graphic_string( str2char( "DISPLAY SOURCE >" ), righttext( "DISPLAY SOURCE >", 24,24) , LINE9, FONT_24X34, WHITE, 2, 2 );
WillemBraat 20:2d6ac4577e68 47 }
WillemBraat 20:2d6ac4577e68 48
WillemBraat 20:2d6ac4577e68 49
WillemBraat 20:2d6ac4577e68 50 void CDU_USB_Setup()
WillemBraat 20:2d6ac4577e68 51 {
WillemBraat 20:2d6ac4577e68 52 ExitKey( "CDU USB SETUP" );
WillemBraat 20:2d6ac4577e68 53 display.graphic_string( str2char( "< BAUDRATE" ), 0, LINE3, FONT_24X34, WHITE, 2, 2 );
WillemBraat 20:2d6ac4577e68 54 display.graphic_string( str2char( "< DATABITS" ), 0, LINE5, FONT_24X34, WHITE, 2, 2 );
WillemBraat 20:2d6ac4577e68 55 display.graphic_string( str2char( "< PARITY" ), 0, LINE7, FONT_24X34, WHITE, 2, 2 );
WillemBraat 20:2d6ac4577e68 56 display.graphic_string( str2char( "< STOPBITS" ), 0, LINE9, FONT_24X34, WHITE, 2, 2 );
WillemBraat 20:2d6ac4577e68 57 }
WillemBraat 20:2d6ac4577e68 58
WillemBraat 20:2d6ac4577e68 59 void CDU_Ethernet_Setup()
WillemBraat 20:2d6ac4577e68 60 {
WillemBraat 20:2d6ac4577e68 61 ExitKey( "CDU ETHERNET SETUP" );
WillemBraat 20:2d6ac4577e68 62 display.graphic_string( str2char( "< AUTO IP" ), 0, LINE3, FONT_24X34, WHITE, 2, 2 );
WillemBraat 20:2d6ac4577e68 63 display.graphic_string( str2char( "< IP ADDRESS" ), 0, LINE5, FONT_24X34, WHITE, 2, 2 );
WillemBraat 20:2d6ac4577e68 64 display.graphic_string( str2char( "< GATEWAY" ), 0, LINE7, FONT_24X34, WHITE, 2, 2 );
WillemBraat 20:2d6ac4577e68 65 display.graphic_string( str2char( "< MAC ADDRESS" ), 0, LINE9, FONT_24X34, WHITE, 2, 2 );
WillemBraat 20:2d6ac4577e68 66
WillemBraat 20:2d6ac4577e68 67 }
WillemBraat 20:2d6ac4577e68 68
WillemBraat 20:2d6ac4577e68 69
WillemBraat 20:2d6ac4577e68 70 void CDU_Source_Setup()
WillemBraat 20:2d6ac4577e68 71 {
WillemBraat 20:2d6ac4577e68 72 ExitKey( "CDU VIDEO SOURCE" );
WillemBraat 20:2d6ac4577e68 73 display.graphic_string( str2char( "< INTERNAL" ), 0, LINE3, FONT_24X34, WHITE, 2, 2 );
WillemBraat 20:2d6ac4577e68 74 display.graphic_string( str2char( "EXTERNAL >" ), righttext( "EXTERNAL >", 24,24) , LINE3, FONT_24X34, WHITE, 2, 2 );
WillemBraat 20:2d6ac4577e68 75 }
WillemBraat 20:2d6ac4577e68 76
WillemBraat 20:2d6ac4577e68 77
WillemBraat 20:2d6ac4577e68 78
WillemBraat 20:2d6ac4577e68 79 //Maintenance screens
WillemBraat 20:2d6ac4577e68 80
WillemBraat 20:2d6ac4577e68 81 void CDU_FW_Update()
WillemBraat 20:2d6ac4577e68 82 {
WillemBraat 20:2d6ac4577e68 83 ExitKey( "FIRMWARE UPDATE" );
WillemBraat 20:2d6ac4577e68 84 display.graphic_string( str2char( "REBOOT CDU >" ), righttext( "REBOOT CDU >", 24,24) , LINE3, FONT_24X34, WHITE, 2, 2 );
WillemBraat 20:2d6ac4577e68 85 }
WillemBraat 20:2d6ac4577e68 86
WillemBraat 20:2d6ac4577e68 87 void CDU_LightTest()
WillemBraat 20:2d6ac4577e68 88 {
WillemBraat 20:2d6ac4577e68 89 ExitKey( "CDU LIGHT TEST" );
WillemBraat 20:2d6ac4577e68 90 display.graphic_string( str2char( "< BACKLIGHT" ), 0, LINE3, FONT_24X34, WHITE, 2, 2 );
WillemBraat 20:2d6ac4577e68 91 display.graphic_string( str2char( "*=ON" ), centertext( "*=ON", 24, 24 ), LINE2, FONT_24X34, WHITE, 2, 2 );
WillemBraat 20:2d6ac4577e68 92 display.graphic_string( str2char( "----ANNUNCIATOR TEST----" ), 0, LINE4, FONT_24X34, WHITE, 2, 2 );
WillemBraat 20:2d6ac4577e68 93
WillemBraat 20:2d6ac4577e68 94 display.graphic_string( str2char( "< DSP" ), 0, LINE7, FONT_24X34, RED, 2, 2 );
WillemBraat 20:2d6ac4577e68 95 display.graphic_string( str2char( "< FAIL" ), 0, LINE9, FONT_24X34, RED, 2, 2 );
WillemBraat 20:2d6ac4577e68 96
WillemBraat 20:2d6ac4577e68 97 display.graphic_string( str2char( "EXEC >" ), righttext( "EXEC >", 24,24) , LINE5, FONT_24X34, GREEN, 2, 2 );
WillemBraat 20:2d6ac4577e68 98 display.graphic_string( str2char( "MSG >" ), righttext( "MSG >", 24,24) , LINE7, FONT_24X34, YELLOW, 2, 2 );
WillemBraat 20:2d6ac4577e68 99 display.graphic_string( str2char( "OFST >" ), righttext( "OFST >", 24,24) , LINE9, FONT_24X34, YELLOW, 2, 2 );
WillemBraat 20:2d6ac4577e68 100 }
WillemBraat 20:2d6ac4577e68 101
WillemBraat 20:2d6ac4577e68 102 void CDU_KeyboardTest()
WillemBraat 20:2d6ac4577e68 103 {
WillemBraat 20:2d6ac4577e68 104 ExitKey( "CDU KEYBOARD TEST");
WillemBraat 20:2d6ac4577e68 105 display.graphic_string( str2char( "KEYSCAN CODE: " ), 0, LINE6, FONT_24X34, WHITE, 2, 2 );
WillemBraat 20:2d6ac4577e68 106 display.graphic_string( str2char( "FS KEY VALUE: " ), 0, LINE7, FONT_24X34, WHITE, 2, 2 );
WillemBraat 20:2d6ac4577e68 107 display.graphic_string( str2char( "PRESS 2x [EXEC]" ), 6, LINE12, FONT_24X34, WHITE, 2, 2 );
WillemBraat 20:2d6ac4577e68 108 }
WillemBraat 20:2d6ac4577e68 109
WillemBraat 20:2d6ac4577e68 110 void ExitKey( string cTitleText )
WillemBraat 20:2d6ac4577e68 111 {
WillemBraat 20:2d6ac4577e68 112 //clear screen and place exit text
WillemBraat 20:2d6ac4577e68 113 CDU_displayclear();
WillemBraat 20:2d6ac4577e68 114 display.graphic_string( str2char( cTitleText ), centertext( cTitleText, 24, 24 ), LINE1, FONT_24X34, WHITE, 2, 2 );
WillemBraat 20:2d6ac4577e68 115 display.graphic_string( str2char( "< EXIT" ), 0, LINE13, FONT_24X34, WHITE, 2, 2 );
WillemBraat 20:2d6ac4577e68 116 }
WillemBraat 20:2d6ac4577e68 117
WillemBraat 20:2d6ac4577e68 118 //Show all setup screens
WillemBraat 20:2d6ac4577e68 119
WillemBraat 20:2d6ac4577e68 120 void CDU_Screens()
WillemBraat 20:2d6ac4577e68 121 {
WillemBraat 20:2d6ac4577e68 122 CDU_Maint();
WillemBraat 20:2d6ac4577e68 123 wait_ms( 4000 );
WillemBraat 20:2d6ac4577e68 124
WillemBraat 20:2d6ac4577e68 125 CDU_Setup();
WillemBraat 20:2d6ac4577e68 126 wait_ms( 4000 );
WillemBraat 20:2d6ac4577e68 127
WillemBraat 20:2d6ac4577e68 128 CDU_USB_Setup();
WillemBraat 20:2d6ac4577e68 129 wait_ms( 4000 );
WillemBraat 20:2d6ac4577e68 130
WillemBraat 20:2d6ac4577e68 131 CDU_Ethernet_Setup();
WillemBraat 20:2d6ac4577e68 132 wait_ms( 4000 );
WillemBraat 20:2d6ac4577e68 133
WillemBraat 20:2d6ac4577e68 134 CDU_Source_Setup();
WillemBraat 20:2d6ac4577e68 135 wait_ms( 4000 );
WillemBraat 20:2d6ac4577e68 136
WillemBraat 20:2d6ac4577e68 137 CDU_LightTest();
WillemBraat 20:2d6ac4577e68 138 wait_ms( 4000);
WillemBraat 20:2d6ac4577e68 139
WillemBraat 20:2d6ac4577e68 140 CDU_KeyboardTest();
WillemBraat 20:2d6ac4577e68 141 wait_ms( 4000 );
WillemBraat 20:2d6ac4577e68 142
WillemBraat 20:2d6ac4577e68 143 CDU_FW_Update();
WillemBraat 20:2d6ac4577e68 144 wait_ms( 4000 );
WillemBraat 20:2d6ac4577e68 145
WillemBraat 20:2d6ac4577e68 146 }