diff options
author | jdlugosz963 <jdlugosz963@gmail.com> | 2022-12-22 19:09:34 +0100 |
---|---|---|
committer | jdlugosz963 <jdlugosz963@gmail.com> | 2022-12-22 19:09:34 +0100 |
commit | b6d1df48244db14d693c286445ca1384341ae0c1 (patch) | |
tree | 8ce0bdea077e5f132087f53437dab7bc34794233 | |
parent | 64ea63f2efadddf9bf185f7ce24bf3c56538b287 (diff) | |
download | shack-b6d1df48244db14d693c286445ca1384341ae0c1.tar.gz shack-b6d1df48244db14d693c286445ca1384341ae0c1.zip |
Add webserver and simple webpage
-rw-r--r-- | data/index.html | 31 | ||||
-rw-r--r-- | data/script.js | 15 | ||||
-rw-r--r-- | data/style.css | 40 | ||||
-rw-r--r-- | webserver.cpp | 78 | ||||
-rw-r--r-- | webserver.h | 26 |
5 files changed, 190 insertions, 0 deletions
diff --git a/data/index.html b/data/index.html new file mode 100644 index 0000000..f3b7068 --- /dev/null +++ b/data/index.html | |||
@@ -0,0 +1,31 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html lang="pl"> | ||
3 | <head> | ||
4 | <meta charset="UTF-8"> | ||
5 | <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
6 | <meta http-equiv="X-UA-Compatible" content="ie=edge"> | ||
7 | <title>Schack v.0.0.1</title> | ||
8 | <link rel="stylesheet" href="./style.css"> | ||
9 | <link rel="icon" href="./favicon.ico" type="image/x-icon"> | ||
10 | </head> | ||
11 | <body> | ||
12 | <main> | ||
13 | <h1>Schack</h1> | ||
14 | |||
15 | <section id="container"> | ||
16 | <div id="controll-buttons"> | ||
17 | <input id="button-previous-s" type="button" value="<< Previous Section" /> | ||
18 | <input id="button-previous" type="button" value="< Previous" /> | ||
19 | |||
20 | <input id="button-next" type="button" value="Next >" /> | ||
21 | <input id="button-next-s" type="button" value="Next Section >>" /> | ||
22 | </div> | ||
23 | </section> | ||
24 | |||
25 | <footer> | ||
26 | Github: <a href="https://github.com/jdlugosz963/schack" target="_blank">jdlugosz963/schack</a> | ||
27 | </footer> | ||
28 | </main> | ||
29 | <script src="script.js"></script> | ||
30 | </body> | ||
31 | </html> | ||
diff --git a/data/script.js b/data/script.js new file mode 100644 index 0000000..0f3101f --- /dev/null +++ b/data/script.js | |||
@@ -0,0 +1,15 @@ | |||
1 | document.getElementById("button-previous-s").onclick = function() { | ||
2 | fetch("/previouss"); | ||
3 | } | ||
4 | |||
5 | document.getElementById("button-previous").onclick = function() { | ||
6 | fetch("/previous"); | ||
7 | } | ||
8 | |||
9 | document.getElementById("button-next").onclick = function() { | ||
10 | fetch("/next"); | ||
11 | } | ||
12 | |||
13 | document.getElementById("button-next-s").onclick = function() { | ||
14 | fetch("/nexts"); | ||
15 | } | ||
diff --git a/data/style.css b/data/style.css new file mode 100644 index 0000000..52dfca6 --- /dev/null +++ b/data/style.css | |||
@@ -0,0 +1,40 @@ | |||
1 | :root { | ||
2 | --black: #333333; | ||
3 | --white: #eeeeee; | ||
4 | } | ||
5 | |||
6 | body { | ||
7 | background-color: var(--black); | ||
8 | color: var(--white); | ||
9 | |||
10 | font-family: monospace; | ||
11 | letter-spacing: 0.2em; | ||
12 | } | ||
13 | |||
14 | main { | ||
15 | padding: 2em; | ||
16 | } | ||
17 | |||
18 | a { | ||
19 | color: var(--white); | ||
20 | } | ||
21 | |||
22 | h1 { | ||
23 | font-size: 42px; | ||
24 | |||
25 | margin: 0; | ||
26 | } | ||
27 | |||
28 | #container { | ||
29 | padding-top: 2em; | ||
30 | padding-bottom: 2em; | ||
31 | } | ||
32 | |||
33 | input { | ||
34 | padding: 0.5em; | ||
35 | |||
36 | background-color: var(--white); | ||
37 | color: var(--black); | ||
38 | |||
39 | border: none; | ||
40 | } | ||
diff --git a/webserver.cpp b/webserver.cpp new file mode 100644 index 0000000..36b5a14 --- /dev/null +++ b/webserver.cpp | |||
@@ -0,0 +1,78 @@ | |||
1 | #include "webserver.h" | ||
2 | |||
3 | |||
4 | WebServer::WebServer(Controller *controller) { | ||
5 | this->controller = controller; | ||
6 | this->server = new ESP8266WebServer(80); | ||
7 | |||
8 | if(!setupST()) { | ||
9 | Serial.println("Cos sie zjebalo!!"); | ||
10 | return; | ||
11 | } | ||
12 | |||
13 | if(!LittleFS.begin()){ | ||
14 | Serial.println("An Error has occurred while mounting LittleFS"); | ||
15 | return; | ||
16 | } | ||
17 | setupRoutes(); | ||
18 | } | ||
19 | |||
20 | WebServer::~WebServer() { | ||
21 | delete server; | ||
22 | } | ||
23 | |||
24 | void WebServer::setupRoutes() { | ||
25 | server->serveStatic("/", LittleFS, "/index.html", "max-age=43200"); | ||
26 | server->serveStatic("/script.js", LittleFS, "/script.js", "max-age=43200"); | ||
27 | server->serveStatic("/style.css", LittleFS, "/style.css", "max-age=43200"); | ||
28 | |||
29 | server->on("/next", [this]() { | ||
30 | this->server->send(200, "text/plain", "Next ok!"); | ||
31 | this->controller->next(); | ||
32 | }); | ||
33 | |||
34 | server->on("/previous", [this]() { | ||
35 | this->server->send(200, "text/plain", "Previous ok!"); | ||
36 | this->controller->previous(); | ||
37 | }); | ||
38 | |||
39 | server->on("/nexts", [this]() { | ||
40 | this->server->send(200, "text/plain", "Next_S ok!"); | ||
41 | this->controller->nextS(); | ||
42 | }); | ||
43 | |||
44 | server->on("/previouss", [this]() { | ||
45 | this->server->send(200, "text/plain", "Previous_S ok!"); | ||
46 | this->controller->previousS(); | ||
47 | }); | ||
48 | |||
49 | server->begin(); | ||
50 | } | ||
51 | |||
52 | void WebServer::loop() { | ||
53 | server->handleClient(); | ||
54 | } | ||
55 | |||
56 | bool WebServer::setupAP () { | ||
57 | WiFi.softAP(controller->getAPSSID(), controller->getAPPassword()); | ||
58 | wifiStatus = WiFi.status(); | ||
59 | return wifiStatus; | ||
60 | } | ||
61 | |||
62 | bool WebServer::setupST () { | ||
63 | Serial.println("Station connecting: "); | ||
64 | |||
65 | WiFi.begin("OpenWrt2"); | ||
66 | while (WiFi.status() != WL_CONNECTED) | ||
67 | { | ||
68 | delay(500); | ||
69 | Serial.print("."); | ||
70 | } | ||
71 | Serial.println(); | ||
72 | |||
73 | Serial.print("Connected, IP address: "); | ||
74 | Serial.println(WiFi.localIP()); | ||
75 | |||
76 | wifiStatus = WiFi.status(); | ||
77 | return wifiStatus; | ||
78 | } | ||
diff --git a/webserver.h b/webserver.h new file mode 100644 index 0000000..940e5a5 --- /dev/null +++ b/webserver.h | |||
@@ -0,0 +1,26 @@ | |||
1 | //#include <ESPAsyncTCP.h> | ||
2 | #include <ESP8266WebServer.h> | ||
3 | #include <ESP8266WiFi.h> | ||
4 | |||
5 | #include "controller.h" | ||
6 | #include <LittleFS.h> | ||
7 | |||
8 | |||
9 | #ifndef WEBSERVER_H | ||
10 | #define WEBSERVER_H | ||
11 | |||
12 | class WebServer { | ||
13 | ESP8266WebServer *server; | ||
14 | Controller *controller; | ||
15 | |||
16 | bool setupST(); | ||
17 | bool setupAP(); | ||
18 | void setupRoutes(); | ||
19 | bool wifiStatus = false; | ||
20 | public: | ||
21 | WebServer(Controller *controller); | ||
22 | ~WebServer(); | ||
23 | void loop(); | ||
24 | }; | ||
25 | |||
26 | #endif | ||