From 5667ecc83c222ab5c6bce9a315b51f218fb130da Mon Sep 17 00:00:00 2001 From: brentru Date: Thu, 15 Aug 2024 11:08:41 -0400 Subject: [PATCH] Implement API check when pin tied hi --- src/ws_manager.cpp | 14 ++++++++++++++ src/ws_manager.h | 9 ++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/ws_manager.cpp b/src/ws_manager.cpp index 13310eae..887b4835 100644 --- a/src/ws_manager.cpp +++ b/src/ws_manager.cpp @@ -6,4 +6,18 @@ Wippersnapper_Manager::~Wippersnapper_Manager() { if (ws_instance) { delete ws_instance; } + if (ws_instance_v2) { + delete ws_instance_v2; + } +} + +void Wippersnapper_Manager::checkAPIVersion() { + // Check if pin D12 is high + pinMode(12, INPUT_PULLUP); + _api_version = digitalRead(12); + if (_api_version) { // API version 2 if D12 is high + ws_instance_v2 = new Wippersnapper_V2(); + } else { // API version 1 if D12 is low + ws_instance = new Wippersnapper(); + } } \ No newline at end of file diff --git a/src/ws_manager.h b/src/ws_manager.h index 529ea46e..f29e5283 100644 --- a/src/ws_manager.h +++ b/src/ws_manager.h @@ -10,16 +10,19 @@ public: Wippersnapper_Manager(); ~Wippersnapper_Manager(); + // API version check + void checkAPIVersion(); + // TODO: Do we need this within the manager? // void provision(); // TODO: Implement protected: - Wippersnapper - *ws_instance; // Pointer to either Wippersnapper or Wippersnapper_V2 + Wippersnapper *ws_instance; + Wippersnapper_V2 *ws_instance_v2; private: - int getProvisionResult(); + bool _api_version; // True if API version 2, False otherwise }; extern Wippersnapper WS; ///< Global member variable for callbacks #endif // WIPPERSNAPPER_MANAGER_H