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++)