EmlaLockSafe
Tools.h
Go to the documentation of this file.
1
5#pragma once
6
8
9#include <ViewBase.h>
10#include <WiFi.h>
11
15class Tools {
16public:
23 static void tickWifiSymbol(LiquidCrystal_PCF8574* display, bool forceRedraw) {
24 static uint8_t lastDrawnSymbol = 0;
25 if (forceRedraw) {
26 lastDrawnSymbol = 0;
27 }
28
29 // get signal strength
30 long rssi = WiFi.RSSI();
31
32 if ((rssi < -80) || (rssi >= 0)) {
33 if (lastDrawnSymbol != lcd::ViewBase::scWifiSignal0) {
34 display->setCursor(19, 0);
35 display->write(lcd::ViewBase::scWifiSignal0);
36 lastDrawnSymbol = lcd::ViewBase::scWifiSignal0;
37 }
38 }
39 else if (rssi < -70) {
40 if (lastDrawnSymbol != lcd::ViewBase::scWifiSignal1) {
41 display->setCursor(19, 0);
42 display->write(lcd::ViewBase::scWifiSignal1);
43 lastDrawnSymbol = lcd::ViewBase::scWifiSignal1;
44 }
45 }
46 else if (rssi < -67) {
47 if (lastDrawnSymbol != lcd::ViewBase::scWifiSignal2) {
48 display->setCursor(19, 0);
49 display->write(lcd::ViewBase::scWifiSignal2);
50 lastDrawnSymbol = lcd::ViewBase::scWifiSignal2;
51 }
52 }
53 else if (rssi < -30) {
54 if (lastDrawnSymbol != lcd::ViewBase::scWifiSignal3) {
55 display->setCursor(19, 0);
56 display->write(lcd::ViewBase::scWifiSignal3);
57 lastDrawnSymbol = lcd::ViewBase::scWifiSignal3;
58 }
59 }
60 }
61
62public:
69 static void waitAnimation(LiquidCrystal_PCF8574* display, std::function<bool()> stillActive) {
70 while (stillActive()) {
71 for (int i = 0; (i < 20) && stillActive(); i++) {
72 if (i == 0) {
73 display->setCursor(19, 3);
74 display->print(' ');
75 display->setCursor(i, 3);
76 display->print('*');
77 }
78 else {
79 display->setCursor(i - 1, 3);
80 display->print(" *");
81 }
82
83 delay(100);
84 }
85 }
86 }
87};
class providing some static functions
Definition: Tools.h:15
static void waitAnimation(LiquidCrystal_PCF8574 *display, std::function< bool()> stillActive)
Shows the animation while waiting until the callback returns false.
Definition: Tools.h:69
static void tickWifiSymbol(LiquidCrystal_PCF8574 *display, bool forceRedraw)
tick routine updating the wifi signal strength icon
Definition: Tools.h:23
views::ConfigurationServerView configurationServerView & display
Definition: main.cpp:57