removed old classes, included pwa for testing
This commit is contained in:
		
							parent
							
								
									74da018c99
								
							
						
					
					
						commit
						2719314506
					
				
							
								
								
									
										1
									
								
								data/admin
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								data/admin
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | ||||
| admin|admin | ||||
| @ -1,7 +0,0 @@ | ||||
| [ | ||||
|     { | ||||
|         "NAME":"Toni", | ||||
|         "PASSWORD":"geheim", | ||||
|         "PIN":1231239 | ||||
|     } | ||||
| ] | ||||
							
								
								
									
										10
									
								
								data/s/a.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								data/s/a.svg
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,10 @@ | ||||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <!-- Generator: Adobe Illustrator 25.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  --> | ||||
| <svg version="1.2" baseProfile="tiny" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" | ||||
| 	 x="0px" y="0px" viewBox="0 0 500 500" overflow="visible" xml:space="preserve"> | ||||
| <path fill="#CCCCCC" stroke="#000000" stroke-linecap="round" stroke-miterlimit="10" d="M349.5,421.5h-199c-8.28,0-15-6.72-15-15 | ||||
| 	v-255h229v255C364.5,414.78,357.78,421.5,349.5,421.5z"/> | ||||
| <path fill="#CCCCCC" stroke="#000000" stroke-linecap="round" stroke-miterlimit="10" d="M386.81,99.5H314.5V80.38 | ||||
| 	c0-9.88-8.01-17.88-17.88-17.88h-92.24c-9.88,0-17.88,8.01-17.88,17.88V99.5h-73.31c-5.35,0-9.69,4.34-9.69,9.69v20.62 | ||||
| 	c0,5.35,4.34,9.69,9.69,9.69h273.62c5.35,0,9.69-4.34,9.69-9.69v-20.62C396.5,103.84,392.16,99.5,386.81,99.5z"/> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 874 B | 
							
								
								
									
										12
									
								
								data/s/b.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								data/s/b.svg
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,12 @@ | ||||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <!-- Generator: Adobe Illustrator 25.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  --> | ||||
| <svg version="1.2" baseProfile="tiny" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" | ||||
| 	 x="0px" y="0px" viewBox="0 0 500 500" overflow="visible" xml:space="preserve"> | ||||
| <polyline fill="#CCCCCC" stroke="#000000" stroke-miterlimit="10" points="181.5,395.5 86.5,395.5 86.5,300.5 "/> | ||||
| <g> | ||||
| 	 | ||||
| 		<rect x="355.37" y="40.63" transform="matrix(0.7071 -0.7071 0.7071 0.7071 31.9147 294.7168)" fill="#CCCCCC" stroke="#000000" stroke-width="1" stroke-miterlimit="9.9999" width="32.69" height="136.4"/> | ||||
| 	 | ||||
| 		<rect x="94.59" y="168.11" transform="matrix(0.7071 -0.7071 0.7071 0.7071 -95.5641 241.9096)" fill="#CCCCCC" stroke="#000000" stroke-width="1" stroke-miterlimit="9.9999" width="299.29" height="136.4"/> | ||||
| </g> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 881 B | 
							
								
								
									
										1
									
								
								data/s/bundle.45d14.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								data/s/bundle.45d14.css
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										2
									
								
								data/s/bundle.f9ad8.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								data/s/bundle.f9ad8.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1
									
								
								data/s/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								data/s/index.html
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | ||||
| <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><title>doorlock_pwa</title><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-capable" content="yes"><link rel="apple-touch-icon" href="/assets/icons/apple-touch-icon.png"><link rel="manifest" href="/manifest.json"><meta name="theme-color" content="#673ab8"><style>*{box-sizing:border-box}html{font-family:Helvetica,sans-serif;font-size:16px}body,html{height:100%}body{background-color:#fff;margin:0;padding:0;width:100%}</style><link href="/bundle.45d14.css" rel="stylesheet" media="only x" onload="this.media='all'"><noscript><link rel="stylesheet" href="/bundle.45d14.css"></noscript></head><body><script defer="defer" src="/bundle.f9ad8.js"></script><script nomodule="" src="/polyfills.058fb.js"></script></body></html> | ||||
							
								
								
									
										2
									
								
								data/s/polyfills.058fb.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								data/s/polyfills.058fb.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @ -1,12 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|     <meta charset="UTF-8"> | ||||
|     <meta http-equiv="X-UA-Compatible" content="IE=edge"> | ||||
|     <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||||
|     <title>Document</title> | ||||
| </head> | ||||
| <body> | ||||
|     <h1>Error 404: Page not found.</h1> | ||||
| </body> | ||||
| </html> | ||||
| @ -1,12 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|     <meta charset="UTF-8"> | ||||
|     <meta http-equiv="X-UA-Compatible" content="IE=edge"> | ||||
|     <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||||
|     <title>Document</title> | ||||
| </head> | ||||
| <body> | ||||
|     <h1>Welcome on ESP8266</h1> | ||||
| </body> | ||||
| </html> | ||||
							
								
								
									
										21
									
								
								src/Config.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								src/Config.cpp
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,21 @@ | ||||
| #include "Config.h" | ||||
| 
 | ||||
| Config::Config() | ||||
| { | ||||
|     if (!LittleFS.begin()) | ||||
|     { | ||||
|         Serial.println("An Error has occurred while mounting LittleFS"); | ||||
|         return; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| bool Config::loadConfig() | ||||
| { | ||||
|     StaticJsonDocument<1024> doc; | ||||
|     File config_file = LittleFS.open("/config.json","r"); | ||||
|     deserializeJson(doc, config_file);  | ||||
|     this->SSID=doc["SSID"].as<const char*>(); | ||||
|     this->PASS=doc["PASS"].as<const char*>(); | ||||
|     return true; | ||||
| } | ||||
							
								
								
									
										12
									
								
								src/Config.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								src/Config.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,12 @@ | ||||
| #pragma once | ||||
| #include "LittleFS.h" | ||||
| #include "ArduinoJson.h" | ||||
| class Config | ||||
| { | ||||
| public: | ||||
|     Config(); | ||||
|     const char *SSID; | ||||
|     const char *PASS; | ||||
|     int THEME; | ||||
|     bool loadConfig(); | ||||
| }; | ||||
| @ -1,54 +0,0 @@ | ||||
| #include "Persistence.h" | ||||
| 
 | ||||
| Persistence::Persistence() | ||||
| { | ||||
|     if (!LittleFS.begin()) | ||||
|     { | ||||
|         Serial.println("An Error has occurred while mounting LittleFS"); | ||||
|         return; | ||||
|     } | ||||
| } | ||||
| String Persistence::TestRead() | ||||
| { | ||||
|     File file = LittleFS.open("/users.json", "r"); | ||||
|     String result = ""; | ||||
|     if (!file) | ||||
|     { | ||||
|         Serial.println("Failed to open file for reading"); | ||||
|         return result; | ||||
|     } | ||||
|     Serial.println("File Content:"); | ||||
|     while (file.available()) | ||||
|     { | ||||
|         result += (char)file.read(); | ||||
|     } | ||||
|     file.close(); | ||||
|     return result; | ||||
| } | ||||
| 
 | ||||
| Persistence::Configuration Persistence::loadConfig() | ||||
| { | ||||
|     StaticJsonDocument<1024> doc; | ||||
|     File config_file = LittleFS.open("/config.json","r"); | ||||
|     deserializeJson(doc, config_file);  | ||||
|     Configuration res; | ||||
|     res.SSID=doc["SSID"].as<const char*>(); | ||||
|     res.PASS=doc["PASS"].as<const char*>(); | ||||
|     return res; | ||||
| } | ||||
| DynamicJsonDocument Persistence::readUsers(){ | ||||
|     File user_file = LittleFS.open("/users.json","r"); | ||||
|     size_t buffersize = user_file.size()+512; | ||||
|     Serial.printf("Reserved %i for reading UserDB File", buffersize); | ||||
|     DynamicJsonDocument doc(user_file.size()+512); | ||||
|     deserializeJson(doc, user_file); | ||||
|     user_file.close(); | ||||
|     return doc; | ||||
| } | ||||
| bool Persistence::saveUsers(DynamicJsonDocument &doc){ | ||||
|     File user_file = LittleFS.open("/users.json","w"); | ||||
|     serializeJson(doc, user_file); | ||||
|     user_file.close(); | ||||
| 
 | ||||
|     return true; | ||||
| } | ||||
| @ -1,17 +0,0 @@ | ||||
| #pragma once | ||||
| #include "LittleFS.h" | ||||
| #include "ArduinoJson.h" | ||||
| class Persistence | ||||
| { | ||||
|     public: | ||||
|         Persistence(); | ||||
|         String TestRead(); | ||||
|         typedef struct Configuration{ | ||||
|             const char* SSID; | ||||
|             const char* PASS; | ||||
|             int THEME; | ||||
|         } config; | ||||
|         Configuration loadConfig(); | ||||
|         DynamicJsonDocument readUsers(); | ||||
|         bool saveUsers(DynamicJsonDocument &doc); | ||||
| }; | ||||
| @ -1,5 +1,5 @@ | ||||
| #pragma once | ||||
| #include "Persistence.h" | ||||
| #include "Config.h" | ||||
| #include "LittleFS.h" | ||||
| #include <sstream> | ||||
| #include <iterator> | ||||
|  | ||||
							
								
								
									
										118
									
								
								src/Users.cpp
									
									
									
									
									
								
							
							
						
						
									
										118
									
								
								src/Users.cpp
									
									
									
									
									
								
							| @ -1,118 +0,0 @@ | ||||
| #include "Users.h" | ||||
| 
 | ||||
| 
 | ||||
| Users::Users(Persistence &p): persistence(p){ | ||||
| } | ||||
| Users::~Users() | ||||
| { | ||||
| } | ||||
| bool Users::ImportFromPersistence(){ | ||||
|     Serial.println("Importing Users from Persistence"); | ||||
|     DynamicJsonDocument user_persistence = persistence.readUsers(); | ||||
|     JsonArray array = user_persistence.as<JsonArray>(); | ||||
|     for(JsonObject userdata : array){ | ||||
|         User *imported = new User(); | ||||
|         imported->uid= userdata["ID"].as<unsigned long>(); | ||||
|         if(_userdb.count(*imported)) | ||||
|             continue; | ||||
|         imported->first_name = userdata["FIRST_NAME"].as<String>(); | ||||
|         imported->last_name = userdata["LAST_NAME"].as<String>(); | ||||
|         imported->rfid_uid = userdata["RFID_UID"].as<String>(); | ||||
|         imported->user_pin = userdata["USER_PIN"].as<String>(); | ||||
|         imported->enabled = userdata["ENABLED"].as<bool>(); | ||||
|         this->_userdb.insert(*imported); | ||||
|     } | ||||
|     Serial.println("User import is done!"); | ||||
|     return true; | ||||
| } | ||||
| 
 | ||||
| bool Users::ExportToPersistence(){ | ||||
|     Serial.println("Exporting Users to Persistence"); | ||||
|     size_t user_amount = _userdb.size()+2; | ||||
|     Serial.print( " User Amount: " ); | ||||
|     Serial.print(user_amount); | ||||
|     size_t capacity = JSON_ARRAY_SIZE(user_amount) + user_amount*JSON_OBJECT_SIZE(6); | ||||
|     Serial.print(" JSON Capacity"); | ||||
|     Serial.print(capacity); | ||||
|      Serial.print(" Free Heap: "); | ||||
|      Serial.print(ESP.getFreeHeap()); | ||||
|     //DynamicJsonDocument<CAPACITY> doc;
 | ||||
|     DynamicJsonDocument doc(capacity); | ||||
| 
 | ||||
|     for(Users::User u : _userdb){ | ||||
|         JsonObject exported_user = doc.createNestedObject(); | ||||
|         exported_user["ID"] = u.uid; | ||||
|         exported_user["FIRST_NAME"] = u.first_name; | ||||
|         exported_user["LAST_NAME"] = u.last_name; | ||||
|         exported_user["RFID_UID"] = u.rfid_uid; | ||||
|         exported_user["USER_PIN"] = u.user_pin; | ||||
|         exported_user["ENABLED"] = u.enabled; | ||||
|     } | ||||
|     persistence.saveUsers(doc); | ||||
|     Serial.println("User export is done!"); | ||||
|     return true; | ||||
| } | ||||
| bool Users::checkPin(String pin_code, std::vector<Users::User> *logon_users) | ||||
| { | ||||
|     std::copy_if(this->_userdb.begin(), this->_userdb.end(), inserter(*logon_users, logon_users->end()), [=](user_account user) | ||||
|                  { return pin_code == user.user_pin&&user.enabled==true; }); | ||||
|     return (logon_users->size() > 0); | ||||
| } | ||||
| 
 | ||||
| bool Users::checkRfid(String rfid_code, std::vector<Users::User> *logon_users) | ||||
| { | ||||
|     std::copy_if(this->_userdb.begin(), this->_userdb.end(), inserter(*logon_users, logon_users->end()), [=](user_account user) | ||||
|                  { return rfid_code == user.rfid_uid&&user.enabled==true; }); | ||||
|     return (logon_users->size() > 0); | ||||
| } | ||||
| 
 | ||||
| unsigned long Users::addUser(String first_name, String last_name, String rifd_uid, String user_pin) | ||||
| { | ||||
|     Serial.println("Adding User:" + first_name); | ||||
|     unsigned long new_id = this->_userdb.rbegin()->uid + 1; | ||||
|     this->_userdb.insert(user_account{.uid = new_id, .first_name = first_name, .last_name = last_name, .rfid_uid = rifd_uid, .user_pin = user_pin}); | ||||
|     return new_id; | ||||
| } | ||||
| 
 | ||||
| bool Users::delUser(unsigned long id) | ||||
| { | ||||
|     return this->_userdb.erase(user_account{.uid = id})>0; | ||||
| } | ||||
| 
 | ||||
| bool Users::updateUser(unsigned long id, ATTRIBUTES attr, String value) | ||||
| { | ||||
|     auto  modify = this->_userdb.find(user_account{.uid = id}); | ||||
|     switch (attr) | ||||
|     { | ||||
|     case FIRST_NAME: | ||||
|         modify->first_name = value; | ||||
|         break; | ||||
|     case LAST_NAME: | ||||
|         modify->last_name = value; | ||||
|         break; | ||||
|     case RFID_UID: | ||||
|         modify->rfid_uid = value; | ||||
|         break; | ||||
|     case USER_PIN: | ||||
|         modify->user_pin = value; | ||||
|         break; | ||||
| 
 | ||||
|     default: | ||||
|         break; | ||||
|     } | ||||
|     return false; | ||||
| } | ||||
| 
 | ||||
| size_t Users::countUsers(){ | ||||
|     return _userdb.size(); | ||||
| } | ||||
| String Users::toString(User *user) | ||||
| { | ||||
|     return "UID: " + String(user->uid) + " Name: " + user->first_name + " " + user->last_name; | ||||
| } | ||||
| void Users::PrintAllToSerial(){ | ||||
|     Serial.println("#All Users:"); | ||||
|     for(Users::User u : _userdb){ | ||||
|         Serial.println(toString(&u)); | ||||
|     } | ||||
| } | ||||
							
								
								
									
										46
									
								
								src/Users.h
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								src/Users.h
									
									
									
									
									
								
							| @ -1,46 +0,0 @@ | ||||
| #pragma once | ||||
| #include <Arduino.h> | ||||
| #include <set> | ||||
| #include <vector> | ||||
| #include "Persistence.h" | ||||
| class Users | ||||
| { | ||||
| public: | ||||
|     enum ATTRIBUTES{ | ||||
|         FIRST_NAME, | ||||
|         LAST_NAME, | ||||
|         RFID_UID, | ||||
|         USER_PIN | ||||
|     }; | ||||
|     typedef struct User | ||||
|     { | ||||
|         //User(unsigned long new_uid): uid(new_uid){}
 | ||||
|         unsigned long uid; | ||||
|         mutable String first_name; | ||||
|         mutable String last_name; | ||||
|         mutable String rfid_uid; | ||||
|         mutable String user_pin; | ||||
|         mutable bool enabled = true; | ||||
|         bool operator < (const User &o) const { return uid <o.uid; } | ||||
|         bool operator == (const User &o) const { return uid ==o.uid; } | ||||
|          | ||||
|     } user_account; | ||||
| 
 | ||||
| private: | ||||
|     std::set<User> _userdb; | ||||
|     Persistence &persistence; | ||||
|     /* data */ | ||||
| public: | ||||
|     Users(Persistence &persistence); | ||||
|     ~Users(); | ||||
|     bool checkRfid(String rfid_code, std::vector<Users::User> *logon_users); | ||||
|     bool checkPin(String pin_code, std::vector<Users::User> *logon_users); | ||||
|     unsigned long addUser(String first_name, String last_name, String rifd_uid, String user_pin); | ||||
|     bool delUser(unsigned long id); | ||||
|     bool updateUser(unsigned long id, ATTRIBUTES attr, String value); | ||||
|     String toString(User *user); | ||||
|     bool ImportFromPersistence(); | ||||
|     bool ExportToPersistence(); | ||||
|     void PrintAllToSerial(); | ||||
|     size_t countUsers(); | ||||
| }; | ||||
| @ -23,8 +23,8 @@ bool WebConsole::init(userdb::UserDb *userdb) | ||||
|     _server->on(UriBraces("/api/user/{}"), HTTPMethod::HTTP_POST, std::bind(&WebConsole::_updateUser, this)); | ||||
|     _server->on(UriBraces("/api/config/{}"), std::bind(&WebConsole::_deleteUser, this)); | ||||
|     //_server->on("/bypin",std::bind(&WebConsole::_findPin,this));
 | ||||
|     _server->serveStatic("/", LittleFS, "/static/index.html"); | ||||
|     //_server->onNotFound(std::bind(&WebConsole::_handleStatic, this));
 | ||||
|     _server->serveStatic("/", LittleFS, "/s/"); | ||||
|     _server->onNotFound(std::bind(&WebConsole::_handleUnknown, this)); | ||||
|     return true; | ||||
| } | ||||
| void WebConsole::attachRfid(Rfid *rfid) | ||||
| @ -45,34 +45,19 @@ bool WebConsole::isInterceptingRfid() | ||||
| { | ||||
|     return catch_rfid; | ||||
| } | ||||
| void WebConsole::_handleStatic() | ||||
| void WebConsole::_handleUnknown() | ||||
| { | ||||
|     String path = path_prefix + _server->uri(); | ||||
|     Serial.print("Request " + path); | ||||
|     File src = LittleFS.open(path, "r"); | ||||
|     if (src.isDirectory()) | ||||
|     if (_server->method() == HTTP_OPTIONS) | ||||
|     { | ||||
|         path += "index.html"; | ||||
|         _server->sendHeader("Access-Control-Allow-Origin", "*"); | ||||
|         _server->sendHeader("Access-Control-Max-Age", "10000"); | ||||
|         _server->sendHeader("Access-Control-Allow-Methods", "PUT,POST,GET,OPTIONS"); | ||||
|         _server->sendHeader("Access-Control-Allow-Headers", "*"); | ||||
|         _server->send(204); | ||||
|     }else {   | ||||
|     File src = LittleFS.open("s/index.html", "r"); | ||||
|     _server->streamFile(src, "text/html"); | ||||
|     src.close(); | ||||
|         src = LittleFS.open(path, "r"); | ||||
|     } | ||||
|     if (!src) | ||||
|     { | ||||
|         path = "/static/error404.html"; | ||||
|         src.close(); | ||||
|         src = LittleFS.open(path, "r"); | ||||
|     } | ||||
| 
 | ||||
|     Serial.println(" resolved to " + path); | ||||
|     if (src) | ||||
|     { | ||||
|         String content_type = "text/html"; | ||||
|         _server->streamFile(src, content_type); | ||||
|         src.close(); | ||||
|     } | ||||
|     else | ||||
|     { | ||||
|         _server->send(500, "text/plain", "Internal error 500"); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| @ -238,3 +223,6 @@ void WebConsole::_catchRFID() | ||||
|         _server->send(500, "text/json", "{\"ok\":\"now activated\"}"); | ||||
|     } | ||||
| } | ||||
| void WebConsole::_updateAdmin() | ||||
| { | ||||
| } | ||||
| @ -9,7 +9,7 @@ | ||||
| #include "Rfid.h" | ||||
| namespace webconsole | ||||
| { | ||||
|     static const char path_prefix[] PROGMEM = "/static"; | ||||
|     static const char path_prefix[] PROGMEM = "/s"; | ||||
|     static ESP8266WebServer _server(80); | ||||
|     class WebConsole | ||||
|     { | ||||
| @ -23,7 +23,7 @@ namespace webconsole | ||||
|         bool isInterceptingRfid(); | ||||
| 
 | ||||
|     private: | ||||
|         void _handleStatic(); | ||||
|         void _handleUnknown(); | ||||
|         void _getUserDb(); | ||||
|         void _deleteUser(); | ||||
|         void _getUser(); | ||||
| @ -31,6 +31,7 @@ namespace webconsole | ||||
|         void _createUser(); | ||||
|         void _dropUserDb(); | ||||
|         void _catchRFID(); | ||||
|         void _updateAdmin(); | ||||
|         void _print_db_raw() | ||||
|         { | ||||
|             File f = LittleFS.open("userdb.csv", "r"); | ||||
|  | ||||
							
								
								
									
										10
									
								
								src/main.cpp
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								src/main.cpp
									
									
									
									
									
								
							| @ -7,9 +7,9 @@ | ||||
| #include <ESP8266WiFi.h> | ||||
| #include "WebConsole.h" | ||||
| #include "UserDb.h" | ||||
| #include "Persistence.h" | ||||
| // File persistence
 | ||||
| Persistence persistence; | ||||
| #include "Config.h" | ||||
| // File config
 | ||||
| Config config; | ||||
| userdb::UserDb userdatabase("userdb.csv"); | ||||
| webconsole::WebConsole web; | ||||
| // Rfid
 | ||||
| @ -26,12 +26,10 @@ IPAddress local_IP(192, 168, 4, 22); | ||||
| IPAddress gateway(192, 168, 4, 9); | ||||
| IPAddress subnet(255, 255, 255, 0); | ||||
| 
 | ||||
| // User DB
 | ||||
| // Users users(persistence);
 | ||||
| 
 | ||||
| void setup() | ||||
| { | ||||
| 	Persistence::Configuration config = persistence.loadConfig(); | ||||
| 	config.loadConfig(); | ||||
| 	Serial.begin(115200); | ||||
| 	Serial.println("Starting System"); | ||||
| 	Serial.print("\t1. Network config ->"); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user