From 86ccf24333cf88f905462f7ab179eca188ac1a97 Mon Sep 17 00:00:00 2001 From: Jakob Dalsgaard Date: Thu, 16 Jan 2025 10:23:54 +0100 Subject: [PATCH] Sort of working version No integration with Wallas Heater itself, but boots and connects to preconfigured Wifi - fetches time and can display HTML pages. --- resources/7193_wallas-uus-logo-1.png | Bin 0 -> 36144 bytes ...essif-systems-logo-png_seeklogo-407805.png | Bin 0 -> 19759 bytes resources/risc-v-core.png | Bin 0 -> 4863 bytes src/sntp_client.rs | 99 ++++++++++++++++++ src/static/espressif-logo.png | Bin 0 -> 7727 bytes src/static/risc-v-logo.png | Bin 0 -> 12169 bytes src/static/styles.css | 22 ++++ src/static/wallas-logo.png | Bin 0 -> 19114 bytes 8 files changed, 121 insertions(+) create mode 100644 resources/7193_wallas-uus-logo-1.png create mode 100644 resources/espressif-systems-logo-png_seeklogo-407805.png create mode 100644 resources/risc-v-core.png create mode 100644 src/sntp_client.rs create mode 100644 src/static/espressif-logo.png create mode 100644 src/static/risc-v-logo.png create mode 100644 src/static/styles.css create mode 100644 src/static/wallas-logo.png diff --git a/resources/7193_wallas-uus-logo-1.png b/resources/7193_wallas-uus-logo-1.png new file mode 100644 index 0000000000000000000000000000000000000000..9028672ff62a1e74c35c65fd6dd5d0e7442f40e4 GIT binary patch literal 36144 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 literal 0 HcmV?d00001 diff --git a/resources/espressif-systems-logo-png_seeklogo-407805.png b/resources/espressif-systems-logo-png_seeklogo-407805.png new file mode 100644 index 0000000000000000000000000000000000000000..aec6cb127152e287570a832540559d5944328d4f GIT binary patch literal 19759 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 Aga7~l literal 0 HcmV?d00001 diff --git a/src/sntp_client.rs b/src/sntp_client.rs new file mode 100644 index 0000000..bc5a427 --- /dev/null +++ b/src/sntp_client.rs @@ -0,0 +1,99 @@ + +use core::net::{IpAddr, SocketAddr}; +use embassy_net::Stack; +use embassy_net::dns::DnsQueryType; +use embassy_time::{Duration, Instant, Timer}; +use embassy_net::udp::{PacketMetadata, UdpSocket}; +use embassy_sync::watch::Watch; +use embassy_sync::blocking_mutex::raw::CriticalSectionRawMutex; +use alloc::string::String; + +use log::error; +use sntpc::{get_time, NtpContext, NtpTimestampGenerator}; +use chrono::{DateTime, Utc}; + +#[derive(Copy, Clone)] +struct Timestamp { + tstamp: Instant, +} + +static UTC_DATETIME: Watch = Watch::new(); + +pub fn get_now() -> String { + let offset = UTC_DATETIME.try_get(); + match offset { + None => { + alloc::format!("LAUNCH+{}s", Instant::now().as_secs()) + }, + Some(duration) => { + let now = Instant::now() + duration; + let micros: i64 = now.as_micros() as i64; + let dt = DateTime::::from_timestamp_micros(micros); + match dt { + Some(val) => alloc::format!("{}", val.format("%Y-%m-%d %H:%M:%S")), + None => alloc::format!("LAUNCH+{}s", Instant::now().as_secs()) + } + } + } +} + + +impl NtpTimestampGenerator for Timestamp { + fn init(&mut self) { + self.tstamp = Instant::now(); + } + + fn timestamp_sec(&self) -> u64 { + self.tstamp.as_secs() + } + + fn timestamp_subsec_micros(&self) -> u32 { + (self.tstamp.as_micros() % 1_000_000) as u32 + } +} + +pub fn sntp_client_spawn(spawner: embassy_executor::Spawner, stack: Stack<'static>) { + + spawner.must_spawn(sntp_client(stack)); +} + +#[embassy_executor::task] +async fn sntp_client(stack: Stack<'static>) { + + // Create UDP socket + let mut rx_meta = [PacketMetadata::EMPTY; 16]; + let mut rx_buffer = [0; 4096]; + let mut tx_meta = [PacketMetadata::EMPTY; 16]; + let mut tx_buffer = [0; 4096]; + + let mut socket = UdpSocket::new(stack, &mut rx_meta, &mut rx_buffer, &mut tx_meta, &mut tx_buffer); + socket.bind(123).unwrap(); + + let context = NtpContext::new(Timestamp{tstamp: Instant::now()}); + let server_list : alloc::vec::Vec<&str> = alloc::vec!["0.pool.ntp.org", "1.pool.ntp.org", "2.pool.ntp.org", "3.pool.ntp.org"]; + let mut current_server = 2; + + let sender = UTC_DATETIME.sender(); + + loop { + let dns_res = stack.dns_query (server_list[current_server], DnsQueryType::A).await.expect("Failed to resolve NTP server"); + let addr: IpAddr = dns_res[0].into(); + let result = + get_time(SocketAddr::from((addr, 123)), &socket, context).await; + + match result { + Ok(time) => { + let offset = Duration::from_micros(time.offset as u64); + sender.send(offset); + Timer::after(Duration::from_secs(7*24*3600)).await; // redo SNTP check in a week + } + Err(e) => { + error!("Error getting time: {:?}", e); + current_server = (current_server + 1) % 4; + Timer::after(Duration::from_secs(30)).await; + } + } + + } +} + diff --git a/src/static/espressif-logo.png b/src/static/espressif-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..697cc2c4206b8ba7431c9fe717e7a9b3b39eeb90 GIT binary patch literal 7727 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 WHfhT5zX}}1LFOjb#(9T4&ixMv2QuRT literal 0 HcmV?d00001 diff --git a/src/static/risc-v-logo.png b/src/static/risc-v-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..0d8ff6455a5df69d4428d9bc167b895d8d31f6ed GIT binary patch literal 12169 zcmeHscUY5Kvu_H$H$jmm3Q7+>fdDE+K$>&`fe-?O5<-vEpn_Bp0YPaZDk7cGYXlVC zR8f!)Ql&R30?K`H?{9y5-+P{Op6_|?`ENtoT5HyC&CHsaHM8DmBZDi9blh|x5QtGn zTf-RmUI*UqXsCeCfnfLJj<C*P>|g| z=JHd)dzEyWFIik8%z5=}_o?-{A8>G8d0ja<+2hdv`ptCr~n3-+}VpSeQleWTEPjj?f#MP&0-`K_U&+LTpE;%-lH<#)8J#mkR zI+0$+AKLw z?$Ny}WzB0gh>2iWIUjO(w%ATE^>Q)YNd%|SZK|Q|+s&`nhOFM?>qv=YPz2iX%%d4- zRv<-@)4}}821^t)s!)r-b~`r+Df^kClGQRzlslB`Gq3&-R5F10<-EEA#)7VoEk<+l zM_iT&Gs76YD`xu#PH%7V`Qq zeY`rx1*;wCjWG!{FhvKtp%IRPYN~Wdf)W7Wf$>EN5Io#*K1u`?!C$ya!0+R3DM5i> zB))Dcf|mM50_vXL7y&s+IZ2p=CIRa&BdAIzfb@2BQZm-i`U3)JsR+9G`r?(Oqyhp0 zBm-n6J-wZ!q!9>&6ih}+Mn(dlknp*Q^FKJS>EFuw8*j%Wzr^_~Bf#`OasNjBFWG+)162C@N*bPMzhm}vG*kqS z*H?1%L}MM5e*Kh|Mk&h4JIYF+5pr@8a`K933AiH)XiCEr;Iaxba2Z+ozd-5We0)(j zH0Brz0GGr9I2aiRc|`}blY|3C4lW@li;$H-$jiw~$S5ev!lluQC`Fj`Umy&+u>Q?oUB7#j3C8R9*6&Ss>@Qam5cuU3N+|U2BKV;E zF^<3Z1h9S|Lc5@F&KMwi{9&&D>c{>UrXVXVgOY*E!z2_D^70aL2t@}82RT`J36v9B zRuL}e=;#3ZztDX=oqPjO-k3|yfF1!|0p|HjR{|G)ZIsC0c?odA9Pa|4FbSBn#J?2= z|3hI?e+Vpf95enUF;eRP(FyVw!C!(5Fz@$1Ab0_>Q0mWM_=nDp!_NQW-yeJNzqkSb z{m&x*k$(SC*FWm|k2LTf5&vUd|ETLf(!hU2{Ev10e^VFTzso5M4#r@)XT#%_jn&IoNMxu0*c z7)a^f-TFYSiVu0NEZeN?+@0Y=MRAGczj?jl6w-(JIwmRKz4ZB3F}UR-FUy068xh6Y zNYc|jzE@iNe(&0>p*Z$ZY8FZ@Xj1q}IMuhXlyFzAOxZIMoGfSeccLw&NXyh$=nq$A+2g^plqO{6P+p?2`RTB_ zOqB)7dMA9k9h41jvR50?rl*~1qZ=KrEn^+z-{W4_kDI>wHJe&+qmxT)C8zBY8LOs>$~7KAVr-%q`@Pmf39d3%M51RdL5^ujXBcs&U8{NX=PHYB|W$c@l7AZfZkti&ma>ObRv#Y3<+}#>-oc17}NxKYw z5G@R0;!r8#n#k_6S@;C|#7<{6UycYOj)eR5bqdyvHUiUbDhHn@@4EG1YhAKmatmQlqS|C3gOgk&kGkBhgW>!esbfn zDTR3QJ*7#CBI@jG9MJ*Alyg^;Vu%raImFg*UX{8DI=xGKx>_bV=Pja$x8LI@OE;2+ z8@@Knr}?()&Z&r22u9Pu)9!>rD+X+rX-nQ_T(Qab1qXnuqlppTZ0oj!B&Hgsz0zCy z^Yh_$SEf!$=R}lSQ7gK3`SW!d@te6QOF%-4KdtYI`UwE|D)fpvvfsWt)ImOdWGwP@ z1!TNODm66~>E;ht7ToBLDZVQKdANI#D<#0Ym7eVPau|~`9wa#V>dI$nxmo`o4yR!3 zpBl86l&vVlO>c|Xio96~B&vaqOcq{{XlfuY3`FJXTx8!vnZeZ>Q;*y$krg!XLFhm% zC{EWavXS;sfvx9R0hR^eMEO9{Ean8?s2jXgojii3#Phzq^2+0wM;#^tx94vy1JDub z8i~5_1LEld%$OLYm|^QX_IWZFgpYQa$NsA089eq}R{n45otos=@~5&lzWTOabBEW9 zxD-OVZyWW`$pQ9_Sn8xQXWG#kax`It4R^O(lFJOEK9ps%dkh%YrN@3w5to0vEpbkT z=Olk`>frQ6LAIX4;$?aMFH56(;uV)03`w zGg5#Vc_6K|>2}+B^6Zm2Q__MsFz@E1u>I=c&g-5gtANiS6Pf|O(pbdx4V?9TX24T9 z_^5COd2C`0wV8ZW!4mc!>qxxExvZNOk+*5!+MSfeG!dUp+m5>TFPG5`(wd-^F8D&i zh4Sc z-i1!kY9GyqbA>-DUrjj$zu*g&0(+c!&bMyfVE?%Zec=dc&)5L9;fQvA_^$N+sWcG7 zAjA5Fb<*QftIgpKS!9uDqP_wSoWUSR@kGTO+H;Jda^HB37&`w?mumwwAa~(V{ zqX)pW)Tj9ba-v(ncHq8?N}0NQN=BsjF9LffgieGPEl4Z~NY&O4sQLSJ2eQ_qg4f=PgS;QTeV`6y4t3dwJszW3f{ z+_168wu=4%*qr_H!w=Q4djTHtb@tE!g*4`^1wVcC_*_w;W_{z@_3pPc&pin0F zaK#fyAcBarbzuF+l$AhgHy@o?yJ|Zw$L*s9R)g*o&-~;BTRbELfD9`?tB_OEA9qCo_9Z^ftF%ZCBK3$;~Z84nZbMR?)F#lmW^gg3Fw_r>UE;xmUm|R?z5q~XSJ)i5XPZ5QAv{ zTe9DnVb)R;q@}SZ-=5QtGK_KoQEzMUm-dNAWJhbpl82YX+$O`EttYLDq7|#*Qh>q! zCiqQKIVkS(yw;j-wlR+*$}YWN+O$*A&Z_H+k?g{i`3(iuM1HnWpDYbB-xCHrjzx9Hw^E!7ri`K*M0SE?FWwA{^c?RW84>Ee)URN#NsdT85d`JB zg1(nzAjFw$UJ*ZHzvCG|-Kbouh6lY?g>dMtZpD*-*gBokL>s8Qy}6s+54Y4LzZsb| znjCfML`;;N3-YN+8$h zsjM?jj=6N!j%MFED5bCcKt_-?Zr#+KyhvcLkzwm0xOUYPkAva-CQnLSyEJp)xy!?g zcU(F*kY@zg?3N)VkOWiw>0%HLw0$R4(F5nzLXMy)fH%?*Xa+}Sdj!}Jqqz}?UweD1A0{l@wTyhXuaWyA1BT^FgAc~ zmS^j@p47LGaluELY=FGwM-EYiXjfazr|9LKzImxFmUy*D=LYR_J5@+1T~5R=i>!Jx zv#XVV%SeZ{v^tm%E|vOO`McMaHgZc`_-+9BwL$UMs-^KO4anAN#2f?E0DKSRih;)v z6`h4u`QT#QK2_^FZOqUkjC1LeO&C7jcsnaX*C1o`MFp)Bf@#n=@+l3$hZc?esOEz6 z3U*cV6MI`$i6pL&Ks5|4k0J*YRY-!~Hycmmg?q)-jVO?oRiN&^$Lv2?%C-k>>1`77 z&+~GagJdr?F3);h7#K#d!u2AvXa>cqsCkM)xJ_T}u!~Jy2VuH#p)!(|=D6~$0%PT9122PgUxJDKM za;hJ;CJkd}aV{a&SEe4d6Fa1(-^^AuR#0hMZ4JpjMjP`Ek*8 zQn-`$u6jJxI8`W+gEmO&DN@x?4AMqdv4K}o%! zDlW1?x=w#lBCbMmv;2h*`wI-8@wXwS`;=o zcdUME$>1bKf@a2hh~i+66@PXvblPvH5H{BK-s89aKyhJH?+S(!toT|P&KjfiIxE#> zR%cZzCkMf&bs<)}w#A! z^iv)}_eiNrwj)$UCrd~`&Okv8<(l^nT(&iNad2kJLi+U)wjsY@7P3{iu#AnkZ)3nu z+<3~IiaG;fVzZ+R9ZvE&tLnF4l4io$$TI3ZY4Os^kQ4`)6?NQ4S7yf!Z3-TkE9`@o z+E!loH)F0(YDH1h>@FWDM=2InrFzyYGs5#dh0foOB0}F^0MbiD2QHT&KGn^q_j1U`fk(M@n8&e=@uZ8iLihj)-6wg3H9;Gh$opfK27YNIwvKrgytVr+V84;Am&Zf#oM z=u#jvho||L(bPORMHS5D!&x@(_e5{%b{((Dm-5}6KG#X7$xx{tnerYlw)GQ^%@!0k zlWY0+3pWYj1r+CLHvR#W?zh8%Jn^&C#~xw9stiuW>c<*pEu^I3JA$O&Yyia` z;575Djk%dCzj96`f2v}i8;$Mb2RHd;i%fr9AtTae4oSf;MG=r`IX6zgWo(Lm$ne!P z)VFVs%8vE!KQwo3Q)b!6oXh&&+Yw~_@ra_c>H};+mla=WOs@x(jCq@}(!jNGdF6Sl ztBMs#O?cQQzimEt;ncfPxzfPNYdT5lQxUY!Ir^ytf~#eJwoVNvEQOzywspR~3zR2dquYqr zlQu_e{QK=%(JKkGRQX9b;GBTwjdus;4cd%6n63-t!Bdt`h(RR3beieNf#$J$T0Vsp zS=bSO>lz$HWXeK#7;G$on$46$2FzabZb!NCQ8It|uML{uN zwLM*y@eEMELJjEBVEOvB#l;^n4-#`ZaPVh=wx{i_zr6smCpY~SmTx&s5vIEhi1eTJ zK<25m-}%a9EOF1cnxiLCf0YL^W`XmSWLxXJ`8_i|BmUFJ=>aG;IB3dn=e_WDW2C!k z3700in~gG)H(w*bF06NKdH~$cMeu(vUn1Y0F~47bw@5=;cx_QwujrMxwu^<;mbqj} zb_-9Rih%p`jum22r4vKx+2ozs!Y{cE1^hEd{B;A__AQgE%*$po50GD-&AZ0^Y=IPb z*lt6ipIEO5OKG{AUqYEhX}i|{QyCJU#^XtpCr|l`Zj?zus07K;u;^VW%{ z((@ZYmi#2)wG3OD&KGEP@yB(#-m!KfKQj*%4}FD^t;nMz&>W)%*}UceLOs$GPBuze z_|7G);`Qc5Qw7l@+zx8Zv5H&$RJU}llQu52De|rTJ|v3z#a+l-}@sqK3^8sl!@C7HCFL9#q>jy(pvo!nffb{?DIj#uMIJL!aDgLG;$ z&EY$`8lF=|%^GL}Sv<#_-c&SZy=5A;wJ(zf*okk(r4OXb+)vvFDKz z6Yunf-$*vELgyS}pv91?>W4F1+Y56-v3YHrK(21&D`k9+*K)N#6 z&jYoILTr~l-5=w#`6;kY;15kF0F}~E?p0+*d% z{(zwDZ{$qm$WvR=J5-16ODae=Cc1^w=d`9W$K$SL z7EpKR)@*sw;){%12fppET@7ar7w%-z;#xP1Q``rA?l)OhN!|S{X-iLF#GiUDR;nT|@ENw1-uk*mb`Re5X40nN9}F)mqudZ7mvzKAwA_G-L-|~2{S=1wSk^%i0oseivzOGI4m#*5vl;Y69X`wuuU?W^Y>Y?&5`Dl!ZQ{;) zDXgN=@wY&I%Y{|GfPhKYC7VT$sa2Y|G53$M zbDvy&N(Z9^Wq~{+Uta!I9?#)s&V7f~Sc}E@(6G!%Lo`nihgYe1i|KNMG>>uS%f1r! zWaGo7=VH`jw-O0+jqc?eOq~lSA`0Wn$k%{-w5{XL*N77CDscewi`X|;#-K;EM(`Ju5G-KsXJ_(o<`|Zp-(9nyDo3$4CbKMAYA4T39q{eq~$ns7xRf>8m$DrwgRtLm98;2qmsx; ziFGm!o=L(5r5vd>D9G8 z<+@8@b|yRC4|sXw5xjJ(OBYCwEZr8vk1q7J-<%A{x&K&SlP#2Tv)VGL_I`8_&3eCk z`9hs`gHM<69qI^!_hI+KdC=WZ~#|SE7UE=EN%uB0cCVrPzsLav1>q4b}L!;-{Z_CHw6l zvkioP$`f})1|;c;)~;^Jl2^WClH$>@pz7`Pb>~Mw5mfjnBDDtCx_8r zuLl-gK@n?fV{muefDsM!&+9It6>Uo(4iaKmIn!-@-Q6bti$ zsA#@DawehyW;H9HY!4@19DTeKu}5=U$ORiOIv2`;r64~kG9DWUmD`TPGj)9-9%RNe zw0y^ViZN=q0#MRIOH(AqSJ9j!IwpK4%#b|klpb_Tm?lO-@w2SnBSI5&IRgKO5rs02pbKsM$!tXo+~ZKpUU48=au!<#c*c16IK#M z+=cFB!}3=WyYkh|AhuMY5NL7F^X0ZniPvkC)7^u4*zLV8hhOC;mfUJeV7yCCcRxF} zb=^&s>vZntTUIbr#@R|@eezV*J%7(z-0tF@%);M;>jm#+oP@nHomvr^N%4Oe)Tm+i z-BE7N9rJlQqDsrZ0?boT=(i~+?2>bTYp$W8z%DO4hFQJbKi*mO&Qq{l`nF;aZy{Yb9b6%yGakuZN>A`fW?4Z2>`r=>V{M~C~u z9QYnM4>&ElO{rJXXh@gitUU!IFT3&zqk?ZFo>~$R03vX1LCyzmtBF2y{4Pfs%M#41 z?~41ki6*ypiFJf#I-KCT*K$W*!E{q#)a^Ilh@k|@s^eb~8{I1|7_gA}!fWM$B=}190CNlWCJiOo3-MCVaEbzJ}eI zt|1V{5O`RfVp_cT$H&*xCU0L0iK@BohI>Ez?FNv&@I99@xNi~DZ@X=+CTIYJ44pXV zn+1?m9_$a%18Y)U?^O?4e22XWTY(n2q!FnOT-61*cB!6Bu+OQUsv@7T^66APFbo@s zg}n~8RkWvz51}VrS4;kcf_$wOm3g^Ic028vJ!HA+Oq@XV4YWLE3jAv-}J@PnqLAZZYm#CrM{Wrt>OK90uVs3bDx^)Juzg2W80*v2e z@oR)k>ABx1{G@~@5KHc#Vj zbiRV_9;D;HJ7#`A^|?uO=;s7Lpi^sc6Y2S{zyo3bnC59q92SEE$O6WR3teTK2%&2G@8Ovo!~qt}JeH z>?W-q^78evT7$yv%KJghwYm>*io0*bw)Z&a{VaUsVN^*S@=tcx&t2ft0DcK)9*#XHlJK_i+i# z{KUnSpK{Ye(PZ#+y#kN%knLw%8XGGoxA9^l?IK>iZNvKc{nx-^$DM_9IBsMi_>n-Ea$do(|H{G|(u% IY=7(j0O{!LyZ`_I literal 0 HcmV?d00001 diff --git a/src/static/styles.css b/src/static/styles.css new file mode 100644 index 0000000..9d943b8 --- /dev/null +++ b/src/static/styles.css @@ -0,0 +1,22 @@ +body { + font-family: serif; + text-align: center; + color: #321C0B; + background-color: #D5E4F6; + height: 100%; +} +h1 { + color: #B15C1B; +} +h4 { + color: #2969B2; +} +p.intro { + border: 1px solid #B15C1B; + padding: 0.2em; + margin: 0.3em 10vw 0.3em 10vw; +} +div#footer { + position: absolute; + bottom: 0px; +} diff --git a/src/static/wallas-logo.png b/src/static/wallas-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8773608961e35df5399cb39f8f262192daaad997 GIT binary patch literal 19114 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 Jm9RnJ{{v4uU~B*Y literal 0 HcmV?d00001