-
Notifications
You must be signed in to change notification settings - Fork 0
/
DoorLockController.h
50 lines (41 loc) · 1.1 KB
/
DoorLockController.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#ifndef CDOORLOCKCONTROLLER_H
#define CDOORLOCKCONTROLLER_H
#include "ArduinoGpio.h"
#include "ArduinoSerialLogger.h"
#include "DoorLock.h"
#include "NfcAuthenticator.h"
#include "OneWireAuthenticator.h"
#include "HardcodedKeyStorage.h"
#include "DualColorLed.h"
class DoorLockController
{
public:
DoorLockController();
void run();
private:
enum {
NFC_SLAVE_SELECT_PIN = 10,
NFC_RESET_PIN = 9,
ONEWIRE_PIN = 8,
DOOR_PIN = 4,
LED_RED_PIN = 3,
LED_GREEN_PIN = 2,
DOOR_OPEN_TIME_MS = 3000,
NUM_AUTHENTICATORS=2,
POLLING_INTERVAL_MS = 250,
BLINK_INTERVAL_CYCLES = 20
};
void heartbeat();
void checkForKeys();
ArduinoSerialLogger logger;
ArduinoGpio greenLedGpio, redLedGpio, doorLockGpio;
DualColorLed statusLed;
DoorLock doorLock;
NfcAuthenticator nfcAuthenticator;
OneWireAuthenticator oneWireAuthenticator;
IAuthenticator* authenticators[NUM_AUTHENTICATORS];
HardcodedKeyStorage keyDatabase;
bool unauthorizedAccess;
short heartbeatCounter;
};
#endif // CDOORLOCKCONTROLLER_H