changeset 944:44599695df41 Evo_2_23

Restructure Date/Time menu: To have more space for upcoming optins the selection of the date format (DDMMYY) has been moved into a submenu. In addition the function was upgraded to support multi language handling.
author Ideenmodellierer
date Thu, 19 Dec 2024 18:58:18 +0100
parents e7f87ade3037
children aad1a6b9aaec
files Common/Inc/data_central.h Discovery/Inc/tStructure.h Discovery/Inc/text_multilanguage.h Discovery/Src/data_central.c Discovery/Src/tMenuEditSystem.c Discovery/Src/tMenuSystem.c Discovery/Src/text_multilanguage.c
diffstat 7 files changed, 250 insertions(+), 102 deletions(-) [+]
line wrap: on
line diff
--- a/Common/Inc/data_central.h	Mon Dec 16 19:33:20 2024 +0100
+++ b/Common/Inc/data_central.h	Thu Dec 19 18:58:18 2024 +0100
@@ -567,4 +567,8 @@
 
 uint8_t drawingColor_from_ascentspeed(float speed);
 
+void convertStringOfDate_DDMMYY(char* pString, uint8_t strLen, uint8_t day, uint8_t month, uint8_t year);
+void getStringOfFormat_DDMMYY(char* pString, uint8_t strLen);
+
+
 #endif // DATA_CENTRAL_H
--- a/Discovery/Inc/tStructure.h	Mon Dec 16 19:33:20 2024 +0100
+++ b/Discovery/Inc/tStructure.h	Thu Dec 19 18:58:18 2024 +0100
@@ -309,13 +309,15 @@
 #define StMSYS		_MB(2,8,0,0,0)
 
 /* PAGE 8 EDIT FIELD CONTENT */
-#define StMSYS1_Date		_MB(2,8,1,1,0)
-#define StMSYS1_Time		_MB(2,8,1,2,0)
-#define StMSYS1_DDMMYY	_MB(2,8,1,3,0)
-#define StMSYS1_MMDDYY	_MB(2,8,1,4,0)
-#define StMSYS1_YYMMDD	_MB(2,8,1,5,0)
-#define StMSYS1_DST			_MB(2,8,1,6,0)
-#define StMSYS1_12HR    _MB(2,8,1,7,0)
+#define StMSYS1_DateTime _MB(2,8,1,0,0)
+#define StMSYS1_Date	_MB(2,8,1,1,0)
+#define StMSYS1_Time	_MB(2,8,1,2,0)
+#define StMSYS1_FORMAT	_MB(2,8,1,3,0)
+#define StMSYS1_DDMMYY	_MB(2,8,1,3,1)
+#define StMSYS1_MMDDYY	_MB(2,8,1,3,2)
+#define StMSYS1_YYMMDD	_MB(2,8,1,3,3)
+#define StMSYS1_DST		_MB(2,8,1,4,0)
+#define StMSYS1_12HR    _MB(2,8,1,5,0)
 
 #define StMSYS_Timer	_MB(2,8,2,1,0)
 
--- a/Discovery/Inc/text_multilanguage.h	Mon Dec 16 19:33:20 2024 +0100
+++ b/Discovery/Inc/text_multilanguage.h	Thu Dec 19 18:58:18 2024 +0100
@@ -388,6 +388,10 @@
         TXT2BYTE_Current,
         TXT2BYTE_Log,
 
+		TXT2BYTE_DDMMYY,
+		TXT2BYTE_MMDDYY,
+		TXT2BYTE_YYMMDD,
+
 		TXT2BYTE_END,
 };
 
--- a/Discovery/Src/data_central.c	Mon Dec 16 19:33:20 2024 +0100
+++ b/Discovery/Src/data_central.c	Thu Dec 19 18:58:18 2024 +0100
@@ -972,4 +972,39 @@
     return color;
 }
 
+/* returns the date in the order defined by the settings DDMMYY => X */
+void convertStringOfDate_DDMMYY(char* pString, uint8_t strLen, uint8_t day, uint8_t month, uint8_t year)
+{
+	if(strLen > 10)
+	{
+		switch(settingsGetPointer()->date_format)
+		{
+			default:
+			case DDMMYY: snprintf(pString,strLen,"%02d.%02d.%02d",day,month,year);
+				break;
+			case MMDDYY: snprintf(pString,strLen,"%02d.%02d.%02d",month,day,year);
+				break;
+			case YYMMDD: snprintf(pString,strLen,"%02d.%02d.%02d",year,month,day);
+				break;
+		}
+	}
+}
+/* returns the format in the order defined by the settings DDMMYY => X */
+void getStringOfFormat_DDMMYY(char* pString, uint8_t strLen)
+{
+	if(strLen > 10)
+	{
+		switch(settingsGetPointer()->date_format)
+		{
+			default:
+			case DDMMYY: snprintf(pString,strLen,"%c%c",TXT_2BYTE,TXT2BYTE_DDMMYY);
+				break;
+			case MMDDYY:  snprintf(pString,strLen,"%c%c",TXT_2BYTE,TXT2BYTE_MMDDYY);
+				break;
+			case YYMMDD:  snprintf(pString,strLen,"%c%c",TXT_2BYTE,TXT2BYTE_YYMMDD);
+				break;
+		}
+	}
+}
 
+
--- a/Discovery/Src/tMenuEditSystem.c	Mon Dec 16 19:33:20 2024 +0100
+++ b/Discovery/Src/tMenuEditSystem.c	Thu Dec 19 18:58:18 2024 +0100
@@ -48,6 +48,7 @@
 
 /* Private function prototypes -----------------------------------------------*/
 void openEdit_DateTime(void);
+void openEdit_DateFormat(void);
 void openEdit_Language(void);
 void openEdit_Design(void);
 void openEdit_Information(void);
@@ -60,6 +61,7 @@
 uint8_t OnAction_Date					(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action);
 uint8_t OnAction_Time					(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action);
 uint8_t OnAction_12HR				(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action);
+uint8_t OnAction_Format				(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action);
 uint8_t OnAction_DDMMYY				(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action);
 uint8_t OnAction_MMDDYY				(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action);
 uint8_t OnAction_YYMMDD				(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action);
@@ -237,14 +239,19 @@
 {
     RTC_DateTypeDef Sdate;
     RTC_TimeTypeDef Stime;
-    uint8_t day,month,year,hour,minute, dateFormat, ddmmyy, mmddyy, yymmdd;
+    uint8_t day,month,year,hour,minute;
     char text[32];
+    char formatStr[10];
     SSettings *pSettings;
     const SFirmwareData *pFirmwareInfo;
     pFirmwareInfo = firmwareDataGetPointer();
     const SDiveState * pStateReal = stateRealGetPointer();
 
     pSettings = settingsGetPointer();
+
+    set_globalState(StMSYS1_DateTime);
+	resetMenuEdit(CLUT_MenuPageSystem);
+
     translateDate(pStateReal->lifeData.dateBinaryFormat, &Sdate);
     translateTime(pStateReal->lifeData.timeBinaryFormat, &Stime);
     year = Sdate.Year;
@@ -263,18 +270,17 @@
         day = 1;
 
 //	daylightsaving = Stime.DayLightSaving;
-    dateFormat = pSettings->date_format;
-    ddmmyy = 0;
-    mmddyy = 0;
-    yymmdd = 0;
 
-    if(dateFormat == DDMMYY)
-        ddmmyy = 1;
-    else
-    if(dateFormat == MMDDYY)
-        mmddyy = 1;
-    else
-        yymmdd = 1;
+    switch(pSettings->date_format)
+    {
+    	default:
+    	case DDMMYY: snprintf(formatStr,10,"DDMMYY");
+    		break;
+    	case MMDDYY: snprintf(formatStr,10,"MMDDYY");
+    		break;
+    	case YYMMDD: snprintf(formatStr,10,"YYMMDD");
+    	    break;
+    };
 
     text[0] = '\001';
     text[1] = TXT_DateAndTime;
@@ -285,24 +291,29 @@
     write_label_fix(  20, 340, ME_Y_LINE1, &FontT42, TXT_TimeConfig);
     write_label_fix(  20, 340, ME_Y_LINE2, &FontT42, TXT_Format);
     write_label_fix(  20, 340, ME_Y_LINE3, &FontT42, TXT_DateConfig);
-    write_label_var( 600, 800, ME_Y_LINE4, &FontT48, "\016\016DDMMYY\017");
-    write_label_fix(  20, 790, ME_Y_LINE5, &FontT42, TXT_Format);
-//	write_label_fix( 350 ,580, 250, &FontT42, TXT_Daylightsaving);
+    write_label_fix(  20, 790, ME_Y_LINE4, &FontT42, TXT_Format);
 
     write_field_2digit(StMSYS1_Time,		320, 780, ME_Y_LINE1,  &FontT48, "##:##", (uint32_t)hour, (uint32_t)minute, 0, 0);
-    write_field_on_off(StMSYS1_12HR,			320, 790, ME_Y_LINE2,  &FontT48, "12 HR", pSettings->amPMTime);
-    write_field_2digit(StMSYS1_Date,		320, 780, ME_Y_LINE3,  &FontT48, "##-##-20##", (uint32_t)day, (uint32_t)month, (uint32_t)year, 0);
-    write_field_on_off(StMSYS1_DDMMYY,	320, 790, ME_Y_LINE4,  &FontT48, "DDMMYY", ddmmyy);
-    write_field_on_off(StMSYS1_MMDDYY,	320, 790, ME_Y_LINE5,  &FontT48, "MMDDYY", mmddyy);
-    write_field_on_off(StMSYS1_YYMMDD,	320, 790, ME_Y_LINE6,  &FontT48, "YYMMDD", yymmdd);
-//	write_field_on_off(StMSYS1_DST,			350, 580, 310,  &FontT48, "Active", daylightsaving);
+    write_field_on_off(StMSYS1_12HR,		320, 790, ME_Y_LINE2,  &FontT48, "12 HR", pSettings->amPMTime);
+
+    switch(pSettings->date_format)
+    {
+    	default:
+    	case DDMMYY:  write_field_2digit(StMSYS1_Date,		320, 780, ME_Y_LINE3,  &FontT48, "##-##-20##", (uint32_t)day, (uint32_t)month, (uint32_t)year, 0);
+    		break;
+    	case MMDDYY:  write_field_2digit(StMSYS1_Date,		320, 780, ME_Y_LINE3,  &FontT48, "##-##-20##", (uint32_t)month, (uint32_t)day, (uint32_t)year, 0);
+    		break;
+    	case YYMMDD:  write_field_2digit(StMSYS1_Date,		320, 780, ME_Y_LINE3,  &FontT48, "20##-##-##", (uint32_t)year, (uint32_t)month, (uint32_t)day, 0);
+    		break;
+    }
+
+
+    write_field_button(StMSYS1_FORMAT, 320, 790, ME_Y_LINE4,  &FontT48, formatStr);
 
     setEvent(StMSYS1_Date, 		(uint32_t)OnAction_Date);
     setEvent(StMSYS1_Time, 		(uint32_t)OnAction_Time);
     setEvent(StMSYS1_12HR,      (uint32_t)OnAction_12HR);
-    setEvent(StMSYS1_DDMMYY,	(uint32_t)OnAction_DDMMYY);
-    setEvent(StMSYS1_MMDDYY,	(uint32_t)OnAction_MMDDYY);
-    setEvent(StMSYS1_YYMMDD,	(uint32_t)OnAction_YYMMDD);
+    setEvent(StMSYS1_FORMAT,	(uint32_t)OnAction_Format);
 //	setEvent(StMSYS1_DST,			(uint32_t)OnAction_DST);
 
     write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext);
@@ -318,13 +329,41 @@
     const SFirmwareData *pFirmwareInfo;
     pFirmwareInfo = firmwareDataGetPointer();
 
+    uint8_t mapDMY[3];
+    switch(settingsGetPointer()->date_format)
+    {
+    	default:
+    	case DDMMYY: mapDMY[0] = 0;
+    				 mapDMY[1] = 1;
+    				 mapDMY[2] = 2;
+    		break;
+    	case MMDDYY: mapDMY[0] = 1;
+		 	 	 	 mapDMY[1] = 0;
+		 	 	 	 mapDMY[2] = 2;
+    		break;
+    	case YYMMDD: mapDMY[0] = 2;
+ 	 	 	 	 	 mapDMY[1] = 1;
+ 	 	 	 	 	 mapDMY[2] = 0;
+    	break;
+    }
+
     if(action == ACTION_BUTTON_ENTER)
     {
         return digitContent;
     }
     if(action == ACTION_BUTTON_ENTER_FINAL)
     {
-        evaluateNewString(editId, &newDay, &newMonth, &newYear, 0);
+    	switch(settingsGetPointer()->date_format)
+    	    {
+    	    	default:
+    	    	case DDMMYY: evaluateNewString(editId, &newDay, &newMonth, &newYear, 0);
+    	    		break;
+    	    	case MMDDYY: evaluateNewString(editId, &newMonth, &newDay, &newYear, 0);
+    	    		break;
+    	    	case YYMMDD: evaluateNewString(editId, &newYear, &newMonth, &newDay, 0);
+    	    		break;
+    	    }
+
         if(newDay == 0)
             newDay = 1;
         if(newDay > 31)
@@ -349,29 +388,52 @@
 
         setDate(sdatestructure);
 
-        tMenuEdit_newInput(editId, newDay, newMonth, newYear, 0);
+        switch(settingsGetPointer()->date_format)
+        {
+           	default:
+           	case DDMMYY: tMenuEdit_newInput(editId, newDay, newMonth, newYear, 0);
+          		break;
+           	case MMDDYY: tMenuEdit_newInput(editId, newMonth, newDay, newYear, 0);
+           		break;
+           	case YYMMDD: tMenuEdit_newInput(editId, newYear, newMonth, newDay, 0);
+           		break;
+        }
+
         return UNSPECIFIC_RETURN;
     }
     if(action == ACTION_BUTTON_NEXT)		/* clip values to a specific range e.g. 12 months */
     {
         digitContentNew = digitContent + 1;
-        if((blockNumber == 0) && (digitContentNew > '0' + 31))
+
+        if((blockNumber == mapDMY[0]) && (digitContentNew > '0' + 31))
+        {
             digitContentNew = '1';
-        if((blockNumber == 1) && (digitContentNew > '0' + 12))
+        }
+        if((blockNumber == mapDMY[1]) && (digitContentNew > '0' + 12))
+        {
             digitContentNew = '1';
-        if((blockNumber == 2) && (digitContentNew > '0' + pFirmwareInfo->release_year + 10))
+        }
+        if((blockNumber == mapDMY[2]) && (digitContentNew > '0' + pFirmwareInfo->release_year + 10))
+        {
             digitContentNew = '0' + pFirmwareInfo->release_year;
+        }
         return digitContentNew;
     }
     if(action == ACTION_BUTTON_BACK)		/* clip values to a specific range e.g. 12 months */
     {
         digitContentNew = digitContent - 1;
-        if((blockNumber == 0) && (digitContentNew < '1'))
+        if((blockNumber == mapDMY[0]) && (digitContentNew < '1'))
+        {
             digitContentNew = '0' + 31;
-        if((blockNumber == 1) && (digitContentNew < '1'))
+        }
+        if((blockNumber ==  mapDMY[1]) && (digitContentNew < '1'))
+        {
             digitContentNew = '0' + 12;
-        if((blockNumber == 2) && (digitContentNew < '0' + pFirmwareInfo->release_year))
+        }
+        if((blockNumber ==  mapDMY[2]) && (digitContentNew < '0' + pFirmwareInfo->release_year))
+        {
             digitContentNew = '0' + pFirmwareInfo->release_year + 10;
+        }
         return digitContentNew;
     }
 /*
@@ -490,6 +552,59 @@
     return UNSPECIFIC_RETURN;
 }
 
+void openEdit_DateFormat(void)
+{
+    char text[32];
+    SSettings *pSettings;
+
+    uint8_t ddmmyy = 0;
+    uint8_t mmddyy= 0;
+    uint8_t yymmdd = 0;
+
+    pSettings = settingsGetPointer();
+
+
+    set_globalState(StMSYS1_FORMAT);
+	resetMenuEdit(CLUT_MenuPageSystem);
+	setBackMenu((uint32_t)openEdit_DateTime,0,4);
+
+    switch(pSettings->date_format)
+    {
+    	default:
+    	case DDMMYY: ddmmyy = 1;
+    		break;
+    	case MMDDYY: mmddyy = 1;
+    		break;
+    	case YYMMDD: yymmdd = 1;
+    	    break;
+    };
+
+    text[0] = '\001';
+    text[1] = TXT_Format;
+    text[2] = 0;
+
+    write_topline(text);
+
+    write_label_fix(  20, 790, ME_Y_LINE2, &FontT42, TXT_Format);
+
+    write_field_on_off(StMSYS1_DDMMYY,  320, 790, ME_Y_LINE1,  &FontT48, "DDMMYY", ddmmyy);
+    write_field_on_off(StMSYS1_MMDDYY,	320, 790, ME_Y_LINE2,  &FontT48, "MMDDYY", mmddyy);
+    write_field_on_off(StMSYS1_YYMMDD,	320, 790, ME_Y_LINE3,  &FontT48, "YYMMDD", yymmdd);
+
+    setEvent(StMSYS1_DDMMYY,	(uint32_t)OnAction_DDMMYY);
+    setEvent(StMSYS1_MMDDYY,	(uint32_t)OnAction_MMDDYY);
+    setEvent(StMSYS1_YYMMDD,	(uint32_t)OnAction_YYMMDD);
+
+    write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext);
+}
+
+uint8_t OnAction_Format(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action)
+{
+	openEdit_DateFormat();
+
+    return UNSPECIFIC_RETURN;
+}
+
 uint8_t OnAction_DDMMYY(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action)
 {
     SSettings *pSettings;
--- a/Discovery/Src/tMenuSystem.c	Mon Dec 16 19:33:20 2024 +0100
+++ b/Discovery/Src/tMenuSystem.c	Thu Dec 19 18:58:18 2024 +0100
@@ -49,7 +49,6 @@
     SSettings *data;
     int i;
     uint8_t textPointer;
-    uint8_t dateFormat;
     uint8_t RTEhigh, RTElow;
     RTC_DateTypeDef Sdate;
     RTC_TimeTypeDef Stime;
@@ -59,6 +58,7 @@
     textPointer = 0;
     *tab = 300;
     *subtext = 0;
+    char tmpString[15];
 
     resetLineMask(StMSYS);
 
@@ -128,49 +128,11 @@
         translateDate(pStateReal->lifeData.dateBinaryFormat, &Sdate);
         translateTime(pStateReal->lifeData.timeBinaryFormat, &Stime);
 
-        dateFormat = data->date_format;
-
-        textPointer += snprintf(&text[textPointer], 40,
-            "Date"
-            "\016\016"
-            " "
-        );
-
-        if(dateFormat == DDMMYY)
-        {
-            textPointer += snprintf(&text[textPointer], 40,
-                "DDMMYY"
-                "\017"
-                "\t"
-                "%02d-%02d-%02d"
-                "  "
-                , Sdate.Date, Sdate.Month, 2000 + Sdate.Year
-            );
-        }
-        else
-        if(dateFormat == MMDDYY)
-        {
-            textPointer += snprintf(&text[textPointer], 40,
-                "MMDDYY"
-                "\017"
-                "\t"
-                "%02d-%02d-%02d"
-                "  "
-                ,Sdate.Month, Sdate.Date, 2000 + Sdate.Year
-            );
-        }
-        else
-        if(dateFormat == YYMMDD)
-        {
-            textPointer += snprintf(&text[textPointer], 40,
-                "YYMMDD"
-                "\017"
-                "\t"
-                "%02d-%02d-%02d"
-                "  "
-                , 2000 + Sdate.Year, Sdate.Month, Sdate.Date
-            );
-        }
+        text[textPointer++] = TXT_Date;
+        getStringOfFormat_DDMMYY(tmpString,15);
+        textPointer += snprintf(&text[textPointer], 40,"\016\016 %s ",tmpString);
+       convertStringOfDate_DDMMYY(tmpString,15,Sdate.Date, Sdate.Month, Sdate.Year);
+        textPointer += snprintf(&text[textPointer], 40,"\017\t%s   ",tmpString);
 
         textPointer += snprintf(&text[textPointer], 60,
             "%02d:%02d:%02d"
--- a/Discovery/Src/text_multilanguage.c	Mon Dec 16 19:33:20 2024 +0100
+++ b/Discovery/Src/text_multilanguage.c	Thu Dec 19 18:58:18 2024 +0100
@@ -1969,6 +1969,26 @@
 static uint8_t text_IT_Log[] = "Registrare";
 static uint8_t text_ES_Log[] = "Registrar";
 
+static uint8_t text_EN_DDMMYY[] = "DDMMYY";
+static uint8_t text_DE_DDMMYY[] = "TTMMJJ";
+static uint8_t text_FR_DDMMYY[] = "";
+static uint8_t text_IT_DDMMYY[] = "";
+static uint8_t text_ES_DDMMYY[] = "";
+
+static uint8_t text_EN_MMDDYY[] = "MMDDYY";
+static uint8_t text_DE_MMDDYY[] = "MMTTJJ";
+static uint8_t text_FR_MMDDYY[] = "";
+static uint8_t text_IT_MMDDYY[] = "";
+static uint8_t text_ES_MMDDYY[] = "";
+
+static uint8_t text_EN_YYMMDD[] = "YYMMDD";
+static uint8_t text_DE_YYMMDD[] = "JJMMTT";
+static uint8_t text_FR_YYMMDD[] = "";
+static uint8_t text_IT_YYMMDD[] = "";
+static uint8_t text_ES_YYMMDD[] = "";
+
+
+
 /* Lookup Table -------------------------------------------------------------*/
 
 const tText text_array[] =
@@ -2059,7 +2079,7 @@
 	{(uint8_t)TXT_PSCRLungRatio,	{text_EN_LungRatio, text_DE_LungRatio, text_FR_LungRatio, text_IT_LungRatio, text_ES_LungRatio}},
 	{(uint8_t)TXT_SimPpo2,			{text_EN_SimPpo2, text_DE_SimPpo2, text_FR_SimPpo2, text_IT_SimPpo2, text_ES_SimPpo2}},
 	{(uint8_t)TXT_CO2Sensor,		{text_EN_CO2Sensor, text_DE_CO2Sensor, text_FR_CO2Sensor, text_IT_CO2Sensor, text_ES_CO2Sensor}},
-	{(uint8_t)TXT_ButtonLock,			{text_EN_KeyLock, text_DE_KeyLock, text_FR_KeyLock, text_IT_KeyLock, text_ES_KeyLock}},
+	{(uint8_t)TXT_ButtonLock,		{text_EN_KeyLock, text_DE_KeyLock, text_FR_KeyLock, text_IT_KeyLock, text_ES_KeyLock}},
 };
 
 const tText text_array2[] =
@@ -2239,11 +2259,11 @@
 	{(uint8_t)TXT2BYTE_CheckSettings, 	{text_EN_CheckSettings, text_DE_CheckSettings, text_FR_CheckSettings, text_IT_CheckSettings, text_ES_CheckSettings}},
 	{(uint8_t)TXT2BYTE_NotCalibrated, 	{text_EN_NotCalibrated, text_DE_NotCalibrated, text_FR_NotCalibrated, text_IT_NotCalibrated, text_ES_NotCalibrated}},
 
-	{(uint8_t)TXT2BYTE_CcrSummary, 	{text_EN_CcrSummary, text_DE_CcrSummary, text_FR_CcrSummary, text_IT_CcrSummary, text_ES_CcrSummary}},
-	{(uint8_t)TXT2BYTE_Setpoint, 	{text_EN_Setpoint, text_DE_Setpoint, text_FR_Setpoint, text_IT_Setpoint, text_ES_Setpoint}},
-	{(uint8_t)TXT2BYTE_Scrubber, 	{text_EN_Scrubber, text_DE_Scrubber, text_FR_Scrubber, text_IT_Scrubber, text_ES_Scrubber}},
+	{(uint8_t)TXT2BYTE_CcrSummary, 		{text_EN_CcrSummary, text_DE_CcrSummary, text_FR_CcrSummary, text_IT_CcrSummary, text_ES_CcrSummary}},
+	{(uint8_t)TXT2BYTE_Setpoint, 		{text_EN_Setpoint, text_DE_Setpoint, text_FR_Setpoint, text_IT_Setpoint, text_ES_Setpoint}},
+	{(uint8_t)TXT2BYTE_Scrubber, 		{text_EN_Scrubber, text_DE_Scrubber, text_FR_Scrubber, text_IT_Scrubber, text_ES_Scrubber}},
 	{(uint8_t)TXT2BYTE_BailoutShort, 	{text_EN_BailoutShort, text_DE_BailoutShort, text_FR_BailoutShort, text_IT_BailoutShort, text_ES_BailoutShort}},
-	{(uint8_t)TXT2BYTE_LoopShort, 	{text_EN_LoopShort, text_DE_LoopShort, text_FR_LoopShort, text_IT_LoopShort, text_ES_LoopShort}},
+	{(uint8_t)TXT2BYTE_LoopShort, 		{text_EN_LoopShort, text_DE_LoopShort, text_FR_LoopShort, text_IT_LoopShort, text_ES_LoopShort}},
 	{(uint8_t)TXT2BYTE_SetpointShort, 	{text_EN_SetpointShort, text_DE_SetpointShort, text_FR_SetpointShort, text_IT_SetpointShort, text_ES_SetpointShort}},
 
 	{(uint8_t)TXT2BYTE_SetpointLow, 	{text_EN_SetpointLow, text_DE_SetpointLow, text_FR_SetpointLow, text_IT_SetpointLow, text_ES_SetpointLow}},
@@ -2251,25 +2271,31 @@
 	{(uint8_t)TXT2BYTE_SetpointDeco, 	{text_EN_SetpointDeco, text_DE_SetpointDeco, text_FR_SetpointDeco, text_IT_SetpointDeco, text_ES_SetpointDeco}},
 	{(uint8_t)TXT2BYTE_SetpointDelayed, 	{text_EN_SetpointDelayed, text_DE_SetpointDelayed, text_FR_SetpointDelayed, text_IT_SetpointDelayed, text_ES_SetpointDelayed}},
 
-	{(uint8_t)TXT2BYTE_Enabled, 	{text_EN_Enabled, text_DE_Enabled, text_FR_Enabled, text_IT_Enabled, text_ES_Enabled}},
-	{(uint8_t)TXT2BYTE_Custom, 	{text_EN_Custom, text_DE_Custom, text_FR_Custom, text_IT_Custom, text_ES_Custom}},
+	{(uint8_t)TXT2BYTE_Enabled, 		{text_EN_Enabled, text_DE_Enabled, text_FR_Enabled, text_IT_Enabled, text_ES_Enabled}},
+	{(uint8_t)TXT2BYTE_Custom, 			{text_EN_Custom, text_DE_Custom, text_FR_Custom, text_IT_Custom, text_ES_Custom}},
 
-	{(uint8_t)TXT2BYTE_Set, 	{text_EN_Set, text_DE_Set, text_FR_Set, text_IT_Set, text_ES_Set}},
-	{(uint8_t)TXT2BYTE_Clear, 	{text_EN_Clear, text_DE_Clear, text_FR_Clear, text_IT_Clear, text_ES_Clear}},
-	{(uint8_t)TXT2BYTE_Reset, 	{text_EN_Reset, text_DE_Reset, text_FR_Reset, text_IT_Reset, text_ES_Reset}},
+	{(uint8_t)TXT2BYTE_Set, 			{text_EN_Set, text_DE_Set, text_FR_Set, text_IT_Set, text_ES_Set}},
+	{(uint8_t)TXT2BYTE_Clear, 			{text_EN_Clear, text_DE_Clear, text_FR_Clear, text_IT_Clear, text_ES_Clear}},
+	{(uint8_t)TXT2BYTE_Reset, 			{text_EN_Reset, text_DE_Reset, text_FR_Reset, text_IT_Reset, text_ES_Reset}},
 
 	{(uint8_t)TXT2BYTE_CounterLung, 	{text_EN_CounterLung, text_DE_CounterLung, text_FR_CounterLung, text_IT_CounterLung, text_ES_CounterLung}},
-	{(uint8_t)TXT2BYTE_Pressure, 	{text_EN_Pressure, text_DE_Pressure, text_FR_Pressure, text_IT_Pressure, text_ES_Pressure}},
+	{(uint8_t)TXT2BYTE_Pressure, 		{text_EN_Pressure, text_DE_Pressure, text_FR_Pressure, text_IT_Pressure, text_ES_Pressure}},
 
-	{(uint8_t)TXT2BYTE_Timer, 	{text_EN_Timer, text_DE_Timer, text_FR_Timer, text_IT_Timer, text_ES_Timer}},
-	{(uint8_t)TXT2BYTE_Starting, 	{text_EN_Starting, text_DE_Starting, text_FR_Starting, text_IT_Starting, text_ES_Starting}},
-	{(uint8_t)TXT2BYTE_Finished, 	{text_EN_Finished, text_DE_Finished, text_FR_Finished, text_IT_Finished, text_ES_Finished}},
+	{(uint8_t)TXT2BYTE_Timer, 			{text_EN_Timer, text_DE_Timer, text_FR_Timer, text_IT_Timer, text_ES_Timer}},
+	{(uint8_t)TXT2BYTE_Starting, 		{text_EN_Starting, text_DE_Starting, text_FR_Starting, text_IT_Starting, text_ES_Starting}},
+	{(uint8_t)TXT2BYTE_Finished, 		{text_EN_Finished, text_DE_Finished, text_FR_Finished, text_IT_Finished, text_ES_Finished}},
+
+	{(uint8_t)TXT2BYTE_Position, 		{text_EN_Position, text_DE_Position, text_FR_Position, text_IT_Position, text_ES_Position}},
+	{(uint8_t)TXT2BYTE_VpmTable, 		{text_EN_VpmTable, text_DE_VpmTable, text_FR_VpmTable, text_IT_VpmTable, text_ES_VpmTable}},
 
-	{(uint8_t)TXT2BYTE_Position, 	{text_EN_Position, text_DE_Position, text_FR_Position, text_IT_Position, text_ES_Position}},
-	{(uint8_t)TXT2BYTE_VpmTable, 	{text_EN_VpmTable, text_DE_VpmTable, text_FR_VpmTable, text_IT_VpmTable, text_ES_VpmTable}},
+	{(uint8_t)TXT2BYTE_Page, 			{text_EN_Page, text_DE_Page, text_FR_Page, text_IT_Page, text_ES_Page}},
 
-	{(uint8_t)TXT2BYTE_Page, 	{text_EN_Page, text_DE_Page, text_FR_Page, text_IT_Page, text_ES_Page}},
+	{(uint8_t)TXT2BYTE_Current, 		{text_EN_Current, text_DE_Current, text_FR_Current, text_IT_Current, text_ES_Current}},
+	{(uint8_t)TXT2BYTE_Log, 			{text_EN_Log, text_DE_Log, text_FR_Log, text_IT_Log, text_ES_Log}},
+	{(uint8_t)TXT2BYTE_DDMMYY, 			{text_EN_DDMMYY, text_DE_DDMMYY, text_FR_DDMMYY, text_IT_DDMMYY, text_ES_DDMMYY}},
+	{(uint8_t)TXT2BYTE_MMDDYY, 			{text_EN_MMDDYY, text_DE_MMDDYY, text_FR_MMDDYY, text_IT_MMDDYY, text_ES_MMDDYY}},
+	{(uint8_t)TXT2BYTE_YYMMDD, 			{text_EN_YYMMDD, text_DE_YYMMDD, text_FR_YYMMDD, text_IT_YYMMDD, text_ES_YYMMDD}},
 
-	{(uint8_t)TXT2BYTE_Current, 	{text_EN_Current, text_DE_Current, text_FR_Current, text_IT_Current, text_ES_Current}},
-	{(uint8_t)TXT2BYTE_Log, 	{text_EN_Log, text_DE_Log, text_FR_Log, text_IT_Log, text_ES_Log}},
+
+
 };