final changes to wiegand support
This commit is contained in:
parent
96cb916c5a
commit
13b3b140b8
@ -52,7 +52,7 @@ public:
|
||||
return initialized;
|
||||
}
|
||||
|
||||
void HandleCard(){
|
||||
void HandleReader(){
|
||||
if(!initialized){
|
||||
return;
|
||||
}
|
||||
|
@ -11,7 +11,8 @@ private:
|
||||
AlarmStatus *status;
|
||||
long lastUpdate;
|
||||
// WiFiClient wifiClient;
|
||||
CardReader *_cardReader;
|
||||
// CardReader *_cardReader;
|
||||
WiegandReader *_cardReader;
|
||||
|
||||
const String AUTHORIZED_ENTRANCE = "AUTHORIZE_ENTRANCE";
|
||||
const String ServerAddress = "alarm.int.francelsoft.com";
|
||||
@ -258,7 +259,7 @@ private:
|
||||
|
||||
public:
|
||||
|
||||
ServerConnector(AlarmStatus *statusObj, CardReader *cardReader)
|
||||
ServerConnector(AlarmStatus *statusObj, WiegandReader *cardReader)
|
||||
{
|
||||
status = statusObj;
|
||||
running = false;
|
||||
|
@ -1,23 +1,40 @@
|
||||
#include "alarm.h"
|
||||
#include "Dict.h"
|
||||
#include "Times.h"
|
||||
#include <Wiegand.h>
|
||||
|
||||
#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;
|
||||
int led_pin =0;
|
||||
int beep_pin =0;
|
||||
Dictionary &users = *(new Dictionary());
|
||||
unsigned long errorTime;
|
||||
bool beeping = false;
|
||||
|
||||
void turnLedGreen(){
|
||||
digitalWrite(led_pin, LOW);
|
||||
}
|
||||
void turnLedRed(){
|
||||
digitalWrite(led_pin, HIGH);
|
||||
}
|
||||
void beepOn()
|
||||
{
|
||||
beeping=true;
|
||||
digitalWrite(beep_pin, LOW);
|
||||
}
|
||||
void beepOff()
|
||||
{
|
||||
beeping=false;
|
||||
digitalWrite(beep_pin, HIGH);
|
||||
}
|
||||
|
||||
public:
|
||||
WiegandReader(AlarmStatus* statusObj, int d0, int d1){
|
||||
Serial.println("const.");
|
||||
status = statusObj;
|
||||
data0_pin = d0;
|
||||
data1_pin = d1;
|
||||
@ -27,23 +44,62 @@ public:
|
||||
wg.begin(data0_pin, data1_pin);
|
||||
}
|
||||
|
||||
void AddUser(String id, String name){
|
||||
users(id, name);
|
||||
}
|
||||
|
||||
void SetLed(int pin)
|
||||
{
|
||||
led_pin=pin;
|
||||
pinMode(led_pin, OUTPUT);
|
||||
digitalWrite(led_pin, HIGH);
|
||||
}
|
||||
void SetBeep(int pin)
|
||||
{
|
||||
beep_pin=pin
|
||||
beep_pin=pin;
|
||||
pinMode(beep_pin, OUTPUT);
|
||||
digitalWrite(beep_pin, HIGH);
|
||||
}
|
||||
|
||||
void HandleReader()
|
||||
{
|
||||
if(beeping)
|
||||
{
|
||||
if(millis() > errorTime + FromSeconds(1))
|
||||
{
|
||||
beepOff();
|
||||
}
|
||||
return;
|
||||
}
|
||||
if(!status->isArmed)
|
||||
{
|
||||
turnLedGreen();
|
||||
}else
|
||||
{
|
||||
turnLedRed();
|
||||
}
|
||||
if(!wg.available())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
String code = String(wg.getCode(), HEX);
|
||||
|
||||
String uidString = String(wg.getCode());
|
||||
Serial.print("[Card Reader] ");Serial.println(uidString);
|
||||
|
||||
for (int i = 0; i < users.count(); i++) {
|
||||
if(users(i) == uidString){
|
||||
status->allowed=true;
|
||||
status->userAllowed=users[i];
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
Serial.println("[Card Reader] access not granted");
|
||||
status->showError =true;
|
||||
|
||||
errorTime = millis();
|
||||
beepOn();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
};
|
@ -4,6 +4,7 @@
|
||||
AlarmStatus* status;
|
||||
|
||||
class DoorSensor {
|
||||
|
||||
private:
|
||||
int DOOR_SENSOR_PIN = 14;
|
||||
AlarmStatus* status;
|
||||
|
@ -6,6 +6,7 @@
|
||||
#include "LedController.h"
|
||||
#include "Siren.h"
|
||||
#include "CardReader.h"
|
||||
#include "WiegandReader.h"
|
||||
#include "soc/rtc_wdt.h"
|
||||
//#include <rtc_wdt.h>
|
||||
#include <WiFi.h>
|
||||
@ -13,6 +14,7 @@
|
||||
// #include <WiFiClientSecure.h>
|
||||
// #include "FrancelsoftCert.h"
|
||||
|
||||
|
||||
#include "Times.h"
|
||||
// #include <Dictionary.h>
|
||||
|
||||
@ -20,7 +22,8 @@ AlarmStatus s;
|
||||
DoorSensor doorSensor(&s);
|
||||
LedController led(&s);
|
||||
Siren siren(&s);
|
||||
CardReader cardReader(&s);
|
||||
// CardReader cardReader(&s);
|
||||
WiegandReader cardReader(&s, 18, 19);
|
||||
ServerConnector serverConnector(&s, &cardReader);
|
||||
|
||||
const int SILENCE_JMP_PIN = 12;
|
||||
@ -46,6 +49,9 @@ void setup()
|
||||
doorSensor.Init();
|
||||
led.Init();
|
||||
siren.Init();
|
||||
|
||||
cardReader.SetLed(5);
|
||||
cardReader.SetBeep(23);
|
||||
cardReader.Init();
|
||||
|
||||
pinMode(SILENCE_JMP_PIN, INPUT_PULLUP);
|
||||
@ -73,6 +79,9 @@ void addUsers(){
|
||||
cardReader.AddUser("0438768a2c6a80", "pin verizure");
|
||||
cardReader.AddUser("23141f2d", "pin azul");
|
||||
cardReader.AddUser("91cf3e02", "card access");
|
||||
|
||||
cardReader.AddUser("2911999", "nuevo pin 1");
|
||||
cardReader.AddUser("2648564", "nuevo pin 2");
|
||||
}
|
||||
|
||||
void loop()
|
||||
@ -82,11 +91,12 @@ void loop()
|
||||
|
||||
doorSensor.HandleDoor();
|
||||
|
||||
if(cardReader.IsInit()){
|
||||
cardReader.HandleCard();
|
||||
}else{
|
||||
cardReader.Init();
|
||||
}
|
||||
// if(cardReader.IsInit()){
|
||||
// cardReader.HandleReader();
|
||||
// }else{
|
||||
// cardReader.Init();
|
||||
// }
|
||||
cardReader.HandleReader();
|
||||
|
||||
if(s.allowed){
|
||||
HandleUserPresent();
|
||||
|
Loading…
Reference in New Issue
Block a user