New work version with additional functions

Dependencies:   4DGL-UC ConfigFile MODSERIAL mbed mbos

Fork of CDU_Mbed_35 by Engravity-CDU

Revision:
18:fd672797458c
Parent:
17:b3545e9d38f7
Child:
19:9d8032cb0f12
--- a/display.cpp	Tue Aug 26 14:18:39 2014 +0000
+++ b/display.cpp	Thu Aug 28 12:01:12 2014 +0000
@@ -4,6 +4,7 @@
 #include "display.h"
 #include <string>
 #include "pins.h"
+
 using namespace std;
 
 DigitalOut VGA_SOURCE( VGA_SOURCE_SELECT ); //control line for video switch between INT and EXT video
@@ -192,6 +193,7 @@
     }
     return ( nHorPos );
 }
+
 int nLine2Pixel( int nLine )
 {
     //calculate vertical pixelposition from linenumber
@@ -284,20 +286,58 @@
     }
     return ( nPixel ) ;
 }
+
 void VGA_SIGNAL( int Source, int On_Off)
 {
     VGA_SOURCE = Source;
     VGA_SELECT = On_Off;
 }
+
 void CDU_InitDisplay()
 {
     display.baudrate( 9600 );       //init uVGAIII card
     VGA_SIGNAL( VGA_INT, VGA_ON );  //select INTERNTAL video and set VGA switch ON
 }
+
+string CDU_Hardware()
+{
+    string cHardware = "HW version: ";
+    char   buf[10];
+    sprintf(buf, "%d", HW_VERSION_MAIN );
+    cHardware += buf;
+    cHardware += ".";
+    sprintf(buf, "%d", HW_VERSION_SUB );
+    cHardware += buf;
+ return cHardware;
+ }
+
+string CDU_Firmware()
+{
+    string cFirmware = "FW version: ";
+    char   buf[10];
+    sprintf(buf, "%d", SW_VERSION_MAIN );
+    cFirmware += buf;
+    cFirmware += ".";
+    sprintf(buf, "%d", SW_VERSION_SUB );
+    cFirmware += buf;
+return cFirmware;
+}
+
+string CDU_Compile()
+{
+    string cCompile = "FW Timestamp: " ;
+    cCompile += __DATE__; 
+    cCompile += " ";
+    cCompile += __TIME__;  
+return cCompile  ;
+}
+
 void CDU_StartScreen()
 {
     string cTitle1="ENGRAVITY";
     string cTitle2="CONTROL & DISPLAY UNIT";
+
+    
     display.cls();  
     
     display.graphic_string( str2char( cTitle1 ), centertext( cTitle1, 24, LARGECHAR), LINE6, FONT_24X34, WHITE, 1, 1 );
@@ -308,9 +348,15 @@
     wait_ms(100);
     display.graphic_string( str2char( cTitle2) , centertext( cTitle2, 24, LARGECHAR), LINE8, FONT_24X34, BLUE, 1, 1 );
     wait_ms(100);
-    display.graphic_string( str2char( cTitle2) , centertext( cTitle2, 24, LARGECHAR), LINE8, FONT_24X34, WHITE, 1, 1 );
-    wait_ms(100);
+    
+    display.cls();
+    //Firmware information
+    display.graphic_string( str2char( CDU_Hardware() ), centertext( CDU_Hardware(), 48, SMALLCHAR), LINE6, FONT_12X34, WHITE, 1, 1 );
+    display.graphic_string( str2char( CDU_Firmware() ), centertext( CDU_Firmware(), 48, SMALLCHAR), LINE7, FONT_12X34, WHITE, 1, 1 );
+    display.graphic_string( str2char( CDU_Compile() ), centertext( CDU_Compile(), 48, SMALLCHAR), LINE8, FONT_12X34, WHITE, 1, 1 );
+    wait_ms(5000);    
 }
+
 void CDU_ScreenAlign()
 //Draw a wireframe for aligning the screen on display with keys
 {