esp8266_web_settings beta
InfoDisplay.h
1/*
2 * Copyright (c) 2021, 2022 G. R. McDorman
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
5 * of this software and associated documentation files (the "Software"), to deal
6 * in the Software without restriction, including without limitation the rights
7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 * copies of the Software, and to permit persons to whom the Software is
9 * furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in all
12 * copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20 * SOFTWARE.
21 */
22
23#pragma once
24
25
26#include "grmcdorman/device/Device.h"
27#include "grmcdorman/Setting.h"
28
29namespace grmcdorman::device
30{
38 class InfoDisplay: public Device
39 {
40 public:
46
52 void setup() override
53 {
54 }
60 void loop() override
61 {
62 }
63
64 DynamicJsonDocument as_json() const override;
65
74 virtual void set_devices(const std::vector<Device *> &list) override
75 {
76 devices = &list;
77 }
78
90 virtual String get_status() const
91 {
92 return String();
93 }
94 private:
95 NoteSetting title;
96 InfoSettingHtml host;
97 InfoSettingHtml station_ssid;
98 InfoSettingHtml rssi;
99 InfoSettingHtml softap;
100 InfoSettingHtml heap_status;
101 InfoSettingHtml uptime;
102 InfoSettingHtml filesystem;
103 InfoSettingHtml device_status;
104
105 const std::vector<Device *> *devices = nullptr;
106
111 void on_request_device_status();
112 };
113}
The generic device interface.
Definition: Device.h:46
This class is a readonly system-information panel.
Definition: InfoDisplay.h:39
void loop() override
Loop.
Definition: InfoDisplay.h:60
DynamicJsonDocument as_json() const override
Get the values, as a JSON document.
Definition: InfoDisplay.cpp:221
void setup() override
Setup.
Definition: InfoDisplay.h:52
virtual String get_status() const
Get a status report.
Definition: InfoDisplay.h:90
InfoDisplay()
Construct a new InfoDisplay Device object.
Definition: InfoDisplay.cpp:36
virtual void set_devices(const std::vector< Device * > &list) override
Add a list of devices that will report status.
Definition: InfoDisplay.h:74