47 lines
1.0 KiB
C++
47 lines
1.0 KiB
C++
#pragma once
|
|
#include <LiquidCrystal_I2C.h>
|
|
#include "Keyboard.h"
|
|
class Interface
|
|
{
|
|
private:
|
|
LiquidCrystal_I2C _lcd;
|
|
Keyboard* _keyboard;
|
|
String _pin_number;
|
|
bool _pin_available;
|
|
int _display_state = 0;
|
|
unsigned long _lastDisplayUpdate = 0;
|
|
unsigned long _displayTimer1 = 0;
|
|
unsigned long _displayTimer2 = 0;
|
|
unsigned long _inputTimeout = 0;
|
|
bool _displayUpdate = true;
|
|
String _username = "";
|
|
unsigned int _scroll_index = 0;
|
|
String _msg1 = "";
|
|
String _msg2 = "";
|
|
unsigned long _msg_display_time = 0;
|
|
;
|
|
public:
|
|
enum states {
|
|
MAIN,
|
|
ENTER_PIN_START,
|
|
ENTER_PIN_ADD_NUM,
|
|
VALIDATE_PIN,
|
|
ABORT,
|
|
DELAY,
|
|
READ_RFID,
|
|
GREET,
|
|
MSG
|
|
|
|
};
|
|
Interface(/* args */);
|
|
~Interface();
|
|
void begin(Keyboard* Keyboard);
|
|
void render();
|
|
void setState(states state);
|
|
int getState();
|
|
void greetUser(String username);
|
|
String getPin();
|
|
bool pinAvailable();
|
|
void showMessage(String msg1, String msg2, unsigned long display_time);
|
|
};
|