From c4b7e646b7df6bba3b4093eb377a352413ab4604 Mon Sep 17 00:00:00 2001 From: e2002 Date: Sun, 5 Mar 2023 00:25:26 +0300 Subject: [PATCH] web_board_uploader_v --- yoRadio/data/www/settings.css.gz | Bin 2412 -> 2454 bytes yoRadio/data/www/settings.html | 1 + yoRadio/src/core/netserver.cpp | 17 +++++++++++++++-- yoRadio/src/core/netserver.h | 26 +++++++++++++++++++------- yoRadio/src/core/network.cpp | 25 ++++++++++++++++++------- 5 files changed, 53 insertions(+), 16 deletions(-) diff --git a/yoRadio/data/www/settings.css.gz b/yoRadio/data/www/settings.css.gz index 0b0e20da96b21e37ec82d010d6f42c21cc7c31a8..40da547eaea60ed62a0d95ef85fd8b071821512c 100644 GIT binary patch literal 2454 zcmV;H32F8piwFqi>H=f{19N3`bZKs9b1q|Za{#qi*^Z;g5`FIe3P!Ebbj$5B#^7?f zG}6Twyf1+9QZH95$zm{IR+~}(`%Mz#tz12GrJk}>!bvzX;^fJQlli22ZUo#2`|C4? z`Ld>2u2GFVzm3&#|L_V2ck-c{T3TebF{*{eetdrN9r*}?G?0DtLoWe=?s#eS*v8~I z^6qTf?P>}X+ls288hDPQ$N~CU>9&~21eRe&ZLC#%RbadzvjWE%)!^t43zLQ&5zbKnmCB$F7`Mh8$U*i)=J2%-yvy-2o{2 zZ5&3HeypD0ZDXM?tDp)J;5x_GOYU_X|NZp>eH+6u;tYIXSZ+RoV|CI$U??BOJ5)m} zL$-<+XdtM

s?T*r9+TaEPi=AiJUN1-mu|7Y78Y9D>}38V6wxlw81CV7NNwu7eY~5lADTZ)G5BTdxT-V`hK`InJ6wlGlgAj7i z#)xKN_aIx<1gZ^J;$|Z`K!=W+C-3EGQ258+@!a=9tH3t@A*O`Z>mr7g>4EKPWdySD60m-!bMLzh%cV+-gpduzeM1fj4Ai6nVQ6*DG|MPW$C5 zA!`Sh5wa<8zW$-fk=#ZDHQzN}6*zm7{BA8fGa712EIJj{EUPnOvT?4uFHzs?N+3`ZKh_+J>j#xmfy`*hq|2Z7S`Tb zY?)BnWo|bZC){`#vrWRy;<~%tht3vwb|!OrS9a{~GEP=~_P4bw1_hYv}*rNyC|Q^g|d-XDm4^zvRgy)sP5EW(FO;M|Nsjr^7-x z2d(L9^-{~i8ED$sc*_Mfre>SF%7I_V1JmKxM^gYpc{-k|q$;uw**ost1Kr;Nt-+Dj z%ORQ8l5OmETq79{_!+rw47Ofpm4$Po=}st-!Z*H6BvfZ+5G*@x^f%VV6bU>Pm~C*_ zdBc>_;-fh09K*$8INo$UYRKqDop*AcD%26ZnnavzNX{ zP4sb`^2@r|H{66Z_{Q3#<-r@pZq)wbIMkO^uRols;H_u&@pYxOp+>-`cf(L1J!{Zm z=S$XgOj|Qav>{EJ; zUI2oa6B*~m^w6uT2~o4(rsKi76G;taVNvU;smT*Msx1W~>Ebn>NpWE@%3NPm(wsq^ zp&(IgU=Iz$`18*{zTI(H*Z+MI&z3ofrF;w$`S1+ZF(mM!8#xTEZH2``9Cqd%L_j6u z>^CkAgtWdMCETbLvc!7ZZ9=lXoD$kw0v=_pmVA(-@{gm{)`aWEEQd2pCkNSjHy#aJIr zmgaKi4d0H>s^n{ylJrz+^wxC9qos5Bp}$&?NiEja!E9p9338oCgzwdsFSJUM%w)Nr zIl?N(h-MvbVT&=pW0*Svd!+@N z-^ya&FIyR$2f+m=dkpuTKKVe$DIiJ#aPO2GjvC(I>a;R|rve!i$Gdq-)UNFvIgB1# z->b`WP)PKkf2FYe@i{DrQq(XM+WYk=-&6xxv*Pd~kv_`n;hc@~>1q?)2(CM{@AgUK zy+k?{+Fa~Gk#6MCK>)ty((ya?rCzUpL!q37Q~(?(R}*kK3RJJ-xP#;=pT+<0X>TKd zK2S6zhED;2o462t=SgJ+q8LZuXUCXd)jm)`r~5_wpo!YHjyl+!E89nB`Ro4H>sCA$ zP<3nw;=-BGdMXA=EL6kDTaBv~EwZ<@dWSL=_}2 zt1NjcRyhx=^^a8hJ=LyGWdAOK>Lr1G^&gWBH-jX9;`$d7kuB~-B3_D{m90%g^k9yU zLLLRlijvS-(%bb?J@lE7PP?oi2$~eFb+smw-sIrcs2;u9r_q67MsJGfjwO1eGyS*` zna`j;9b3z_m>LJNB8c@Dp6My;F8QYF-Dc_-Qz$+5Jkp68^Et+oQ++Xfmag?t~ zak+%76u5Ly2FSke9Ix8{ML|QGlSZ&~3p?50T3$QSpyO*9QLLaUJL*^14X`TG6R5&m zts8oT`vI)KR-x6m`$X>qRVhu*TgCNG`IWbtaR>nkfdi{SnJav`^RkcLgpXf582s`1 zKRcjVaxSi*AjV`@!@gc!8I$>y@i!RF-B|~UwQ?ZG=sR|QqndenPWaRFIo2zLLWm&v U3SXjw*^kfv1Crv47seI<0Jv-Bu>b%7 literal 2412 zcmV-y36u68iwFpzUio4G19N3`bZKs9b1q|Za{#qiX^*2w68*gWD_FHg)2(WkF$R~* zrI8k6@O=QrM}1jwB!|HX=Cm30f8PX*joq&9S!u>d79>GrMC8ke7x}EZFa$8f{``bt zo~&sWG-{#ib+88R9pBL4UOv_mOAE~oMz!;?@1LGMM?L{R@ntXn(2aqwJ8n`tbuc*! z-8-31rU#sne|x)zzJuWyaS6O{STGyGu?FcKvD_cUJ=Ov% z&1DtW*MMI`Ll>Juu+I$&!7;3bz6=B1_4geNEe`NiIRKdsHS&WjP@Zcc>->D^96D81 ztGYU7wzOA`8cT4(L$s9)&Ef55rt238T<>_bcirPkf#=uvnx|fn@gn9CI1ca=(+wDZk-KA=}IuIV)Z+pFTeQe0derX+? z<&FuYeF}U2B<3cgh;0!tjT&%w2%H^o?NsLUp6uAYRjM$r^!(^XIi}N~5`R@&aT`cOp3~zv9Ug)szTIW`5Cx67h% z4%@T!`n8@0bI`KW$&T~uOx-s3Pe*TPQ@U3SPG1Z+L1j|mEgRQkSMFLL*X6GOG z?kJ(O=p@d&r(n4pO}0Ik8Zo-j;NfVxOxBZwVl$oy*tK=qXqvngMDR4@1b*xF?UmdQp-`tqAJbb6vtvXnqM*52C4@NT;y!XukzIkeIsWI^A{U{Jf*BW-& z#fmj0ZQQeaU3s+T%sPjMyBW9$WiX+7u>Te3S-=3rT`+Xqe#<{Yu%!y&1^c$8kJ zmw+G^M9RU49=Q!QChGS4Y%<(*L#e4OEow6}HF-*h^_4)xJ-p5{2`((hDfC1o$q>{X z2@=Kn_Q)`dKmPdr>m7!5{htT%e3gM%%El0ok1t>oApkFXp~KMHPFOC*QFqbJ0jQ*$ z{mv!6kTf>qm>ahPme}liEdFfo-(6Th2z1VUPHFEU|Ha!R*_@LhxcWX5{VrWYv4(mEHDKjb-jZ;@ zBz?hLwvwsxIvbH3?=`3`uO#cx)?fJ9I8k>2nD)b%c#-FkKM^8%c$__vHj{A6i9VjL z%+=f-y`NrG$FO|d zgmo4pnsvCPEk^vFVeSC%IWXNML8;dS{-2j5npc&?L@BYB*ZM3)XXN5hS|rbDF#utR zDnejgsnlQ1w3W=A-PSbA2Wn9~P@0eS@RmXptn9Ar5swQ~gFwT%eYs}eO&(izSIR%2 zJPHUC0N@?T!SmYiOG;B3@LV{a+wsFZWl*Z}jvR!KrSFN@#i*PgP23>LVKrM+F=)O=a9qTtFVKJx3~oXzsCf|na^au@A8NHu?C6X%?i@gl@$ zjm$a}fG-)#`i6aOG#X!XQ!bpt2M%I(F}SkkTGfubkUVFzc>g_bgFHYV6#p`Y&ptqS zFZj`AQdvP!j6(1;#{YL^+C2BsgCf(?M19xDll_7#Gi`VE_x(1TcC--kMA8(*r8A}V zMD*jQnZ;=Jg^(ta-F zf=U`Axaaolc!S46ofqvH8{s?t34}D!YI4J#v|vXfzqa{_wU6uFN%%DFAHcLXw&=Mj z26+%fX*Czd6tf);^YZoq4L$F=zfMGN_6SkkBWL&$?b~Lre7@U4Q~~lbA(4epj>B5x zBZ7MmwMz5y&jP4X0_gAlG3jVKjI%p#a0Lf6qnylvO7eeX}2U1V4GHn*)B!`GMJ zeqPjX&xu~L>(N<31yU%H6=dt~lmV~i#7vo%UALU$25%5KAv-@euexW*he@|&r5E=* zx~oP(al#jc*_ssRFu9b1mJZPX+4G!JrTkyXCXzXG1WUKDv;3`ORgs1iS7}7Cf~xGO zUr;r`YB`_CGfZXO@>{eYz~)O0NqxO{^o~%K)a0^NpnLYOJOGRW6p#QoC>xZ%qL+I& z{pd~b_{D?4@1OpIT69a!$Q2^Qm<%=SOXYNx%uZLoB5Us20z}rzfh +

update
Firmware
Board
diff --git a/yoRadio/src/core/netserver.cpp b/yoRadio/src/core/netserver.cpp index ff91ff8..96d1600 100644 --- a/yoRadio/src/core/netserver.cpp +++ b/yoRadio/src/core/netserver.cpp @@ -56,7 +56,18 @@ bool NetServer::begin() { while(nsQueue==NULL){;} if(config.emptyFS){ webserver.on("/", HTTP_GET, [](AsyncWebServerRequest * request) { request->send_P(200, "text/html", emptyfs_html, processor); }); - webserver.on("/", HTTP_POST, [](AsyncWebServerRequest *request) { request->redirect("/"); ESP.restart(); }, handleUploadWeb); + webserver.on("/", HTTP_POST, [](AsyncWebServerRequest *request) { + if(request->arg("ssid")!="" && request->arg("pass")!=""){ + char buf[BUFLEN]; + memset(buf, 0, BUFLEN); + snprintf(buf, BUFLEN, "%s\t%s", request->arg("ssid"), request->arg("pass")); + request->redirect("/"); + config.saveWifiFromNextion(buf); + return; + } + request->redirect("/"); + ESP.restart(); + }, handleUploadWeb); }else{ webserver.on("/", HTTP_ANY, handleHTTPArgs); webserver.on("/webboard", HTTP_GET, [](AsyncWebServerRequest * request) { request->send_P(200, "text/html", emptyfs_html, processor); }); @@ -650,7 +661,8 @@ void NetServer::requestOnChange(requestType_e request, uint8_t clientId) { } String processor(const String& var) { // %Templates% - if (var == "ACTION") return network.status == CONNECTED?"webboard":""; + if (var == "ACTION") return (network.status == CONNECTED && !config.emptyFS)?"webboard":""; + if (var == "UPLOADWIFI") return (network.status == CONNECTED || SPIFFS.exists("/data/wifi.csv"))?" hidden":""; if (var == "VERSION") return YOVERSION; if (var == "MODE") { if(config.store.play_mode==PM_SDCARD) { @@ -690,6 +702,7 @@ void handleUploadWeb(AsyncWebServerRequest *request, String filename, size_t ind } if (final) { request->_tempFile.close(); + if(filename=="playlist.csv") config.indexPlaylist(); } } diff --git a/yoRadio/src/core/netserver.h b/yoRadio/src/core/netserver.h index 38b4055..036f79a 100644 --- a/yoRadio/src/core/netserver.h +++ b/yoRadio/src/core/netserver.h @@ -8,23 +8,35 @@ enum requestType_e : uint8_t { PLAYLIST=1, STATION=2, STATIONNAME=3, ITEM=4, TITLE=5, VOLUME=6, NRSSI=7, BITRATE=8, MODE=9, EQUALIZER=10, BALANCE=11, PLAYLISTSAVED=12, GETMODE=13, GETINDEX=14, GETACTIVE=15, GETSYSTEM=16, GETSCREEN=17, GETTIMEZONE=18, GETWEATHER=19, GETCONTROLS=20, DSPON=21, SDPOS=22, SDLEN=23, SDSNUFFLE=24 }; enum import_e : uint8_t { IMDONE=0, IMPL=1, IMWIFI=2 }; const char emptyfs_html[] PROGMEM = R"( -ёRadio - WEB Board Uploader +ёRadio - WEB Board Uploader

ёRadio - WEB Board Uploader


-Please select ALL files from yoRadio/data/www/ and upload them using the form below +Select ALL files from yoRadio/data/www/
and upload them using the form below


-Optional, you can also upload playlist.csv and wifi.csv files from backup +-= OPTIONAL =-
You can also upload playlist.csv
and wifi.csv files from your backup


-

+

+
+
+
+-= OPTIONAL =-
If you can't connect from PC to 192.168.4.1 address
setup WiFi connection first
+
+
+
+

+
+
)"; diff --git a/yoRadio/src/core/network.cpp b/yoRadio/src/core/network.cpp index da0e5b4..bcbc596 100644 --- a/yoRadio/src/core/network.cpp +++ b/yoRadio/src/core/network.cpp @@ -261,6 +261,15 @@ bool getWeather(char *wstr) { cursor = tmpe + 2; float tempfl = atof(temp); (void)tempfl; + tmps = strstr(cursor, "\"pressure\":"); + if (tmps == NULL) { Serial.println("## OPENWEATHERMAP ###: pressure not found !"); return false;} + tmps += 11; + tmpe = strstr(tmps, ",\""); + if (tmpe == NULL) { Serial.println("## OPENWEATHERMAP ###: pressure not found !"); return false;} + strlcpy(press, tmps, tmpe - tmps + 1); + cursor = tmpe + 2; + int pressi = (float)atoi(press) / 1.333; + tmps = strstr(cursor, "humidity\":"); if (tmps == NULL) { Serial.println("## OPENWEATHERMAP ###: humidity not found !"); return false;} tmps += 10; @@ -270,13 +279,15 @@ bool getWeather(char *wstr) { strlcpy(hum, tmps, tmpe - tmps + (tmpc>tmpe?1:0)); tmps = strstr(cursor, "\"grnd_level\":"); - if (tmps == NULL) { Serial.println("## OPENWEATHERMAP ###: pressure not found !"); return false;} - tmps += 13; - tmpe = strstr(tmps, ",\""); - if (tmpe == NULL) { Serial.println("## OPENWEATHERMAP ###: pressure not found !"); return false;} - strlcpy(press, tmps, tmpe - tmps + 1); - cursor = tmpe + 2; - int pressi = (float)atoi(press) / 1.333; + bool grnd_level_pr = (tmps != NULL); + if(grnd_level_pr){ + tmps += 13; + tmpe = strstr(tmps, ",\""); + if (tmpe == NULL) { Serial.println("## OPENWEATHERMAP ###: grnd_level not found !"); return false;} + strlcpy(press, tmps, tmpe - tmps + 1); + cursor = tmpe + 2; + pressi = (float)atoi(press) / 1.333; + } tmps = strstr(cursor, "\"speed\":"); if (tmps == NULL) { Serial.println("## OPENWEATHERMAP ###: wind speed not found !"); return false;}