EmlaLockSafe
EmergencyMenu.h
Go to the documentation of this file.
1
5
#pragma once
6
7
#include "
ViewStore.h
"
8
9
#include <MenuView.h>
10
11
namespace
views
{
15
class
EmergencyMenu
:
public
lcd::MenuView {
16
public
:
25
EmergencyMenu
(LiquidCrystal_PCF8574*
display
, RotaryEncoder*
encoder
,
const
int
& numberOfColumns,
const
int
& numberOfRows)
26
: lcd::MenuView(
display
,
"EmergencyMenu"
,
encoder
,
"Emergency Menu"
, numberOfColumns, numberOfRows) {}
27
28
public
:
32
EmergencyMenu
(
const
EmergencyMenu
& other) =
delete
;
33
34
public
:
38
EmergencyMenu
(
EmergencyMenu
&& other)
noexcept
=
delete
;
39
40
protected
:
44
virtual
void
activate
() {
45
// is this the first time activate is called?
46
if
(menuItems.empty()) {
47
// create menu items
48
createMenuItem(
"Unlock with key"
, [
this
](MenuItem*) {
49
ViewStore::activateView
(
ViewStore::EmergencyEnterKeyView
);
50
});
51
createMenuItem(
"Start Wifi"
, [
this
](MenuItem*) {
52
ViewStore::activateView
(
ViewStore::WifiConnectingView
);
53
});
54
createMenuItem(
"Offline Mode"
, [
this
](MenuItem*) {
55
if
(
LockState::getEndDate
() > time(NULL)) {
56
views::ViewStore::activateView
(
views::ViewStore::LockedView
);
57
}
58
else
{
59
views::ViewStore::activateView
(
views::ViewStore::UnlockedMainMenu
);
60
}
61
});
62
}
63
lcd::MenuView::activate();
64
}
65
};
66
}
// namespace views
ViewStore.h
LockState::getEndDate
static const time_t & getEndDate()
Get the End Date.
Definition:
LockState.h:325
views::EmergencyMenu
Emergency menu.
Definition:
EmergencyMenu.h:15
views::EmergencyMenu::EmergencyMenu
EmergencyMenu(LiquidCrystal_PCF8574 *display, RotaryEncoder *encoder, const int &numberOfColumns, const int &numberOfRows)
Construct a new main menu object.
Definition:
EmergencyMenu.h:25
views::EmergencyMenu::EmergencyMenu
EmergencyMenu(const EmergencyMenu &other)=delete
Copy constructor - not available.
views::EmergencyMenu::EmergencyMenu
EmergencyMenu(EmergencyMenu &&other) noexcept=delete
Move constructor - not available otherwise we get problems with the callbacks.
views::EmergencyMenu::activate
virtual void activate()
called as soon as the view becomes active
Definition:
EmergencyMenu.h:44
views::ViewStore::activateView
static bool activateView(const ViewId &id)
activates the view described by the id
Definition:
ViewStore.h:98
views::ViewStore::EmergencyEnterKeyView
@ EmergencyEnterKeyView
Definition:
ViewStore.h:25
views::ViewStore::WifiConnectingView
@ WifiConnectingView
Definition:
ViewStore.h:39
views::ViewStore::LockedView
@ LockedView
Definition:
ViewStore.h:31
views::ViewStore::UnlockedMainMenu
@ UnlockedMainMenu
Definition:
ViewStore.h:37
display
views::ConfigurationServerView configurationServerView & display
Definition:
main.cpp:57
encoder
RotaryEncoder encoder(ENCODER_PIN_CLK, ENCODER_PIN_DT, ENCODER_SWITCH)
views
Definition:
ConfigurationServerView.h:10
software
src
views
EmergencyMenu.h
Generated on Tue May 24 2022 15:32:38 for EmlaLockSafe by
1.9.4