# HG changeset patch
# User Ideenmodellierer
# Date 1673815914 -3600
# Node ID 190e5814b2f581f09b8fd808fb2749a0cff9a92d
# Parent  7b0e020513e3222596d5fda433a1de3fe57c8306
Removed interface selection from sensor menu:
By implementing the automatic sensor detection the need for the manual selection has become obsulete. By removing the selection button space became available to insert the sensor information button which shows detailed data of DigO2 sensor.

diff -r 7b0e020513e3 -r 190e5814b2f5 Discovery/Inc/tStructure.h
--- a/Discovery/Inc/tStructure.h	Sun Jan 15 21:48:34 2023 +0100
+++ b/Discovery/Inc/tStructure.h	Sun Jan 15 21:51:54 2023 +0100
@@ -271,8 +271,7 @@
 #define StMHARD3_O2_Sensor2			_MB(2,7,3,2,0)
 #define StMHARD3_O2_Sensor3			_MB(2,7,3,3,0)
 #define StMHARD3_O2_Calibrate		_MB(2,7,3,4,0)
-#define StMHARD3_O2_Source			_MB(2,7,3,5,0)
-//#define StMHARD3_Sensor_Info		_MB(2,7,3,6,0)
+#define StMHARD3_Sensor_Info		_MB(2,7,3,5,0)
 #define StMHARD3_Sensor_Detect		_MB(2,7,3,6,0)
 
 
diff -r 7b0e020513e3 -r 190e5814b2f5 Discovery/Src/data_exchange_main.c
--- a/Discovery/Src/data_exchange_main.c	Sun Jan 15 21:48:34 2023 +0100
+++ b/Discovery/Src/data_exchange_main.c	Sun Jan 15 21:51:54 2023 +0100
@@ -980,17 +980,20 @@
 					}
 				}
 			}
-			pStateReal->lifeData.extIf_sensor_Id = dataIn.data[(dataIn.boolADCO2Data && DATA_BUFFER_ADC)].externalInterface_SensorID;
-			if(pStateReal->lifeData.extIf_sensor_Id != 0)
-			{
-				memcpy(pStateReal->lifeData.extIf_sensor_data, dataIn.data[(dataIn.boolADCO2Data && DATA_BUFFER_ADC)].sensor_data, 32);
-			}
-			memcpy(pStateReal->lifeData.extIf_sensor_map, dataIn.data[(dataIn.boolADCO2Data && DATA_BUFFER_ADC)].sensor_map, EXT_INTERFACE_SENSOR_CNT);
 		}
 	}
 
 	if(pStateReal->data_old__lost_connection_to_slave == 0)
 	{
+
+		pStateReal->lifeData.extIf_sensor_Id = dataIn.data[(dataIn.boolADCO2Data && DATA_BUFFER_ADC)].externalInterface_SensorID;
+		if(pStateReal->lifeData.extIf_sensor_Id != 0)
+		{
+			memcpy(pStateReal->lifeData.extIf_sensor_data, dataIn.data[(dataIn.boolADCO2Data && DATA_BUFFER_ADC)].sensor_data, 32);
+		}
+		memcpy(pStateReal->lifeData.extIf_sensor_map, dataIn.data[(dataIn.boolADCO2Data && DATA_BUFFER_ADC)].sensor_map, EXT_INTERFACE_SENSOR_CNT);
+
+
 		meter = getSampleDepth(&dataIn, pStateReal);
 
 		pStateReal->pressure_uTick_old = pStateReal->pressure_uTick_new;
diff -r 7b0e020513e3 -r 190e5814b2f5 Discovery/Src/tMenuEdit.c
--- a/Discovery/Src/tMenuEdit.c	Sun Jan 15 21:48:34 2023 +0100
+++ b/Discovery/Src/tMenuEdit.c	Sun Jan 15 21:51:54 2023 +0100
@@ -209,7 +209,8 @@
 	 	 case (StMHARD3_O2_Sensor1):
 	 	 case (StMHARD3_O2_Sensor1 & MaskFieldDigit):
 	 	 case (StMHARD3_O2_Calibrate):
-	 	 case (StMHARD3_O2_Source):							refreshFct = refresh_O2Sensors;
+	 	 case (StMHARD3_Sensor_Detect):
+	 	 case (StMHARD3_Sensor_Info):							refreshFct = refresh_O2Sensors;
 	 	 	 break;
 	 	 case (StMHARD2_Compass_SetCourse & MaskFieldDigit): refreshFct = refresh_CompassEdit;
 	 	 	 break;
diff -r 7b0e020513e3 -r 190e5814b2f5 Discovery/Src/tMenuEditHardware.c
--- a/Discovery/Src/tMenuEditHardware.c	Sun Jan 15 21:48:34 2023 +0100
+++ b/Discovery/Src/tMenuEditHardware.c	Sun Jan 15 21:51:54 2023 +0100
@@ -62,7 +62,7 @@
 uint8_t OnAction_Sensor2		(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action);
 uint8_t OnAction_Sensor3		(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action);
 uint8_t OnAction_O2_Calibrate   (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action);
-uint8_t OnAction_O2_Source		(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action);
+//uint8_t OnAction_O2_Source		(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action);
 uint8_t OnAction_Sensor_Info	(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action);
 uint8_t OnAction_Sensor_Detect	(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action);
 uint8_t OnAction_Button			(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action);
@@ -288,70 +288,129 @@
 
 void refresh_O2Sensors(void)
 {
-	static uint8_t stableMapCntDown = 10;
-    char text[32];
+    char strSensorId[20];
+    char strSensorValue[20];
     uint16_t y_line;
     uint8_t index = 0;
 
     const SDiveState *pStateReal = stateRealGetPointer();
     SSettings *pSettings = settingsGetPointer();
 
- //   if((pSettings->ppo2sensors_source != O2_SENSOR_SOURCE_OPTIC))
-    {
-		if(memcmp(pSettings->ext_sensor_map, pStateReal->lifeData.extIf_sensor_map, 5) != 0)
+	if(memcmp(pSettings->ext_sensor_map, pStateReal->lifeData.extIf_sensor_map, 5) != 0)
+	{
+		memcpy(pSettings->ext_sensor_map, pStateReal->lifeData.extIf_sensor_map, 5);
+		pSettings->ppo2sensors_deactivated = 0x0;	/* deactivation will be done by openEditO2Sensor if need */
+
+		pSettings->ppo2sensors_source = O2_SENSOR_SOURCE_OPTIC;
+		for(index = 0; index < 3; index++)
 		{
-			if(stableMapCntDown == 0)
-			{
-				stableMapCntDown = 10;
-				memcpy(pSettings->ext_sensor_map, pStateReal->lifeData.extIf_sensor_map, 5);
-				pSettings->ppo2sensors_deactivated = 0x0;	/* deactivation will be done by openEditO2Sensor if need */
-				openEdit_O2Sensors();
-			}
-			else
-			{
-				stableMapCntDown--;
-			}
+				switch(pSettings->ext_sensor_map[index])
+				{
+					case SENSOR_OPTIC:	pSettings->ppo2sensors_source = O2_SENSOR_SOURCE_OPTIC;
+									break;
+					case SENSOR_ANALOG:	if(pSettings->ppo2sensors_source == O2_SENSOR_SOURCE_DIGITAL)
+										{
+											pSettings->ppo2sensors_source = O2_SENSOR_SOURCE_ANADIG;
+										}
+										if(pSettings->ppo2sensors_source != O2_SENSOR_SOURCE_ANADIG)
+										{
+											pSettings->ppo2sensors_source = O2_SENSOR_SOURCE_ANALOG;
+										}
+									break;
+					case SENSOR_DIGO2:	if(pSettings->ppo2sensors_source == O2_SENSOR_SOURCE_ANALOG)
+										{
+											pSettings->ppo2sensors_source = O2_SENSOR_SOURCE_ANADIG;
+										}
+										if(pSettings->ppo2sensors_source != O2_SENSOR_SOURCE_ANADIG)
+										{
+											pSettings->ppo2sensors_source = O2_SENSOR_SOURCE_DIGITAL;
+										}
+									break;
+					default:
+									break;
+				}
 		}
-    }
-#if 0 /*TODO: reactivate sensor information dialog */
+		openEdit_O2Sensors();
+	}
+
 	if((pStateReal->lifeData.extIf_sensor_Id != 0) && (haveSensorInfo == 0)) /* the sensor is detected after the interface has been selected => add button if info become available */
 	{
+#if 0
 			if(get_globalState() == StMHARD3_O2_Source)
 			{
 				y_line = 5;
 			}
+#endif
 			haveSensorInfo = 1;
 		    openEdit_O2Sensors();
+#if 0
 		    if(y_line == 5)
 		    {
 		    	tMenuEdit_select(StMHARD3_O2_Source);
 		    }
+#endif
 	}
 	else
-#endif
 	{
 		if(pStateReal->lifeData.extIf_sensor_Id == 0)
 		{
 			haveSensorInfo = 0;
 		}
 
-		text[0] = '\001';
-		text[1] = TXT_o2Sensors;
-		text[2] = 0;
-		write_topline(text);
+		strSensorId[0] = '\001';
+		strSensorId[1] = TXT_o2Sensors;
+		strSensorId[2] = 0;
+		write_topline(strSensorId);
 
 
-		text[0] = TXT_2BYTE;
-		text[1] = TXT2BYTE_Sensor;
-		text[2] = ' ';
-		text[3] = '1';
-		text[4] = 0;
-
+		strSensorId[0] = TXT_2BYTE;
+		strSensorId[1] = TXT2BYTE_Sensor;
+		strSensorId[2] = ' ';
+		strSensorId[3] = TXT_2BYTE;
+		strSensorId[4] = 'X';
+		strSensorId[5] = '1';
+		strSensorId[6] = 0;
 
 		for(index = 0; index < 3; index++)
 		{
-			text[3] = '1' + index;
-			if((pSettings->ext_sensor_map[index] == SENSOR_ANALOG) || (pSettings->ext_sensor_map[index] == SENSOR_DIGO2))
+			strSensorId[4] = 'X';
+			strSensorId[5] = '1' + index;
+
+			switch(pSettings->ext_sensor_map[index])
+			{
+				case SENSOR_OPTIC:	strSensorId[4] = TXT2BYTE_O2IFOptic;
+								break;
+				case SENSOR_ANALOG:	strSensorId[4] = TXT2BYTE_O2IFAnalog;
+								break;
+				case SENSOR_DIGO2: strSensorId[4] = TXT2BYTE_O2IFDigital;
+								break;
+				case SENSOR_CO2: strSensorId[3] = 'C';
+								 strSensorId[4] = 'O';
+								break;
+				default:
+					break;
+			}
+			if(strSensorId[4] != 'X')
+			{
+				write_label_var(  96, 340, ME_Y_LINE1 + (index * ME_Y_LINE_STEP), &FontT48, strSensorId);
+			}
+			strSensorValue[0] = 0;
+			if((pSettings->ext_sensor_map[index] >= SENSOR_OPTIC) && (pSettings->ext_sensor_map[index] <= SENSOR_DIGO2))
+			{
+				snprintf(strSensorValue, 20,"%01.2f, %01.1f mV",  pStateReal->lifeData.ppO2Sensor_bar[index], pStateReal->lifeData.sensorVoltage_mV[index]);
+			}
+			else if(pSettings->ext_sensor_map[index] == SENSOR_CO2)
+			{
+				snprintf(strSensorValue, 10,"%d ppm",  pStateReal->lifeData.CO2_data.CO2_ppm);
+			}
+			y_line = ME_Y_LINE1 + (index * ME_Y_LINE_STEP);
+			if(strSensorValue[0] != 0)
+			{
+				write_label_var(  480, 800, y_line, &FontT48, strSensorValue);
+			}
+
+#if 0
+			if(((pSettings->ext_sensor_map[index] < SENSOR_OPTIC) || (pSettings->ext_sensor_map[index] > SENSOR_DIGO2)))
 			{
 				write_label_var(  96, 340, ME_Y_LINE1 + (index * ME_Y_LINE_STEP), &FontT48, text);
 			}
@@ -359,103 +418,94 @@
 			{
 				write_label_var(  96, 340, ME_Y_LINE1 + (index * ME_Y_LINE_STEP), &FontT48, "CO2");
 			}
+#endif
 		}
 
+
+
+
 		if(pSettings->ppo2sensors_source == O2_SENSOR_SOURCE_OPTIC)
 		{
-			text[0] = TXT_2BYTE;
-			text[1] = TXT2BYTE_HUDbattery;
-			text[2] = 0;
-			write_label_var(  30, 340, ME_Y_LINE4, &FontT48, text);
+			strSensorId[0] = TXT_2BYTE;
+			strSensorId[1] = TXT2BYTE_HUDbattery;
+			strSensorId[2] = 0;
+			write_label_var(  30, 340, ME_Y_LINE4, &FontT48, strSensorId);
 
-			snprintf(text, 20,"%01.3fV", get_HUD_battery_voltage_V());
-			write_label_var(  400, 800, ME_Y_LINE4, &FontT48, text);
+			snprintf(strSensorId, 20,"%01.3fV", get_HUD_battery_voltage_V());
+			write_label_var(  480, 800, ME_Y_LINE4, &FontT48, strSensorId);
 		}
 		else
 		{
 			if((pSettings->ppo2sensors_source == O2_SENSOR_SOURCE_ANALOG) || (pSettings->ppo2sensors_source == O2_SENSOR_SOURCE_ANADIG))
 			{
-				text[0] = TXT_2BYTE;
-				text[1] = TXT2BYTE_O2Calib;
-				text[2] = 0;
-				write_label_var(  30, 340, ME_Y_LINE4, &FontT48, text);
-				snprintf(text, 20,"%d%%", O2_calib_gas);
-				write_label_var(  400, 800, ME_Y_LINE4, &FontT48, text);
-			}
-		}
-
-		for(int i=0;i<3;i++)
-		{
-			text[0] = 0;
-			if((pSettings->ext_sensor_map[i] == SENSOR_ANALOG) || (pSettings->ext_sensor_map[i] == SENSOR_DIGO2))
-			{
-				snprintf(text, 20,"%01.2f, %01.1fmV",  pStateReal->lifeData.ppO2Sensor_bar[i], pStateReal->lifeData.sensorVoltage_mV[i]);
-			}
-			else if(pSettings->ext_sensor_map[i] == SENSOR_CO2)
-			{
-				snprintf(text, 20,"%d ppm",  pStateReal->lifeData.CO2_data.CO2_ppm);
-			}
-			y_line = ME_Y_LINE1 + (i * ME_Y_LINE_STEP);
-			if(text[0] != 0)
-			{
-				write_label_var(  400, 800, y_line, &FontT48, text);
+				strSensorId[0] = TXT_2BYTE;
+				strSensorId[1] = TXT2BYTE_O2Calib;
+				strSensorId[2] = 0;
+				write_label_var(  30, 340, ME_Y_LINE4, &FontT48, strSensorId);
+				snprintf(strSensorId, 20,"%d%%", O2_calib_gas);
+				write_label_var(  480, 800, ME_Y_LINE4, &FontT48, strSensorId);
 			}
 		}
 
+		write_label_var(  30, 340, ME_Y_LINE6, &FontT48, "Autodetect");
+
+#if 0
 		if(DataEX_external_ADC_Present())
 		{
-			text[0] = TXT_2BYTE;
-			text[1] = TXT2BYTE_O2Interface;
-			text[2] = 0;
-			write_label_var(  30, 340, ME_Y_LINE5, &FontT48, text);
-			text[0] = TXT_2BYTE;
+			strSensorId[0] = TXT_2BYTE;
+			strSensorId[1] = TXT2BYTE_O2Interface;
+			strSensorId[2] = 0;
+			write_label_var(  30, 340, ME_Y_LINE5, &FontT48, strSensorId);
+			strSensorId[0] = TXT_2BYTE;
 			switch(pSettings->ppo2sensors_source)
 			{
 				default:
-				case O2_SENSOR_SOURCE_OPTIC: 	text[1] = TXT2BYTE_O2IFOptic;
-												text[2] = 0;
+				case O2_SENSOR_SOURCE_OPTIC: 	strSensorId[1] = TXT2BYTE_O2IFOptic;
+				strSensorId[2] = 0;
 					break;
-				case O2_SENSOR_SOURCE_ANALOG: 	text[1] = TXT2BYTE_O2IFAnalog;
-												text[2] = 0;
+				case O2_SENSOR_SOURCE_ANALOG: 	strSensorId[1] = TXT2BYTE_O2IFAnalog;
+				strSensorId[2] = 0;
 					break;
-				case O2_SENSOR_SOURCE_DIGITAL: 	text[1] = TXT2BYTE_O2IFDigital;
-												text[2] = 0;
+				case O2_SENSOR_SOURCE_DIGITAL: 	strSensorId[1] = TXT2BYTE_O2IFDigital;
+				strSensorId[2] = 0;
 					break;
-				case O2_SENSOR_SOURCE_ANADIG: 	write_label_var(  30, 340, ME_Y_LINE6, &FontT48, "Autodetect");
-												text[1] = TXT2BYTE_O2IFAnalog;
-												text[2] = ' ';
-												text[3] = '+';
-												text[4] = ' ';
-												text[5] = TXT_2BYTE;
-												text[6] = TXT2BYTE_O2IFDigital;
-												text[7] = 0;
+				case O2_SENSOR_SOURCE_ANADIG: 	//write_label_var(  30, 340, ME_Y_LINE6, &FontT48, "Autodetect");
+				strSensorId[1] = TXT2BYTE_O2IFAnalog;
+				strSensorId[2] = ' ';
+				strSensorId[3] = '+';
+				strSensorId[4] = ' ';
+				strSensorId[5] = TXT_2BYTE;
+				strSensorId[6] = TXT2BYTE_O2IFDigital;
+				strSensorId[7] = 0;
 					break;
 	#ifdef ENABLE_SENTINEL_MODE
 				case O2_SENSOR_SOURCE_SENTINEL: snprintf(text, 10,"Sentinel");
 					break;
 	#endif
 			}
-			write_label_var(  400, 800, ME_Y_LINE5, &FontT48, text);
-#if 0
-			if(haveSensorInfo == 1)
-			{
-				text[0] = TXT_Sensor;
-				text[1] = ' ';
-				text[2] = TXT_Information;
-				text[3] = 0;
-				write_label_var(  30, 340, ME_Y_LINE6, &FontT48, text);
-			}
+			write_label_var(  480, 800, ME_Y_LINE5, &FontT48, strSensorId);
+
+
+		}
 #endif
+		if(haveSensorInfo == 1)
+		{
+			strSensorId[0] = TXT_Sensor;
+			strSensorId[1] = ' ';
+			strSensorId[2] = TXT_Information;
+			strSensorId[3] = 0;
+			write_label_var(  30, 340, ME_Y_LINE5, &FontT48, strSensorId);
 		}
-		if((pSettings->ext_sensor_map[0] == SENSOR_ANALOG) || (pSettings->ext_sensor_map[0] == SENSOR_DIGO2))
+
+		if((pSettings->ext_sensor_map[0] >= SENSOR_OPTIC) && (pSettings->ext_sensor_map[0] <= SENSOR_DIGO2))
 		{
 			tMenuEdit_refresh_field(StMHARD3_O2_Sensor1);
 		}
-		if((pSettings->ext_sensor_map[1] == SENSOR_ANALOG) || (pSettings->ext_sensor_map[1] == SENSOR_DIGO2))
+		if((pSettings->ext_sensor_map[1] >= SENSOR_OPTIC) && (pSettings->ext_sensor_map[1] <= SENSOR_DIGO2))
 		{
 			tMenuEdit_refresh_field(StMHARD3_O2_Sensor2);
 		}
-		if((pSettings->ext_sensor_map[2] == SENSOR_ANALOG) || (pSettings->ext_sensor_map[2] == SENSOR_DIGO2))
+		if((pSettings->ext_sensor_map[2] >= SENSOR_OPTIC) && (pSettings->ext_sensor_map[2] <= SENSOR_DIGO2))
 		{
 			tMenuEdit_refresh_field(StMHARD3_O2_Sensor3);
 		}
@@ -484,8 +534,7 @@
     sensorActive[1] = 1;
     sensorActive[2] = 1;
 
-
-	if(((pSettings->ext_sensor_map[0] != SENSOR_ANALOG) && (pSettings->ext_sensor_map[0] != SENSOR_DIGO2)))
+	if(((pSettings->ext_sensor_map[0] < SENSOR_OPTIC) || (pSettings->ext_sensor_map[0] > SENSOR_DIGO2)))
 	{
 		pSettings->ppo2sensors_deactivated |= 1;
 	}
@@ -493,7 +542,7 @@
 	{
 		write_field_on_off(StMHARD3_O2_Sensor1,	 30, 95, ME_Y_LINE1,  &FontT48, "", sensorActive[0]);
 	}
-	if(((pSettings->ext_sensor_map[1] != SENSOR_ANALOG) && (pSettings->ext_sensor_map[1] != SENSOR_DIGO2)))
+	if(((pSettings->ext_sensor_map[1] < SENSOR_OPTIC) || (pSettings->ext_sensor_map[1] > SENSOR_DIGO2)))
 	{
 		pSettings->ppo2sensors_deactivated |= 2;
 	}
@@ -501,7 +550,7 @@
 	{
 		 write_field_on_off(StMHARD3_O2_Sensor2,	 30, 95, ME_Y_LINE2,  &FontT48, "", sensorActive[1]);
 	}
-	if(((pSettings->ext_sensor_map[2] != SENSOR_ANALOG) && (pSettings->ext_sensor_map[2] != SENSOR_DIGO2)))
+	if(((pSettings->ext_sensor_map[2] < SENSOR_OPTIC) || (pSettings->ext_sensor_map[2] > SENSOR_DIGO2)))
 	{
 		pSettings->ppo2sensors_deactivated |= 4;
 	}
@@ -533,33 +582,22 @@
         write_field_toggle(StMHARD3_O2_Calibrate,	400, 800, ME_Y_LINE4, &FontT48, "", 21, 98);
     }
 
+   	if(haveSensorInfo != 0)
+   	{
+   		write_field_button(StMHARD3_Sensor_Info,	 30, 800, ME_Y_LINE5,  &FontT48, "");
+   	}
 
-    if(DataEX_external_ADC_Present())
-    {
-    	write_field_button(StMHARD3_O2_Source,	 30, 800, ME_Y_LINE5,  &FontT48, "");
-#if 0
-    	if(haveSensorInfo != 0)
-    	{
-    		write_field_button(StMHARD3_Sensor_Info,	 30, 800, ME_Y_LINE6,  &FontT48, "");
-    	}
-#endif
-    }
+   	write_field_button(StMHARD3_Sensor_Detect,	 30, 800, ME_Y_LINE6,  &FontT48, "Autodetect");
 
-
-    if(pSettings->ppo2sensors_source == O2_SENSOR_SOURCE_ANADIG)
-    {
-    	write_field_button(StMHARD3_Sensor_Detect,	 30, 800, ME_Y_LINE6,  &FontT48, "Autodetect");
-    }
-
-    if((pSettings->ext_sensor_map[0] == SENSOR_ANALOG) || (pSettings->ext_sensor_map[0] == SENSOR_DIGO2))
+    if((pSettings->ext_sensor_map[0] < SENSOR_OPTIC) || (pSettings->ext_sensor_map[0] > SENSOR_DIGO2))
 	{
 			setEvent(StMHARD3_O2_Sensor1, (uint32_t)OnAction_Sensor1);
 	}
-    if((pSettings->ext_sensor_map[1] == SENSOR_ANALOG) || (pSettings->ext_sensor_map[1] == SENSOR_DIGO2))
+    if((pSettings->ext_sensor_map[1] < SENSOR_OPTIC) || (pSettings->ext_sensor_map[1] > SENSOR_DIGO2))
 	{
 			setEvent(StMHARD3_O2_Sensor2, (uint32_t)OnAction_Sensor2);
 	}
-    if((pSettings->ext_sensor_map[2] == SENSOR_ANALOG) || (pSettings->ext_sensor_map[2] == SENSOR_DIGO2))
+    if((pSettings->ext_sensor_map[2] < SENSOR_OPTIC) || (pSettings->ext_sensor_map[2] > SENSOR_DIGO2))
 	{
 			setEvent(StMHARD3_O2_Sensor3, (uint32_t)OnAction_Sensor3);
 	}
@@ -573,23 +611,12 @@
     	setEvent(StMHARD3_O2_Calibrate, (uint32_t)OnAction_O2_Calibrate);
     }
 
-    if(DataEX_external_ADC_Present())
-    {
-    	setEvent(StMHARD3_O2_Source, (uint32_t)OnAction_O2_Source);
-#if 0
-    	if(haveSensorInfo != 0)
-    	{
-    		setEvent(StMHARD3_Sensor_Info, (uint32_t)OnAction_Sensor_Info);
-    	}
-#endif
-    }
+  	if(haveSensorInfo != 0)
+   	{
+   		setEvent(StMHARD3_Sensor_Info, (uint32_t)OnAction_Sensor_Info);
+   	}
 
-    if(pSettings->ppo2sensors_source == O2_SENSOR_SOURCE_ANADIG)
-    {
-    	setEvent(StMHARD3_Sensor_Detect, (uint32_t)OnAction_Sensor_Detect);
-    }
-
-
+    setEvent(StMHARD3_Sensor_Detect, (uint32_t)OnAction_Sensor_Detect);
     write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext);
 }
 
@@ -708,6 +735,7 @@
 
 	return retVal;
 }
+#if 0
 uint8_t OnAction_O2_Source	(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action)
 {
     uint8_t source = settingsGetPointer()->ppo2sensors_source;
@@ -744,10 +772,10 @@
     DataEX_setExtInterface_Cmd(EXT_INTERFACE_COPY_SENSORMAP);
 
     openEdit_O2Sensors();					/* rebuild menu structure (Hide HUD <=> Show Calibrate) */
-    tMenuEdit_select(StMHARD3_O2_Source);
+  //  tMenuEdit_select(StMHARD3_O2_Source);
     return UPDATE_DIVESETTINGS;
 }
-
+#endif
 uint8_t OnAction_Sensor_Info(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action)
 {
 	return EXIT_TO_INFO_SENSOR;