From 96cb916c5a205f5f9e357675e0ff8ab46f4ad80e Mon Sep 17 00:00:00 2001 From: Guillermo Marcel Date: Wed, 28 May 2025 22:25:57 -0300 Subject: [PATCH] feat: add partial support for wiegand reader --- esp32/ServerConnector.h | 4 +--- esp32/WiegandReader.h | 49 +++++++++++++++++++++++++++++++++++++++++ esp32/alarm.h | 7 ++++++ 3 files changed, 57 insertions(+), 3 deletions(-) create mode 100644 esp32/WiegandReader.h diff --git a/esp32/ServerConnector.h b/esp32/ServerConnector.h index 6957c43..9a30b4e 100644 --- a/esp32/ServerConnector.h +++ b/esp32/ServerConnector.h @@ -171,9 +171,7 @@ private: // Todo Extract to Disarm method, and add to alarm.h // same in card reader Serial.println("[HTTP] Disarm request by server"); - status->isArmed = false; - status->isFired = false; - status->lastEntrance = millis(); + disarm(status); } // Serial.print(FIELD_ALLOWED_CARDS); diff --git a/esp32/WiegandReader.h b/esp32/WiegandReader.h new file mode 100644 index 0000000..c5da5bb --- /dev/null +++ b/esp32/WiegandReader.h @@ -0,0 +1,49 @@ +#include "alarm.h" +#include "Dict.h" +#include + +#define LED_PIN 6 +#define BEEP_PIN 7 + +class WiegandReader{ +private: + WIEGAND wg; + AlarmStatus* status; + int data0_pin; + int data1_pin; + int led_pin; + int beep_pin; + Dictionary &users = *(new Dictionary()); + +public: + WiegandReader(AlarmStatus* statusObj, int d0, int d1){ + Serial.println("const."); + status = statusObj; + data0_pin = d0; + data1_pin = d1; + } + void Init() + { + wg.begin(data0_pin, data1_pin); + } + + void SetLed(int pin) + { + led_pin=pin; + } + void SetBeep(int pin) + { + beep_pin=pin + } + + void HandleReader() + { + if(!wg.available()) + { + return; + } + + String code = String(wg.getCode(), HEX); + + } +} \ No newline at end of file diff --git a/esp32/alarm.h b/esp32/alarm.h index 6c7e0f5..153a2bf 100644 --- a/esp32/alarm.h +++ b/esp32/alarm.h @@ -19,5 +19,12 @@ struct AlarmStatus{ long eventId=0; }; +void disarm(AlarmStatus* status) +{ + status->isArmed = false; + status->isFired = false; + status->lastEntrance = millis(); +} + #endif