# HG changeset patch
# User Ideenmodellierer
# Date 1666981944 -7200
# Node ID 2f457024049b8d4b0071bb77a23d80109a014a1d
# Parent  6d7c812fc17324b77267a8748fcf57e54c635cb9
Added selection of digital o2 sensor source to HW menu:
Beside analog sensing a pure digital and a mixed mode (analag + digital) may now be selected by the HW sensor menu.
Bugfix: cursor was jumping to the first menu item in case the sensor source was changed. This was fixed and the cursor now stays at the sensor input selection.

diff -r 6d7c812fc173 -r 2f457024049b Discovery/Inc/text_multilanguage.h
--- a/Discovery/Inc/text_multilanguage.h	Fri Oct 28 20:29:37 2022 +0200
+++ b/Discovery/Inc/text_multilanguage.h	Fri Oct 28 20:32:24 2022 +0200
@@ -287,6 +287,7 @@
 		TXT2BYTE_O2Interface,
 		TXT2BYTE_O2IFOptic,
 		TXT2BYTE_O2IFAnalog,
+		TXT2BYTE_O2IFDigital,
 		TXT2BYTE_LowerIsLess,
 		TXT2BYTE_DiveMenuQ,
 		TXT2BYTE_DiveQuitQ,
diff -r 6d7c812fc173 -r 2f457024049b Discovery/Src/tMenuEditHardware.c
--- a/Discovery/Src/tMenuEditHardware.c	Fri Oct 28 20:29:37 2022 +0200
+++ b/Discovery/Src/tMenuEditHardware.c	Fri Oct 28 20:32:24 2022 +0200
@@ -342,6 +342,17 @@
 			case O2_SENSOR_SOURCE_ANALOG: 	text[1] = TXT2BYTE_O2IFAnalog;
 											text[2] = 0;
 				break;
+			case O2_SENSOR_SOURCE_DIGITAL: 	text[1] = TXT2BYTE_O2IFDigital;
+											text[2] = 0;
+				break;
+			case O2_SENSOR_SOURCE_ANADIG: 	text[1] = TXT2BYTE_O2IFAnalog;
+											text[2] = ' ';
+											text[3] = '+';
+											text[4] = ' ';
+											text[5] = TXT_2BYTE;
+											text[6] = TXT2BYTE_O2IFDigital;
+											text[7] = 0;
+				break;
 #ifdef ENABLE_SENTINEL_MODE
 			case O2_SENSOR_SOURCE_SENTINEL: snprintf(text, 10,"Sentinel");
 				break;
@@ -385,7 +396,7 @@
     write_field_on_off(StMHARD3_O2_Sensor2,	 30, 95, ME_Y_LINE2,  &FontT48, "", sensorActive[1]);
     write_field_on_off(StMHARD3_O2_Sensor3,	 30, 95, ME_Y_LINE3,  &FontT48, "", sensorActive[2]);
 
-    if((settingsGetPointer()->ppo2sensors_source == O2_SENSOR_SOURCE_ANALOG)
+    if((settingsGetPointer()->ppo2sensors_source == O2_SENSOR_SOURCE_ANALOG) || (settingsGetPointer()->ppo2sensors_source == O2_SENSOR_SOURCE_ANADIG)
 #ifdef ENABLE_SENTINEL_MODE
     		|| (settingsGetPointer()->ppo2sensors_source == O2_SENSOR_SOURCE_SENTINEL)
 #endif
@@ -410,7 +421,7 @@
     setEvent(StMHARD3_O2_Sensor1, (uint32_t)OnAction_Sensor1);
     setEvent(StMHARD3_O2_Sensor2, (uint32_t)OnAction_Sensor2);
     setEvent(StMHARD3_O2_Sensor3, (uint32_t)OnAction_Sensor3);
-    if((settingsGetPointer()->ppo2sensors_source == O2_SENSOR_SOURCE_ANALOG)
+    if((settingsGetPointer()->ppo2sensors_source == O2_SENSOR_SOURCE_ANALOG) || (settingsGetPointer()->ppo2sensors_source == O2_SENSOR_SOURCE_ANADIG)
 #ifdef ENABLE_SENTINEL_MODE
     		|| (settingsGetPointer()->ppo2sensors_source == O2_SENSOR_SOURCE_SENTINEL)
 #endif
@@ -562,6 +573,7 @@
 
     resetMenuEdit(CLUT_MenuPageHardware); 	/* rebuild menu structure (Hide HUD <=> Show Calibrate) */
     openEdit_O2Sensors();
+    tMenuEdit_select(StMHARD3_O2_Source);
     return UPDATE_DIVESETTINGS;
 }
 
diff -r 6d7c812fc173 -r 2f457024049b Discovery/Src/text_multilanguage.c
--- a/Discovery/Src/text_multilanguage.c	Fri Oct 28 20:29:37 2022 +0200
+++ b/Discovery/Src/text_multilanguage.c	Fri Oct 28 20:32:24 2022 +0200
@@ -1291,6 +1291,12 @@
 static uint8_t text_IT_O2IFAnalog[] = "";
 static uint8_t text_ES_O2IFAnalog[] = "";
 
+static uint8_t text_EN_O2IFDigital[] = "digital";
+static uint8_t text_DE_O2IFDigital[] = "digital";
+static uint8_t text_FR_O2IFDigital[] = "";
+static uint8_t text_IT_O2IFDigital[] = "";
+static uint8_t text_ES_O2IFDigital[] = "";
+
 // Menu SYS1 sub (buttons)
 static uint8_t text_EN_LowerIsLess[] = "Lower is less sensitive";
 static uint8_t text_DE_LowerIsLess[] = "Niedriger ist schwergängiger";
@@ -1954,6 +1960,7 @@
 	{(uint8_t)TXT2BYTE_O2Interface,		{text_EN_O2Interface, text_DE_O2Interface, text_FR_O2Interface, text_IT_O2Interface, text_ES_O2Interface}},
 	{(uint8_t)TXT2BYTE_O2IFOptic,		{text_EN_O2IFOptic, text_DE_O2IFOptic, text_FR_O2IFOptic, text_IT_O2IFOptic, text_ES_O2IFOptic}},
 	{(uint8_t)TXT2BYTE_O2IFAnalog,		{text_EN_O2IFAnalog, text_DE_O2IFAnalog, text_FR_O2IFAnalog, text_IT_O2IFAnalog, text_ES_O2IFAnalog}},
+	{(uint8_t)TXT2BYTE_O2IFDigital,		{text_EN_O2IFDigital, text_DE_O2IFDigital, text_FR_O2IFDigital, text_IT_O2IFDigital, text_ES_O2IFDigital}},
     {(uint8_t)TXT2BYTE_LowerIsLess,		{text_EN_LowerIsLess, text_DE_LowerIsLess, text_FR_LowerIsLess, text_IT_LowerIsLess, text_ES_LowerIsLess}},
     {(uint8_t)TXT2BYTE_DiveMenuQ,		{text_EN_DiveMenuQ, text_DE_DiveMenuQ, text_FR_DiveMenuQ, text_IT_DiveMenuQ, text_ES_DiveMenuQ}},
     {(uint8_t)TXT2BYTE_DiveQuitQ,		{text_EN_DiveQuitQ, text_DE_DiveQuitQ, text_FR_DiveQuitQ, text_IT_DiveQuitQ, text_ES_DiveQuitQ}},