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