From 01f1e74842c7a5569137cf7a5fd321499c3efa7d Mon Sep 17 00:00:00 2001 From: Nihal Sahu Date: Tue, 22 Mar 2022 20:51:24 -0400 Subject: [PATCH 1/5] added ProximitySwitch class --- libs/sensors/include/ProximitySwitch.h | 21 +++++++++++++++++++++ libs/sensors/src/ProximitySwitch.cpp | 14 ++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 libs/sensors/include/ProximitySwitch.h create mode 100644 libs/sensors/src/ProximitySwitch.cpp diff --git a/libs/sensors/include/ProximitySwitch.h b/libs/sensors/include/ProximitySwitch.h new file mode 100644 index 00000000..da249ee6 --- /dev/null +++ b/libs/sensors/include/ProximitySwitch.h @@ -0,0 +1,21 @@ +#pragma once + +#include "Sensor.h" +#include "mbed.h" + +namespace Sensor { + class ProximitySwitch final : Sensor { + public: + ProximitySwitch(PinName proximity_in); + + //read returns 1 for HIGH, and 0 for LOW + float read() override{}; + float alternateRead() override{}; + bool getStatus() const override{}; + [[nodiscard]] bool reset() override; + [[nodiscard]] bool update() override; + + private: + AnalogIn m_proximity_in_adc; + }; +} // namespace Sensor \ No newline at end of file diff --git a/libs/sensors/src/ProximitySwitch.cpp b/libs/sensors/src/ProximitySwitch.cpp new file mode 100644 index 00000000..01334047 --- /dev/null +++ b/libs/sensors/src/ProximitySwitch.cpp @@ -0,0 +1,14 @@ +#include "ProximitySwitch.h" + +using namespace Sensor; + +ProximitySwitch::ProximitySwitch(PinName proximity_in) : m_proximity_in_adc(proximity_in) {} + + +/*https://www.dfrobot.com/product-2025.html*/ +float ProximitySwitch::read() +{ + float proximity_reading = m_proximity_in_adc.read(); + + return proximity_reading; +} From c0296d1324d6ce3fe3e7acf2537dc90927137c49 Mon Sep 17 00:00:00 2001 From: Nihal Sahu Date: Wed, 23 Mar 2022 08:32:53 -0400 Subject: [PATCH 2/5] applied clang formatting --- libs/sensors/include/ProximitySwitch.h | 24 ++++++++++++------------ libs/sensors/src/ProximitySwitch.cpp | 4 +--- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/libs/sensors/include/ProximitySwitch.h b/libs/sensors/include/ProximitySwitch.h index da249ee6..23db0368 100644 --- a/libs/sensors/include/ProximitySwitch.h +++ b/libs/sensors/include/ProximitySwitch.h @@ -4,18 +4,18 @@ #include "mbed.h" namespace Sensor { - class ProximitySwitch final : Sensor { - public: - ProximitySwitch(PinName proximity_in); +class ProximitySwitch final : Sensor { + public: + ProximitySwitch(PinName proximity_in); - //read returns 1 for HIGH, and 0 for LOW - float read() override{}; - float alternateRead() override{}; - bool getStatus() const override{}; - [[nodiscard]] bool reset() override; - [[nodiscard]] bool update() override; + // read returns 1 for HIGH, and 0 for LOW + float read() override{}; + float alternateRead() override{}; + bool getStatus() const override{}; + [[nodiscard]] bool reset() override; + [[nodiscard]] bool update() override; - private: - AnalogIn m_proximity_in_adc; - }; + private: + AnalogIn m_proximity_in_adc; +}; } // namespace Sensor \ No newline at end of file diff --git a/libs/sensors/src/ProximitySwitch.cpp b/libs/sensors/src/ProximitySwitch.cpp index 01334047..2847ea0d 100644 --- a/libs/sensors/src/ProximitySwitch.cpp +++ b/libs/sensors/src/ProximitySwitch.cpp @@ -4,10 +4,8 @@ using namespace Sensor; ProximitySwitch::ProximitySwitch(PinName proximity_in) : m_proximity_in_adc(proximity_in) {} - /*https://www.dfrobot.com/product-2025.html*/ -float ProximitySwitch::read() -{ +float ProximitySwitch::read() { float proximity_reading = m_proximity_in_adc.read(); return proximity_reading; From 514b07b95c77dc951df31222321ed1e91f356d80 Mon Sep 17 00:00:00 2001 From: Nihal Sahu Date: Mon, 4 Apr 2022 14:48:33 -0400 Subject: [PATCH 3/5] added fixes --- libs/sensors/CMakeLists.txt | 10 ++++++++++ libs/sensors/include/ProximitySwitch.h | 12 ++++++------ libs/sensors/src/ProximitySwitch.cpp | 11 ++++++++--- 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/libs/sensors/CMakeLists.txt b/libs/sensors/CMakeLists.txt index 835cb5c9..13b2a7a6 100644 --- a/libs/sensors/CMakeLists.txt +++ b/libs/sensors/CMakeLists.txt @@ -21,3 +21,13 @@ target_link_libraries(CurrentSensor Sensor mbed-os ) + +add_library(ProximitySwitch STATIC) +target_sources(ProximitySwitch PRIVATE src/ProximitySwitch.cpp) +target_include_directories(ProximitySwitch PUBLIC include) +target_link_libraries(ProximitySwitch + PRIVATE + Sensor + mbed-os + Logger + ) \ No newline at end of file diff --git a/libs/sensors/include/ProximitySwitch.h b/libs/sensors/include/ProximitySwitch.h index 23db0368..39b93ef6 100644 --- a/libs/sensors/include/ProximitySwitch.h +++ b/libs/sensors/include/ProximitySwitch.h @@ -8,12 +8,12 @@ class ProximitySwitch final : Sensor { public: ProximitySwitch(PinName proximity_in); - // read returns 1 for HIGH, and 0 for LOW - float read() override{}; - float alternateRead() override{}; - bool getStatus() const override{}; - [[nodiscard]] bool reset() override; - [[nodiscard]] bool update() override; + // read() returns 1 for HIGH, 0 for LOW, and 2 for ERROR + float read() override + float alternateRead() override{} + bool getStatus() const override{} + [[nodiscard]] bool reset() override{} + [[nodiscard]] bool update() override{} private: AnalogIn m_proximity_in_adc; diff --git a/libs/sensors/src/ProximitySwitch.cpp b/libs/sensors/src/ProximitySwitch.cpp index 2847ea0d..ed922e25 100644 --- a/libs/sensors/src/ProximitySwitch.cpp +++ b/libs/sensors/src/ProximitySwitch.cpp @@ -1,12 +1,17 @@ #include "ProximitySwitch.h" +#include "Logger.h" + using namespace Sensor; ProximitySwitch::ProximitySwitch(PinName proximity_in) : m_proximity_in_adc(proximity_in) {} /*https://www.dfrobot.com/product-2025.html*/ float ProximitySwitch::read() { - float proximity_reading = m_proximity_in_adc.read(); - - return proximity_reading; + if (m_proximity_in_adc.is_connected()) { + return m_proximity_in_adc.read() + } else { + Utility::logger << "ERROR: Sensor pin not connected"; + return 2; + } } From 6d30e8c2cf38e14c3b8d5d19b380e97b27823686 Mon Sep 17 00:00:00 2001 From: Nihal Sahu Date: Mon, 4 Apr 2022 15:19:21 -0400 Subject: [PATCH 4/5] added more fixes --- libs/sensors/include/ProximitySwitch.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libs/sensors/include/ProximitySwitch.h b/libs/sensors/include/ProximitySwitch.h index 39b93ef6..8934ea13 100644 --- a/libs/sensors/include/ProximitySwitch.h +++ b/libs/sensors/include/ProximitySwitch.h @@ -9,11 +9,11 @@ class ProximitySwitch final : Sensor { ProximitySwitch(PinName proximity_in); // read() returns 1 for HIGH, 0 for LOW, and 2 for ERROR - float read() override - float alternateRead() override{} - bool getStatus() const override{} - [[nodiscard]] bool reset() override{} - [[nodiscard]] bool update() override{} + float read() override; + float alternateRead() override {} + bool getStatus() const override {} + [[nodiscard]] bool reset() override {} + [[nodiscard]] bool update() override {} private: AnalogIn m_proximity_in_adc; From ef2554f6ae1129c1f56543b29fc57335d6f57a39 Mon Sep 17 00:00:00 2001 From: Nihal Sahu Date: Wed, 11 May 2022 12:14:27 -0600 Subject: [PATCH 5/5] changed from Analog to Digital --- libs/sensors/include/ProximitySwitch.h | 2 +- libs/sensors/src/ProximitySwitch.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/sensors/include/ProximitySwitch.h b/libs/sensors/include/ProximitySwitch.h index 8934ea13..5c6de5a2 100644 --- a/libs/sensors/include/ProximitySwitch.h +++ b/libs/sensors/include/ProximitySwitch.h @@ -16,6 +16,6 @@ class ProximitySwitch final : Sensor { [[nodiscard]] bool update() override {} private: - AnalogIn m_proximity_in_adc; + DigitalIn m_proximity_in_adc; }; } // namespace Sensor \ No newline at end of file diff --git a/libs/sensors/src/ProximitySwitch.cpp b/libs/sensors/src/ProximitySwitch.cpp index ed922e25..bb40faab 100644 --- a/libs/sensors/src/ProximitySwitch.cpp +++ b/libs/sensors/src/ProximitySwitch.cpp @@ -9,7 +9,7 @@ ProximitySwitch::ProximitySwitch(PinName proximity_in) : m_proximity_in_adc(prox /*https://www.dfrobot.com/product-2025.html*/ float ProximitySwitch::read() { if (m_proximity_in_adc.is_connected()) { - return m_proximity_in_adc.read() + return m_proximity_in_adc.read(); } else { Utility::logger << "ERROR: Sensor pin not connected"; return 2;