ESP8266-Firmware/src/Interface.h

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);
};