diff --git a/include/N_PhotoConducteur.h b/include/N_PhotoConducteur.h
old mode 100644
new mode 100755
index 2be4fc33bd33b1536493d21265e31c6ecbfd280f..14b21839d0970ea4eb82826cc15b9d65bb4c197e
--- a/include/N_PhotoConducteur.h
+++ b/include/N_PhotoConducteur.h
@@ -54,6 +54,7 @@ public:
 	*/
 	void set_ElectroMeterRange(std::string range_str);
 	std::string get_ElectroMeterRange();
+	std::vector<std::string> ranges_list(void);
 
 	/**
 	*  \brief getters and setters.
diff --git a/include/N_PhotoVoltaique.h b/include/N_PhotoVoltaique.h
old mode 100644
new mode 100755
index 9a63c3d571839920973cb0823f9fa7796994a783..39f215ef368bc4f7f6af121bc7d00841df1453bd
--- a/include/N_PhotoVoltaique.h
+++ b/include/N_PhotoVoltaique.h
@@ -54,6 +54,7 @@ public:
 	*/
 	void set_ElectroMeterRange(std::string range_str);
 	std::string get_ElectroMeterRange();
+	std::vector<std::string> ranges_list(void);
 
 	/**
 	*  \brief getters and setters.
diff --git a/include/Novelec_MCCE2.h b/include/Novelec_MCCE2.h
old mode 100644
new mode 100755
index 906efeb9e4b536def9e5e488e36894974781b92b..c9e8deacdc0ef314008777a0616fb44afc34e8c3
--- a/include/Novelec_MCCE2.h
+++ b/include/Novelec_MCCE2.h
@@ -46,13 +46,13 @@ public:
   bool init_protocol(void);
 
 	std::string get_ElectroMeterPolarity(void);
-	void set_ElectroMeterPolarity	(std::string);
-
-	short get_electrometer_type() {
-    return this->_MCCE2electroTypeNumber;
+	void set_ElectroMeterPolarity	(std::string);
+
+	short get_electrometer_type() {
+    return this->_MCCE2electroTypeNumber;
   }
-	std::string get_electrometer_typeStr() {
-    return this->_MCCE2electroTypeStr;
+	std::string get_electrometer_typeStr() {
+    return this->_MCCE2electroTypeStr;
   }
 
 	/**
@@ -67,7 +67,7 @@ public:
 	/**
 	*	\brief Sets the new range value
 	*/
-	//virtual void set_ElectroMeterRange(std::string range_str) = 0;
+	//virtual void set_ElectroMeterRange(std::string range_str) = 0;
   virtual void range_up	     (void) {};
   virtual void range_down    (void) {};
 
@@ -86,15 +86,18 @@ public:
 	*/
 	std::string electrometer_status		(void);
 
+  virtual std::vector<std::string> ranges_list(void) {};
+
+
 protected :
 	unsigned short _rangeLimit;				      //- define the range limit for each novelec type
   unsigned short _address;                //- a DAIP manages 2 "channels" (or address)
-	unsigned short _MCCE2electroTypeNumber;	//- the mcce2 electrometer type number (to check range value)
+	unsigned short _MCCE2electroTypeNumber;	//- the mcce2 electrometer type number (to check range value)
     std::string _MCCE2electroTypeStr;       //-  "      "   "   "   "   "   as string
 	/**
 	*	\brief Checks the new range value
 	*/
-	short check_range_value(const std::string& rgToCheck, const std::string* electroRangeList);
+	short check_range_value(const std::string& rgToCheck, const std::vector<std::string>	 electroRangeList);
 
 };
 
diff --git a/pom.xml b/pom.xml
index 0e945cd2ffd5559419c619539700ff7e621a06e6..37ae229b6eb1ef94ee49184549cd8e9020cd6b89 100755
--- a/pom.xml
+++ b/pom.xml
@@ -8,7 +8,7 @@
    </parent>
    <groupId>fr.soleil.lib</groupId>
    <artifactId>Electrometers-${aol}-${library}-${mode}</artifactId>
-   <version>2.6.0</version>
+   <version>2.7.0</version>
    <packaging>nar</packaging>
    <name>Electrometers library</name>
    <description>Electrometers library</description>
diff --git a/src/N_PhotoConducteur.cpp b/src/N_PhotoConducteur.cpp
old mode 100644
new mode 100755
index a40516cad4ad41494a365959eb3830f22dc7da8b..f11be52174f8b459c0c2c39400fbf4c4fa826bec
--- a/src/N_PhotoConducteur.cpp
+++ b/src/N_PhotoConducteur.cpp
@@ -24,8 +24,8 @@
 /*
 * Valid Range values for a N_PhotoConducteur
 */
-static const std::string NType4_rangeValue[] = {"100","30","10","3"};		//- MOhms
-static const std::string NType5_rangeValue[] = {"1000","300","100","30"};	//- KOhms
+static const std::vector<std::string> NType4_rangeValue {"100","30","10","3"};			//- MOhms
+static const std::vector<std::string> NType5_rangeValue {"1000","300","100","30"};	//- KOhms
 
 
 // ============================================================================
@@ -195,3 +195,21 @@ std::string rangeStr("");
 
 	return rangeStr;
 }
+
+// ============================================================================
+// N_PhotoConducteur::ranges_list
+// ============================================================================
+std::vector<std::string> N_PhotoConducteur::ranges_list(void)
+{
+  std::vector<std::string> vrangeslist;
+
+	//- switch the novelec type :
+	switch(_MCCE2electroTypeNumber)
+	{
+	case 4 : vrangeslist = NType4_rangeValue;
+		break;
+	case 5 : vrangeslist = NType5_rangeValue;
+		break;
+	}
+	return vrangeslist;
+}
diff --git a/src/N_PhotoVoltaique.cpp b/src/N_PhotoVoltaique.cpp
old mode 100644
new mode 100755
index 0209ac40cd8c81fea84f87106831b94264f95a37..fe1b6c612197ba0e946af6fe99af31ee76117009
--- a/src/N_PhotoVoltaique.cpp
+++ b/src/N_PhotoVoltaique.cpp
@@ -24,9 +24,9 @@
 /*
 * Valid Range values for a N_PhotoVoltaique
 */
-static const std::string NType1_rangeValue[] = {"1E-11AcC","3E-11AcC","1E-10AcC","3E-10AcC"};
-static const std::string NType2_rangeValue[] = {"1E-10AcC","3E-10AcC","1E-09AcC","3E-09AcC","1E-08AcC","3E-08AcC","1E-07AcC","3E-07AcC"};
-static const std::string NType3_rangeValue[] = {"1E-08AcC","3E-08AcC","1E-07AcC","3E-07AcC","1E-06AcC","3E-06AcC","1E-05AcC","3E-05AcC"};
+static const std::vector<std::string> NType1_rangeValue {"1E-11AcC","3E-11AcC","1E-10AcC","3E-10AcC"};
+static const std::vector<std::string> NType2_rangeValue {"1E-10AcC","3E-10AcC","1E-09AcC","3E-09AcC","1E-08AcC","3E-08AcC","1E-07AcC","3E-07AcC"};
+static const std::vector<std::string> NType3_rangeValue {"1E-08AcC","3E-08AcC","1E-07AcC","3E-07AcC","1E-06AcC","3E-06AcC","1E-05AcC","3E-05AcC"};
 
 
 // ============================================================================
@@ -226,3 +226,23 @@ std::string rangeStr("");
 
 	return rangeStr;
 }
+
+// ============================================================================
+// N_PhotoVoltaique::ranges_list
+// ============================================================================
+std::vector<std::string> N_PhotoVoltaique::ranges_list(void)
+{
+  std::vector<std::string> vrangeslist;
+
+	//- switch the novelec type :
+	switch(_MCCE2electroTypeNumber)
+	{
+	case 1 : vrangeslist = NType1_rangeValue;
+		break;
+	case 2 : vrangeslist = NType2_rangeValue;
+		break;
+	case 3 : vrangeslist = NType3_rangeValue;
+		break;
+	}
+	return vrangeslist;
+}
diff --git a/src/Novelec_MCCE2.cpp b/src/Novelec_MCCE2.cpp
old mode 100644
new mode 100755
index 9756356b9fc8e037b5c79027e637386a09ee4f7c..bba1fac3b2687d1d57f48f8f5e44183da6c00638
--- a/src/Novelec_MCCE2.cpp
+++ b/src/Novelec_MCCE2.cpp
@@ -393,7 +393,7 @@ std::string Novelec_MCCE2::electrometer_status (void)
 // ============================================================================
 // Novelec_MCCE2::check_range_value
 // ============================================================================
-short Novelec_MCCE2::check_range_value (const std::string& rgToCheck, const std::string* electroRangeList)
+short Novelec_MCCE2::check_range_value (const std::string& rgToCheck, const std::vector<std::string> electroRangeList)
 {
 	std::string electroRg("");
 	for (unsigned int idx = 0; idx <= _rangeLimit; idx++)