diff --git a/include/interfaces/iPH.hpp b/include/interfaces/iPH.hpp new file mode 100644 index 00000000..436c5063 --- /dev/null +++ b/include/interfaces/iPH.hpp @@ -0,0 +1,47 @@ +/* + * Author: Mihai Stefanescu + * Copyright (c) 2018 Intel Corporation. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +namespace upm +{ +/** + * @brief Interface for PH sensors +*/ + class iPH + { + public: + virtual ~iPH() {} + + /** + * Take a number of samples and return the detected pH value. The + * default number of samples is 15. + * + * @param samples The number of samples to average over, default 15 + * @return The pH value detected + */ + virtual float pH(unsigned int samples = 15) = 0; + + }; +} diff --git a/src/dfrph/dfrph.hpp b/src/dfrph/dfrph.hpp index d6658d51..8bde94ac 100644 --- a/src/dfrph/dfrph.hpp +++ b/src/dfrph/dfrph.hpp @@ -27,6 +27,7 @@ #include #include "dfrph.h" +#include namespace upm { /** @@ -40,7 +41,7 @@ namespace upm { * @sensor dfrph * @comname Analog pH Sensor * @type liquid - * @man dfrobot + * @man dfrobot * @web http://www.dfrobot.com/index.php?route=product/product&product_id=1110 * @con analog * @@ -88,7 +89,7 @@ namespace upm { * @snippet dfrph.cxx Interesting */ - class DFRPH { + class DFRPH : virtual public iPH { public: /** @@ -129,7 +130,7 @@ namespace upm { * @param samples The number of samples to average over, default 15 * @return The pH value detected */ - float pH(unsigned int samples = 15); + virtual float pH(unsigned int samples = 15); private: /** @@ -141,5 +142,3 @@ namespace upm { dfrph_context _dev; }; } - -