new dark design

This commit is contained in:
Bogdan Pilyugin 2023-03-27 16:12:24 +02:00
parent 8b0b5f76f4
commit dbde75ef32
11 changed files with 7234 additions and 755 deletions

4782
.project

File diff suppressed because it is too large Load Diff

View File

@ -1,197 +1,196 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="res/styles.css">
<link rel="stylesheet" href="res/iconsfont.css">
<script src="res/main.js"></script>
<script src="res/res.js"></script>
<title>~name~</title>
</head>
<body>
<script>PageSurround();</script>
<!--========== CONTENTS ==========-->
<main>
<section>
<div class="ml">
<div class="mlp ~hide_eth~">
<div class="mlpc">
<form name="eth" method="post">
<div class="mlhdr">ETHERNET</div>
<table class='cntr'>
<tr>
<script>PrintCheckBox('Включить ETHERNET','ethen','~ethen~','configIPBoxes()');
PrintCheckBox('Включить DHCP','dhcp','~ecbdh~','configIPBoxes()');
PrintIPInput('IP Станции:','ipa','~eip~');
PrintIPInput('Маска подсети:','mas','~emsk~');
PrintIPInput(' Адрес шлюза:','gte','~egate~');
PrintIPInput('DNS1:','dns1','~edns~');
PrintIPInput('DNS2:','dns2','~bkedns~');
PrintIPInput('DNS3:','dns3','~fledns~');
PrintMACInput('MAC:','mac','~emacadr~');
</script>
<tr>
<td></td>
</tr>
</table>
<br />
<script>PrintSaveFail('~status_fail~');
PrintSaveBtn('eth'); PrintApplyBtn('eth');</script>
</form>
</div>
</div>
<div class="mlp ~hide_lora~">
<div class="mlpc">
<div class="mlhdr">LORAWAN</div>
<form name="gprs" method="post">
<table class='cntr'>
<table>
<script>
PrintCheckBox('Включить LoRaWAN','lren','~lren~',null);
PrintHexInput('ID устройства:','lrdvid','~lrdvid~',16,16);
PrintHexInput('ID приложения:','lrapid','~lrapid~',16,16);
</script>
</table>
<table>
<tr>
<td align="center">Ключ приложения:</td>
</tr>
<tr>
<td align="center"><input type="text" size="40" name='lrapkey' value="~lrapkey~"
title="64 символа A-H,a-h,0-9" pattern="^[0-9a-hA-H]{32}$" /></td>
</tr>
</table>
<script>PrintSaveFail('~status_fail~');
PrintSaveBtn('lora'); PrintApplyBtn('lora');</script>
</form>
</div>
</div>
<div class="mlp ~hide_wifi~">
<div class="mlpc">
<form name="wifi" method="post">
<div class="mlhdr">WiFi</div>
<table class='cntr'>
<tr>
<td class='rl'>Включить WiFi</td>
<td><input type="checkbox" name="wifien" value="1" ~wfen~/></td>
</tr>
<tr>
<td class='rl'><button type="button" class='btn' name='upd' onclick="StartScan()">Scan
WiFi</button></td>
<td><progress id="pbar" class="scanbar" value="0" max="100"></progress></td>
</tr>
</table>
<p id="nets"></p>
<table class='cntr'>
<tr><td class='rl'>Режим WiFi:</td>
<td><select name="wfmode">
<option value="sta"~wfmode(1)~>Клиент (STA)</option>
<option value="ap"~wfmode(2)~>Точка доступа (AP)</option>
<option value="apsta"~wfmode(3)~>Точка+Клиент (AP+STA)</option>
</select></td>
</tr>
<script>PrintTextInput('Имя WiFi сети(AP):','wfiap','~ssidap~',3,31);
PrintTextInput('Ключ WiFi сети(AP):','wfpap','~wkeyap~',8,31);
PrintIPInput('IP адрес(AP):','ipaap','~ipap~');
PrintTextInput('Имя WiFi сети(CLN):','wfi','~ssid~',3,31);
PrintTextInput('Ключ WiFi сети(CLN):','wfp','~wkey~',8,31);
PrintCheckBox('Включить DHCP','dhcp','~cbdh~','configIPBoxes()');
PrintIPInput('IP адрес(CLN):','ipa','~ip~');
PrintIPInput('Маска подсети(CLN):','mas','~msk~');
PrintIPInput('Адрес шлюза(CLN):','gte','~gate~');
PrintIPInput('DNS1:','dns','~dns~');
PrintIPInput('DNS2:','dns2','~dns2~');
PrintIPInput('DNS3:','dns3','~dns3~');
PrintMACInput('MAC(CLN):','mac','~macadr~');
PrintMACInput('MAC(AP):','mac2','~apmacadr~');
</script>
<tr>
<td></td>
</tr>
</table>
<br />
<script>PrintSaveFail('~status_fail~');
PrintSaveBtn('wifi'); PrintApplyBtn('wifi');</script>
</form>
</div>
</div>
<div class="mlp ~hide_gprs~">
<div class="mlpc">
<div class="mlhdr">GPRS</div>
<form name="gprs" method="post">
<table class='cntr'>
<script>
PrintCheckBox('Включить GSM','gsmen','~gsmen~',null);
PrintLabel('Модуль:','~gsmmod~');
PrintLabel('Оператор:','~gsmopr~');
PrintLabel('IMEI:','~gimei~');
PrintLabel('IMSI:','~gimsi~');
PrintLabel('IP адрес:','~gsmip~');
PrintLabel('Маска подсети:','~gsmmsk~');
PrintLabel('Адрес шлюза:','~gsmgate~');
PrintLabel('DNS1:','~gsmdns~');
PrintLabel('DNS2:','~bkgsmdns~');
PrintLabel('DNS3:','~flgsmdns~');
PrintSep();
</script>
</table>
<script>PrintSaveFail('~status_fail~');PrintSaveBtn('gprs'); PrintApplyBtn('gprs');</script>
</form>
</div>
</div>
</div>
</section>
</main>
<script>
var array;
function Connect(n)
{
let key = prompt("Enter key for \""+array[n].ssid+"\" network:");
if(key != null){
var payload = "wfi="+array[n].ssid+"&wfp="+key+"&wifisave=prs";
PostData(payload, 'adapters.html',false ,false, false);
var str = document.location.toString();
var ref = str.substring(0,str.lastIndexOf('/adapters.html'))+"/reboot.html";
window.location=ref;}
}
function PrintNetworks(data)
{
document.getElementById("nets").innerHTML = data;
array = JSON.parse(data);
var i=0;
var out = "<table class='cntr'><tr><td>SSID</td><td>RSSI</td><td>CH</td></tr>";
for (i=0; i<array.length; ++i)
{
if(array[i].ssid != "")
{
var trimssid = ((array[i].ssid).length > 16)?((array[i].ssid).substring(0,13)+"..."):(array[i].ssid);
out += "<tr><td>"+trimssid+"</td><td style=\"color:#0099ff;\">"+array[i].rssi+"dBm</td><td>"+array[i].ch+"</td>";
out += "<td><button type=\"button\" class ='btn' onclick=\"Connect("+i+")\">Connect</button></tr>";
}
}
out +="</table>";
document.getElementById("nets").innerHTML = out;
}
async function StartScan(){
PostData('wifisc=prs', 'adapters.html',false ,false, false);
console.log('start wifi scan');
b = document.getElementById("pbar");
b.value = 0;
b.style.visibility = "visible";
for (i = 0; i<=100; ++i){
await new Promise(resolve => setTimeout(resolve, 50));
b.value = i;
}
b.style.visibility = "hidden";
console.log('stop wifi scan');
GetDataFile("/api/wifiscan.json", function(data){PrintNetworks(data);});
}
showMenu('header-toggle','navbar');
</script>
</body>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="res/styles.css">
<link rel="stylesheet" href="res/iconsfont.css">
<script src="res/main.js"></script>
<script src="res/res.js"></script>
<title>~name~</title>
</head>
<body>
<script>PageSurround();</script>
<!--========== CONTENTS ==========-->
<main>
<section>
<div class="ml">
<div class="mlp ~hide_eth~">
<div class="mlpc">
<form name="eth" method="post">
<div class="mlhdr">ETHERNET</div>
<table class='cntr'>
<tr>
<script>PrintSwitch('Включить ETHERNET','ethen','~ethen~','configIPBoxes()');
PrintSwitch('Включить DHCP','dhcp','~ecbdh~','configIPBoxes()');
PrintIPInput('IP Станции:','ipa','~eip~');
PrintIPInput('Маска подсети:','mas','~emsk~');
PrintIPInput(' Адрес шлюза:','gte','~egate~');
PrintIPInput('DNS1:','dns1','~edns~');
PrintIPInput('DNS2:','dns2','~bkedns~');
PrintIPInput('DNS3:','dns3','~fledns~');
PrintMACInput('MAC:','mac','~emacadr~');
</script>
<tr>
<td></td>
</tr>
</table>
<br />
<script>PrintSaveFail('~status_fail~');
PrintSaveBtn('eth'); PrintApplyBtn('eth');</script>
</form>
</div>
</div>
<div class="mlp ~hide_lora~">
<div class="mlpc">
<div class="mlhdr">LORAWAN</div>
<form name="gprs" method="post">
<table class='cntr'>
<table>
<script>
PrintSwitch('Включить LoRaWAN','lren','~lren~',null);
PrintHexInput('ID устройства:','lrdvid','~lrdvid~',16,16);
PrintHexInput('ID приложения:','lrapid','~lrapid~',16,16);
</script>
</table>
<table>
<tr>
<td align="center">Ключ приложения:</td>
</tr>
<tr>
<td align="center"><input type="text" size="40" name='lrapkey' value="~lrapkey~"
title="64 символа A-H,a-h,0-9" pattern="^[0-9a-hA-H]{32}$" /></td>
</tr>
</table>
<script>PrintSaveFail('~status_fail~');
PrintSaveBtn('lora'); PrintApplyBtn('lora');</script>
</form>
</div>
</div>
<div class="mlp ~hide_wifi~">
<div class="mlpc">
<form name="wifi" method="post">
<div class="mlhdr">WiFi</div>
<table class='cntr'>
<script>
PrintSwitch('Включить WiFi','wifien','~wfen~',null);
</script>
<tr>
<td class='rl'><button type="button" class='btn' name='upd' onclick="StartScan()">Scan
WiFi</button></td>
<td><progress id="pbar" class="scanbar" value="0" max="100"></progress></td>
</tr>
</table>
<p id="nets"></p>
<table class='cntr'>
<tr><td class='rl'>Режим WiFi:</td>
<td><select name="wfmode">
<option value="sta"~wfmode(1)~>Клиент (STA)</option>
<option value="ap"~wfmode(2)~>Точка доступа (AP)</option>
<option value="apsta"~wfmode(3)~>Точка+Клиент (AP+STA)</option>
</select></td>
</tr>
<script>PrintTextInput('Имя WiFi сети(AP):','wfiap','~ssidap~',3,31);
PrintTextInput('Ключ WiFi сети(AP):','wfpap','~wkeyap~',8,31);
PrintIPInput('IP адрес(AP):','ipaap','~ipap~');
PrintTextInput('Имя WiFi сети(CLN):','wfi','~ssid~',3,31);
PrintTextInput('Ключ WiFi сети(CLN):','wfp','~wkey~',8,31);
PrintSwitch('Включить DHCP','dhcp','~cbdh~','configIPBoxes()');
PrintIPInput('IP адрес(CLN):','ipa','~ip~');
PrintIPInput('Маска подсети(CLN):','mas','~msk~');
PrintIPInput('Адрес шлюза(CLN):','gte','~gate~');
PrintIPInput('DNS1:','dns','~dns~');
PrintIPInput('DNS2:','dns2','~dns2~');
PrintIPInput('DNS3:','dns3','~dns3~');
PrintMACInput('MAC(CLN):','mac','~macadr~');
PrintMACInput('MAC(AP):','mac2','~apmacadr~');
</script>
<tr>
<td></td>
</tr>
</table>
<br />
<script>PrintSaveFail('~status_fail~');
PrintSaveBtn('wifi'); PrintApplyBtn('wifi');</script>
</form>
</div>
</div>
<div class="mlp ~hide_gprs~">
<div class="mlpc">
<div class="mlhdr">GPRS</div>
<form name="gprs" method="post">
<table class='cntr'>
<script>
PrintSwitch('Включить GSM','gsmen','~gsmen~',null);
PrintLabel('Модуль:','~gsmmod~');
PrintLabel('Оператор:','~gsmopr~');
PrintLabel('IMEI:','~gimei~');
PrintLabel('IMSI:','~gimsi~');
PrintLabel('IP адрес:','~gsmip~');
PrintLabel('Маска подсети:','~gsmmsk~');
PrintLabel('Адрес шлюза:','~gsmgate~');
PrintLabel('DNS1:','~gsmdns~');
PrintLabel('DNS2:','~bkgsmdns~');
PrintLabel('DNS3:','~flgsmdns~');
PrintSep();
</script>
</table>
<script>PrintSaveFail('~status_fail~');PrintSaveBtn('gprs'); PrintApplyBtn('gprs');</script>
</form>
</div>
</div>
</div>
</section>
</main>
<script>
var array;
function Connect(n)
{
let key = prompt("Enter key for \""+array[n].ssid+"\" network:");
if(key != null){
var payload = "wfi="+array[n].ssid+"&wfp="+key+"&wifisave=prs";
PostData(payload, 'adapters.html',false ,false, false);
var str = document.location.toString();
var ref = str.substring(0,str.lastIndexOf('/adapters.html'))+"/reboot.html";
window.location=ref;}
}
function PrintNetworks(data)
{
document.getElementById("nets").innerHTML = data;
array = JSON.parse(data);
var i=0;
var out = "<table class='cntr'><tr><td>SSID</td><td>RSSI</td><td>CH</td></tr>";
for (i=0; i<array.length; ++i)
{
if(array[i].ssid != "")
{
var trimssid = ((array[i].ssid).length > 16)?((array[i].ssid).substring(0,13)+"..."):(array[i].ssid);
out += "<tr><td>"+trimssid+"</td><td style=\"color:#0099ff;\">"+array[i].rssi+"dBm</td><td>"+array[i].ch+"</td>";
out += "<td><button type=\"button\" class ='btn' onclick=\"Connect("+i+")\">Connect</button></tr>";
}
}
out +="</table>";
document.getElementById("nets").innerHTML = out;
}
async function StartScan(){
PostData('wifisc=prs', 'adapters.html',false ,false, false);
console.log('start wifi scan');
b = document.getElementById("pbar");
b.value = 0;
b.style.visibility = "visible";
for (i = 0; i<=100; ++i){
await new Promise(resolve => setTimeout(resolve, 50));
b.value = i;
}
b.style.visibility = "hidden";
console.log('stop wifi scan');
GetDataFile("/api/wifiscan.json", function(data){PrintNetworks(data);});
}
showMenu('header-toggle','navbar');
</script>
</body>
</html>

View File

@ -1,17 +1,18 @@
:root {
/*========== Colors ==========*/
--first-color: #FFFFFF;
--first-color-light: #00ccee;
--title-color: #006699;
--header-color: #EEEEEE;
--text-color: #404040;
--text-color-light: #006699;
--body-color: #FFFFFF;
--container-color: #00ccee;
--first-color: #152128;
--first-color-light: #152128;
--title-color: #9FA3A6;
--header-color: #185273;
--text-color: #9FA3A6;
--text-color-light: #9FA3A6;
--body-color: #0E1A21;
--container-color: #0E1A21;
--navy-color: #185273;
/*========== Font and typography ==========*/
--body-font: 'Consolas', monospace;
--large-font-size: 1.4rem;
--large-font-size: 1.2rem;
--normal-font-size: 0.9rem;
--small-font-size: .9rem;
--smaller-font-size: .8rem;
@ -22,3 +23,137 @@
}
.pwrbox{width:80%; height:auto; padding:5px; margin:10px auto; box-sizing:border-box;}
.pwrbox td {font: .9rem consolas, monospace; width:30%; padding:0;margin:0;}
.container{margin: 10px;
display: flex;
flex-wrap:wrap;}
div label input {margin-right: 100px;}
.cat{
margin: 4px;
background-color: var(--first-color);
border-radius: 5px;
border: 1px solid rgba(255, 255, 255, 0.4);
overflow: hidden;
float: left;
}
.cat label {float: left; line-height: 2.6em; width: 2.6em; height: 2.6em;}
.cat label span {text-align: center; padding: 0px 0px; display: block;}
.cat label input { position: absolute; display: none;color: var(--text-color) !important;}
.cat label input + span{color: var(--text-color);}
.cat input:checked + span {
color: var(--text-color);
text-shadow: 0 0 6px rgba(0, 0, 0, 0.8);
}
input:checked + span{background-color: var(--navy-color);}
.channel{ widht:100%;
display: flex;
flex-wrap:no-wrap;
margin:10px;
}
.chnam{
display: flex;
align-items: center;
}
.rngval {
-webkit-appearance: none;
margin: auto 10px;
width: 80%;
height: 5px;
border: none;
background: var(--navy-color);
outline: none;
opacity: 0.7;
-webkit-transition: .2s;
transition: opacity .2s;
}
.rngval::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 25px;
height: 25px;
border-radius: 50%;
background: var(--text-color);
cursor: pointer;
}
.rngval::-moz-range-thumb {
width: 25px;
height: 25px;
border-radius: 50%;
background: var(--text-color);
cursor: pointer;
}
.inpval{
display: flex;
align-items: center;
}
.switch {
position: relative;
display: inline-block;
width: 42px;
height: 24px;
margin: 10px 20px;
}
.switch input {
opacity: 0;
width: 0;
height: 0;
}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: var(--text-color);
-webkit-transition: .4s;
transition: .4s;
}
.slider:before {
position: absolute;
content: "";
height: 18px;
width: 18px;
left: 3px;
bottom: 3px;
background-color: #CCC;
-webkit-transition: .4s;
transition: .4s;
}
input:checked + .slider {
background-color: var(--navy-color);
}
input:focus + .slider {
box-shadow: 0 0 1px var(--navy-color);
}
input:checked + .slider:before {
-webkit-transform: translateX(18px);
-ms-transform: translateX(18px);
transform: translateX(18px);
}
/* Rounded sliders */
.slider.round {
border-radius: 24px;
}
.slider.round:before {
border-radius: 50%;
}

View File

@ -141,4 +141,3 @@ const showMenu = (headerToggle, navbarId) =>{
})
}
}

View File

@ -1,392 +1,396 @@
/*========== VARIABLES CSS ==========*/
@import "./appstyles.css";
:root {
--header-height: 50px;
--nav-width: 200px;
/*========== z index ==========*/
--z-fixed: 100;
}
@media screen and (min-width: 1024px) {
:root {
--normal-font-size: 1.0rem;
--small-font-size: .9rem;
--smaller-font-size: .8rem;
}
}
/*========== BASE ==========*/
*, ::before, ::after {
box-sizing: border-box;
}
body {
margin: var(--header-height) 0 0 0;
padding: 0 0 0;
font-family: var(--body-font);
font-size: var(--normal-font-size);
background-color: var(--body-color);
color: var(--text-color);
}
h3 {
margin: 0;
}
a {
text-decoration: none;
}
img {
max-width: 100%;
height: auto;
}
/*========== HEADER ==========*/
.header {
position: fixed;
top: 0;
left: 0;
width: 100%;
background-color: var(--header-color);
box-shadow: 0 1px 0 rgba(22, 8, 43, 0.1);
padding: 0 1rem;
z-index: var(--z-fixed);
}
.header__container {
display: flex;
align-items: center;
height: var(--header-height);
justify-content: space-between;
}
.header__img {
width: 35px;
height: 35px;
border-radius: 5%;
}
.header__logo {
color: var(--title-color);
font-weight: var(--font-medium);
font-size: var(--large-font-size);
margin-left: 150px;
display: none;
}
.header__icon,
.header__toggle {
font-size: 1.2rem;
}
.header__toggle {
color: var(--title-color);
cursor: pointer;
}
/*========== NAV ==========*/
.nav {
position: fixed;
top: 0;
left: -100%;
height: 100vh;
padding: 1rem 1rem 0;
background-color: var(--container-color);
box-shadow: 1px 0 0 rgba(22, 8, 43, 0.1);
z-index: var(--z-fixed);
transition: .4s;
}
.nav__container {
height: 100%;
display: flex;
flex-direction: column;
justify-content: space-between;
padding-bottom: 3rem;
overflow: auto;
scrollbar-width: none; /* For mozilla */
}
/* For Google Chrome and others */
.nav__container::-webkit-scrollbar {
display: none;
}
.nav__logo {
font-weight: var(--font-semi-bold);
margin-bottom: 2.5rem;
}
.nav__list,
.nav__items {
display: grid;
}
.nav__list {
row-gap: 2.5rem;
}
.nav__items {
row-gap: 1.5rem;
}
.nav__subtitle {
font-size: var(--normal-font-size);
text-transform: uppercase;
letter-spacing: .1rem;
color: var(--text-color-light);
}
.nav__link {
display: flex;
align-items: center;
color: var(--text-color);
}
.nav__link:hover {
color: var(--first-color);
}
.nav__icon {
font-size: 1.2rem;
margin-right: .5rem;
}
.nav__name {
font-size: var(--small-font-size);
font-weight: var(--font-medium);
white-space: nowrap;
}
.nav__logout {
margin-top: 5rem;
}
/* Dropdown */
.nav__dropdown {
overflow: hidden;
max-height: 21px;
transition: .4s ease-in-out;
}
.nav__dropdown-collapse {
background-color: var(--first-color-light);
border-radius: .5rem;
margin-top: 1rem;
}
.nav__dropdown-content {
display: grid;
row-gap: .5rem;
padding: .75rem 2.5rem .75rem 2.5rem;
}
.nav__dropdown-item {
font-size: var(--small-font-size);
font-weight: var(--font-medium);
color: var(--text-color);
margin: 3px 3px;
}
.nav__dropdown-item:hover {
color: var(--first-color);
}
.nav__dropdown-icon {
margin-left: auto;
transition: .4s;
}
/* Show dropdown collapse */
.nav__dropdown:hover {
max-height: 100rem;
}
/* Rotate icon arrow */
.nav__dropdown:hover .nav__dropdown-icon {
transform: rotate(180deg);
}
/*===== Show menu =====*/
.show-menu {
left: 0;
}
/*===== Active link =====*/
.active {
color: var(--first-color);
}
/* ========== MEDIA QUERIES ==========*/
/* For small devices reduce search*/
@media screen and (max-width: 320px) {
.header__search {
width: 70%;
}
}
@media screen and (min-width: 768px) {
body {
padding: 0 0 0 4rem;
}
.header {
padding: 0 3rem 0 4rem;
}
.header__container {
height: var(--header-height);
}
.header__search {
width: 300px;
padding: .55rem .75rem;
}
.header__toggle {
display: none;
}
.header__logo {
display: block;
}
.header__img {
width: 40px;
height: 40px;
order: 1;
}
.nav {
left: 0;
padding: 1.2rem 1.2rem 0;
width: 4.0rem; /* Reduced navbar */
}
.nav__items {
row-gap: 2.0rem;
}
.nav__icon {
font-size: 1.0rem;
}
/* Element opacity */
.nav__logo-name,
.nav__name,
.nav__subtitle,
.nav__dropdown-icon {
opacity: 0;
transition: .3s;
}
/* Navbar expanded */
.nav:hover {
width: var(--nav-width);
}
/* Visible elements */
.nav:hover .nav__logo-name {
opacity: 1;
}
.nav:hover .nav__subtitle {
opacity: 1;
}
.nav:hover .nav__name {
opacity: 1;
}
.nav:hover .nav__dropdown-icon {
opacity: 1;
}
}
.rl{text-align:right;}
input, select, .btn, .lab, textarea {
font:.85rem consolas,monospace;
padding-left:3px;
border:solid 1px #CCCCCC;
border-radius: 5px;
height:2.0rem;
margin: 3px 3px;
vertical-align: middle;
}
.btn{min-width:100px;}
.btn:active{background-color: #CCCCCC;}
.btn:hover {border:solid 1px #999999;}
.lab {border: none;}
textarea {
height: 4.0rem;
margin:auto;
vertical-align: top;
min-width: 350px;
}
.stg td{width:auto;padding:1px;margin:0}
.stg input {height:25px}
input[type="radio"] { margin-top: -1px; vertical-align: middle;}
.stg table{margin: 5px auto}
.dot {height: 30px;
width: 30px;
background-color: #d0d0d0;
border-radius: 40%;
display: inline-block;
margin: 7px 20px}
.cntr {
margin:auto;
font: .85rem consolas, monospace;}
.mlhdr {
font:16px consolas,monospace;
font-weight:bold;
color: var(--title-color);
margin: auto;
}
.mlp {
break-inside: avoid;
}
.mlpc {
margin: 0 0 10px 10px;
padding: 10px;
border:solid 1px #CCCCCC;
}
.ml {
column-count: 1;
column-gap: 0;
padding: 10px 10px 0 0;
}
@media (min-width: 900px) {
.ml {
column-count: 2;
}
}
@media (min-width: 1400px) {
.ml {
column-count: 3;
}
}
.hide{
display:none;
}
.scanbar {
visibility: hidden;
height: 20px;
margin: 0 10px;
}
.clerr {
color:#b00000;
font-weight:bold;
}
.clwarn {
color:#b0b000;
font-weight:bold;
}
.clok {
color:#00b000;
font-weight:bold;
}
/*========== VARIABLES CSS ==========*/
@import "./appstyles.css";
:root {
--header-height: 50px;
--nav-width: 200px;
/*========== z index ==========*/
--z-fixed: 100;
}
@media screen and (min-width: 1024px) {
:root {
--normal-font-size: 1.0rem;
--small-font-size: .9rem;
--smaller-font-size: .8rem;
}
}
/*========== BASE ==========*/
*, ::before, ::after {
box-sizing: border-box;
}
body {
margin: var(--header-height) 0 0 0;
padding: 0 0 0;
font-family: var(--body-font);
font-size: var(--normal-font-size);
background-color: var(--body-color);
color: var(--text-color);
}
h3 {
margin: 0;
}
a {
text-decoration: none;
}
img {
max-width: 100%;
height: auto;
}
/*========== HEADER ==========*/
.header {
position: fixed;
top: 0;
left: 0;
width: 100%;
background-color: var(--header-color);
box-shadow: 0 1px 0 rgba(22, 8, 43, 0.1);
padding: 0 1rem;
z-index: var(--z-fixed);
}
.header__container {
display: flex;
align-items: center;
height: var(--header-height);
justify-content: space-between;
}
.header__img {
width: 35px;
height: 35px;
border-radius: 5%;
}
.header__logo {
color: var(--title-color);
font-weight: var(--font-medium);
font-size: var(--large-font-size);
margin-left: 50px;
/*display: none;*/
}
.header__icon,
.header__toggle {
font-size: 1.2rem;
}
.header__toggle {
color: var(--title-color);
cursor: pointer;
}
/*========== NAV ==========*/
.nav {
position: fixed;
top: 0;
left: -100%;
height: 100vh;
padding: 1rem 1rem 0;
background-color: var(--first-color);
box-shadow: 1px 0 0 rgba(22, 8, 43, 0.1);
z-index: var(--z-fixed);
transition: .4s;
}
.nav__container {
height: 100%;
display: flex;
flex-direction: column;
justify-content: space-between;
padding-bottom: 3rem;
overflow: auto;
scrollbar-width: none; /* For mozilla */
}
/* For Google Chrome and others */
.nav__container::-webkit-scrollbar {
display: none;
}
.nav__logo {
font-weight: var(--font-semi-bold);
margin-bottom: 2.5rem;
}
.nav__list,
.nav__items {
display: grid;
}
.nav__list {
row-gap: 2.5rem;
}
.nav__items {
row-gap: 1.5rem;
}
.nav__subtitle {
font-size: var(--normal-font-size);
text-transform: uppercase;
letter-spacing: .1rem;
color: var(--text-color-light);
}
.nav__link {
display: flex;
align-items: center;
color: var(--text-color);
}
.nav__link:hover {
color: var(--navy-color);
}
.nav__icon {
font-size: 1.2rem;
margin-right: .5rem;
}
.nav__name {
font-size: var(--small-font-size);
font-weight: var(--font-medium);
white-space: nowrap;
}
.nav__logout {
margin-top: 5rem;
}
/* Dropdown */
.nav__dropdown {
overflow: hidden;
max-height: 21px;
transition: .4s ease-in-out;
}
.nav__dropdown-collapse {
background-color: var(--first-color-light);
border-radius: .5rem;
margin-top: 1rem;
}
.nav__dropdown-content {
display: grid;
row-gap: .5rem;
padding: .75rem 2.5rem .75rem 2.5rem;
}
.nav__dropdown-item {
font-size: var(--small-font-size);
font-weight: var(--font-medium);
color: var(--text-color);
margin: 3px 3px;
}
.nav__dropdown-item:hover {
color: var(--navy-color);
}
.nav__dropdown-icon {
margin-left: auto;
transition: .4s;
}
/* Show dropdown collapse */
.nav__dropdown:hover {
max-height: 100rem;
}
/* Rotate icon arrow */
.nav__dropdown:hover .nav__dropdown-icon {
transform: rotate(180deg);
}
/*===== Show menu =====*/
.show-menu {
left: 0;
}
/*===== Active link =====*/
.active {
color: var(--navy-color);
}
/* ========== MEDIA QUERIES ==========*/
/* For small devices reduce search*/
@media screen and (max-width: 320px) {
.header__search {
width: 70%;
}
}
@media screen and (min-width: 768px) {
body {
padding: 0 0 0 4rem;
}
.header {
padding: 0 3rem 0 4rem;
}
.header__container {
height: var(--header-height);
}
.header__search {
width: 300px;
padding: .55rem .75rem;
}
.header__toggle {
display: none;
}
.header__logo {
display: block;
}
.header__img {
width: 40px;
height: 40px;
order: 1;
}
.nav {
left: 0;
padding: 1.2rem 1.2rem 0;
width: 4.0rem; /* Reduced navbar */
}
.nav__items {
row-gap: 2.0rem;
}
.nav__icon {
font-size: 1.0rem;
}
/* Element opacity */
.nav__logo-name,
.nav__name,
.nav__subtitle,
.nav__dropdown-icon {
opacity: 0;
transition: .3s;
}
/* Navbar expanded */
.nav:hover {
width: var(--nav-width);
}
/* Visible elements */
.nav:hover .nav__logo-name {
opacity: 1;
}
.nav:hover .nav__subtitle {
opacity: 1;
}
.nav:hover .nav__name {
opacity: 1;
}
.nav:hover .nav__dropdown-icon {
opacity: 1;
}
}
.rl{text-align:right;}
input, select, .btn, .lab, textarea {
font:.85rem consolas,monospace;
padding-left:3px;
background-color:var(--first-color);
color:var(--text-color);
border:1px solid rgba(255, 255, 255, 0.4);
border-radius: 5px;
height:2.0rem;
margin: 15px 3px;
vertical-align: middle;
}
.btn{min-width:100px; color:var(--text-color);}
.btn:active{background-color: var(--navy-color);}
.btn:hover {border:1px solid rgba(255, 255, 255, 0.4);}
.lab {border: none;}
textarea {
height: 4.0rem;
margin:auto;
vertical-align: top;
min-width: 350px;
}
.stg td{width:auto;padding:1px;margin:0}
.stg input {height:25px}
input[type="radio"] { margin-top: -1px; vertical-align: middle;}
.stg table{margin: 5px auto}
.dot {height: 30px;
width: 30px;
background-color: #d0d0d0;
border-radius: 40%;
display: inline-block;
margin: 7px 20px}
.cntr {
margin:auto;
font: .85rem consolas, monospace;}
.mlhdr {
font:16px consolas,monospace;
font-weight:bold;
color: var(--title-color);
margin: auto;
}
.mlp {
break-inside: avoid;
}
.mlpc {
margin: 0 0 10px 10px;
padding: 10px;
background-color:var(--first-color);
}
.ml {
column-count: 1;
column-gap: 0;
padding: 10px 10px 0 0;
}
@media (min-width: 900px) {
.ml {
column-count: 2;
}
}
@media (min-width: 1400px) {
.ml {
column-count: 3;
}
}
.hide{
display:none;
}
.scanbar {
visibility: hidden;
height: 20px;
margin: 0 10px;
}
.clerr {
color:#b00000;
font-weight:bold;
}
.clwarn {
color:#b0b000;
font-weight:bold;
}
.clok {
color:#00b000;
font-weight:bold;
}

View File

@ -1,91 +1,92 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="res/styles.css">
<link rel="stylesheet" href="res/iconsfont.css">
<script src="res/main.js"></script>
<script src="res/res.js"></script>
<title>~name~</title>
</head>
<body>
<script>PageSurround();</script>
<!--========== CONTENTS ==========-->
<main>
<section>
<div class="ml">
<div class="mlp">
<div class="mlpc">
<form name="conf1" method="post">
<div class="mlhdr">SNTP</div>
<table class='cntr'>
<tr><td class='rl'>Включить SNTP клиент</td><td><input type="checkbox" name="sntpen" value="1" ~sntpen~></td></tr>
<tr><td class='rl'>Адрес SNTP сервера:</td><td><input type="text" required size="20" name='tsr' value="~tmsrv~" title="3-32 символов A-Z,a-z,0-9,." pattern="^[0-9a-zA-Z\.]{3,32}$"/></td></tr><tr><td></td></tr><tr><td></td></tr>
</table>
<table class='cntr'>
<tr><td width=90% align='center'>
Установить текущее время вручную:<br/>
<input type='datetime-local' id="curdt">
<button id='sendt' type='button' class ='btn sbtn'>Передать</button><br/><br/><br/>
</td></tr>
</table>
<script>PrintSaveFail('~status_fail~');
PrintSaveBtn('sntp'); PrintApplyBtn('sntp')</script>
</form>
</div>
</div>
<div class="mlp ~hide_mqtt1~">
<div class="mlpc">
<form name="conf2" method="post">
<div class="mlhdr">MQTT1</div>
<table class='cntr'>
<script>PrintCheckBox('Enable MQTT 1','mqen1','~mqen1~',null);
PrintTextInput('MQTT broker URL','mqurl1','~mqurl1~',3,31);
PrintInt('MQTT broker port','mqport1','~mqport1~',1000,65534);
PrintTextInput('Global system name','mqsys1','~mqsys1~',3,31);
PrintTextInput('Group name','mqgrp1','~mqgrp1~',3,31);
PrintTextInput('Device ID prefix','mqid1','~mqid1~',3,31);
PrintTextInput('Login','mqname1','~mqname1~',3,31);
PrintTextInput('Password','mqpass1','~mqpass1~',3,31);
</script></table>
<script>PrintSaveFail('~status_fail~');
PrintSaveBtn('mqtt1'); PrintApplyBtn('mqtt1')</script>
</form>
</div>
</div>
<div class="mlp ~hide_mqtt2~">
<div class="mlpc">
<form name="conf3" method="post">
<div class="mlhdr">MQTT2</div>
<table class='cntr'>
<script>
PrintCheckBox('Enable MQTT 2','mqen2','~mqen2~',null);
PrintTextInput('MQTT broker URL','mqurl2','~mqurl2~',3,31);
PrintInt('MQTT broker port','mqport2','~mqport2~',1000,65534);
PrintTextInput('Global system name','mqsys2','~mqsys2~',3,31);
PrintTextInput('Group name','mqgrp2','~mqgrp2~',3,31);
PrintTextInput('Device ID prefix','mqid2','~mqid2~',3,31);
PrintTextInput('Login','mqname2','~mqname2~',3,31);
PrintTextInput('Password','mqpass2','~mqpass2~',3,31);</script>
</table>
<script>PrintSaveFail('~status_fail~');
PrintSaveBtn('mqtt2'); PrintApplyBtn('mqtt2')</script>
</form>
</div>
</div>
</div>
</section>
</main>
<script>
showMenu('header-toggle','navbar');
</script>
</body>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="res/styles.css">
<link rel="stylesheet" href="res/iconsfont.css">
<script src="res/main.js"></script>
<script src="res/res.js"></script>
<title>~name~</title>
</head>
<body>
<script>PageSurround();</script>
<!--========== CONTENTS ==========-->
<main>
<section>
<div class="ml">
<div class="mlp">
<div class="mlpc">
<form name="conf1" method="post">
<div class="mlhdr">SNTP</div>
<table class='cntr'>
<script>PrintSwitch('Включить SNTP клиент','sntpen','~sntpen~',null);
PrintTextInput('Адрес SNTP сервера:','tsr','~tmsrv~',3,31);
</script>
</table>
<table class='cntr'>
<tr><td width=90% align='center'>
Установить текущее время вручную:<br/>
<input type='datetime-local' id="curdt">
<button id='sendt' type='button' class ='btn sbtn'>Передать</button><br/><br/><br/>
</td></tr>
</table>
<script>PrintSaveFail('~status_fail~');
PrintSaveBtn('sntp'); PrintApplyBtn('sntp')</script>
</form>
</div>
</div>
<div class="mlp ~hide_mqtt1~">
<div class="mlpc">
<form name="conf2" method="post">
<div class="mlhdr">MQTT1</div>
<table class='cntr'>
<script>PrintSwitch('Enable MQTT 1','mqen1','~mqen1~',null);
PrintTextInput('MQTT broker URL','mqurl1','~mqurl1~',3,31);
PrintInt('MQTT broker port','mqport1','~mqport1~',1000,65534);
PrintTextInput('Global system name','mqsys1','~mqsys1~',3,31);
PrintTextInput('Group name','mqgrp1','~mqgrp1~',3,31);
PrintTextInput('Device ID prefix','mqid1','~mqid1~',3,31);
PrintTextInput('Login','mqname1','~mqname1~',3,31);
PrintTextInput('Password','mqpass1','~mqpass1~',3,31);
</script></table>
<script>PrintSaveFail('~status_fail~');
PrintSaveBtn('mqtt1'); PrintApplyBtn('mqtt1')</script>
</form>
</div>
</div>
<div class="mlp ~hide_mqtt2~">
<div class="mlpc">
<form name="conf3" method="post">
<div class="mlhdr">MQTT2</div>
<table class='cntr'>
<script>
PrintSwitch('Enable MQTT 2','mqen2','~mqen2~',null);
PrintTextInput('MQTT broker URL','mqurl2','~mqurl2~',3,31);
PrintInt('MQTT broker port','mqport2','~mqport2~',1000,65534);
PrintTextInput('Global system name','mqsys2','~mqsys2~',3,31);
PrintTextInput('Group name','mqgrp2','~mqgrp2~',3,31);
PrintTextInput('Device ID prefix','mqid2','~mqid2~',3,31);
PrintTextInput('Login','mqname2','~mqname2~',3,31);
PrintTextInput('Password','mqpass2','~mqpass2~',3,31);</script>
</table>
<script>PrintSaveFail('~status_fail~');
PrintSaveBtn('mqtt2'); PrintApplyBtn('mqtt2')</script>
</form>
</div>
</div>
</div>
</section>
</main>
<script>
showMenu('header-toggle','navbar');
</script>
</body>
</html>

View File

@ -41,8 +41,8 @@
<form name="syst" method="post">
<div class="mlhdr">FIRMWARE UPDATE</div>
<table class='cntr'><script>
PrintCheckBox('Reset config on OTA update','otarst','~otarst~',null);
PrintCheckBox('Enable OTA auto update','ota','~ota~',null);
PrintSwitch('Reset config on OTA update','otarst','~otarst~',null);
PrintSwitch('Enable OTA auto update','ota','~ota~',null);
PrintInt('Auto update check period','otaint','~otaint~',1,65534);
</script></table>
<table class='cntr'><tr><td align="center">Update firmware URL:</td></tr></table>
@ -78,26 +78,6 @@
</form>
</div>
</div>
<div class="mlp">
<div class="mlpc">
<div class="mlhdr">DEBUG</div>
<div style='margin:auto;text-align:center'>
</br>
<button type="button" class ='btn' name='cmd1' onclick="cmd(1)">F1</button>
<button type="button" class ='btn' name='cmd2' onclick="cmd(2)">F2</button></br></br>
<button type="button" class ='btn' name='cmd3' onclick="cmd(3)">F3</button>
<button type="button" class ='btn' name='cmd4' onclick="cmd(4)">F4</button></br></br>
<button type="button" class ='btn' name='cmd5' onclick="cmd(5)">F5</button>
<button type="button" class ='btn' name='cmd6' onclick="cmd(6)">F6</button></br></br>
<button type="button" class ='btn' name='cmd7' onclick="cmd(7)">F7</button>
<button type="button" class ='btn' name='cmd8' onclick="cmd(8)">F8</button></br></br>
<button type="button" class ='btn' name='cmd9' onclick="cmd(9)">F9</button>
<button type="button" class ='btn' name='cmd10' onclick="cmd(10)">F10</button></br></br>
</div>
</div>
</div>
</div>
</section>
</main>

@ -1 +1 @@
Subproject commit e4d1a8c953c516a41d550716bc7e267d2e571c63
Subproject commit ebf050673c3133dec5db7eab209a2acbdd5aa99f

View File

@ -1,15 +1,15 @@
dependencies:
espressif/esp_modem:
component_hash: b11de8ecab6860719ab236cf353967c4f31d7f8e5e82dc6c224efeabbde00fcd
source:
service_url: https://api.components.espressif.com/
type: service
version: 0.1.19
idf:
component_hash: null
source:
type: idf
version: 4.4.4
manifest_hash: a5ee8c8f8a6f79ac6d05aa7263c49cb7cbe81352a85c16ac46f5c93bc701fd53
target: esp32
version: 1.0.0
dependencies:
espressif/esp_modem:
component_hash: b11de8ecab6860719ab236cf353967c4f31d7f8e5e82dc6c224efeabbde00fcd
source:
service_url: https://api.components.espressif.com/
type: service
version: 0.1.19
idf:
component_hash: null
source:
type: idf
version: 4.4.4
manifest_hash: a5ee8c8f8a6f79ac6d05aa7263c49cb7cbe81352a85c16ac46f5c93bc701fd53
target: esp32
version: 1.0.0

1562
sdkconfig Normal file

File diff suppressed because it is too large Load Diff

View File

@ -32,7 +32,7 @@ CONFIG_APP_COMPILE_TIME_DATE=y
# CONFIG_APP_EXCLUDE_PROJECT_VER_VAR is not set
# CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR is not set
CONFIG_APP_PROJECT_VER_FROM_CONFIG=y
CONFIG_APP_PROJECT_VER="0.0.0.12"
CONFIG_APP_PROJECT_VER="1"
CONFIG_APP_RETRIEVE_LEN_ELF_SHA=16
# end of Application manager
@ -177,13 +177,26 @@ CONFIG_APPTRACE_DEST_NONE=y
CONFIG_APPTRACE_LOCK_ENABLE=y
# end of Application Level Tracing
#
# ESP-ASIO
#
# CONFIG_ASIO_SSL_SUPPORT is not set
# end of ESP-ASIO
#
# Bluetooth
#
# CONFIG_BT_ENABLED is not set
# end of Bluetooth
#
# CoAP Configuration
#
CONFIG_COAP_MBEDTLS_PSK=y
# CONFIG_COAP_MBEDTLS_PKI is not set
# CONFIG_COAP_MBEDTLS_DEBUG is not set
CONFIG_COAP_LOG_DEFAULT_LEVEL=0
# end of CoAP Configuration
#
# Driver configurations
@ -348,7 +361,7 @@ CONFIG_ETH_DMA_RX_BUFFER_NUM=10
CONFIG_ETH_DMA_TX_BUFFER_NUM=10
CONFIG_ETH_USE_SPI_ETHERNET=y
# CONFIG_ETH_SPI_ETHERNET_DM9051 is not set
CONFIG_ETH_SPI_ETHERNET_W5500=y
# CONFIG_ETH_SPI_ETHERNET_W5500 is not set
# CONFIG_ETH_SPI_ETHERNET_KSZ8851SNL is not set
# CONFIG_ETH_USE_OPENETH is not set
# end of Ethernet
@ -416,10 +429,11 @@ CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES=4
#
# Sleep Config
#
CONFIG_ESP_SLEEP_POWER_DOWN_FLASH=y
# CONFIG_ESP_SLEEP_POWER_DOWN_FLASH is not set
CONFIG_ESP_SLEEP_RTC_BUS_ISO_WORKAROUND=y
# CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND is not set
# CONFIG_ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND is not set
CONFIG_ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND=y
# CONFIG_ESP_SLEEP_MSPI_NEED_ALL_IO_PU is not set
# end of Sleep Config
#
@ -753,7 +767,9 @@ CONFIG_LWIP_SO_REUSE_RXTOALL=y
# CONFIG_LWIP_SO_RCVBUF is not set
# CONFIG_LWIP_NETBUF_RECVINFO is not set
CONFIG_LWIP_IP4_FRAG=y
CONFIG_LWIP_IP6_FRAG=y
# CONFIG_LWIP_IP4_REASSEMBLY is not set
# CONFIG_LWIP_IP6_REASSEMBLY is not set
# CONFIG_LWIP_IP_FORWARD is not set
# CONFIG_LWIP_STATS is not set
# CONFIG_LWIP_ETHARP_TRUST_IP_MAC is not set
@ -775,7 +791,10 @@ CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8
# end of DHCP server
# CONFIG_LWIP_AUTOIP is not set
# CONFIG_LWIP_IPV6 is not set
CONFIG_LWIP_IPV6=y
# CONFIG_LWIP_IPV6_AUTOCONFIG is not set
CONFIG_LWIP_IPV6_NUM_ADDRESSES=3
# CONFIG_LWIP_IPV6_FORWARD is not set
# CONFIG_LWIP_NETIF_STATUS_CALLBACK is not set
CONFIG_LWIP_NETIF_LOOPBACK=y
CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8
@ -824,14 +843,9 @@ CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y
# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set
# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU1 is not set
CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF
CONFIG_LWIP_PPP_SUPPORT=y
# CONFIG_LWIP_PPP_NOTIFY_PHASE_SUPPORT is not set
# CONFIG_LWIP_PPP_PAP_SUPPORT is not set
CONFIG_LWIP_PPP_CHAP_SUPPORT=y
# CONFIG_LWIP_PPP_MSCHAP_SUPPORT is not set
# CONFIG_LWIP_PPP_MPPE_SUPPORT is not set
# CONFIG_LWIP_ENABLE_LCP_ECHO is not set
# CONFIG_LWIP_PPP_DEBUG_ON is not set
# CONFIG_LWIP_PPP_SUPPORT is not set
CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3
CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5
# CONFIG_LWIP_SLIP_SUPPORT is not set
#
@ -864,6 +878,12 @@ CONFIG_LWIP_ESP_LWIP_ASSERT=y
# CONFIG_LWIP_HOOK_TCP_ISN_NONE is not set
CONFIG_LWIP_HOOK_TCP_ISN_DEFAULT=y
# CONFIG_LWIP_HOOK_TCP_ISN_CUSTOM is not set
CONFIG_LWIP_HOOK_IP6_ROUTE_NONE=y
# CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT is not set
# CONFIG_LWIP_HOOK_IP6_ROUTE_CUSTOM is not set
CONFIG_LWIP_HOOK_ND6_GET_GW_NONE=y
# CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT is not set
# CONFIG_LWIP_HOOK_ND6_GET_GW_CUSTOM is not set
CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y
# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT is not set
# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM is not set
@ -1203,7 +1223,7 @@ CONFIG_WL_SECTOR_SIZE=4096
#
CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16
CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30
CONFIG_WIFI_PROV_BLE_FORCE_ENCRYPTION=y
# CONFIG_WIFI_PROV_BLE_FORCE_ENCRYPTION is not set
# end of Wi-Fi Provisioning Manager
#
@ -1254,12 +1274,14 @@ CONFIG_TTN_PROVISION_UART_NUM=0
#
# WebGUIApp
#
CONFIG_GPIO_RANGE_MIN=0
CONFIG_GPIO_RANGE_MAX=36
CONFIG_DEVICE_MODEL_NAME="DEVICE MODEL NAME"
CONFIG_WEBGUIAPP_HOSTNAME="DEVICE_HOSTNAME"
CONFIG_WEBGUIAPP_USERNAME="user"
CONFIG_WEBGUIAPP_USERPASS="password"
CONFIG_MAIN_FUNCTIONAL_BUTTON_GPIO=15
# CONFIG_DEBUG_MODE_ENABLE is not set
CONFIG_DEBUG_MODE_ENABLE=y
# CONFIG_RESET_MODE_ENABLE is not set
#
@ -1285,9 +1307,9 @@ CONFIG_WEBGUIAPP_SNTP_TIMEZONE=2
#
CONFIG_WEBGUIAPP_SPI_ENABLE=y
CONFIG_SPI_HOST=1
CONFIG_SPI_SCLK_GPIO=19
CONFIG_SPI_MOSI_GPIO=5
CONFIG_SPI_MISO_GPIO=18
CONFIG_SPI_SCLK_GPIO=18
CONFIG_SPI_MOSI_GPIO=23
CONFIG_SPI_MISO_GPIO=19
# end of SPI settings
#
@ -1338,12 +1360,13 @@ CONFIG_WEBGUIAPP_WIFI_GATEWAY_STA="192.168.150.1"
# MQTT settings
#
CONFIG_WEBGUIAPP_MQTT_ENABLE=y
CONFIG_WEBGUIAPP_MQTT_CLIENTS_NUM=1
CONFIG_WEBGUIAPP_MQTT_CLIENTS_NUM=2
CONFIG_WEBGUIAPP_MQTT_ON=y
CONFIG_WEBGUIAPP_MQTT_MAX_TOPIC_LENGTH=64
CONFIG_WEBGUIAPP_MQTT_MAX_TOPIC_LENGTH=128
CONFIG_WEBGUIAPP_MQTT_SERVER_URL="myfirstmqttserver.com"
CONFIG_WEBGUIAPP_MQTT_SERVER_PORT=1883
CONFIG_WEBGUIAPP_MQTT_CLIENT_ID_1="DEVID1"
CONFIG_WEBGUIAPP_MQTT_CLIENT_ID_1="DEV1"
CONFIG_WEBGUIAPP_MQTT_CLIENT_ID_2="DEV2"
CONFIG_WEBGUIAPP_MQTT_SYSTEM_NAME="SYSTEMNAME"
CONFIG_WEBGUIAPP_MQTT_GROUP_NAME="GROUPNAME"
CONFIG_WEBGUIAPP_MQTT_USERNAME="username"
@ -1447,7 +1470,7 @@ CONFIG_POST_EVENTS_FROM_IRAM_ISR=y
# CONFIG_TWO_UNIVERSAL_MAC_ADDRESS is not set
CONFIG_FOUR_UNIVERSAL_MAC_ADDRESS=y
CONFIG_NUMBER_OF_UNIVERSAL_MAC_ADDRESS=4
CONFIG_ESP_SYSTEM_PD_FLASH=y
# CONFIG_ESP_SYSTEM_PD_FLASH is not set
# CONFIG_ESP32C3_LIGHTSLEEP_GPIO_RESET_WORKAROUND is not set
CONFIG_IPC_TASK_STACK_SIZE=1536
CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE=y
@ -1521,13 +1544,7 @@ CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY=y
# CONFIG_TCPIP_TASK_AFFINITY_CPU0 is not set
# CONFIG_TCPIP_TASK_AFFINITY_CPU1 is not set
CONFIG_TCPIP_TASK_AFFINITY=0x7FFFFFFF
CONFIG_PPP_SUPPORT=y
# CONFIG_PPP_NOTIFY_PHASE_SUPPORT is not set
# CONFIG_PPP_PAP_SUPPORT is not set
CONFIG_PPP_CHAP_SUPPORT=y
# CONFIG_PPP_MSCHAP_SUPPORT is not set
# CONFIG_PPP_MPPE_SUPPORT is not set
# CONFIG_PPP_DEBUG_ON is not set
# CONFIG_PPP_SUPPORT is not set
CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT=5
CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072
CONFIG_ESP32_PTHREAD_STACK_MIN=768