From 8720b56749228d6f06038e9aa3104a5f3bc01a49 Mon Sep 17 00:00:00 2001 From: Thomas Peterson Date: Fri, 23 Jan 2026 16:46:09 +0100 Subject: [PATCH] Fixes --- .../clangd/index/Gui.cpp.BDF53DB313293DD9.idx | Bin 3738 -> 3026 bytes .../clangd/index/Gui.hpp.694DB9CADAA5C126.idx | Bin 478 -> 478 bytes .../index/KnxWorker.cpp.DE6DF2C0B88ED24E.idx | Bin 3556 -> 5204 bytes .../index/KnxWorker.hpp.F9067C35E6DD8F11.idx | Bin 464 -> 1418 bytes .../index/SdCard.cpp.485103BC6CBAC699.idx | Bin 6060 -> 11154 bytes .../index/SdCard.hpp.4F7BF469B05B7ED5.idx | Bin 862 -> 1056 bytes .../index/WebServer.cpp.DAE718E08A398A46.idx | Bin 6864 -> 11528 bytes .../index/WebServer.hpp.32EAADB285B462B6.idx | Bin 1314 -> 2616 bytes .../WidgetConfig.hpp.CAEFE2EEEB2A6996.idx | Bin 4856 -> 4856 bytes .../WidgetManager.cpp.D8CE609DC911F13E.idx | Bin 7766 -> 22450 bytes .../WidgetManager.hpp.8559171B7B8A010C.idx | Bin 2154 -> 2486 bytes .../index/audio_device.c.AF7F3B046C0957C4.idx | Bin 0 -> 1276 bytes .../index/bth_device.c.873696740B7C8D19.idx | Bin 0 -> 1274 bytes .../clangd/index/cdc.h.AA9F42A959F46125.idx | Bin 0 -> 20484 bytes .../index/cdc_device.c.97BF2CAEDF28C4DB.idx | Bin 0 -> 1274 bytes .../clangd/index/dcd.h.22A3E76D1F1071EB.idx | Bin 0 -> 7052 bytes .../index/dcd_dwc2.c.EA12668E199B240C.idx | Bin 0 -> 25754 bytes ...descriptors_control.c.FEED3E9810D6E4AB.idx | Bin 0 -> 10072 bytes ...descriptors_control.h.89B3FC6DB16E58AA.idx | Bin 0 -> 1132 bytes .../index/dfu_device.c.E977E4CF976BA9A3.idx | Bin 0 -> 1274 bytes .../dfu_rt_device.c.2B180B5E9788CDA4.idx | Bin 0 -> 1278 bytes .../index/dwc2_common.c.0E00B74601DCDAB0.idx | Bin 0 -> 5240 bytes .../index/dwc2_common.h.8AB5E347C802DCD9.idx | Bin 0 -> 1914 bytes .../index/dwc2_esp32.h.BEE26F4CCE688400.idx | Bin 0 -> 3528 bytes .../index/dwc2_type.h.26FDC14A89C4469B.idx | Bin 0 -> 76126 bytes .../ecm_rndis_device.c.5F219BFB804E7E9E.idx | Bin 0 -> 1280 bytes ..._hosted_host_fw_ver.h.7627B76907D54D09.idx | Bin 408 -> 408 bytes .../index/hid_device.c.F3E3B9259A02B7B6.idx | Bin 0 -> 1274 bytes .../index/main.cpp.7C677863E2582AB3.idx | Bin 5404 -> 5876 bytes .../index/mempool.c.A498C115B2827EA2.idx | Bin 5934 -> 5934 bytes .../index/midi_device.c.C1D4AC48AFEB6895.idx | Bin 0 -> 1276 bytes .../clangd/index/msc.h.35B533BA58CE6641.idx | Bin 0 -> 18010 bytes .../index/msc_device.c.771370A82CA429E0.idx | Bin 0 -> 21022 bytes .../index/msc_device.h.3A2AC52FC788AF29.idx | Bin 0 -> 5044 bytes .../index/msc_storage.h.F05387CBF173ABFD.idx | Bin 0 -> 2038 bytes .../index/ncm_device.c.04581A475F6815D1.idx | Bin 0 -> 1276 bytes .../clangd/index/ndis.h.F1FD71A464D10A0E.idx | Bin 0 -> 4974 bytes .../index/net_device.h.25F88D3C45366687.idx | Bin 0 -> 2600 bytes .../clangd/index/osal.h.7D98BB9A3CE57313.idx | Bin 0 -> 582 bytes .../osal_freertos.h.B38523DE336A0048.idx | Bin 0 -> 5792 bytes .../rndis_protocol.h.35776890022ED484.idx | Bin 0 -> 12540 bytes .../rndis_reports.c.0438802D593EBF27.idx | Bin 0 -> 7826 bytes .../index/serial_if.c.32545F152DA6FDE5.idx | Bin 6144 -> 6144 bytes .../storage_sdmmc.c.590394090995911D.idx | Bin 0 -> 4508 bytes .../storage_sdmmc.h.AC1BF042302BCC31.idx | Bin 0 -> 812 bytes .../storage_spiflash.c.BFB058D199D2F441.idx | Bin 0 -> 5356 bytes .../storage_spiflash.h.0706D514402D1BE8.idx | Bin 0 -> 768 bytes .../index/tinyusb.c.5C682DCB69D2FE17.idx | Bin 0 -> 7062 bytes .../index/tinyusb.h.794EEE3601819A5C.idx | Bin 0 -> 3946 bytes ...yusb_default_config.h.D4E05AD0E6E88D99.idx | Bin 0 -> 608 bytes .../index/tinyusb_msc.c.31464F38D0032D28.idx | Bin 0 -> 42896 bytes .../index/tinyusb_msc.h.F691256E4BB75045.idx | Bin 0 -> 5864 bytes .../index/tinyusb_task.c.4F298DBC93948AAA.idx | Bin 0 -> 7274 bytes .../index/tinyusb_task.h.989EACF403225020.idx | Bin 0 -> 1104 bytes .../clangd/index/tusb.c.454A5C292B21C858.idx | Bin 0 -> 12436 bytes .../clangd/index/tusb.h.4FB99F46C85CC4E8.idx | Bin 0 -> 1446 bytes .../index/tusb_common.h.0A109704CC3CAA28.idx | Bin 0 -> 9952 bytes .../tusb_compiler.h.1445DFDDCC9E2A53.idx | Bin 0 -> 1500 bytes .../index/tusb_config.h.9F38797A39C9C9D5.idx | Bin 0 -> 1646 bytes .../index/tusb_debug.h.C500CCFCB8EAC876.idx | Bin 0 -> 2104 bytes .../index/tusb_fifo.c.7ED3466C380F385E.idx | Bin 0 -> 14894 bytes .../index/tusb_fifo.h.36D8D0BFC711BB7D.idx | Bin 0 -> 5206 bytes .../index/tusb_mcu.h.56D7E81A60029B2D.idx | Bin 0 -> 3098 bytes .../index/tusb_option.h.2B019640FA516ED4.idx | Bin 0 -> 5924 bytes .../index/tusb_private.h.D8423E0FAE6C950F.idx | Bin 0 -> 4916 bytes .../index/tusb_types.h.EB765862FAB152B5.idx | Bin 0 -> 24416 bytes .../index/tusb_verify.h.D32763C60C41FB34.idx | Bin 0 -> 638 bytes .../usb_descriptors.c.9CC77C8373106E12.idx | Bin 0 -> 5222 bytes .../usb_descriptors.h.A0C7A9DB4C042C40.idx | Bin 0 -> 978 bytes .../clangd/index/usbd.c.7F1DD9AA33B4C2D4.idx | Bin 0 -> 32026 bytes .../clangd/index/usbd.h.56783067A4DC8DAE.idx | Bin 0 -> 7546 bytes .../index/usbd_control.c.2A74DE2F3283A287.idx | Bin 0 -> 6114 bytes .../index/usbd_pvt.h.2CD35CB6E479E150.idx | Bin 0 -> 4582 bytes .../usbtmc_device.c.814CA61A9A3C3AB4.idx | Bin 0 -> 1278 bytes .../vendor_device.c.1FAA1FAF6262F519.idx | Bin 0 -> 1278 bytes .../index/video_device.c.106B56EA6D6CFC43.idx | Bin 0 -> 1276 bytes main/CMakeLists.txt | 11 +- main/WebServer.cpp | 374 ----------------- main/WebServer.hpp | 36 -- main/embedded/filemanager.html | 222 ++++++++++ main/webserver/ConfigHandlers.cpp | 78 ++++ main/webserver/FileManagerHandlers.cpp | 392 ++++++++++++++++++ main/webserver/KnxHandlers.cpp | 35 ++ main/webserver/StaticFileHandlers.cpp | 35 ++ main/webserver/StatusHandlers.cpp | 29 ++ main/webserver/WebServer.cpp | 306 ++++++++++++++ main/webserver/WebServer.hpp | 66 +++ 87 files changed, 1172 insertions(+), 412 deletions(-) create mode 100644 .cache/clangd/index/audio_device.c.AF7F3B046C0957C4.idx create mode 100644 .cache/clangd/index/bth_device.c.873696740B7C8D19.idx create mode 100644 .cache/clangd/index/cdc.h.AA9F42A959F46125.idx create mode 100644 .cache/clangd/index/cdc_device.c.97BF2CAEDF28C4DB.idx create mode 100644 .cache/clangd/index/dcd.h.22A3E76D1F1071EB.idx create mode 100644 .cache/clangd/index/dcd_dwc2.c.EA12668E199B240C.idx create mode 100644 .cache/clangd/index/descriptors_control.c.FEED3E9810D6E4AB.idx create mode 100644 .cache/clangd/index/descriptors_control.h.89B3FC6DB16E58AA.idx create mode 100644 .cache/clangd/index/dfu_device.c.E977E4CF976BA9A3.idx create mode 100644 .cache/clangd/index/dfu_rt_device.c.2B180B5E9788CDA4.idx create mode 100644 .cache/clangd/index/dwc2_common.c.0E00B74601DCDAB0.idx create mode 100644 .cache/clangd/index/dwc2_common.h.8AB5E347C802DCD9.idx create mode 100644 .cache/clangd/index/dwc2_esp32.h.BEE26F4CCE688400.idx create mode 100644 .cache/clangd/index/dwc2_type.h.26FDC14A89C4469B.idx create mode 100644 .cache/clangd/index/ecm_rndis_device.c.5F219BFB804E7E9E.idx create mode 100644 .cache/clangd/index/hid_device.c.F3E3B9259A02B7B6.idx create mode 100644 .cache/clangd/index/midi_device.c.C1D4AC48AFEB6895.idx create mode 100644 .cache/clangd/index/msc.h.35B533BA58CE6641.idx create mode 100644 .cache/clangd/index/msc_device.c.771370A82CA429E0.idx create mode 100644 .cache/clangd/index/msc_device.h.3A2AC52FC788AF29.idx create mode 100644 .cache/clangd/index/msc_storage.h.F05387CBF173ABFD.idx create mode 100644 .cache/clangd/index/ncm_device.c.04581A475F6815D1.idx create mode 100644 .cache/clangd/index/ndis.h.F1FD71A464D10A0E.idx create mode 100644 .cache/clangd/index/net_device.h.25F88D3C45366687.idx create mode 100644 .cache/clangd/index/osal.h.7D98BB9A3CE57313.idx create mode 100644 .cache/clangd/index/osal_freertos.h.B38523DE336A0048.idx create mode 100644 .cache/clangd/index/rndis_protocol.h.35776890022ED484.idx create mode 100644 .cache/clangd/index/rndis_reports.c.0438802D593EBF27.idx create mode 100644 .cache/clangd/index/storage_sdmmc.c.590394090995911D.idx create mode 100644 .cache/clangd/index/storage_sdmmc.h.AC1BF042302BCC31.idx create mode 100644 .cache/clangd/index/storage_spiflash.c.BFB058D199D2F441.idx create mode 100644 .cache/clangd/index/storage_spiflash.h.0706D514402D1BE8.idx create mode 100644 .cache/clangd/index/tinyusb.c.5C682DCB69D2FE17.idx create mode 100644 .cache/clangd/index/tinyusb.h.794EEE3601819A5C.idx create mode 100644 .cache/clangd/index/tinyusb_default_config.h.D4E05AD0E6E88D99.idx create mode 100644 .cache/clangd/index/tinyusb_msc.c.31464F38D0032D28.idx create mode 100644 .cache/clangd/index/tinyusb_msc.h.F691256E4BB75045.idx create mode 100644 .cache/clangd/index/tinyusb_task.c.4F298DBC93948AAA.idx create mode 100644 .cache/clangd/index/tinyusb_task.h.989EACF403225020.idx create mode 100644 .cache/clangd/index/tusb.c.454A5C292B21C858.idx create mode 100644 .cache/clangd/index/tusb.h.4FB99F46C85CC4E8.idx create mode 100644 .cache/clangd/index/tusb_common.h.0A109704CC3CAA28.idx create mode 100644 .cache/clangd/index/tusb_compiler.h.1445DFDDCC9E2A53.idx create mode 100644 .cache/clangd/index/tusb_config.h.9F38797A39C9C9D5.idx create mode 100644 .cache/clangd/index/tusb_debug.h.C500CCFCB8EAC876.idx create mode 100644 .cache/clangd/index/tusb_fifo.c.7ED3466C380F385E.idx create mode 100644 .cache/clangd/index/tusb_fifo.h.36D8D0BFC711BB7D.idx create mode 100644 .cache/clangd/index/tusb_mcu.h.56D7E81A60029B2D.idx create mode 100644 .cache/clangd/index/tusb_option.h.2B019640FA516ED4.idx create mode 100644 .cache/clangd/index/tusb_private.h.D8423E0FAE6C950F.idx create mode 100644 .cache/clangd/index/tusb_types.h.EB765862FAB152B5.idx create mode 100644 .cache/clangd/index/tusb_verify.h.D32763C60C41FB34.idx create mode 100644 .cache/clangd/index/usb_descriptors.c.9CC77C8373106E12.idx create mode 100644 .cache/clangd/index/usb_descriptors.h.A0C7A9DB4C042C40.idx create mode 100644 .cache/clangd/index/usbd.c.7F1DD9AA33B4C2D4.idx create mode 100644 .cache/clangd/index/usbd.h.56783067A4DC8DAE.idx create mode 100644 .cache/clangd/index/usbd_control.c.2A74DE2F3283A287.idx create mode 100644 .cache/clangd/index/usbd_pvt.h.2CD35CB6E479E150.idx create mode 100644 .cache/clangd/index/usbtmc_device.c.814CA61A9A3C3AB4.idx create mode 100644 .cache/clangd/index/vendor_device.c.1FAA1FAF6262F519.idx create mode 100644 .cache/clangd/index/video_device.c.106B56EA6D6CFC43.idx delete mode 100644 main/WebServer.cpp delete mode 100644 main/WebServer.hpp create mode 100644 main/embedded/filemanager.html create mode 100644 main/webserver/ConfigHandlers.cpp create mode 100644 main/webserver/FileManagerHandlers.cpp create mode 100644 main/webserver/KnxHandlers.cpp create mode 100644 main/webserver/StaticFileHandlers.cpp create mode 100644 main/webserver/StatusHandlers.cpp create mode 100644 main/webserver/WebServer.cpp create mode 100644 main/webserver/WebServer.hpp diff --git a/.cache/clangd/index/Gui.cpp.BDF53DB313293DD9.idx b/.cache/clangd/index/Gui.cpp.BDF53DB313293DD9.idx index 6a9e5e1df2368fd6810bf3d52fc047a35d969197..5a2df32cb8ea3f7b0fe11ef91ea8f81e20bb49cf 100644 GIT binary patch literal 3026 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 literal 3738 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 literal 3556 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 literal 464 zcmWIYbaOkw$iU#7;#rZKT9U}Zz`!63#Kk2=nJGZJ5Qr=0*q*lLV>0Anb(r6wek+Di z@nWER)Z`g8^QP{I$n)QR*F?F$a^KEbdON2~s#%lG6ksV5X!)s4ziw-*Qps`I+lJ6wA2bk@4BPE($!XQ_{gki1%3WHn&6Nb44C=7B1Oc+KpaY1Z{c$|R;#Ymt_auPu@#YM@* S+#m*Xo>UXhLm{7|3=9AQ+k*B0 diff --git a/.cache/clangd/index/SdCard.cpp.485103BC6CBAC699.idx b/.cache/clangd/index/SdCard.cpp.485103BC6CBAC699.idx index 3ef0b0c80daddd641cf17970a9e5e1ca2a60aeb0..cd3881d239e5c1473b59d26363d2615b39f0a549 100644 GIT binary patch literal 11154 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 diff --git a/.cache/clangd/index/SdCard.hpp.4F7BF469B05B7ED5.idx b/.cache/clangd/index/SdCard.hpp.4F7BF469B05B7ED5.idx index 161efbdfb0601d6243fcbf9481826ea4679ef7bf..6972fe79b6fa9415fa0bd720f8abdfb168a98121 100644 GIT binary patch literal 1056 zcmYk4ZAep57{|}f?%8(l?(Dv}yFgnnj4T?V7S^Hww<_kZvC|DSXA+~;>|yj4}} zIfN=&yggn1u#Y|>m0qE6u&BH7D0a zwvG%eo*BwN?syh^LKec^>BU4xW;W9>wtDfdu=mAe;7)vAb|wRtuN)Kl%SOwuPTekg zo@$+lJoU^>x7IJkW3KnwzC)gPWy#=J)!7!QyKNxltbF(PXgBPiB8P zXMWFZe6^`O6^eE>-7+Bb_Gc`$>S88KU2{7H8FE^M8Xytn|PDL1mf7jg!XNJ?WlsyMs^}1oXQnIJntOsOC88eN!SE2 z;fW36Bj<+ZE|j)UOPGV$%3JLaR~rZa)^`S$?bty7+qT)}W&$w^`cH?(*U&LwMg?9O zs2FlIzy=z$T1NpkP@vWN^udPd)47?qo6BHY0%HJ0z|Esl)iA0eV2XrkGl~V=yOzEmn-2yAIeNB^4QxuR)2F|8DA*jb>JP+!K5yyA%A0nC{sC^} BBHaK0 literal 862 zcmWIYbaM-1W?*nm@vO*AElFfyU|EInt)cgTRpA#grNx2ce@ zuyeG^sTkMZKp*MbUOg<_>FF8y2fi#+xUi-0Gb<=}1{>?Y#t!6WFTW>JwHxe#*{YBM}^VBuYD=XZt zS2ex=_m^3Jq5D6E;>z443q}Tp2VWYG{jkgu5@6zDW?<#z;S~WB3>-i=0>Nath^yB< zjYY+nn1Iq;EL>b*0w%5fdhOGH-)^XjGjRi@xmmbb!30cN&wNpMwn3BzL^lr$4;L$l zfJv7nep(rE`(FVc6DLqNKPSH+n1D&kK3=cGaJ#dVor#Hoft87ki3dzDaDrXN$jW+G zI^q4SeSwPvm^gs?**MvRzywTx2uiTB2(w7Tq%X@Y?L6jq zcc%ao8&Fz|S4@zVm6MehChf;O;eT9C!8cJRMxf#BitIXI0w!IQnpPZ!6n>0M;BbSv z85VAgknn;D!@>)w8WdPCVOTf;RfEC@CJYN7pvT!%*mPjtIB*yk zcvxAuSp;E0zyppom{J~AZdPt?1P|Fx9#$Sf9&wn1cvyK^c)4I{1jv)&Rf6$g&H*|a z6!b9TU{*46fJz diff --git a/.cache/clangd/index/WebServer.cpp.DAE718E08A398A46.idx b/.cache/clangd/index/WebServer.cpp.DAE718E08A398A46.idx index 7b856837c4d44460f182bf490efc18591ee1c762..c6b8df719b3fad6e2a646e81c30b2e092ef15868 100644 GIT binary patch literal 11528 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 literal 6864 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 BBKQCR diff --git a/.cache/clangd/index/WebServer.hpp.32EAADB285B462B6.idx b/.cache/clangd/index/WebServer.hpp.32EAADB285B462B6.idx index f9e16897f336b577cd0a6c00d0b41563820cee22..d2cf1c6ed76270c6662ebf99893ae67fd19a71d3 100644 GIT binary patch literal 2616 zcmY+G3s6*59LDb+4hy^Y?y_9&-Cg#jyX-Cti^_tc`8FI2WKzuW)tK+f2V?O_RIpG{ zi9{sDAih-f%|>;y#K!sCS{Bp zm#pQu^!XWuIScaVP>$nb*mquj?n1YUa2WwKD7Lt~+_H6F22OERGLb zac@5NL|&A2Aai5er9;yT+Oyl`(zC58W9Q7j@^RW{({J28e<7x|+x)0%>diXO+^PvT zVppVpzqqbFz3;{mwr;NBME; zyAQSu-MMQ~^Mg|BqAyNX-tRUC)?X?*!aLi<&YI4ghWw&ZnqDzQomM?iclqD4vX&1Q z=kIOWTyvyA43uOXEy#XcyC$ppz%=#w+2PMpR#mhfo%yQIS0?@BTK`ICbN9%mvj@j~ zd)(6UQubPJbMf=y>OO7WD|_>n=gch)fV%XeyY_Re-p4N4iwfMj5v2|3(zE}hMpCh3HN~0w8z41vbR$EE-Pfm%G4 zWPmJCtJfO9i3!w}WE+g^6R6#1PsJVt>hL-OpiH1npEDJ_3)JOx1+XoF#`)q>QMLkg zC%OmWrUmNpc~U`}K)vza6mT!lL`Px*P-EBO@F(CpuwHg#O5osZumC12K?50gO9ZNQ zYyG%1Z7^=|5~gK+m6(By8JVoa3uJ7Z$x5t1#;Gz{i4(}!Ad{6CfsDN|S&0wGhz}+! zu>l#e!D>y(49JKJCMz)k8RyLgQQ`qIih#*VEI`K3NNrCX^!!=l1ghrM5}+1dm_T5N z>GkL+ys#$rBt_Y=V1XK_L5Ff?PkjtNJRxq_dX$*KaHwM@EAavuD`Bz{E09s=OjhCq z^3!)3x9;v!`7oN1!pl-GQh1|;85k+NNx}$>6y7Z1kQga^tb{vdr0^CAmB&cotx_*i zc$?IV6y7fNB87KIC>TZx@03uej1=A_^&*9jlW=p46y7cMB8B%zC?rM-@0C!pj1)dm sLN%cWI}Ig0aT+W=m&{S_H7|Ewo=N$I{a=F*%`Adkz3=yCu6M=^H)fb= zh2HX#qOyFBVHgL!{bi-g+vu~LrFU&(ASI_YQ`-J>N1AxTv$yN;{f?9y1HOI7t4ivg z3)-gigxsy$y1MG8ENmFe3JuSD;3>Y+c>ee$&#Rhsk4bp*`R<9qbHQ7CHg-2IUSDv1 z@}ty`N6$26wp=*X5Owy;Dl$Lppg*{(ejsE1f`=1oQTY4v{{1%(y}8jG*aIz>%SmtERSm|ErmAz}t+h=8) zLsTSE+edt{SSNZc*nPv}lV5kGgsMoOb`48v*cj|0t{9lGS|54SmR_l-$U-ONlH6FV z5$$jOsNSSY$pNohMH01hNKPasghWF29Ku!4>u-uukQFgl;04tTU_YIg=AOOcV2pz7 zG&@Vla$=t6ZD8MdazDCpnKMp7Jk3_@if#t5+qO*iBq-l~GO|%yb*OGLfXz|=A={EyP=5o7;_fRZU%-oyUJpG zByS)o*f6O>K{BmfRaAnlyj6z$civ!5``TfzRTN5XUgIOMMYBYJU0Sr%KNJ0<$Fe3h zSQV(Tyh#gWphaba5y-%Z$_5*dQBM%HUL5COC9HC)3he@9bhd#CW&8_gP$ZJD5G^D^ zQG!VpRspiKR0Au>K$OY`Ns!@b75)%30Wyq)EuzH?i|uO m(dC5JF{MQ-^Nr2_i94` diff --git a/.cache/clangd/index/WidgetConfig.hpp.CAEFE2EEEB2A6996.idx b/.cache/clangd/index/WidgetConfig.hpp.CAEFE2EEEB2A6996.idx index eecdb4b50746d529c687d2db689ef1794a14ea69..f872fcdb758dd43043f565341f4ab4e653195595 100644 GIT binary patch delta 13 UcmeyN`a^ZYWg$j}$ybC_04&!9ZU6uP delta 13 UcmeyN`a^ZYWg$kU$ybC_04(7JZ~y=R diff --git a/.cache/clangd/index/WidgetManager.cpp.D8CE609DC911F13E.idx b/.cache/clangd/index/WidgetManager.cpp.D8CE609DC911F13E.idx index 21c6830b6efb9795795034781503169974c9aff8..f41ecf1cbbdbaabb78f0e555dc1b20958b2dafe1 100644 GIT binary patch literal 22450 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 HX`uWMr10u0 diff --git a/.cache/clangd/index/WidgetManager.hpp.8559171B7B8A010C.idx b/.cache/clangd/index/WidgetManager.hpp.8559171B7B8A010C.idx index dd90ab0ebfa64f36464608576eafc93445af3905..212ea47b76b077b9c156c0f90be86721da706b96 100644 GIT binary patch literal 2486 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 literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/bth_device.c.873696740B7C8D19.idx b/.cache/clangd/index/bth_device.c.873696740B7C8D19.idx new file mode 100644 index 0000000000000000000000000000000000000000..1e802507fe99f31dd4017c24962ce9af616ca863 GIT binary patch literal 1274 zcmV#JzUC&`ob@o65`)MP9u7t~bh(PI>2$E_hx29qq(L-4>&?#*9tP2z&L{qI z6fUL+568n1{TeL#Up5!sh1bI=*LL>>;o;rvfsQ7AbW5Z0x1fLCx%#J(&O++1mf_T2 zjtBH+5?=cgI-W&Ke>MmZ9!~w}u0}@VaMtfUbuOzqf+i%Z`FG7Te^ky=?9y~nITmNf7=V3H{piwaO=eOY^IPPCXZ+FjD zGzwRXy~B;dBJhX7g5EF2%V0q#;ovSpcudx+0AkmwV1{^LN)5*Fj2zNM>a_DTBZ(?X zB|%zKi)f;XLP^49BB~TVje!kF+nTc8Qd5y_s&up(71gDyO7%u&J*;QQl*VZqyGZvg-UTvC9tvY4y zuRl(RZB7Ww3(&1{mT3TOl_4Vyuvmr>z5^{moD}+^;Feyelf|N$oYO?`_85)=N|ela zyEF40mRkoM=C`h5mZsctB~2^jnh7VHWX)-7UkYY3r3>2nTDb;Rwg*^YvQJqH)vg@H zmY2=|gq5XnLm@`m^7E+um(fZ4(0*L1o}NxaBTOf2$4Ij?Er~B1fSZ`xP$X;xkAJM$ zHmvqLW7~gtNA|A#AR2ORENHUc(hcbDr-AP{RBH7d9xV_H#&*f0d`h_~1>2Fh;v#L1 zo!_@Am}EJm^!07&;31`li<8_{CjN7WK1M%d>w1!4w@N>9nY*SNotywkQrPeW5Ds&M z@0kz?--Fgl_nY>U)ePZ#sW8Z@z=@I@(1t772=}@vlo}FdA;l>qf@!ut*^gC@L3=?Z zD+4KxD~kCJ*48jUw4MtTuf%co-?zF~Uf1iYb$Mm0G&mP7&_j+DuKSsCP zx%@>Z=JID5&XWZF$y!Cu%Q6wn7!uoc{h@~<^%C^F!@OZNn6gJ0)pJ598fMI*Tn%0WE>bABLDyZ000000CHt)VE_OC0CRF< za~A*r00Cs#6<5>?`hRZ$WdLOW00000000000Ap=rY-9ic0AXTa0t5vH2M7rY3k(eo zMoB74NJl^|E-xu7EHD!k6%rN^7a1KI8ypxkH8w>;Lqsz%G9w`(AP*!bCM7{AH#j*u kKR!D=Js%JrS4>S)R8mk*QCL<_T3cL8UsVHLV_9ASV#$v)rvLx| literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/cdc.h.AA9F42A959F46125.idx b/.cache/clangd/index/cdc.h.AA9F42A959F46125.idx new file mode 100644 index 0000000000000000000000000000000000000000..0f40a4bde8c2f2d2f7620fae05716081c53a9083 GIT binary patch literal 20484 zcmY*h1zZ)&+n$|0DknH=fQ2Fk26lI2g8^a-0tR-V7qJMD5CbF(Pz(%0K|n;X69WVr z?8L%u5x#kM=RN-qeskx&zvp?*JG-;9v$H$Ty>>$e4lEf#NdKurmd>5F*jYsgsmA_s zU%Y7MH!UH)%?Vi=ePqJiu&6Fo?-czu{j*?6#Dlr-4~NZ}_jSFHqpM*yE~H68rfr-m z+jU;@6w9`kZ{7a)v$=ZRnTpFdT^;UVweRoD6N`I4^sV^mS?jW`Cq`&mnI^V7RNB|1 zWa1FJ#$jbARjr%0{&h3`K%?-Xql1?HF8#Oj({gXq>zY;G-7U>_xGs3p`b@%ydh6nA z_KwhXvuWI*xkLRa7k3r6-ux-^S@(&5orHpy@1xC2O(#UBCgs)Z?{e4oUB5o}$4{7iZTZs9 zTTh+vv#~sVcG&B--}hFQYMl!B?@UC~MHwyZBKv>+ndGo|+S8YF+Lf&cG>`3+>=LK4 zy|t>%l{Y=_w>#wDvel=?VGB---TSvkoYzI0en*_!6cpQynKs_Y;bZ$%?XEah9O70q zdgzuTLEkLx&9>Vf>Cw!tVsOWj$;lnl>PEeuWSRf=isQIZ)`y2ikEl!R%7a$ z?rxupCr0VEyq}!qkv!b&x$}L^gH9u}5{hz`c=w8)-Z{doYtHBmD?{Rvnj}TpY`@;; zUAV=!!}I@YU7T0W^~`NnH@|D2S05K^qJ3-G?Vt~=hkf~Q&7xb4z}$!;@4%DEJ*1Ui zDt$6~ygRS|mYpwWIXmC|xou0m{yiV}e^L-#i#)UZT)FghK)p#HU$vMN@V!NLUynoU zvu}J!G)uEKH$R(EKc(&X4D)W?9p7!3ArAU?r{Ct%h^#&*rmgEYR{Os2XtxQ$sl(h> zcvdfR+BHISSy#Pj#`l<~;Tz`#R&TmC`{2v2`GM}Uf(j=4wOkjt`dnLwz=nGkwU|@< z`?hLD%&e6iC#>m}KfcG#tR>ZdgxuTM=2%LD7nPeV{y4IW_reqZK1LL|EIRRJPTdi+ z`_?fj*kv}wE3eI>9*ayf#ds&Lt=DJepZ(rzouD7w-TQR*!Ddxj-KRAH zm5xQ7s=w>MjF;nlo;EdK^7LWU?+CNo{q8$etiQIw-K5Y$%Zs(d%a0ygS1P#rL)<&J zHs_zis^Op4I(sZQp9Y zsT+>SD$M)X$1}La{$0h6OH+162N?g2ZQ1j+-}Ro$J)0Jo?%L<(Y|?7-^=@@e9PGQY zO3+BRNyXi=&wV(uJngRIJoDGxOl`gn2{=A+>c}Sn_o6$DnNrZIbnb(a13Qd&m5??2 zZcOahuJ!=`LmuvFVG$lSX%34!zB)X^!>Isx9|POzstv6uM^Y(~!bw zS0B>}!~D$5KadUPcNWfn@XF}X<@uF6S!Oj`xy+^W*+V_oWu}g(KXB~+i0ssZ7B_y{ zWY6sBzOFDL=X6=%*?E@w7VAd64xR0>FyrVB=d6&Gm#+%e_+mwl7l zq(7MP^ht22rxOjZ>UMI{9^18Zn{5d%Ofea7_Qufni#;#aOH1x_qd3W_$*JQzgn*vY zR~|L)IH*^v;)1C^Jjvvr_WqrVr}|oITD8j^_^0&=^AR;x?HD$A?v^JuebWwpDV#X{ z{ip$6gN$0v2)lZH`8T(t*LN0Y=6Cipf7CtR`t#7a>1&$NzeQE)q4zI*QATH#T)T}^cS`IlT(i6AkbY=l^gyTU6_=FR|J^gLe`d^Zt8G1OynD4D zF?NUkvp#iNuhnlxS@}$>GNbG2o?pyw&fVN+&+E|JqmNy2EHJy$^=c*e19vmupS#{^ zV9(_*I_lhB8+-J3Zk%3Fb9!28{M}b?t{p4U9j8||S^imb=8?yrDjyF#T35Z^YIDb= zQ3Gsh{+H3QW6EI@a^}^L>FS*BlRr5o+7`aewVgP1L?f$#9}*7!SiUtiX-yZ~>hHVv zGMO{6M?3Gae|}V7$nZlp- znkB|Q>N!_B|9RvPw@3EI$Bk#sZgSdp(RjNv88qSbtPv$oTPA*Meq;XK?FSxug#9*a zy4Y>z&|wbm9GttTdrkL!X)|^RieRF=CZ2maF-51XwVD?kw7AD)#z0`R%ynpR*h8kAJ?!taen<`^mTRVu$(6e^EN3M(;U4KSxaYCY-lD zSUC38xZW2Rx4!?cLyYg@0pGtL*?E86&Xh%1dZsW!>?p4Zd{iCqFk zt9IX2F2;c=%ZGpc)47_*0P|*JhE@)6nrmf!Q5Cqys+IM&H&HKgcYiVuiA{H1-NoK| ztb678SzRl-d?uTIw#plFMs?XPBv!raa%9@Vr46naE$Q1J>+8k?`!_8yOjMyvbJ99Y@5da7Ult&WWf()a!t=hXW_)nm&udiIOmH~p@*Tid*g zJu>P9-G6JB6#Hn@WXE=^PW>Er@rC;S@D0_%o;OKeGQ5s(t;VSJX^%FKSyGa5{pgAK zab^((%k5&9UD*3{g6mC(!4Bbn{%#W-M%Z0CYF4;m?0|f3P-|V}W5?5$4(Q5zRrlmRNCQ)qZHRsRi zQ~S2IaR1Zc;E9m8x0-5mGd9^bezzlgTjhw)`-fh%Z?-9J<};hH4*6w`qk7NZ;gZ$z z*Jy`!ozxRQU9LE%>4>k}ax7*~=%2Z%}ro)D8 z%b&DdGc{$^tUDvl+l|p}YZdZl`?LopFP79#zt!X1yM&d_^9QGSeVJK#fAf_dXZ;(5 z^gAciZnl?~mKPd~^EEF%i*qY8@~xPMXy3&*0Qa zUa#E!R^8Sm&X3sEslTgJ>p>r*re$`XY7?I_y~~_=bACqOt#|#l$IrixSLf|DvvLk? z6j8ZFg(Yjq`rw?hty5wX7hMjV8gJz@WmC|g$lUu*N%x)R7dp-NIW(=Ut@+?dmz$*Q zvwKsoPg8ZH=WM~@nHbk}Yqp#H81HN8({kU&My~x5{;F}uckgy5+Ghr}+;#iz-ke9V$0#S z?T&gR&o|PMZvrF?5?cg`12GbHB_UJTN0qj_MBiXpDXgKw8p=*ViJ-m2a5#tdCl7Yg<+w@`=>iFT1XkGbDG`Km!W*7+M8ePAVYd%f zmPoLibc;Z@2<&u~2wKDCJC^nP%HOytRU|SWvhERBVIxb4<&-ZU{dMX!>S8sCbOz;8 zy0oTJgKD3l?a6nlE$}W=n@FS`$hy+5?UWj1mkph$vp5}m;6cOc66p!D6?8>Yr3TqC zL$*xMgs8~yNG9t5vSR`(buh|@_nMz`?ZCyaEju@PNLpJWUeIckzzREACCaVh=zn{F z<$U3yHe59Er%J?p6XLeyR0!=?M^ARis-skMl(O4NiKr?bxAJ3X<41KR(i>X!qFybP z8d}UYbjjP7YogL7v^3X~Tk`PBp_&}ZE}0TBS;u+*K6UcnQD0Aj<(sX98kbNu0+ooW ztv?)GD_xz^P$CY{v*VIUpYSgE1K zDzEq;`g%9!!;AT=nQ8{8-UzI)(V;~7*h;vvhiPmLuT?#o=}Cm#zsXdW43n)Ai4G=Y zLQXHJQ~8T?-)0i&4*8bT1Dp0HhDpZradUPh#XA-Xv-_!F{SkJXhB``6nVY=b37Y zd{IAA-AA~nO2mtLtaP{b@5HKI^<=d?&X0)3N8kynM9j6$Vo0m!iQ!DepAv%RmjF)* zIil)MefN#JuLHYFq!AqcFgmP-Qp4fz6tH_=mrc2xeQy|(`N-WHF3@n8k(3Bp!-U@L zMMQGNobBDUk^qk!`5aFm<7S#XfrSLS8zRQsYv1zA6z_COJ?0=kFQT7yH7OYJ8zDl!&Ugv)oO} z9Jlq=l8ODagB*jYL{QANQiYnkhBpN-G%!c-C<2=5VSB zhi+CP_KN!DW)H{I8Kbo1rJV3M6^>JO#!8eED%ZEVs-|Gt$7hs8Ea4cfsWrP9p$1K= z;kMN#MOP?$xy}JwO`w_tXjO^WYWT*kzsDbTA1jfrkjz(Lr5i>_c+T*ks9o8%PqABt zaeA^%o_eB1T{JxFl!yt3nrw7mdW3!LA_F1eOgfWY4yYm7Cc{;`6=(nAyhjp~O#xZH zzzQ2vN|aCbJAc@%k8K_Et8o@TVRD<4JDRqd2-R>N&0F1 zoFy_6lym5uYDx{NWJ3@7TAh7*tFyJUp4^x3wZ~NR82Uwt*z9cAA30;YJGkH|cuO^J zVH7A4RRi~r+Tt1c#6=?Ph0mW3qJ!EhH8fcj@1cJOVpckjnL1S>{XpeHUDy?a8dTNs zr6RP`qJ;iU*D{sA+{fDlx()6jC6+tWl^L0_7XL*~)snxm^omHYh-?v{L|Li~`Iq56 z?VBbHoFuc@hbdyCq(r@i4b2vE0$6uKS@ajO;OAOa92xvm!k!TKKaHB1r2h9eDBSock3^ z{w$ElN@zMvV1DAjVlt_C}W(cgXaj!&Ki7#)e6&X)lJ9S+ok zOeeEdH`JiYFx+qPbK7rAF46ucktQJPLc6q4YLJ=Ydx$pP+B4+D5)X+?2i04F6?W~E z2+B~3^G4)PpMg`WL@$-dB9LwnSYbDm66GVr%RJ$Zld67|n5BBMMxNZfMPqM~O9|o<`ll}5)`Lw7#EwXz=iI^{9N96qhu8q9#{oxi>-GcWAC8El* z!e6sl;zvI`wm7PZgJV-7sg%2b=BCx_%^h$(;;rt-S4G)>&~IB6wftMi+T?yx?#UZ|FQl3V>u zh0m1rq7ortE^pQCS-tS%4}F;Ot*pF6g-evp&`Jbl4W$pK)cEezuw%n8915GLW)lnr zC1S&_k5?o#X)q>CB8%Z95(HM*l%+(-W?28l%(>z9U1%S!Cz0|n&7zttSgt7%-#QjO z_0jg}6uCtrR*SXkpct(RvatU${J~%Yz4q60!f@u3GuER^czEdLln& zLPc$;$d)fkMAb3-1${oQdb2}Ie#-4eh%^FJN`!Vb%0;`j2jk!HeN zr9=?20(VHQwhlR$+qd6|gZYo3`2*9v60u$9NBLdNCY;zQ5hv)DT!9rPQX-@xxaiDs za~Wt=;JZsAb3wULV8sHXti-w5)II*nx}k}C^yIcYc^ndr4~c9XC=pw3yk8YRrAkRG z9^VD3xd1nt5>b`)addQ**(>)-#2#9mO=q)<0X4LkZn$jQbRE;y+YZ<-k>MblMyIt_ zYLLYnWC8w~MMW=N_Tv*Bp|_ zIB0eZ9b=)?(BxUeIV2z0e@tV%;gFu(kjGOh)ud9kOj9BzOL=-ZXu*=(ELkT=wu-J| zHwDy?EY|P>Go^*t{A}j3B#BG{*>!;xCR8Fw4VV9yt4ZD7rB|4;8z?=f2fJ2KgX*Xu z;i}!|CkBfZk|i<$WE1H`CW9Je7YrwHv%fUsTG-*k5^)CE34s;Xt`b42{lVXLo{wvM zv|rfS!`OG{spdTNof7eMy&AT9pt*87MNgusiY2@x*106IXT1_p^}YRy=(W4=rbuL+ zeDCZM=q?!TN|a9*$M6~3Avtj&1u0tcTDi>xnhBG9rW|Fda+?j^x-6m8(K1ycQ{hZr z3aqd>K#8&r7dPX3I^;}fRV7^_|ABI=zzREOC6;U4?}gj4zZSQcaxy6M1Xh?*iLw%J z%EE}Cj{X*}nX(rsJ*g*a8){IUH(ZrL?;CbKe*SnS&h*|?;|(*t60v(Kuj?zW={D(v zL?%KqSL)hIsUg`F!?o+z=;BGQZX-`gWVPHihXs0AuwdUk(d_6(3l!x^{`}1wDz9XWJyIOQP(G zC=pdLod$LK-nU;i4wpAn^9F{C5>eIFc;%u>m0YqVG8WEs0-eAHs;}u4ExTDj$L`A;FjkZ(cZf1pG+l)=yL}6D z@ZiFzCJYWviFk0mdwYCM_8OQg5l6_DBe24*z7pkZc=bc~p7C}Y{Uc9L?#ffa6RLRv zQ>YR#pIg7Z9WE@dc0*70$a7RC)nwAPY$(eSRkK^Qpm!^5x*-u;Xmu)`%5ER1p~ZuS zbKN<*`hOQX2S_;kk!O>-sRY4husr;J zYLKx_W9YerUe*T=47l0afRnv@}O!t6l9zZ%J zV!GPuQqO1E!gx|NUi5>v&>Q`ilvy8**fiKq%6TJzU!vwB5Z@<#5!)q=1Z zURaa}?QUf_43>`%jEWjp9raow{ow%ZsXd$hp$1W?;jTC{`^4L(PkX+TNGp(aq#fD3 z4mHRQ8AfsPl#s-zt0nJn==~NnzoA_v;?cRjd%kjVa@u=6*&&}pG1V2r_ZlUlYFV{= zzX#iXFP4Z6G-*fe*f)Ntp~(Y=BWrWhans-WCq77I0La{^8_NVW$ifV=y0&fln+@&z zSt4uY9@!+&O)#XC2wKBCh;fWj^FNzjf0Kv{WIQRb!a7BXpw!_w=yfW0);FvE-zCx% zl$~fNHl;ufsyg`b;_EW6qFyh)ebt7waPhlFRIPzei%P_nx32l! z(=*^isYIqh%dZ7i*o~w_xn-O*yy|XmXxsf>sh(_*M}m)N>?5-KLy4HL zlSmK9w~Q`h-+rKmTnUEzmn@n#-QC6Ff8H8FWAM|k%L{+#rvXOs(kM84-{u|~U=;rh zGU%HDMlsDGgFYEx6q5`x=!*e{dto?*UKn5$9}NBmoiD(=SKKa~LaPffip>RogZ36+ zz}td2`dI*1ye!C|hXoigupo}66~MVsg;Qu!0mesmsNiqVlL8F)p>PTEc zS{(1O{6`gFE(=DN1!g}`{?Lp93^-8`NB0TfU_C(`?IwVO*939&mjJGqOOQc72{7D4 z!YTBS0K>(+4oz z=)oB@dH@4156p$m4#2_IfjD|O09Sk*$e@1%81C8N6xua_;T8?fphW{1Zp+{d+A@Fv zPX@MvMhw8Y`+`$wyb!3tY{3~cTflF?X@R-WT>&_ERB#F%6~J&81!sPxraBF;{ugnJsH4o9|ot; zhXIUizu-7JF97Fm3(la?0vK>vU>oSH032);h@+JPaM?k@3G_|?&ixXcLB9lC3+|EN z40LGuIP-0;9D^g2++aDM}5*j3ss*4!Z01Wpba0Yz{!1#;cLEr@G_ovf}7h(7NO6>gq3an_*4!{8Rku;KO@Cyh={hnoZpI4Y`+mdkNW zWKUuZKA6#e0X@V$7rZ_6TL8m77M%Go_-e49w%Z_qrOy>fu2>Zh5#1N?8}7K^6!tDK z++e{OG*|!w?h4F>jtaoRPJuXDC;*q86P!TP1mNJ9Ks~x709Py$$e=3%8197N6q+D_ z;l>Bfpz%Ru3^zM)hIPhCTJt0|+>H#lNLi_l-!{<;0a;}W1plS>=2N#X(E$#CXA4Hz z0&_Sie`t#UhFc*xgH{M&d}SX5{sx^7z;L$%r_k*HjBIk?INBQk&zHRom<#O;z;Fu# zr_jOx47V+C25k$#aH|4m(4_zjwsfWri>27q&W z0jIuq`Ss6X?>c8-&I(3n|F=j&;{h<-Y`}kmW&>crX@IS$5++_zSrxegzLgqnrH1i_ z#sgqvzXAUVS`7f__5#kJvj8S%?k3<28$#E_n%6|bDh#~^kVLi=a3Pur0Ot+@&fp9L z4EGCg24@~%xJQ69=n(*h`vN$Fo&aFD4}df10{|vPHUV&g;J!aF`{Yf3WN@D!7{0g9 zDcsu!M&8orIPT^HE^p#<9JlWQ=Ueui!QFc3T)sok8P>VkqAFW#fL}RrzaEnCO?ocH z{dr*craWhGKOPu)8=m910S`FrzH^x1mOJ2lpPf^WXDB690OoP`rD|MAFkm%hMUBIq0e+MfHI7&YF!TH- zs>YpK2C%ONVN{J@k{J+ASyAJ&gaHwh6*azhGJtJO#Zfh$Hv{4+D{B1I$bbaOiW;8- z3^+tpho}~pNeoD$swAq#Z}1FArmAGB#nnFpQYkBH+?`^;QOb%M-=`RmL0M7b@}B|6 zC@X6GcE*5A%8D94STi7tvZBU~Wd@w1tf+CUFyK68Mg5%b5;5QcWkrpSbk4ER7*AE*|;oipGgRefX%?!IQgFUpD< zKTI&-H)TbQ-|iXkhq9u^RXqcO#7044bNpf=1A~IZ;r|cVB(m2RHNMR-MVQEn8ejAo z5H7N!#&>lFM2V^>QHw9b42Tw0(V`X?BMjIssg)``1ktYnms=> znsI{QoC3e$J`ql#PXrk54dD!WLtt^i{UDrS={JitH;abX8FYuhivxFr{7-sZta)5y z{&MAy{q~Zmx+I$6-Z?(X-~hNugiFyR0t|PCa0X2wz$lIoP7r(r1%?|xIE7O)Fx>2c z*|^yQ7}?{&addY84%QBA17CRn=N1l5p@jn&?%UuDzHbA=T^gLh2Q@I)1&SZ9QD(Zd5EgcvOBMZag6I~L3b87_u1-c@D zkJ)PBnX#6zguf_98G>1fwhedu`YMcf_>Nwdf*@$_pYZHF0kV zmjmz{ZhYX`(D(q1?04WeIvoI)4GtVfYXjii&cK<|dm{IQjjneUT4(=d@Hc_kk(EDO zo5F9nvw<_{YygJa890MW9ALP6fit)m1co~nID?J_U}U2L$I+qyxNJ<|IGPdw=SBq1 z;5r5v?mOTN`VN4R?FJmj#S-A$T)-JL7XZT@1)M=M0Wh+MfaB;M09-Z=a2)*tfXglc zj^nx=aBd6W41PM48QBuR34&GtU|z{S0A%oEA~1ZrpHsNX1cq<%a|XBgf#KWwoWbQT zFnk}MGq{frjJ$o%aoo5EobT3i1~=+~;k)yk!Hs!f_-;IB@Ld8JzW0vV_})7(e7~JD zn#4~zJ+_s;(y@_TLRBSHhx;}R_(xU$s1CnFF`$&HN~sP%6EmQUs>-Mi*GLTT7FFJ& z4qvAk;3KMhL>+FIGQd|<`HDLH9L0duqH49M!?$Jz_=ze%QHTGZ0S1JMtY~nJz<|>t zD;j(OX22Pd6%B5Np@{%amm3H8>7r=>7}+bpadZg)E}H{5j<39cb1ML6@D&0WzWvV` z-2Mkf-u34=?)L*OZ}W2;H~0bPoBEuwSv0m_Rd>5@RoNN-6r`X3n`RhLCP-!FfKV!h zQo}^V6bGnupd64+rSx*ZSt^|^2VAAn)p9@~l?uxNuc-8@9PoomKgt0iq7)+j|Kr#y z>bHt@_&E`FVB19XHj(+Tl|MLAQGcMEB2HAtl~bgO>eO<;DN#CAu9fqmbpC$;S|OlQ zx&MJTht>yRWXA)?(d+=YY;oW?+8Y4pmIlt?69*XXVBico7=Yon1Mv5w%WL L^6zFT1knEj=4KT$ literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/cdc_device.c.97BF2CAEDF28C4DB.idx b/.cache/clangd/index/cdc_device.c.97BF2CAEDF28C4DB.idx new file mode 100644 index 0000000000000000000000000000000000000000..a5845efd1e28655258520632d861e9dd236b6687 GIT binary patch literal 1274 zcmV5E3lYokV%JdzCI+usFs2EGkAQYcj1?a&f{eKNRwz9&hO$yblSg4-tV5R zXcDg$2ZtMlMHCLB1$|hIm(hYw;=z4_@R)3L0mN-|!7K^DmIka989Anl)M*!KMz}6Y ztw1?jizwGcp%oE|%PNHrV_*x)wWe%#)K+DwjUy?ntDKfbufZ#}U_NpFQN(KQ8CQ2* z^vX*gSea^{K^L|Z)QLi}t!I=g*KB(mzD1eHhls=>KAHo~rxjZe6 z*fIyyD}M*(@JsGn`&|^R5el5hT2qWJTCdm>hEIQ9cNHK0we`#HtpjhEH=AZtt6rIh z>yH;=n-ju`0!*u%Wd^`FZOO<0ES7PC@4+aLXNA5h_@&qBWNX<>&Uqque+*9naji1Z z?#%oJ%ddkT^IKOjOH<*5R<;##!=#r@vgWk4FC}xCHU({ct=s@B+XI}m*@vv9ZdZ+fr} z4Xgdm*!CaZiM=mBh=E*K2Zn5RbPJ~YVc;(uDvkaIPY#F!>$>DgJ*UE!lI_X55;AR$ zo&RoCFvW66>D$}V(L+j)7bmr^?E23g`aSvuTi25Ux6|fHsN6T*8h!>ONntBEAROli zKQJi~egI>%={N0XXBff{N@Gw}fw@*&Fji>Q2oJg`lm<9+km3}$WQHA1_EVKp&_PhC z%0i0QmBSVs-ZCTVE7m(IS*3W*d#CHIm6j>CZZF}~i({7+xx#fem}!(N^`!Jp;nJ|Y zV2!U0wq%AC;J_fv5zf;cGa0@_IM35H!b)4mjLU=si?Bx6fYp`ZP`}RX|7wjmt>s}B zFqcf_hgSD<&<%RD*Xdn#F1o#w-ny2Kt?p-ptxNm4s=C+c_w*lL&mPCP40=K5Fh;lA zx&BFKE!2-PoO6!;WUV6aWyvM8mhhCbABLDyZ000000CHt)VE_OC0CRF< za~A*r003nG00000000000c5lQr^X*0HfI540Ap=rY-9ic0AXTa0t5vH2M7rY3k(eo zMoB74NJl^|E-xu7EHD!k6%rN^7a1KI8ypxkH8w>;Lqsz%G9w`(AP*!bCM7{AH#j*u kKR!D=Js%JrS4>S)R8mk*QCL<_T3cL8UsVHLV_9ASVni4+%K!iX literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/dcd.h.22A3E76D1F1071EB.idx b/.cache/clangd/index/dcd.h.22A3E76D1F1071EB.idx new file mode 100644 index 0000000000000000000000000000000000000000..afc7e8b92e4a10a2a1ba85a7a78ab2907df2a54b GIT binary patch literal 7052 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 O^CcIV1xrm=%Ki@p(s|zi literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/descriptors_control.c.FEED3E9810D6E4AB.idx b/.cache/clangd/index/descriptors_control.c.FEED3E9810D6E4AB.idx new file mode 100644 index 0000000000000000000000000000000000000000..188081b2a5da62543d804a33ca03dee7b44f37c1 GIT binary patch literal 10072 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 literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/dfu_rt_device.c.2B180B5E9788CDA4.idx b/.cache/clangd/index/dfu_rt_device.c.2B180B5E9788CDA4.idx new file mode 100644 index 0000000000000000000000000000000000000000..d998f01a93e1f258d85044fb27e6e200ccefd166 GIT binary patch literal 1278 zcmV2$E_hx29iq(L-4>&?#*9tP2z&L{qI z6fUL+568n1{TeL#U$z(Ch1bIg*LME};o;rvfsQ7AbW5Z0x1fLCx%#J(&O++1mf_T2 zjtBH+5?=cgI-W&Ke>MmZ9!~w}u0lrRaMtfUbuOzqf+i%Z`FG7Te^ky=?9y~nITmNf7=V3H{piwaO=eOY^IPPCXZ+FjD zGzwRX+TliF5%|MkLGKsiWw4-=aBvqPJSH2J1F;*GGebNug$84IN)G8FRoZ!yl33-1 zk|3?AL^M`;t|Z|y7G(mT#=sV&ZB5zis40s=X-g7Vml-XzT7y$;&RpW$qli(lV_emB z)+^3kU`3)_2A!LNQ_FKMGipo8Wp-kEEpPHcyb}#_cu*5>AP36xLb!~|eF(3Jr}DJW ze9J6Qr~Do0`j^?$t&YwMTU8w<`buQtu5R-H2I z>yHy+n-jwF9CWLkr5Zq6WynYaES6z}??6isCxyN!xTRO=WNXn(&S@fedkjYb#Y(2U z-I@6g%dLYB^IKIhOA>CmlBN}M!-SJfvf{M0F9frx(m8E?t=s@B+5@aG>8GrPYFCb8 z#|viw!ivJUp%5c&@p)AJWpvy=v>%tMr>E1<2-ES#G1BZ!OXAB0;3noa6bU=Q*FV;5 z8&>|VgJ7l$sxGl{EgFx@DZ@=>at#D!*A z&Kh4EY{4|k!GcCOMmS4$OsDu9;Vetm2uo!w(>CP-48jUw4MvqZhU#@@|GhP0l@j$V z;8-x3)vfN8*Y$d|*Xdn!&bqy$-l~=kt?m`V#wPttmfcJAG5x34vxhOxy`I;p$LMxD zm%r$&x%^p%vp7b7vR0AvvWx{Yh9qfOeW90Co z!u7`kcxwF}Rdf3bAD*ylh000000CHt)VE_OC z0CRF;Lqsz%G9w`(AP*!bCM7{A oH#j*uKR!D=Js%JrS4>S)R8mk*QCL<_T3cL8UsVHLV_9ASVr|hZxBvhE literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/dwc2_common.c.0E00B74601DCDAB0.idx b/.cache/clangd/index/dwc2_common.c.0E00B74601DCDAB0.idx new file mode 100644 index 0000000000000000000000000000000000000000..929dabe9a0f867133dbbf613ac1e547f8d9b21f0 GIT binary patch literal 5240 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 R9=rNVW8vlF4NN@*!2fi#S?B-& literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/dwc2_esp32.h.BEE26F4CCE688400.idx b/.cache/clangd/index/dwc2_esp32.h.BEE26F4CCE688400.idx new file mode 100644 index 0000000000000000000000000000000000000000..00f9b13bde006b839116d3f51db8cc4af4f960df GIT binary patch literal 3528 zcmY*b30M`6hBy%UDk8>|x-eF<2A~}ci@V=9+%3Avs(JK7`Rl(*f9>c`spcH$TsD$tyUuYL~hXJ(#+?{I3c6q z*_hh(yx5~9t;$g+Qui1!;9=DAaqo@cUv3QN#$S8s@NLoOsVxTzyk(ba;Obk(^{+W* zWnWUBdt{wyuFJmE?llX_ck&d_u{GA z;%!~m+b{m!Ja=9A@*i5)$&hu-Xn7XbwtLpu*6EQO@)DhW z9>?l!I9B-NDA`M#w_E#H!NpBoK`TJ&hJ-a6ApmK6W_>y~bl-vimH?1RRFapX0}LG< zU_Ty`+NST#_ip0^S`y$p0+=JG5=fQ61)~qO(*mDMfAhT3PZMAoa>|2_ zd2sRQ127n40A-5!q}_esNfn-I)Cbd%6K@=ElA@CnCZ;lx14xM$rCK8xxgfX6c8NW0 z3_%t{W-+u;F(u0(vmDx}NRic$Sq*J)!d6_V?0J!YTAxOc!VqBuI&>6`K&!HoLc|T@ z5@=VVi7TL8g&NYGF}*d zYUwKLRyCc7DVm1Y>;1)5^1Seo7n&e=O0XjyLy!Vj!F-Hrtsm#Ivb`6h3A~x!Hkc}o zfmSaser#Uzjo<8@yEzbf3n+mL4pP=n?{C>`%}3@4vxuqK`)g`fh%~%E6q$o32HRq9 z?%9Ngy>DKIBVOV;VsD&if|Sga_~ISm>AbY|Rn_cBd3F*w8*n~Qc4E0=jHvcFuQ#1$ ztK{?2B2Q0Mpcha(?_l@i$i1C`s~S=Qp>|of8KvM@yP7NbW-ILS3k<9 z@~psN{;}~WmFoB;9r;tnlq&lE)tB@0PDy^Gqg?`oyvx#MO{dt;SDB>X+BXUn@Wv$$_*SsLF}fE60hhiEZ)^ zlnv#CC{+TwfTCqzkyKF~U~>;-S2hFb{ke(RA?*H2Q@gi=aUfr0@y|vJ4uO zK?+AA$SP=11u49pzVk?Iw&*iChh~VU$D_Mk+2V#5_0q318qqpskST+zT9NC`EY-x7 zkXfn5SR$mK{PM%`2vQUz3dJcQ$XJtDGmIK)Cb@Uk4PQkG%7U~ks2cRIpFFp>uB6>S zA3|xNs$^IA{d2Q%jHFDV$TdE8WCvL~c&jPe#|f zvhk~W{buZa{ScY6pk)?RT~8YW2Ff$Gmvzf^(dOvmFes=tSB1o4yX{sxy4Vn3`+p*?GUy`v|6S-(sm5Nl13A;|bNUgn9B7vVeQ+A&+s`gn z6YquwyP>1{dp;bO4_!2|dp-=qIA_0P6Z6)tH;7m?E!qTYQMHPmS@y{PBdV$ddII_b zsBGaYkL((*`80&g7IX`h7JX}D+P;|l`Zo#^ON%weLC`;?_|@`(sVTzLAo+{6yi+#S ly#Rm}wgF(PezjA-l7(?Tzl`U^ZPKx^wX&OH4W_8S{SPQ=I;a2u literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/dwc2_type.h.26FDC14A89C4469B.idx b/.cache/clangd/index/dwc2_type.h.26FDC14A89C4469B.idx new file mode 100644 index 0000000000000000000000000000000000000000..ec2015d99cf7a633ffd8e1a75131a991f470166f GIT binary patch literal 76126 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 I|K-2`1NVatt^fc4 literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/ecm_rndis_device.c.5F219BFB804E7E9E.idx b/.cache/clangd/index/ecm_rndis_device.c.5F219BFB804E7E9E.idx new file mode 100644 index 0000000000000000000000000000000000000000..bfe24e395f8d6d9a74a0e515f145861deb77c641 GIT binary patch literal 1280 zcmV+b1^@a|Nk&Ha1ONa-WJ!2!WprT#0000J0001UbaH781ONcm7XScwoV}P)bJ{o% zfc0DYE(=I8r<;dnTrpQAs_vM@7ixA-B5$RI#CFfQ&%aW@-x#9@+KZ6IMXD@2eo_y1yE6x(x+GcU3f)2m!+i< zTjqdzi(HO1(n^^QGZ__XJxs`#+4tzC9+9eBgMDw<8MdSxE2 zKVFD!P6#IoFs)*i835z7B_ji{SjGvy2ctlq75bv!mtKdHt!1+~=keg}IXpSUwaP@h zGxHZLzXp1YZ=J;~O@$L$*;dF6lU|Bs&1pNnl+0z?6twlVas#Yv4{*|E?;0(2yL6O0 zQF;RqR+iQeg;?dv_oEI!*6{YOeZN#aKc9z2nBg1GNV~T!i7y4fkI!u=3U*Sgzwg;L ztoD_$?LWMe@xJUJ26AB?7_!;XEtu}Rfxj@QH2Nz%IUo+K>yjt+oC;e?wkPXK$h0|j z{`;tcDV9S@U*DFF7E*e=IH`SQ*MDx%@6q3|bv`L@J8hnX%6-$V;b%aS6t;o`!f}r9 z1CtWr2QWsPe$#$-h9Uf*GzL`_m}|8KV}(|Y@SvMQX@D~aDNcb)X4v6mKUFye9R!uC zETni{Ic&kd%?|U+od6wLGi> z=8~!W(CU5+x{aAFExBa2F4B$wFQ`$eu=JR!0Y~5J%o}3|Q}zU-dSwWuBF*T} zIzcMTzs?cp^;cA{@ZW^|zs{X&QdikE)n&aUf(`ly)MJdt0CRb5VgLXD0CHt!b1nb? z01P<}wf|eO8UYMs9R?j00000000000kMQmZYYRV+0Ssgv867GB000000001TWo%&p z0001Ua$|EB00000WdHyG000000004GQo@gWPWu&g0c8MVZDed@0001CVqgLU1qKHQ z2?`4g4Gu<0DoRL4KrJpWDJv{66BHE^77-U29U2=P7&J9DMM6VFGchtFAtE3TBqt^% qK`1vkIXXW+J3Kuf5FS@dO;c1-P)<=;R!>@6TuWb716^ZTUIAj~8bL7t literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/esp_hosted_host_fw_ver.h.7627B76907D54D09.idx b/.cache/clangd/index/esp_hosted_host_fw_ver.h.7627B76907D54D09.idx index d105d0069ceca0498306bfb3f28f9d9cd72c1da9..94d8d36ee643ac82070472cfb7114618638b0454 100644 GIT binary patch delta 18 acmbQiJcD^dA0t;>%7l0SU$Ip%FaQ8VFb5|9 delta 18 ZcmbQiJcD^dA0yY2$E_hx29iq(L-4>&?#*9tP2z&L{qI z6fUL+568n1{TeL#U$z(Ch1bIg*LME};o;rvfsQ7AbW5Z0x1fLCx%#J(&O++1mf_T2 zjtBH+5?=cgI-W&Ke>MmZ9!~w}u0lrRaMtfUbuOzqf+i%Z`FG7Te^ky=?9y~nITmNf7=V3H{piwaO=eOY^IPPCXZ+FjD zGzwRX+TliF5%|MkLGKsiWw4-=aBvqPJSH2J1F;*GGebNug$84IN)G8FRoZ!yl33-1 zk|3?AL^M`;t|Z|y7G(mT#=sV&ZB5zis40s=X-g7Vml-XzT7y$;&RpW$qli(lV_emB z)+^3kU`3)_2A!LNQ_FKMGipo8Wp-kEEpPHcyb}#_cu*5>AP36xLb!~|eF(3Jr}DJW ze9J6Qr~Do0`j^?$t&YwMTU8w<`buQtu5R-H2I z>yHy+n-jwF9CWLkr5Zq6WynYaES6z}??6isCxyN!xTRO=WNXn(&S@fedkjYb#Y(2U z-I@6g%dLYB^IKIhOA>CmlBN}M!-SJfvf{M0F9frx(m8E?t=s@B+5@aG>8GrPYFCb8 z#|viw!ivJUp%5c&@p)AJWpvy=v>%tMr>E1<2-ES#G1BZ!OXAB0;3noa6bU=Q*FV;5 z8&>|VgJ7l$sxGl{EgFx@DZ@=>at#D!*A z&Kh4EY{4|k!GcCOMmS4$OsDu9;Vetm2uo!w(>CP-48jUw4MvqZhU#@@|GhP0l@j$V z;8-x3)vfN8*Y$d|*Xdn!&bqy$-l~=kt?m`V#wPttmfcJAG5x34vxhOxy`I;p$LMxD zm%r$&x%^p%vp7b7vR0AvvWx{YhHQ9JedwV`y%;_3FmG55rtA?$)tnGYd6Lp!b-aY@ z59pp+e@E4<{!7T;3g}eB+0v}3DyjwGZP5R87KIdZd2M0<0001TWoC0O0000CIS#e| zTd^7e3}hSy925Wm00000001^n_%y-YAV&cVWE>bABLDyZ000000CHt)VE_OC0CRF< za~A*r00CqO`y@u4pb<6!WdLOW00000000000Ap=rY-9ic0AXTa0t5vH2M7rY3k(eo zMoB74NJl^|E-xu7EHD!k6%rN^7a1KI8ypxkH8w>;Lqsz%G9w`(AP*!bCM7{AH#j*u kKR!D=Js%JrS4>S)R8mk*QCL<_T3cL8UsVHLV_9ASVlw+K0RR91 literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/main.cpp.7C677863E2582AB3.idx b/.cache/clangd/index/main.cpp.7C677863E2582AB3.idx index cab86d0f3999d26aebf49fe12412cd046c7f042f..a60511c5e6c3e961e13fc2cd9e958c8ce5621f86 100644 GIT binary patch literal 5876 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 literal 5404 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 delta 44 xcmZ3dw@z=vIyO!|UeRTYyg+jEcDDJv%pgXj$O}de4viZgIh+67pX@326aXZ>4!ZyV diff --git a/.cache/clangd/index/midi_device.c.C1D4AC48AFEB6895.idx b/.cache/clangd/index/midi_device.c.C1D4AC48AFEB6895.idx new file mode 100644 index 0000000000000000000000000000000000000000..f2f35771a3a44b6b5c5f92a7678a63b3e71c1305 GIT binary patch literal 1276 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 P15a-IQ&@QcKkNNJ@v)n` literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/msc_device.c.771370A82CA429E0.idx b/.cache/clangd/index/msc_device.c.771370A82CA429E0.idx new file mode 100644 index 0000000000000000000000000000000000000000..11abb8a7e3bb72416f4bd3362a1d8ff7d2024ce8 GIT binary patch literal 21022 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 literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/msc_storage.h.F05387CBF173ABFD.idx b/.cache/clangd/index/msc_storage.h.F05387CBF173ABFD.idx new file mode 100644 index 0000000000000000000000000000000000000000..ca2428900fc4b3a77c0d9aa4a09102c91deb8012 GIT binary patch literal 2038 zcmYjS2~bm46n%*aNb(b+d`JjFPy(eQk_Cteij0l~HCC~>QotozMNnBZ3|LbaM#HL6 zVGu=8DJr1@O0-r%L=m+?N0d#9l;Bo@Kpnt>(Z2uTY5z=4^3Q$e-S_V~NkT*B&+oMa zVD5$xRg5xWEe!x*17Gn8ahv<702pCSm9Gm^YNsB}X1gp&dpyEZ#7yX1yE5dcVOMQT?}|OQ;|6xVUaC;{ zROih0n|f+Q6{#;b>6X&B1)m97Z2NJ#<=st%Mb5f`tXf_568*ySBB$WQV#VL(wN3Rl zKhf8p+OXtF;b}%#!O49`8XH4rsT26?-f5q81O#Q=-Os;bRa_UFd8c=3bhvS@tWgpw z*M#0W`M^wZH_7?jtdGhbo0A+d-FQ?n^POkZUAHl55PcJre0{puq@EBbW(gBE;`^~|i) z)v9^+w>s60*AnTAJY#cLV~bV^4*S%0?u~CBX8ToCY7ejAji|+WsoEjmxO6j9d45gK zv+j#|Ve#Us+{lO<`3CEf#-}OahSCqsLv=2jjm2B`U{iC8Q*+*P{l0D8NJ|MbTuP(P zIPt^B{)|UWBj0poy9TBOgfGu|R$TKY)#JrL`*S66Y! zx^`RS?Sz}=f&7{e2j?GgA8Nb*`C+T&XTfYv+-h1MIh_uoic(EZ7+ihE3dQ0!j1L&QkZRM?rb{i8Eh#Tr-r_G`DgcF;5@ zqOLM9MqaitsjF;9vnD{@Qtz?J_R5RQ2IHOTqTrwsY*(4%+i8OG9&G(SS>DT^HQmhM z_$LkVNipj_Q2@AUdK5i)V9hu-m~07fF-OcL0gQ*=4R|dq+0w8%H3^ovuq@(;Y)L@n ziSnB5{)euxF(2eT%cack=l}g^i_7(OV-V} zPI_H*QA5sw#G69mqu@f}G3Rsb-Z zFxWkF(jReqFAj!V6BKSwvv($exMPwF4mNGrG~AOD#Rh!XK*EvWB%lV(RUU;;4Srcn zFbV42sBRn*2>mz!U<0+@B5hNP=P@>5L%k2vheHC=pWPmLJyz*>kqMlj-ht}CC4tbx z(L+5uJ7r!-Ra7|}2%uib67oqv`slsyJx%u#^cdiw@dnZZ$?;Oj@wR0fF6nki>Y2b1 zHt?nTP9%Y70Ds_MgQt^yrt%mCuh_s2Ht^+#5X)3Z`41;a&L zkpprag@eKv4aL|YP#MxhBF0#N!a%Va4Z#@iJ?jpmIcYUc#c+v_#2<|u!==8`0F)2( z4!0yig0@8YfHV;fM5A0lng|7=Q63;ogaOeg1&}5pfM|3ONE5~*8hK7-jCwuBW4Jfp z+Z~M)`3|*&=}3$GhFZdGL}R!Y!%Kjk1$hp&gyCor@)}N$^mvR%4#U-iy=XN$2&4&9 z5zQ#+GX&&)dS!v(LYfdmtuWk`=8B=IK_BcSPU!LBolr9E>z$M<6(BdDN3K#&bocL% zb;nK%vQ2at5}JsGQh?!NnwW*60=J_{SpVCOCS{=w;0$TrEOhiZ<<_;tx#Q#3$1fv3 td>JE*@`b|PyV8|9l?BIog6%{b@FfwW|JuZIcv+9W5%^^?08IGG{s;GJmfrvX literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/ncm_device.c.04581A475F6815D1.idx b/.cache/clangd/index/ncm_device.c.04581A475F6815D1.idx new file mode 100644 index 0000000000000000000000000000000000000000..581905fec5c297469d2a30e833cdd0d178688519 GIT binary patch literal 1276 zcmV5E3lYokV%JdzCI-`^OVl(cE*8jE|u@@n;IcePpx zBa9Koj+q=>-w4aM7d;HN#2_<-hl9~AU9OTFIvuR~@qAf7X_U+_dh<(!hfy-8^GUcI z#fvGz!|`xLzeJ1vr|ng674&c_jN5-gcz8d1q@zig+|gwGHR@k>KL6E7XE6;|%Xk_t z#{+shiEqLQ9nX?wI2%L=52s;rUn7%oJnMI!JJ&ZIgojBypwsD!&coa2NF2no(fIbQ zuu*(mh7&qkME}s~-PaezS0TbfdOI243?3ipUHB!U^Eeql(j=OO^SgKvo%XMi_q%5+ zn#8Nc!Qe(=5rxBOK_3?5WwfA^cyON}JSH1m0C5{#FiQfkr2%V2Mvmbkb=XCk5w43; zD^SkXBFc49XhnqLvP$8@7}$bxttp!wwN+Va<46kYDyOB;^$m7T-@M+I$RqhQ#6}g^~yY4 zf4mUeoDfbFU|Pj2GXTbEOGXA@v5XUZ4@QAJEA&;tFTD;YTgzr~&f~%Rb9i!yYn6$1 zXXY2|AD`P$6zrr}f8Voh zSnVrg+kbc`<9*pd4CKN(Fl4i%TQJ=Z1Ak#qY4kUEazGqd*CkKtITf~)Y){sekZE)5 z{P$4>Q!Iy+zP&9SEu{2#aZ>xruK(Pi-=kl!bv`L@J8hnX%6-$V;b%aS6t;o`!f}r9 z1CtWr2QWsPe$#$-h9Uf*GzL`_m}|8KV}(|Y@SvMQX@D~aDNcb)X4v6mKUFye9R!uC zETni{Ic&kt=(lW)??IoOAaqO}pSGbM_GmUbko|N7xTpE@a ztg*GhmdvmM92kT-!g;!5Cc~Eq=XttDSZV8+ahZ@{5!MJBu(~oF>d%?|U+od6wLGi> z=8~!W(CU5;x{aAFExBa2F4B%DUeIHb1{}Rqn0H1ErtAqu^_mb$MVir{b%Iow z-_QfS{)XyR{hN^g%b{~k=PJ9Vx~w-qutEOfG8i%=00000000003^@+9|68#d0Ssg^1u_%>000000001TWo%&p0001U za$|EB00001WDS6UccvJ2@6TuWb716^ZTUIAjFf-eIA literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/ndis.h.F1FD71A464D10A0E.idx b/.cache/clangd/index/ndis.h.F1FD71A464D10A0E.idx new file mode 100644 index 0000000000000000000000000000000000000000..e7d92875561cb9ce93b11a451324af650d7958e9 GIT binary patch literal 4974 zcmYM2d0fuf7stORs*{?YWGR&v6wxR}D$$+{YHUrTNGgOz^(1Aqs*#jkDC}R*2 zvXclck|jzgk&>PK&bRq}zqdbbujli=%eiN{_dd_eDbCJ|`f;3t-<0q`|4^Ua9LLc| zP8u2#@QVI#2aXHh8CiMWHQuDZ?VYG3?*)S&9dUTMC&OoXZ@>GYPoVPdy}t(T`uwL_ zW_pF=i5Eqq4{la=DNg@s`t3oAfeQxA^fzeR(eiV?_iO`wj~4lj1&3A|KK9c)wz}og z!J@3vz70hqA2t7(>sheDtGTjMSJSXH+Bfw`Q_PWgNn5U~f!*hzp{F$?O1JD=cA#R= zqvu5>1?s!6_Vrm1X)x&a^Ech~8o{y2(n){HTi<+~aqVJj!+C=z3JdFlr@jDRkBWo| z4vXUKK0cOpvo#D!^hr<;uC~&fR~+7`m~CPArR$(mro~U{?TbIif=O};CyfYP=ui7? zwTX;w8ov%CTpx~;On?chJq@Qo{!so2B(lk`zcd>?*Xl3F$x;U!d7Gg`$V6KmTeF@_mIgtma08fFg0Frk1Z+`Y+ZEpg10q?>{ z0c^h--p8WpS0r#2@GR&Ez&kaykoo?fe(Nm zKr}OM;0~piy`0qvd;-*TfUuk zke4GdQVfky4J7lWAVj#Ny2UJK#Y9b#YXNIvlwfFcal_WcTdGHpM$P2VxUv8Hm7%7hrqvp|AM*zrny{lo7&l?OJEb=CKj;+7x$;!n?FmBKr>)7 zbH?pBlf`*d-h@uoYx*Sb1Kh`q?Y6w3KSR#k zfIuf;Ckz*C`Zji%xl}7)IDr_z7#Jjg@_F%ZW{h_=B(MQ+19NwZ=cId!Pr8pHkRXEz zGP=Tu`O0N||B>q&P2e)%We`E8d(I_;JOyI{-sr6-^f&Y`tZhAWf|q{){$RCWk!m*E z=T5vt38!ly3^~pJhtmGvH?sWBuUhFrS(*DG$B^eq}&&g|Ur%?PZ(6=Ll~*AE@4X%uKqaxq{rOXR3`n{wMb;;abxqrbTDH0|2=M??O! zCHVp11D4<2R%YKn)o9oecnSEDIb-0rXBV&9c=BL1t`;NbcfpWldFcgff+ZE-#^ZwpB1oi;#VO|pM90L4>BUEWkYkO`Z zw*N-*NE|6fq2%SF-KsJJJV?$3%mp#Uw$0w1{d$7RTmoZpta!$FJaDMH>;1uto2z<_PtLz8&6)hnExB4!9k(1lMg?8~AoJ zjF%GdLN76olxq9Qk1%rN<(q&vnX83cm;iqT3m(;6^RKnPw1V#+jKShGEryD!O6F%n zNzMbzW65G!+`cG9j5P0oqp6z?MiQ8h^F>EAo&QiTH9rwe zauZ+^EAgU!H@!XYo{J@L1MmhrUzCz-)u--jP9TsDn9icy7@8HbswzB@fC-w2N1@G` z8Oxn!eBtHEIN3xnwDLe!jKZplB$5~6LNUgs6`dY+6K-uFc@ZuWC-LtcZfJTkcq7Tn zaG998L)xrzo;1wgMDhW^11uxXxosQ!=%Vaa0>0=g9#9!(d6(+9UgPB?z$9k75YXOz z{(C(A-%2Hkt(@&(;rXK^v6HhKEaa?`#9q#RuyDX^A2oSNoZBaU=48NR=J!cKKR^C{ zHDw!ty?}dJ?hDT{0{ojyupp)X<*>l7w%bX*0(b><1&7^K%3YQ_|IH2p*8#7yOK95q zlTqajr&9?mzy+djk|tMaXqjE&WhqLrNh?q?=UGq}*fgW))QfMCClS-G$N zZ^N=k-VC^zExhx0r}`~gwmc{REMP$_y*+iy;*BeI66gl(X0M8$x0iXh*PZ7<9bg?R z>(W5YzRwiWvI&G>h-j*#iM?8Om3t1!R{^iGrB$@MTo32$%O%hT*v1|k#*zc=+4rsY z5GVmGVTsb~Hv=`B-9z#SWC3QeCe0{jbF2xsw^DX)Kwaok68HDEQH$mn+0m~?;F zLj+C$o?zg?<+uB^_8S%vxC3|xj06W(Yp+=L(!l#LfkMDS<|n%l=Rnu0^E`M5_>QI6 z_Z!Jk9+Mr961WF=kNN4Wg)*jFjy*=;8{juKRoRdeGdQbY9+;x3csCt?F-2!$-pAu4 z$H-uejQH?=v8^#3)vAjL7^AUxsyrQEo}cEPe2U~Ez#{gNit#)fndpD6lt3tkiv6ee z32v)BRL08{fE6%W*z?zSTaIK0bnsv?E*5ip>)xr-G=r)$B>xTgHw)0+upEt$q6$bJjPn5U2#K1WjS0 z>4&#ySiNk$PT)4+ZFUcpj2kfV z7J;=gxK>82huzCp6~5l(SxF!TFoh+|p33*ryyg}1AP@sZo5qwJJL zQpee=WwVs;5Lk*!#TSBpY-hXP*kQc<2Jj8rLks$<#qNDkP2dUO6ZT$KH8Kg$w0z5h zSAehBgUsctZbZdbj~W6m0AH|E$z|`Z0EJLb9)w|-_ytAr@A@NJmFsIsz6E%TeG}Z+ zvEF&~8-;rWqA^;$VVfGQ=XTkL@^Ttr8grh~C--iz-oMlnXaHYv*RwZYxw3@HIt{=w}8$^gsQh~NP`T-PbfcM({Q%SEr+ zg}lGMwjhI-uK`|T?~u3=newG+d%hAFgJZ;8^?MhgoD@CnJINmbKe7Yb&~1tShxTVY z$OOz}rMPSJ>KF3){kjRH0;aMQpx-r?`|#0~hWJY9rxE&b#I?WMM$>T~J2>ut3^JZ* literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/net_device.h.25F88D3C45366687.idx b/.cache/clangd/index/net_device.h.25F88D3C45366687.idx new file mode 100644 index 0000000000000000000000000000000000000000..e141a69c0874e746dbd2d7832121dc539df2f68b GIT binary patch literal 2600 zcmYjS2~<zVB|cMNrVoj(U}UL=P4q z?Ju8Qxpm%uM!P!dpR>KbHz>GzqGs%}MObG|PT0EOBY7(GyCoIF4;qxp(sgfY85g%< zJt><_`_42j-a=Il7$&;0TW@s-*8e7T$ZWLVqAIgZpKoHCA5s?HALq-ax7_WwjuxIezWuhX9nF(L2;3E)^3pQ81xeg<=7xV3pDpK2)caT) z?)T{1vmvXmsrsi))h%y@!?CNzQy%c%XI-Q?r~dm$CVScYSP}nr(M9R)nm1##e$~## zd5kRoN8v4g_l;KSdXIFK?WlWldRyvH*umGvAAXDOIQs6@0hjL@2lsx}a5?7box$c! zLmzv79k||`GBHN`WBj$Xhun1e)BTfWPWL8z=@o@0;t|(hoMpQnTV1@edV*JxCEGbZ z_UUbX1@B|JN5!_nFH5#_Dc=uEI`qzQPq=ct`^$WtUhf*v_Ao3UcBeQzyR#*K?$UcS z(WGEsTDR-Hr&}93@(m1HN{z#tt_2JSMO670wD{Wl)t8tOC8kQdDr57UOT(1hvx&rP zcF1=W(Ib-|nPc4jUTxIjPf47LmaB0okJx;~WbVmifa& zi`5Ee_u|DBgY7lU16}dClw9Q=vzs}?!#YLW{5g+aIcj@UxSQG9XO|?oU7+l}Wh&j1 zTFg6i-^~BQ2+cv+U7l0Q4ZNo^s(JFlJC@I`4qa<`eSPI)OYyCwmdvOBicwrRwvd%r zS9H(B#9My$hDj^2(xSu%e_s3_=c_Rb%g7~G5pXY9LHXV})t z+?^68&aoJ&bbOU=F@I^XEuhvf_E146bB%CgJ>~wf4Q*8gMhg!n zJY8|T;BT{ljNr05x0F5n^NaSaI4xriq}$o0v3PI)bo+K;s<}}(v-+mZ?;ZN0s4C_$ z{*Q4%i65_@p_aF&nYy$nU!UgGTjoCeP^)~f_?zDBc>#{?ii3YCDJf3U{`1MXCRf+@ z$bDz;F0~SFHNdau79=}Gt~|M=dZepz=c~l*&cWw*Zx(X$bbcA>svg#&oqqDy749js z$@k9(+1soR{sTnIV_pII=Hz&eHUJ7NG+OV2cs35cg8o)tL?kuR0${UsOqYDAMNrdU z;J$s9jga6nwGRj}CN=`tEGi%gO~K7Wp?#}Nao~gq5=>$UFhgCyvxE_1izMP%UbX}d z<|Bd>lUf064hGDvAmM*2Ym5&6e0h}tFoEeg+8hV+2H;Buu+(GRA%q$N33R$GS)@~}Nk)HR-8vjBLIfcuv;>#|#fB_W z@$C2YaoC1T9B>eUPvx5dOkdlTOu;Z{Hj%ni?VtlTERw6uwI^@tBFzARMFRh|L5Ih! zT5#ZwB6w0gVJGSId1MVsLNY5~7TtJ;g9V5n!(_$)GonrPf#bTift_U5ivtHlh{xjR zs3S}f+D1F&2UMjm^uaKd#UTfiEY%~7;6Ba(-3;DHD}R3DhaSdTST1EXMF z!hfUQ;lLRY60iiAg7L-FH2DC2ys{(oF<(4Ia~+&zzPI;bZGFe|ijrz**ontzJS1gtTcT5<+*O z=gdk1Bs3HprV>eFW>yK#32sX?llwy!=BnthUkMN8Ky!eGnYxgNAgneJf>CaGDAF++ z9Qg&pq)#+3ss_TOJ2dc#$tA9>_+T1rfy_%5h;)q34B4brH0->wYXhM{qY644xwU|W zD!>V$mCzn#zzLDAh=KHs6OopYc4)XbA+{E?&`e=3tR<|OUP!H_EHo;dkS>tA&#YwD zG8U>1*1ACEKC?=&PGF%PA}_;csg0~D925<`!4m1qi`9yz*cv04v9Zp$UHtL}gr%O+ zP?S#RkwMR4n&2)B!lJQk5gWY*U{^@{Yj9Kugh|tDU}Sj+lUCQjs4);G4X%OpP7d8& zTK=g|J&15wG>VDj2HB+BQA&+sAWV8(10#n+m~^%VhQ3aUQ$Neo#Bw|J!*pNZ`z}Li T&xv?2;j3+D56De50f7GlX-iQU literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/osal.h.7D98BB9A3CE57313.idx b/.cache/clangd/index/osal.h.7D98BB9A3CE57313.idx new file mode 100644 index 0000000000000000000000000000000000000000..f1132bd553c1593e38a63b8fcfeecb6b7b2db64a GIT binary patch literal 582 zcmWIYbaS&~VqkDi@vO*AElFfyU|K%cZAD>3wgJ zJH61d>IajjVZ%X&;>z44MW9PqBRf@=a!!xtW&pa8Nts_+9!xNB0_7MO7@1fZic-^x z?SSr;IOm@IDBnwpk&8)*a%~fE+HWMq-?oQ>3}8+L3WMAU z6K=eiDV>$8Q3Mn=;4+Yf2_IQ`V(uJGwQ``aI)}P6O!%m-;O2QpCd~l~Yj9}5&DNe6 zyi@P1!y=%tG>5b(Ots>Y_{|C)v0Iseo@3P!fC&RV$70Hl;F+_T3&MCN-AhVtAIp3U u^plRNjulL}C^aV$#4avME>;FHfFTM4Oxiv>Mby4=MlmrmGcdzM85jV+V}!&2 literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/osal_freertos.h.B38523DE336A0048.idx b/.cache/clangd/index/osal_freertos.h.B38523DE336A0048.idx new file mode 100644 index 0000000000000000000000000000000000000000..8f5c06ededa50e542bc294c3f895678260ffcd26 GIT binary patch literal 5792 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 literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/rndis_protocol.h.35776890022ED484.idx b/.cache/clangd/index/rndis_protocol.h.35776890022ED484.idx new file mode 100644 index 0000000000000000000000000000000000000000..955909937f00b520c55943106962eee71add225b GIT binary patch literal 12540 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 F{eL6m2<-p> literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/serial_if.c.32545F152DA6FDE5.idx b/.cache/clangd/index/serial_if.c.32545F152DA6FDE5.idx index 2882d2e5a9bee5fafa06bd85b205b60866f0a948..a814be3c5948ab72c589008a4fd56cbbb8d63f79 100644 GIT binary patch delta 70 zcmZoLXfW6i%d0G|rp5pTJZl+U#9ffN3mC;0Fsf~C;I(CCmT*~0QjpRNKRFAWkBYzjcn29h&fYCyUlOQP6<)nSka@M{p`6~ z()93HocC(ao!s`XzyIzjaF&g!w7B)?GxuTPql zUR<|**IRte4P}Ny#r3aO%J0?X%zM1y4p)!3?&0O+ldCmOT<}o6ppf0M_ZH>j%1-gz z(6S@1i+yTu7L@U9o^*?fUf(Zn%_No$#9-@7oLh?xCm5b$x0=%2#v z^xNL9=d4BoiMNdkL&zrr&*o36Ua1|<=&?Uo5NtzjGOh}lAa!yW7Y}v0=l_~s*>>rb z^vr24ZRU~DOq>J@M8J6@Sxsb@3UIVfgf5csL(eS7D$O3j`5jo#(Do^3-)dT)1* zvJCUP(wjqUo6kNJPye)s?sRBv$EfZ?dA8|`)A2X{ysM&FkL!s&ZEIQ!2f6ld)t`PTrS_Mn z$1^34t356Ll&>@<=fCN(-|Vx8X|11%k}EnDrswrId8hsw;jy(EVp8>T(Fz@2w&1RS-BE@;=PkkifNIhZlND^Ypl$ZwQfo^R3(T1pnb>iPEELf>3~!5(5bE! z#xDbV&p+msd4&@;PW54J%@w)Ddtbccs&>V8^L$NsnXLXO%Zp-^-iqO*Kkjozb{lRa$@J zLw;Izc+^1J4~|zZ+P$cIaPGAFC%b48jrKmF_G3QN@l5qR%H^fM7;hPF-sg8_;V(zK z6jQ$hn|N%YuW{YWGrwI59K>Wa&PHG+U#|S9m_|)$9YgT3* zB3mCO4_S;37}Rm_sqjQ?YMJ4T%oouv2Yrm%%V?_^8vML5I(oiBRF0)EwpT9pniZGQ z(;;UXnCq5W6n0kXz^R7Gl`3EF8(g-D*CPKo6JV_>ZDs4&IQaZTtA5wbKiUs>@9sb{ zbJOCoMG#~>kq!7?d64Pi=Kw8Y-d)4fL z=?55+1Ly!OKx0urnpaiIiMHCr!;k_%#}ZM61vznc|T=#M}(LNhKGxXV=!vo^~r;qcINWcVd7x~s6OE^?sWC=M+u;& zuB2+iB@JJn!l!P#%dEg~MN| z@KwOLiHylALDJynn7Nz~S;|CFs)I{>w!gzqvF!y}|4 zbm3RSMZin^Bo%(1kB*Ns%#>f&0%M66w*wLZ?~HWjEt#Y3f_$pWdQ zi$;@vMnJ7e)TF@OfO`a1;^(_?r7)Q=EjYK{-e~x=WVW#whMTLHt3&TFoF-3G5PmdW zg{}?}Q-o4o%r3A1%lQ&~$Cn>Z2!=0=D|2)1k(y)qt9HWIV!s0>A`IiEgvpR;TOuxG6#eAlZ$(Ge9% zFm*6oiK?`u*fpt|2EzE65zR=#gfW*lR~8~`qBRL73`iy-Z3&{w)0KrBgUBGk%E534 zbq8%Bawa;HV0B@*tA?wN5Cx$@1VMAd6VXHhjQLC)%5(OAowe-Pd=kx}hnW3=Wg94JS+R%n)Z`Fwj3v$z^gx(6DB-(P62t9P z>}`aZ;(r_$^3?_$>$`neu!W&-R!`;EE5y zN6@v@3i`NjkM%ZzeUn$0r@*&C36T|*g(yfmNU&3&%~0ZXA$Rvx%_!Yv`nm{;>!bQg zFdyJQ*f;)Z58nods%*HR`>YQ>va@#5=O*w;29;5TFKrcRdb;jE2fCIWb{I6UIR7pI z?Sg|yCQ=_J&GYi!^B2 zC{RaKG zhy4q1XM3%?b^)g;se$1nIY2|HP63HU3)l!eQIMj+uK3w;86 zio{C6J%#@wgzv72loPwP7-4}kz!h^1b3J$rv_9IS*(QBu0ql*uguFaFa)3$gSaWD9 zBOx`G?|WuOd}cI%u!S%FeKO$yLAb(UmT;IY7>eK@eI$?nG0Z8F*pivf&C1R|(gh@v zAsoi1u~We{9Z62vB#Mf!kdTxj5HV>P|A0U@ODk(Li#0R_MJ2NGs@1BRYU&y)c54|v zo?hOzbQ@i59qLLwLj!$xBYOu&Cs!BdI%i`O)Ad>&Bw0CmieHeqZ%pvU$f$_0knq^( T(0F#jh9s6);^sJxNDA_QVW)+k literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/storage_sdmmc.h.AC1BF042302BCC31.idx b/.cache/clangd/index/storage_sdmmc.h.AC1BF042302BCC31.idx new file mode 100644 index 0000000000000000000000000000000000000000..c5998b3ea4784c1b34d75a75de24840a87e443e2 GIT binary patch literal 812 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 Nk<#Lf_+*7N(7tz*sc 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 Tm!HBZ*Q4s`8yEupZ<+rA61v+1 literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/tinyusb_default_config.h.D4E05AD0E6E88D99.idx b/.cache/clangd/index/tinyusb_default_config.h.D4E05AD0E6E88D99.idx new file mode 100644 index 0000000000000000000000000000000000000000..ff4cb2be2020003908756cc70d6cb433b0662321 GIT binary patch literal 608 zcmWIYbaRVfVqkDi@vO*AElFfyU|)!BVAo{KJIW#nRU;&4&~Nr6D2`Um9(%tx&{>1=Fo<#UU#rcLE-qK zn?PYJ4l7ldAp+`NTNlSAy#opha0p1igjW=)znL)a=O3W3K8HTsB}J(@i6AA#Majkb gAO%$jrn5081;Pe*gdg literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/tinyusb_msc.c.31464F38D0032D28.idx b/.cache/clangd/index/tinyusb_msc.c.31464F38D0032D28.idx new file mode 100644 index 0000000000000000000000000000000000000000..71383877bb2a5435005001fde7ff2d1f8f750ffa GIT binary patch literal 42896 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 literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/tinyusb_task.c.4F298DBC93948AAA.idx b/.cache/clangd/index/tinyusb_task.c.4F298DBC93948AAA.idx new file mode 100644 index 0000000000000000000000000000000000000000..0a34787ff90355e94810fe2c05bcbabac8711467 GIT binary patch literal 7274 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 K5it^6?0*3K%vt{c literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/tinyusb_task.h.989EACF403225020.idx b/.cache/clangd/index/tinyusb_task.h.989EACF403225020.idx new file mode 100644 index 0000000000000000000000000000000000000000..d8eba82d327f7cacccc23893d5260bb584452168 GIT binary patch literal 1104 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 b?(+l3sX*s_8XPe@2@SsJx#Fowh(r0X0&kfP+;F z+jwk%0fB-Hi*6t=As{n@fExiPEaJ#?I0ca)441G|?7jPwo80sL-~av3@Q}d3Z)gDc zr-VqdQ*#oj000y8iE@OQryu~IAwW_$aAiO+zn3|-?quUuSH2)i+0);`{nl?v*S6cS z{9#A_09&)S$L`FJ3R!SMB)^`c{R1}hsOM$EJA%v4)Atv)k8Ou}~H{+T@}ikRjx?d3Uio zdNPt%?enT1e94ux$j1sfHk0nrw~KOTw;7)IN1{J|aY3z;x0=s7R)pllN z{=ITsd|}C7HJ9G;;$peNV<3Ox&{lDazbHRD=@Od1)at5Oc`z-D2~5#TW4H>^RL}@8 zXi$%-4{=(LRiW%nCVE!~fJLE~C@w%vflNFGi!s*Hfm{C& zeAQN>k6@{_)PaDR2Mlg*$97v$m^hcp)!fvMF>wVnS3r^$HP=>v|ID{W(cxG)DcYHP z?sDCy_Kr{wuY~kURF2kSPVHIcbg*5KqXN<^pbg=0b96XTMDg%Ijz&mtgv3z5+OLYQ zxk&?FD1$TAnJmQRlFa+c%q?HUx29Vg5i*`fH$8@a-yMY5Jd8)y!>aac{mx`G0XUOSSsW~(HWyALn9EZh`)4r?NzaTxB@f5*HSP}`RNb1GvX!qv` z&cpIZk$c$vz76W229Cm_Ncb2(XL_vQ&Kjzu0n!`(zce6B%}Ug?ArdBwf;2z)qH9L_ gbVZngW@KW_G6dwA0br={zcsQB0LUZ&kOK$cKPzaCiU0rr literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/tusb_common.h.0A109704CC3CAA28.idx b/.cache/clangd/index/tusb_common.h.0A109704CC3CAA28.idx new file mode 100644 index 0000000000000000000000000000000000000000..47a3c56260ef265921d511042e957d1c691c3cee GIT binary patch literal 9952 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 bsp3zyPL7a|SUOq!=_meFtCk2&6HEUOM1(&M literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/tusb_compiler.h.1445DFDDCC9E2A53.idx b/.cache/clangd/index/tusb_compiler.h.1445DFDDCC9E2A53.idx new file mode 100644 index 0000000000000000000000000000000000000000..62a06a387b61416292c10984eb09e9f954f7a250 GIT binary patch literal 1500 zcmYL|3s6*57=ZWOa5x=Sba~_OMqVop@rbvDtnAA2&>@V31XrY?lGiTJ7Iz{+QE}N= z*jXMU!TJ~j5@N!knh;DtiNt`Wf^ZBb($I2XGGK!Kt-0sknLGE+_x2bU* z77kpW3cDxo`*v&8%dYKB$4B&kJ+$68F<%uoAX&b@{KB242a!qs_E)CzCq^zQBVIdq z<=&HsavLj4|CrgYHcNhQdH0A)@`><1Pf?b03^wA)v))n&p_=f8b&3D*2Mi*p2l0E5 zjZqq}`p=~@#WinJ5IgZsi~k{yCsQz+pM_k&fL*YQJ&Q%ZRPDy4rrQ83v63bsjnl*G z@j5HOdc@ZwXExqGVNH2r{s#vTLM$|n;lJxvb+Tjg$tn-PX*kV_#dFI~g9@*kcmr-` zNHar)!=OxM?UZg5YDCn?fn71SP}wSarrHHUj^%bN{=2s~BhlvJZor`=bO(!v>{!vHrhq=BJBn6z!vZ0%eUF$5V9-+<^C_(;oa(Q<)(`6Cw& zN0*8rLpS1gbJKmgf9!mvS-1p*77;C1c#!vw(Z>gh_JdGi742tMEmf5-MoR&Uh=|TB zNVDp)Jy8@7*bTdFXA5^;n0mG%P$d99jmT-PzK&CaM~~Xc4ubH)UbLT&s>Q9v^JVV= zPQ|G-O{;83qwXy?;u^%SL9T3mL7I8)`0x=W2pvOoT)%(LSUssZ_)aB=e4J0mUbQba z#*a*&2Q0x7TK!~jopV%ZqXuvbLt41cdN(=H?5en+4#XjRh{pFXnW~0z*6RVo8Vxti z+?j6zIzEikgUG{qblb6jN9G&kizdLCICC3Y{p0~`n^@7;0=NN@2IRpCi;XrCxHi-V z!WaA6viP@?omQPb(ssZ;*oO|Szczbyv?Tj7U_C?h+z?dS7c+ldue)RNcVitQA3w&Mf-3FY4bFA4-7ehw!qAT{?0bGa+Y4lBl&Y(?p z9s>-6u18*Md`jM6*;PaEcOVp4LF1Qh2v)PL`=qi2*v`5(?rUj%Umku%&++Y{fVlek4a0wKjxT7Q%7#xbSc-ah~r z-~yUokYK7CzZSFtXEPSZQfxe#Hd@A$?IvEH@}nvuX$4kSBT~)P_xPV%!uKaKH$hxv f$VIL`dDaP;akWC8sW3CXppfOnNP%C>D3A9qBxp|- literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/tusb_config.h.9F38797A39C9C9D5.idx b/.cache/clangd/index/tusb_config.h.9F38797A39C9C9D5.idx new file mode 100644 index 0000000000000000000000000000000000000000..d1d06a2e19957228705d4f10b95ddfdcf667345e GIT binary patch literal 1646 zcmYL}3s6*L6vyuYcKz0ipeZOK0Sm4I$_ykh8zHH=fKzBNAr36Gu^^8{2v}T@XJShQ z32PvaL?xDib$PX{q~U`EQ4vs?F{B8aQYoLMmWoPeZSK9_%+AjIfB!xAf4+0>hJ{EZ z34Ds$AP-Tc#%IYaD2iH$pUkX`q(1x}2Z~aCZ5&ybZ0=>r+u|5+D|OXI%KiPO-O2{5 zrPz5n9YwF56(Mm*a( ztc+^s)sNOG25jC;=M}ln>(h0&TvGS`x`TY0ymuAq^&O(EO!uSx9L z|#X-N`Ni_2L^oQ@m|!5stfK2>VVX7kB$nA zFk3dgY!!kYAU(kLK-NIYXMz}CY|V>!IWdK#4&HU;X)}K4uLM#FuQNdQen;4t=CK(4 z$rj0M8JjO+8(r<9*Q37{NG;eie%~!m*7Qv}1tHJ@(Q(Z!Sr~kJv!E;jK{=3eu7`%M zb3>}mRgq?M`Dt_-cX|9mQn-vMYxsHpDQV!oNQ@Ci!i0>R{=4|`{K;!kSX4nP*!zl8 zj-*XI-x81VHnPo*aewa?tER5)QecrtUL@P%=*Bbk*L|Z^=w3^&UB$Zh@5}c-+?$WG zjL6uf+2IjTB#f~wMA-<$2yDbDp+q<+(y0+N0BPXXZ1016f)qNi0zn&)HemBi&9-mV zE6!>Vq>@xNeTvBM;{#`JnB;mO_1sW-vV5gV7+Qtk2#_PNh>2=-SZm!KYF>??6G$gF zjbYW|c)O0PH3-Uplz}bti>8f3LyuZ=8xTln3Hz!@o4qW~DYqX&`5=&kTn}Xr#S6YE zgH{CYv^%>7MFoE?a6X;ai8s2MtY*j3W0YK}x!`6%cLk6NZkwE&Vhv8gQX_(FlFhzv zfui1tQSot;tOug!VhU~_4zB)upcm^W%t>G;)}^)gzuxw;AN`3WkzJW2`5(Ht{vQWW z?gG-q?Vd4iXLL#Q)OiHmK)Siz`%~hn5*#`)il7uoDHl{faQ93>t#}fFh!!npu1!(# z)^_RMgx^rs0MT&%I^DG8(lO_o7}SUOu*-5)b46YJ&bPPGA4-R^W#p;@I}KakxPx*B zkPa^BdH&_&|5}_hfmR@`9Jr9`Zwv}fc#fb7NEJ8XjCh62lrA$PF7wq`@PCsz{G40u ROSD0Wxn_h%5k{q`{{T#Piq-%C literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/tusb_debug.h.C500CCFCB8EAC876.idx b/.cache/clangd/index/tusb_debug.h.C500CCFCB8EAC876.idx new file mode 100644 index 0000000000000000000000000000000000000000..7a35c60225905894568609bf3fbfcb045523477f GIT binary patch literal 2104 zcmY*a3rtg27(VyX%I)pFh4NHkqbR6|9U_k^wnUy%LCQmA3MPsadDt=wDlexK1muyC zpio2$sGCY$a0*PFZbmSfOvHh6Mq{P~RHou&8bznuf6GpAPjNr3DTWRZskiy~7EcpO(m&$Hv?9 zoW2j=a`=4F$ln8P2{~8ipMK+?`qFSatD*K&gYSlAVU5h4t%7dD_9ByFe57O0Q}%3I z*$DdUtaRm;iGpNWH~M+`oq_n*yP9`zpx^g*L<=WU$6mh6T4M9l&qS5zp^;V(rMN2A zRQ1~nd{%g2yK}7D<<36}n?}~83|va?IwYQ% z@zsjv8FR)GJC1yPAb8!nIHo5#;NDRi|C+6wGg<-M6g1=?%Lkf7quA@WFtUqnmA2j zCJ1uRoqNG0H8mS0xng7ouGwU^y_q19SquJcvrKbI?c=QyBmw^{mn@l?VE-2B4WE-0 zK2;JV26d)5)7DI|+BKl*9Ub!ItQgrs_;fPe-c0!LwNY= zauWZ!$~Nzi7xP9Xh=B{V60Mz?;0sJU`%AVhAAQ0gDfsKA>*kmV5(x=JQ-B{CwCTCW zg$QMT>t4OYM{Y&XYzslR5RT>-0%YTTfu%M_X=z3mpxVa_D^h99`ib{g2B)I-G zp9}4B;ln+T>(al+OUb;9=fr%pM5IF^dF1Uce(ejKIR zxqvu=ih%4-p8E}VHyepe7b}`o&T+~a%{w~!DO%)bCRQp6EW`W#}H{LwbU7l z&o{=t+h==aCWtEts)C1)1hX2qCrO5BpD#o!%7#aM9Q zej`MaefFPo=$pXe;kr8^B*SKsnKbSShSg8eOK^Td&MKvYuHI1)vVou*_(b~~->fVO zic^E4jG)R08w@G0`~JpfBKa~<93<$21k`x)I3?*5?+4yU0ELO5O?;@S_E8r#qUu!u zB)~er727jxAR9OXa{>N?W2NoCt%dr@o#eBzxGJN~Q*(Vz8U$@7=w?1Bo*_sWH$d2) zVRNSEe1u;ocyzVVx9@g_74g5j1m?owHW!!+hdDfa5SN=gKCaG77lh;D0fdI&rjIwu zk>)sIBY?6nM}@hCLHPyG9`qK$L&B&qOKY7jU#*sREhq-Dk)VzI`>vj-{C!81*G^FE zA*elkr?{ewK|%U)P7y^#Sth3Zbv>=V^Owa_V`fEWPPK8^)fq65bq=CeSACgs|l)_A1M07pMA>x z?;k*-{AT)je^5Dpr4omRT{A@`;kh(2jm9Iuu)1hnA}$|Z&TuQYnK2mX#*mx{Y=r*- vF}I(wk!i-U&ZX+Ow;*mL=te%9u(3C-=d5xK8{oSHhc&9dE43co9Es4s?W-Zl literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/tusb_fifo.c.7ED3466C380F385E.idx b/.cache/clangd/index/tusb_fifo.c.7ED3466C380F385E.idx new file mode 100644 index 0000000000000000000000000000000000000000..17be1146737c74861b5e2825115215d84c975ee8 GIT binary patch literal 14894 zcmZ9S2|N|u|HtRdey?lacM73oNh&E+Do=@4Em}l*TC{1WLder5PspCQS4E4+T2e|q zNlKI=Tcos+XjA;>Ucb?qzt^if&3is`*6;bA?>T4YIZvN%WQ!nEy`6XauG#L1BM73% z{PWwsZJmZRf@n`ikll$NJw9%(AOED*XF$2SY~SCikx9aaWgCN#H@1IySzqzX%kF4s z338Y<_nD0YA1{Z`RuOpRM^oPiI=bk?d-n z2RCmTInjMTF4YnS~eogUOaFlE{2 zYWJzE zyeB@rRG?q022|zBx8Ehkc<>i*%?Yf2usm%5BfV&qstFiJpCHlw4()k5}wP z9_cMOS|smLN>~x+k7h}YdpWA$?en6R?Wvw-eluTabdOq1nzB{h3XD;hUu9lg-OljiY&&E#KVYBbc<>tNhsMz(^M(R?~dzrsg>La%uYnVe_ zI;-1>JIyY z@AiQOSZ_(@$5Xy9){YH2JkMx%%!rCriqoter|+?y>J(rk{cP8dm~zAQ;i9FM$~$b$ zGM-kSd%Nn^o$Dv;mmFTG`f5glo};PU6YKKi;9BWlWMjb`7su637PTo=fsv1bU#RUz zbyNi{8Ws;L;(Ll+GwzJNQ%GOLvht?JFRZpSN_|4k@~zf$3a2J6zn`d-YH^t7H8IX< zj)mrlmhEV~SyhpG-2Ak$!opk2Y8qk;>Vry*tqT=?9r{OSjNEthqAJS~!EUk{S~ zUDb0pVYh|WtrSkP+|{a% zW_hJgFa0aSHLzjNshN5D3W+zXT3Q?}C%vgV(e%+_UGMn?ZQo-9TXlUmeEWODTPzcZAKL%#Mz3(`x>=^Sfr8J~Bk7Ah|5QighcEL)^VH(or@1IB)^pc$FO_)#UR?y; zD~iJ1jzpwyYLK~UL52=g6qeE}mY%P2Q|fHfSh*xp-hOfF>$U$){CsPpOKX(px)-J? zDvmE+z0Mrbb@N8~=M_1-WhRe5W3h8glf8vvURloOWbMwXz=8u)e&01RQsdKc(^sYD zJhf8~E1akHQD)IO(>o2NvR0VMwb$#Ccl!3YFU={PHaEXQreJwKLR za$c9wptky9z;?gmuj>D~WM*mYkf9wr<4ShOc0c`-bhIcbFMns=WYgHoOR{EZj(WNI zVa`~>R#;E^2IigViF->EL9we2mm(eEM>hlvTVgZTtIXGJjkbAiW|5JVcia3W@;5C+ z&ov6dyYi-euvThMxw?suIGy7kofsMMvFUevbk6dp7w)Y(xgp}**}4PmGeKP5nXCqU z_Z*GsF+F?6)%-s2=1~8skbRfavU1!y40^tPdEf8oqt+ekF9nwy6>Q? zZMIWRo#*cnr(Q|;c!Yx=6k>Hkg|7Y+xeM^&wV^R z{jPnyWPU+m<07xqHxESm{k;AyHDIOp$&>ZUPTGc1g%+njuhBfcFf-%TyTcnERWJN4 zpPj$D%F12e#%}hTS<7b+fARC`oc3#T_KD^+EOxAQU#}^>cY9La-hw8-9^0$WZajKw zCpT@`qpPcrJ^c|Dc4}e!?r}RdZZP|{ID7Sm`09)EhqbvkWeuGF_$>O~cvJnd?CQ9v zUuQa9-73~yTVQ>BlhWif&nr`AZVS`Au|#C@Bo2Mv9z`n#TR(cIUE6kP{?~+td1KER zKRLfm`)bnJ`ImAZmYlFJA6poIBGbavhME($T|v}rGhI2_<93Og^4S?1V?|?3E~M3k zENOE+HL7K93%*Ov`mLRdFIk?xHXPeIaY?MV^pz%eH)t znzMaX&Z32z(nm>eyyv^^ZsorUR|Bd(_vv1L6>xZ^mdp95Vt7oWeFr!cf~3?(nF!7(2r+wLs?7<%s1q zaYvj#6r4Sn^DXGWqgxf3oJz|dEbsVVEUHSEQ zi{9=7miuc<=&-c&O}f%{_a+s8aJ83f+df_=Nvlz(|JSF-TV2n#I&RssN86*f$)9+& z%Fb5v#%7fmY5SkQk2G(5^?PiA-GKkoE%Vjo~ zwZEsx)q3V<#kX66Oh~(j|Jsyf{C53YZ?du|?$xZd7Jn-r2ra*1_`bMfPIa+9uA$R; zEY-UxzwDVsozSOsVO`4Rl|?;EH8)D9w^+|w?yFoKW`9xd)0nAh$*FZme3TB39KNG- zw*H)7pKE>x{6c8>Fz9Qbr}kXiSstFcb< z`7;iD4fejbUiYSfZU6FO#lq9JMkAAR$;Vzx((4^N z)_G<($*viwGJQEvo#*)U+0=Krjfz`ak-8u4``qwL3X|*WK1^QR=YMyf z`|jL+->RxiD}~}R)5WQ_KN|vN<)Tb}XzsUqo_6x(jAGYUHm_`FJue#fV2?s{b>*pV zf5olxI~u(9>H;@4+^N~%Sz+?NNsbXy-Lr(QsC0vB^Xf*MqD3u=4qu0PbjxY)vfK4i zGsfV!zt^K5r=uR_Pq(~REdRtQ^6Vz#G6iMdk*7lQd_&@<_-i~oW-&W9n;N;j*jf8O zmA2qZ3yN}H7HAy1=6!g6_zu^Trnk4bF3dSKdzgE|j^G`phfN>8DK*?=vCyWnY=pjh z=|iQ2vloQ9A-VP0f4fcC^tRy3-(?Fv+}Qf^hh6-HODF0q)~rrW+3C?yz&~QG=j)Sf z=RJIS`JKORNh=z)f9-gC>eJkB+k65t=f7qX8ZZwwm-|Z=KeFMeVF~v7kjk! z`S|ClwYq#O@c;YXcw5_FKjtK;t6p34$xe`T`O3nxJ90kkKAv|q^3(biSIsuR%Nk3M8r>5%Z`##kn-=vXZmrQC?s;oklwQ`yNh^vr zo_tY5&A)3jaeHgLz$n1EqiFBad!{qa&i=HNpJ`xTHFJUkNQ+7Qd_hG48bgR_aa&@8AD@*g^wjJgLPdyTs=Y0z< zN@~!&k@mSVy0JU;@~)*GpK@PBKG@LIN4uZA(mD5`)V&g!nWJv43h2#WWzl;u=lzi* z&1>x@B-y+VOAAuGv-L~)v4?wN$_g#MnnbpY=sWS+IeQQN!O4H=l5@Us#=5<$zii1* zS`qcp=H91|%SIm#GTl^trmbCbM`oj0Ztk~XCWeWo&I<$R2H~#K{HY@XCi<1;&pI1F zw)0BJEyKPLpEjSpjyKcB7u2U~ZtV>$+y45)xI@=#>Q{6|SUk4hc&_ZEwBguUAM6`K zZ>QC_Rv7z?t6f||wcEvqzpM${K5>2DBHX6FcB8i2WE+c0uU(bvqrJ(e36nC5_M~NA zPB=AT(`@6IV^4xBrf+@iY*DAQWJgog*P`rkD|Ws^=jK?=T9oy#>66^)(V~Th8plMb zMN@B_&#JL$TAvo(DJyXQ{Y_q`Vd?gMsV`*H|fERnXN za;>Pg5DZ?K#hm2NetG-b8vzyy0whkNGBYt7BLw1KR&ls4Fi5){QxzcRB#Ls1D5vyA zpa>8}Kp)}Bld5b*@{ga7YJY3RNHZl;C&Ecl1Wo|r1W-hHiZsGjV~k^r$q4h8Y69e{ zL>NpG!KAzhoCCabKpEjF^YvNjcO!kzOI^}>0_225dLQN8M-_x%@X8kQOx3pfJNNo+ z1jxS<)d!&X0cZ-r;FVR$hc40bOkF=gfMiKjT{zK&Gud7Oyi4M21wdmc+oEjeoVhP; z1xUU``kdfBCzys#1H3eGLo4xyu?>xA%)i(iwAw*{DfJ929#wNy=LLmNSi`bQPWA~Pld`59zqR6F)TxysI6au0U3=_BZ(ILAD zs5!g&U*k24WszeNtt0Bl^so4rO-(S{sbg1;)oKA!C{Y9xykLT{!V7?RL2QKrpu^T; zOv0n4!zvv<0whKv^%i*R3W4~SP0V8NGKCEr-s}<}u@Xfs%Bw|HgkbQ>s@j*-tkmhy z+#^6DB&tY^7l|<`4PIH*%D{idb|1|07a+wFRTs(YB1enBX}~)TMk72~+>k9;XzAjn zriA+aQpg2~bSgSkSqQ|xY+_psrS8YL_#Y4;rzDDaAczM{!3M9aswcTS& zs5%K=Ct)UH1|Uxa%)~u9oXxT}$?ILm$4*9iNg}Plc@?;d2xJ0YCQuPKn>H&|G}-sr zsO9Tn0diI%4a0b0n4Ay{UfH}uZ_D;;pK?AbiyW7z>`{BhgvGzC!s6t!W@qQ0u>$0z zMBy*+XBtiX%PQtQp>OYLeVHUcE=m-s1d&QG<1h>GvVftuP)CL=Be>>q|C!4zX#(WB zL|aet>Pa;bNCLbhpeAl!1GWNz^?Oo@07;ZcGjO>KoT>KUmCc)faKW{Jq-BgML82l0U{WtjpvAx`4mLdl=_c7fAk=r#?b(l99qG~!4j4!_WaBV8Pj zNFa#>tSBUqLJlY)&=P`~a|i#JOoK@zn1o*mCDBk4R$L*GD;z~GiRN+?{Up-QQAATn zGzBLbO^u4CEZA(>nOWRAgR?UGgq?_K<_UN5Wr`Yx%ZK4QL;WoTDY#q;t_^`4TqXzC z92zP@P)f*@5}HH9ObBk1a<@tCp#dNS`IJmPr8zW}2tfrUQ$cC6GkKd_{L{eABV^>5 z{O1yLWrn70A&3FGF~E4p^u=IY3~+$JX~2vl^C6eZ6c`w%080p@0kbq<1A$CnmcA zP?x0>XgVPn^58;nhd}QT0;mteNHmNT48=u4kVK+Mq=2<5Cei;$^gmJn^>P@6hEakc z2P6cCDD)5qoTkvzlz<(#Od2T^n!*9^Df~Sp!;bkamNUKD-+3sD9m!*0_!yW$eUy$G zrlV$1>%GS4*O(ks?Mj?iiOaK-Cu?ou0WlaevIBx`N%0eLh{$rb_F_I55wcIDW*YdB zzP4I`DcC_Ea}emW^CcS|@|btHAt57ufvUeihYiIoLLkEAMVQ9WlqUq&G5PD5#?TBS z1cA6|AU=juDTPX0ldTk!XgAL5#ubJ_Ng+rkc*%sqP!uQxZIpZ)rNK5Tf*Zx{o3Cz& zG4D2FXd_0mwPHX#j>qGC2&Ce8>K`x>i3p!2+i5zQk-8CXe75D7+eDz32n?bA=>d8@ zz!2)6C`>5|Qy+@Qn6Zqh$6z`Th{M$5I6#Eyh_K;M`($ErnV2#JvM}8&%m4z{F`et! zaHs`KF}YGq83JXPbQz`qfd`oG1Iz#dZJ1dbW(76+M@;@BrUHR(OsyM(z2Xl{`Uj=} zDFX3vfw&z6f^d@{d^7~Y@L^&22oA6g!zVx>7T1r(jUbSM>!)x)4z8Pn8$ctw64$N7 z4IuNV#2qSeCkS-oD&4pyWG~(Lgl>E?1VRXn5JGn-Ru@~8N;07dSyVDHKAD&Vfl@-Z zlrVt&M=_~iOd3Jn;Wnv%n*;JG-F(V`Gb!j+PzLNUWlXA#(rKfHvv$jXH3ETUmS3hRy#^-LyC0TFr7AK!wn{vY+5&)Hh@45t((IEw`jFn zv^J|?X9biQ^4#?ulUNRh=3so*KC_!1+8^##9VZ@pe`)_U3>s+XF!gho4g`uwei13l z0=9d^nG7xy*(Xd=1te8KDzc5O;xKvFytxjxO3af5!~!X3kiNiFUvSJe1*cMQX~@E| z@DW+K8ONYZDsgkjewuMXGp;ZcJc=EVUN>&U7Lds_gfIvpOgZ+WmrNKz<{~0=MT8+V z|CA6WC4@O-KcVEvP|}k1z)Yfvq;(=`3(Y@yq;?)ToUJsYxJ^>GNofd#P(%nN1x-l# z6p>F!K_-_^ndDRE5NM%PTPWB%gtV&gPgj5c-zr=@BMh#<*^g9;Lr_bLZAnrJ%A5^UV!#;z&C(?iUVpoy&H>|VQ3nXTK+zW{9|El?)r!ipVLMawR#c}IHR6ELt*8wL*tMe5An+DN z-=cgDPY*$=2H1i~;R45Np(9K^c}@?n@d2k3`kCJ>0k zkVuS%=KM%(bR=d2fs+_|65~T44V#dLIkGO4seT&vR~j}C0wN3*{c*C4A`3&aIG_ll ziZEGdiZ8VpA(ZH&`BVj1UCf zBkduONTP`(9|CzKnn&^>pIuDi#hg_|J&Dwl^w0*95Y&^l_2d)?bdg9GNe}JdG4mto z)d^u%NPK}2`jTQ=Rq4-c#@QOlTaX=e|wsAloh4yj4FADv|0YVxT z(tI{dVA@nfqaqGSr_po{$fnV34#=U=oIl`nE}{QvZqH0Ulh_V?2Rt7f1^7|U1P}wz z7(hc4KqjCwfehrDvjLsW0eOJVKWYaZqku8dh-`Y=LZKi zuOyj zf!!{N|DIA)(|2%#cx`SjZLY)epsID6>wS&4iMbJOq{^1i?|M_Jlljb@;-*@{Tf%%z zIQYlh=3=~D3+27 zx=;v;X?`&W+@|@r{{VJM7TYWL^n}U(A|`#2vr@ls8!#zTiG%&i$>2H*aNBLATc*$&A(flqXpLd1i`@n8dFt=(X5H}HmrWD(|DgfT%ldpscC9-mW><2fDb(g9k-yk=aRI{ABQ4h<$SC`<;#jbH9ZsGpV^M zyK2Ep3q9`R!rN9aG4v(IgF5jgrv4JsV*wl6iZ}eYhipv4WMN8Km?jjd zKERY7V49GL#NsNkobB~uQl*%)dEQ4U^--GabiyS1i&FZ<0ok-tHm%8e1xArWE9LwF z>|r0pln_4RV}xe`?<`P<+IRr)27o%$K3$kv7iP>>mU*R)7*R)zgW|$Oaz-NQ4#jj0 zq)`KD!v<(Km*3FMyy_Ay_S%h>S~fM&`|El#WI

idm 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 literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/tusb_types.h.EB765862FAB152B5.idx b/.cache/clangd/index/tusb_types.h.EB765862FAB152B5.idx new file mode 100644 index 0000000000000000000000000000000000000000..3d974347a88ad8b359374e34e4466b2793ea49f5 GIT binary patch literal 24416 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 HOZfMHo{BP8 literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/tusb_verify.h.D32763C60C41FB34.idx b/.cache/clangd/index/tusb_verify.h.D32763C60C41FB34.idx new file mode 100644 index 0000000000000000000000000000000000000000..b92a3609af2bb2fb243e310d53f0a37bb4e668b3 GIT binary patch literal 638 zcmWIYbaN|XVqkDi@vO*AElFfyU|@~gNqHwow=hN9H8Vr@nShQ0rs zrkYJ`6kz0HmEw>R14)6v@^1+rmW6ifG4im6N{5<21Q{44tP3);%Bl^3s!KRZBw)g! zsyoE8xRv~Y!dV6_d>b0$3Wpqj!L-d%TpK5U10RPszyKSJ!N34YVo(48 D6rr>P literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/usb_descriptors.c.9CC77C8373106E12.idx b/.cache/clangd/index/usb_descriptors.c.9CC77C8373106E12.idx new file mode 100644 index 0000000000000000000000000000000000000000..e2b95765b08ecd6b2ffa4e248259a0f46253707c GIT binary patch literal 5222 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 M_1JKO0HZhq0HmW(6#xJL literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/usbd.c.7F1DD9AA33B4C2D4.idx b/.cache/clangd/index/usbd.c.7F1DD9AA33B4C2D4.idx new file mode 100644 index 0000000000000000000000000000000000000000..ccf47e30ab13365a9b49625745c6d1d32c94451f GIT binary patch literal 32026 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 literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/usbd_control.c.2A74DE2F3283A287.idx b/.cache/clangd/index/usbd_control.c.2A74DE2F3283A287.idx new file mode 100644 index 0000000000000000000000000000000000000000..b890bfaa6b233e75da058f6567d417b20140ce40 GIT binary patch literal 6114 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 literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/usbtmc_device.c.814CA61A9A3C3AB4.idx b/.cache/clangd/index/usbtmc_device.c.814CA61A9A3C3AB4.idx new file mode 100644 index 0000000000000000000000000000000000000000..750aa58cc3808e8ebf9062a0d499b419607fc2c0 GIT binary patch literal 1278 zcmVaBnXCd`h%W z#{+sZ39tPL9nYerKN|!H52t=~S0kfwIO}(wI+xcSgojZ$pwsD!&i$Lh(1j^EwY=amr?!$@<|n4_?M*(2ccMWK4{DM%6hL`V3YSs258)N@R7y+D zH_QTc%HM+Ce-pdbx{IPULW1R4Yl>Dy>lJ&%aH;2IS8<`QtuC`O7Mx*TZJJH3I%V#! zKTe2kP6*2j(5-ToX#j1NAtMd2ScVb411&+E6#C-emR_fm#iE&<(?sz07>)u;l+1X$ zGxHsmTY(PqTURklQ*ODErWJC{gp*CO=Cti!3T88<3)=cxxdv9Y2UuaU5A_zRT{(&^ zFP#AhD@)^sLX5QK$5Hzaqm%ZbeZN#aJ)MR|m`>J?k!ELF5??j|H!-)NNZ1M`n%FWH00b^&}6-(8_?Yk1K$x;YV{2sEf5RFcFCiBO1UWo+mX29B5jVH z-|tm0$#O{P>)X;nA*F|lliXD%{&PXUMn7ZgdXiwbN znGguygVsv-oA)QH8N&BcVUSgU6D2pG4Og-;?tN1zH6+YJic?4g(`faod6J+%S*yr-Stf!RLn;&7B55A;Lqsz%G9w`(AP*!bCM7{A oH#j*uKR!D=Js%JrS4>S)R8mk*QCL<_T3cL8UsVHLV_9ASV(r^6C;$Ke literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/vendor_device.c.1FAA1FAF6262F519.idx b/.cache/clangd/index/vendor_device.c.1FAA1FAF6262F519.idx new file mode 100644 index 0000000000000000000000000000000000000000..2894bf259c6d0a1cf8b1149f0e6a7065a4f2abd6 GIT binary patch literal 1278 zcmVaBnXCd`h%W z#{+sZ39tPL9nYerKN|!H52t=~S0STuIO}(wI+xcSgojZ$pwsD!&i$L20)H4R=>1~63>I_}4(=j^$7G{&Aa6TYtc;3X(D)g3`YUQN~XNs znfVUOtw4wQt*V$M3AbEH(+as^!pSCCaoYAT1hc8qIc=(v4o-!D~9Pp6>~rsIucq}iL6#Fq`gP0Vd55_W>GzpvRg ztoA!&+h2G`{axuG8ZvGyXtLSSE$Hrtf$s<^wE6~*7KjC7yW~+mCEOH(?a8|2B597D z-|v+($udaj>)X;nA*F|lliZhP{pW&yjef>f^(4XWlz!wgb4@ooJ^_*>u;noz9A*gL zGa(SZ2d$OvH}6kYGlcJ@!XV2W$4YKN8?IzytbG$GG{nq8f)j`Z)2u$(k6n&IwV{-y zfdsEhiw#)3Wtvx4tT$ZJQpOeUji%SVlt{3#djZEP4o!w<5?9$^x^XV$qf|SI3(c~e zHCh{N!8FUkf<`z-I7@a+r}!MhH|{duzlhCF)tg zv0yT*-?~>`*Xz+-LUXt6Dm|b*~UMHtA=w>|UZ@(|`DT_Ath|*Yi5{7~O8? z@+Y4)mp|HY7RTsM)+%ydma$;QkS)kW>E=NXrRv4#d7pWs?_kOvVN}fwp_C^n{n^J$ zxc=WUJhlFYsu}*5kiQ$;sRp&BSyNS1OTycr{{S%DjVb_hd2M0<0001TWoC0O0000C zIS#e|Td^7e3}hSy925Wm00000002KGyxPw>y0rleWE>bACIA2c000000CHt)VE_OC z0CRF;Lqsz%G9w`(AP*!bCM7{A oH#j*uKR!D=Js%JrS4>S)R8mk*QCL<_T3cL8UsVHLV_9ASV!W|99smFU literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/video_device.c.106B56EA6D6CFC43.idx b/.cache/clangd/index/video_device.c.106B56EA6D6CFC43.idx new file mode 100644 index 0000000000000000000000000000000000000000..badadc81ac136e52691ed682ea5c59622ea01113 GIT binary patch literal 1276 zcmVGPBz4J$LRmf-@&ib9F&gFFn;b9aG=ybZGbN?nd5C`FGG`@K) zY!n}s{)CPe!Dl+X{rar<`fj5W7)1GsFW^XfTGSW+$fC@+Ka{JJBSE7d7z)a-cjfgiEj7yYPy5DoYE^ zx6A@{%HM&me~Eo-yYsv?LW1RKYl>ER>m7TGzwg;L ztoD_$?LWMu@viJ38ZvGyXtLSSE$Hrtf$tbpX!Q*qEf5RFcFCiBO1LQm+mm(4MbaEQ zzdtHxl4X$4*SDpEg_IsHPI6zG^`9H`YxFa=$|nhSr}QJ2nQOYy@d=P5fh~^#;V?t^ zo(X~QJ!q|TziB^N%@Dqq3WF?j94om6ZMc$+u+~kW&=4~V2~HpuOtboAKUO&g)q+x% z1`@n3EjD2BmT6vHvEEQgOBq+ZH@aSrQX;{|?gboMap*EUlemfo(~WW|AEnw!Txgc% ztg*Gh7EH4oENFydgtKJFbc)Xr&az~UuvEq}ZBs75AgmD9U{tANs6J=*-`gWrDN(Ni zjs=rh-RfR>U9U%bo!&*~tlK;4t#awm>RusiY|_tU*}X)+rvLDH_Atk}*Yi5{9Nli` z@+X}&mp{sI7RTsM_9}9oma$;QkS$L@9iH@%s9ubotIQiC2UGS4qiS6Ur94UL&pKYh z_5aM^sr5Hht?s{s{7uJBHKi@hnyRAO4BiI)2X{S+U~_qGVgLXD0CHt!b1nb?01P<} zwf|eO8UYMs9R(c}0000000000#*sJRdOB$50Ssgv7#$@5000000001TWo%&p0001U za$|EB00001WR{C@-*h!TZUJQgWdHyG000000001EZDed@0001CVqgLU1qKHQ2?`4g z4Gu<0DoRL4KrJpWDJv{66BHE^77-U29U2=P7&J9DMM6VFGchtFAtE3TBqt^%K`1vk mIXXW+J3Kuf5FS@dO;c1-P)<=;R!>@6TuWb716^ZTUIAj-rYyYx literal 0 HcmV?d00001 diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index 9d41746..386a88b 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -1,4 +1,11 @@ -idf_component_register(SRCS "KnxWorker.cpp" "Nvs.cpp" "main.cpp" "Display.cpp" "Touch.cpp" "Gui.cpp" "Wifi.cpp" "LvglIdle.c" "Gui/WifiSetting.cpp" "Gui/EthSetting.cpp" "Hardware/Eth.cpp" "WidgetManager.cpp" "WebServer.cpp" "SdCard.cpp" +idf_component_register(SRCS "KnxWorker.cpp" "Nvs.cpp" "main.cpp" "Display.cpp" "Touch.cpp" "Gui.cpp" "Wifi.cpp" "LvglIdle.c" "Gui/WifiSetting.cpp" "Gui/EthSetting.cpp" "Hardware/Eth.cpp" "WidgetManager.cpp" "SdCard.cpp" + "webserver/WebServer.cpp" + "webserver/StaticFileHandlers.cpp" + "webserver/ConfigHandlers.cpp" + "webserver/KnxHandlers.cpp" + "webserver/StatusHandlers.cpp" + "webserver/FileManagerHandlers.cpp" PRIV_REQUIRES spi_flash esp_driver_ppa esp_lcd usb REQUIRES esp_mm esp_eth esp_driver_ppa esp_timer lvgl knx ethernet_init esp_wifi_remote esp_netif esp_event nvs_flash esp_http_server fatfs sdmmc json tinyusb - INCLUDE_DIRS "") + INCLUDE_DIRS "webserver" + EMBED_TXTFILES "embedded/filemanager.html") diff --git a/main/WebServer.cpp b/main/WebServer.cpp deleted file mode 100644 index 044acfa..0000000 --- a/main/WebServer.cpp +++ /dev/null @@ -1,374 +0,0 @@ -#include "WebServer.hpp" -#include "SdCard.hpp" -#include "WidgetManager.hpp" -#include "KnxWorker.hpp" -#include "Gui.hpp" -#include "esp_log.h" -#include "esp_system.h" -#include -#include -#include - -static const char* TAG = "WebServer"; - -WebServer& WebServer::instance() { - static WebServer instance; - return instance; -} - -WebServer::~WebServer() { - stop(); -} - -void WebServer::start() { - if (server_ != nullptr) { - ESP_LOGW(TAG, "Server already running"); - return; - } - - httpd_config_t config = HTTPD_DEFAULT_CONFIG(); - config.uri_match_fn = httpd_uri_match_wildcard; - config.stack_size = 8192; - config.max_uri_handlers = 8; - - ESP_LOGI(TAG, "Starting HTTP server on port %d", config.server_port); - - if (httpd_start(&server_, &config) != ESP_OK) { - ESP_LOGE(TAG, "Failed to start HTTP server"); - return; - } - - // GET / - Web page (loads index.html from SD card) - httpd_uri_t root = { - .uri = "/", - .method = HTTP_GET, - .handler = rootHandler, - .user_ctx = nullptr - }; - httpd_register_uri_handler(server_, &root); - - // GET /webseite/* - Static files from SD card - httpd_uri_t webseite = { - .uri = "/webseite/*", - .method = HTTP_GET, - .handler = staticFileHandler, - .user_ctx = nullptr - }; - httpd_register_uri_handler(server_, &webseite); - - // GET /images/* - Images from SD card - httpd_uri_t images = { - .uri = "/images/*", - .method = HTTP_GET, - .handler = imagesHandler, - .user_ctx = nullptr - }; - httpd_register_uri_handler(server_, &images); - - // GET /api/config - Get full configuration - httpd_uri_t getConfig = { - .uri = "/api/config", - .method = HTTP_GET, - .handler = getConfigHandler, - .user_ctx = nullptr - }; - httpd_register_uri_handler(server_, &getConfig); - - // POST /api/config - Update configuration (from editor) - httpd_uri_t postConfig = { - .uri = "/api/config", - .method = HTTP_POST, - .handler = postConfigHandler, - .user_ctx = nullptr - }; - httpd_register_uri_handler(server_, &postConfig); - - // POST /api/save - Save and apply configuration - httpd_uri_t postSave = { - .uri = "/api/save", - .method = HTTP_POST, - .handler = postSaveHandler, - .user_ctx = nullptr - }; - httpd_register_uri_handler(server_, &postSave); - - // POST /api/reset - Reset to defaults - httpd_uri_t postReset = { - .uri = "/api/reset", - .method = HTTP_POST, - .handler = postResetHandler, - .user_ctx = nullptr - }; - httpd_register_uri_handler(server_, &postReset); - - // GET /api/knx/addresses - Get KNX group addresses - httpd_uri_t getKnxAddresses = { - .uri = "/api/knx/addresses", - .method = HTTP_GET, - .handler = getKnxAddressesHandler, - .user_ctx = nullptr - }; - httpd_register_uri_handler(server_, &getKnxAddresses); - - // POST /api/usb-mode - Enable USB Mass Storage mode - httpd_uri_t postUsbMode = { - .uri = "/api/usb-mode", - .method = HTTP_POST, - .handler = postUsbModeHandler, - .user_ctx = nullptr - }; - httpd_register_uri_handler(server_, &postUsbMode); - - // GET /api/status - Get system status - httpd_uri_t getStatus = { - .uri = "/api/status", - .method = HTTP_GET, - .handler = getStatusHandler, - .user_ctx = nullptr - }; - httpd_register_uri_handler(server_, &getStatus); - - ESP_LOGI(TAG, "HTTP server started successfully"); -} - -void WebServer::stop() { - if (server_ != nullptr) { - httpd_stop(server_); - server_ = nullptr; - ESP_LOGI(TAG, "HTTP server stopped"); - } -} - -const char* WebServer::getContentType(const char* filepath) { - const char* ext = strrchr(filepath, '.'); - if (!ext) return "application/octet-stream"; - - if (strcasecmp(ext, ".html") == 0 || strcasecmp(ext, ".htm") == 0) return "text/html; charset=utf-8"; - if (strcasecmp(ext, ".css") == 0) return "text/css"; - if (strcasecmp(ext, ".js") == 0) return "application/javascript"; - if (strcasecmp(ext, ".json") == 0) return "application/json"; - if (strcasecmp(ext, ".png") == 0) return "image/png"; - if (strcasecmp(ext, ".jpg") == 0 || strcasecmp(ext, ".jpeg") == 0) return "image/jpeg"; - if (strcasecmp(ext, ".gif") == 0) return "image/gif"; - if (strcasecmp(ext, ".svg") == 0) return "image/svg+xml"; - if (strcasecmp(ext, ".ico") == 0) return "image/x-icon"; - - return "application/octet-stream"; -} - -esp_err_t WebServer::sendFile(httpd_req_t* req, const char* filepath) { - struct stat st; - if (stat(filepath, &st) != 0) { - ESP_LOGE(TAG, "File not found: %s", filepath); - httpd_resp_send_err(req, HTTPD_404_NOT_FOUND, "File not found"); - return ESP_FAIL; - } - - FILE* f = fopen(filepath, "r"); - if (!f) { - ESP_LOGE(TAG, "Failed to open file: %s", filepath); - httpd_resp_send_err(req, HTTPD_500_INTERNAL_SERVER_ERROR, "Failed to open file"); - return ESP_FAIL; - } - - httpd_resp_set_type(req, getContentType(filepath)); - - // Send file in chunks - char* chunk = new char[1024]; - if (!chunk) { - fclose(f); - httpd_resp_send_err(req, HTTPD_500_INTERNAL_SERVER_ERROR, "Out of memory"); - return ESP_FAIL; - } - - size_t read; - while ((read = fread(chunk, 1, 1024, f)) > 0) { - if (httpd_resp_send_chunk(req, chunk, read) != ESP_OK) { - delete[] chunk; - fclose(f); - ESP_LOGE(TAG, "Failed to send chunk"); - httpd_resp_send_err(req, HTTPD_500_INTERNAL_SERVER_ERROR, "Send failed"); - return ESP_FAIL; - } - } - - delete[] chunk; - fclose(f); - - // End chunked response - httpd_resp_send_chunk(req, nullptr, 0); - return ESP_OK; -} - -esp_err_t WebServer::rootHandler(httpd_req_t* req) { - if (!SdCard::instance().isMounted()) { - httpd_resp_set_type(req, "text/html; charset=utf-8"); - const char* errorPage = "

SD Card Error

" - "

SD card not mounted. Please insert SD card with /webseite/index.html

"; - httpd_resp_send(req, errorPage, strlen(errorPage)); - return ESP_OK; - } - - return sendFile(req, "/sdcard/webseite/index.html"); -} - -esp_err_t WebServer::staticFileHandler(httpd_req_t* req) { - // URI: /webseite/filename -> /sdcard/webseite/filename - char filepath[CONFIG_HTTPD_MAX_URI_LEN + 8]; - snprintf(filepath, sizeof(filepath), "/sdcard%.*s", - (int)(sizeof(filepath) - 8), req->uri); - - return sendFile(req, filepath); -} - -esp_err_t WebServer::imagesHandler(httpd_req_t* req) { - // URI: /images/filename -> /sdcard/images/filename - char filepath[CONFIG_HTTPD_MAX_URI_LEN + 8]; - snprintf(filepath, sizeof(filepath), "/sdcard%.*s", - (int)(sizeof(filepath) - 8), req->uri); - - return sendFile(req, filepath); -} - -esp_err_t WebServer::getConfigHandler(httpd_req_t* req) { - // Allocate buffer for JSON (widgets can be large) - char* buf = new char[8192]; - if (buf == nullptr) { - httpd_resp_send_err(req, HTTPD_500_INTERNAL_SERVER_ERROR, "Out of memory"); - return ESP_FAIL; - } - - WidgetManager::instance().getConfigJson(buf, 8192); - - httpd_resp_set_type(req, "application/json"); - httpd_resp_send(req, buf, strlen(buf)); - - delete[] buf; - return ESP_OK; -} - -esp_err_t WebServer::postConfigHandler(httpd_req_t* req) { - // Read request body - int total_len = req->content_len; - if (total_len > 8192) { - httpd_resp_send_err(req, HTTPD_400_BAD_REQUEST, "Content too large"); - return ESP_FAIL; - } - - char* buf = new char[total_len + 1]; - if (buf == nullptr) { - httpd_resp_send_err(req, HTTPD_500_INTERNAL_SERVER_ERROR, "Out of memory"); - return ESP_FAIL; - } - - int received = 0; - while (received < total_len) { - int ret = httpd_req_recv(req, buf + received, total_len - received); - if (ret <= 0) { - delete[] buf; - httpd_resp_send_err(req, HTTPD_400_BAD_REQUEST, "Receive failed"); - return ESP_FAIL; - } - received += ret; - } - buf[received] = '\0'; - - // Update config (does NOT apply yet) - bool success = WidgetManager::instance().updateConfigFromJson(buf); - delete[] buf; - - if (success) { - httpd_resp_set_type(req, "application/json"); - httpd_resp_send(req, "{\"status\":\"ok\"}", 15); - } else { - httpd_resp_send_err(req, HTTPD_400_BAD_REQUEST, "Invalid JSON"); - } - - return success ? ESP_OK : ESP_FAIL; -} - -esp_err_t WebServer::postSaveHandler(httpd_req_t* req) { - ESP_LOGI(TAG, "Saving and applying configuration"); - - WidgetManager::instance().saveAndApply(); - - httpd_resp_set_type(req, "application/json"); - httpd_resp_send(req, "{\"status\":\"ok\"}", 15); - return ESP_OK; -} - -esp_err_t WebServer::postResetHandler(httpd_req_t* req) { - ESP_LOGI(TAG, "Resetting to defaults"); - - WidgetManager::instance().resetToDefaults(); - - httpd_resp_set_type(req, "application/json"); - httpd_resp_send(req, "{\"status\":\"ok\"}", 15); - return ESP_OK; -} - -esp_err_t WebServer::getKnxAddressesHandler(httpd_req_t* req) { - char buf[2048]; - int pos = 0; - - pos += snprintf(buf + pos, sizeof(buf) - pos, "["); - - // Get group objects from KnxWorker - KnxWorker& knxWorker = Gui::knxWorker; - size_t count = knxWorker.getGroupObjectCount(); - - for (size_t i = 1; i <= count && pos < (int)sizeof(buf) - 100; i++) { - KnxGroupObjectInfo info; - if (knxWorker.getGroupObjectInfo(i, info)) { - char addrStr[16]; - KnxWorker::formatGroupAddress(info.groupAddress, addrStr, sizeof(addrStr)); - - if (i > 1) pos += snprintf(buf + pos, sizeof(buf) - pos, ","); - - pos += snprintf(buf + pos, sizeof(buf) - pos, - "{\"index\":%d,\"addr\":%d,\"addrStr\":\"%s\",\"comm\":%s,\"read\":%s,\"write\":%s}", - info.goIndex, - info.groupAddress, - addrStr, - info.commFlag ? "true" : "false", - info.readFlag ? "true" : "false", - info.writeFlag ? "true" : "false" - ); - } - } - - snprintf(buf + pos, sizeof(buf) - pos, "]"); - - httpd_resp_set_type(req, "application/json"); - httpd_resp_send(req, buf, strlen(buf)); - return ESP_OK; -} - -esp_err_t WebServer::postUsbModeHandler(httpd_req_t* req) { - ESP_LOGI(TAG, "Enabling USB Mass Storage mode"); - - bool success = SdCard::instance().enableUsbMsc(); - - if (success) { - httpd_resp_set_type(req, "application/json"); - const char* response = "{\"status\":\"ok\",\"message\":\"USB MSC enabled. Connect USB cable to access SD card. Reboot to return to normal mode.\"}"; - httpd_resp_send(req, response, strlen(response)); - } else { - httpd_resp_send_err(req, HTTPD_500_INTERNAL_SERVER_ERROR, "Failed to enable USB MSC"); - } - - return success ? ESP_OK : ESP_FAIL; -} - -esp_err_t WebServer::getStatusHandler(httpd_req_t* req) { - char buf[256]; - snprintf(buf, sizeof(buf), - "{\"sdMounted\":%s,\"usbMscActive\":%s}", - SdCard::instance().isMounted() ? "true" : "false", - SdCard::instance().isUsbMscActive() ? "true" : "false" - ); - - httpd_resp_set_type(req, "application/json"); - httpd_resp_send(req, buf, strlen(buf)); - return ESP_OK; -} diff --git a/main/WebServer.hpp b/main/WebServer.hpp deleted file mode 100644 index f1ffcd5..0000000 --- a/main/WebServer.hpp +++ /dev/null @@ -1,36 +0,0 @@ -#pragma once - -#include "esp_http_server.h" - -class WebServer { -public: - static WebServer& instance(); - - void start(); - void stop(); - bool isRunning() const { return server_ != nullptr; } - -private: - WebServer() = default; - ~WebServer(); - WebServer(const WebServer&) = delete; - WebServer& operator=(const WebServer&) = delete; - - httpd_handle_t server_ = nullptr; - - // HTTP handlers - static esp_err_t rootHandler(httpd_req_t* req); - static esp_err_t staticFileHandler(httpd_req_t* req); - static esp_err_t imagesHandler(httpd_req_t* req); - static esp_err_t getConfigHandler(httpd_req_t* req); - static esp_err_t postConfigHandler(httpd_req_t* req); - static esp_err_t postSaveHandler(httpd_req_t* req); - static esp_err_t postResetHandler(httpd_req_t* req); - static esp_err_t getKnxAddressesHandler(httpd_req_t* req); - static esp_err_t postUsbModeHandler(httpd_req_t* req); - static esp_err_t getStatusHandler(httpd_req_t* req); - - // Helper functions - static const char* getContentType(const char* filepath); - static esp_err_t sendFile(httpd_req_t* req, const char* filepath); -}; diff --git a/main/embedded/filemanager.html b/main/embedded/filemanager.html new file mode 100644 index 0000000..90f2704 --- /dev/null +++ b/main/embedded/filemanager.html @@ -0,0 +1,222 @@ + + + + + +SD Card File Manager + + + +
+

SD Card File Manager

+
+
SD Card
+
USB MSC
+
+
+

Dateien hier ablegen oder

+
+
+
+ + + + +
+
Pfad: /
+
Laden...
+
+ + +
+ + + diff --git a/main/webserver/ConfigHandlers.cpp b/main/webserver/ConfigHandlers.cpp new file mode 100644 index 0000000..c9657b4 --- /dev/null +++ b/main/webserver/ConfigHandlers.cpp @@ -0,0 +1,78 @@ +#include "WebServer.hpp" +#include "../WidgetManager.hpp" +#include "esp_log.h" +#include + +static const char* TAG = "WebServer"; + +esp_err_t WebServer::getConfigHandler(httpd_req_t* req) { + char* buf = new char[8192]; + if (buf == nullptr) { + httpd_resp_send_err(req, HTTPD_500_INTERNAL_SERVER_ERROR, "Out of memory"); + return ESP_FAIL; + } + + WidgetManager::instance().getConfigJson(buf, 8192); + + httpd_resp_set_type(req, "application/json"); + httpd_resp_send(req, buf, strlen(buf)); + + delete[] buf; + return ESP_OK; +} + +esp_err_t WebServer::postConfigHandler(httpd_req_t* req) { + int total_len = req->content_len; + if (total_len > 8192) { + httpd_resp_send_err(req, HTTPD_400_BAD_REQUEST, "Content too large"); + return ESP_FAIL; + } + + char* buf = new char[total_len + 1]; + if (buf == nullptr) { + httpd_resp_send_err(req, HTTPD_500_INTERNAL_SERVER_ERROR, "Out of memory"); + return ESP_FAIL; + } + + int received = 0; + while (received < total_len) { + int ret = httpd_req_recv(req, buf + received, total_len - received); + if (ret <= 0) { + delete[] buf; + httpd_resp_send_err(req, HTTPD_400_BAD_REQUEST, "Receive failed"); + return ESP_FAIL; + } + received += ret; + } + buf[received] = '\0'; + + bool success = WidgetManager::instance().updateConfigFromJson(buf); + delete[] buf; + + cJSON* json = cJSON_CreateObject(); + if (success) { + cJSON_AddStringToObject(json, "status", "ok"); + } else { + cJSON_AddStringToObject(json, "status", "error"); + cJSON_AddStringToObject(json, "message", "Invalid JSON"); + } + return sendJsonObject(req, json); +} + +esp_err_t WebServer::postSaveHandler(httpd_req_t* req) { + ESP_LOGI(TAG, "Saving and applying configuration"); + WidgetManager::instance().saveAndApply(); + + cJSON* json = cJSON_CreateObject(); + cJSON_AddStringToObject(json, "status", "ok"); + return sendJsonObject(req, json); +} + +esp_err_t WebServer::postResetHandler(httpd_req_t* req) { + ESP_LOGI(TAG, "Resetting to defaults"); + WidgetManager::instance().resetToDefaults(); + + cJSON* json = cJSON_CreateObject(); + cJSON_AddStringToObject(json, "status", "ok"); + return sendJsonObject(req, json); +} diff --git a/main/webserver/FileManagerHandlers.cpp b/main/webserver/FileManagerHandlers.cpp new file mode 100644 index 0000000..b521bc9 --- /dev/null +++ b/main/webserver/FileManagerHandlers.cpp @@ -0,0 +1,392 @@ +#include "WebServer.hpp" +#include "../SdCard.hpp" +#include "esp_log.h" +#include +#include +#include +#include +#include +#include + +static const char* TAG = "WebServer"; + +// Embedded file manager HTML (from Flash) +extern const uint8_t filemanager_html_start[] asm("_binary_filemanager_html_start"); +extern const uint8_t filemanager_html_end[] asm("_binary_filemanager_html_end"); + +// Maximum upload size (2 MB) +static constexpr size_t MAX_UPLOAD_SIZE = 2 * 1024 * 1024; + +// GET /files - Serve embedded file manager HTML +esp_err_t WebServer::fileManagerHandler(httpd_req_t* req) { + httpd_resp_set_type(req, "text/html; charset=utf-8"); + size_t len = filemanager_html_end - filemanager_html_start; + httpd_resp_send(req, (const char*)filemanager_html_start, len); + return ESP_OK; +} + +// GET /api/files/list?path=/ - List directory contents +esp_err_t WebServer::filesListHandler(httpd_req_t* req) { + char path[128] = "/"; + getQueryParam(req, "path", path, sizeof(path)); + + char fullPath[256]; + snprintf(fullPath, sizeof(fullPath), "%.7s%.127s", SdCard::MOUNT_POINT, path); + + if (!SdCard::instance().isMounted()) { + return sendJsonError(req, "SD card not mounted"); + } + + DIR* dir = opendir(fullPath); + if (!dir) { + return sendJsonError(req, "Cannot open directory"); + } + + cJSON* json = cJSON_CreateObject(); + cJSON_AddBoolToObject(json, "success", true); + cJSON_AddStringToObject(json, "path", path); + cJSON* files = cJSON_AddArrayToObject(json, "files"); + + struct dirent* entry; + while ((entry = readdir(dir)) != nullptr) { + if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0) continue; + + char entryPath[512]; + size_t fullPathLen = strlen(fullPath); + const char* sep = (fullPathLen > 0 && fullPath[fullPathLen-1] == '/') ? "" : "/"; + snprintf(entryPath, sizeof(entryPath), "%.255s%s%.255s", fullPath, sep, entry->d_name); + + struct stat st; + bool isDir = false; + size_t fileSize = 0; + + if (stat(entryPath, &st) == 0) { + isDir = S_ISDIR(st.st_mode); + fileSize = st.st_size; + } else { + isDir = (entry->d_type == DT_DIR); + } + + cJSON* fileObj = cJSON_CreateObject(); + cJSON_AddStringToObject(fileObj, "name", entry->d_name); + cJSON_AddBoolToObject(fileObj, "isDir", isDir); + cJSON_AddNumberToObject(fileObj, "size", (double)fileSize); + cJSON_AddItemToArray(files, fileObj); + } + + closedir(dir); + return sendJsonObject(req, json); +} + +// POST /api/files/upload?path=/ - Upload file (multipart/form-data) +esp_err_t WebServer::filesUploadHandler(httpd_req_t* req) { + char path[128] = "/"; + getQueryParam(req, "path", path, sizeof(path)); + + if (!SdCard::instance().isMounted()) { + return sendJsonError(req, "SD card not mounted"); + } + + if (req->content_len > MAX_UPLOAD_SIZE) { + return sendJsonError(req, "File too large (max 2MB)"); + } + + char contentType[128] = ""; + if (httpd_req_get_hdr_value_str(req, "Content-Type", contentType, sizeof(contentType)) != ESP_OK) { + return sendJsonError(req, "Missing Content-Type"); + } + + char* boundaryStart = strstr(contentType, "boundary="); + if (!boundaryStart) { + return sendJsonError(req, "Invalid multipart boundary"); + } + boundaryStart += 9; + char boundary[72]; + snprintf(boundary, sizeof(boundary), "--%.68s", boundaryStart); + + size_t contentLen = req->content_len; + char* fullData = new char[contentLen + 1]; + if (!fullData) { + return sendJsonError(req, "Out of memory"); + } + + size_t totalReceived = 0; + while (totalReceived < contentLen) { + int ret = httpd_req_recv(req, fullData + totalReceived, contentLen - totalReceived); + if (ret <= 0) { + delete[] fullData; + return sendJsonError(req, "Receive failed"); + } + totalReceived += ret; + } + fullData[totalReceived] = '\0'; + + char* filenameStart = strstr(fullData, "filename=\""); + if (!filenameStart) { + delete[] fullData; + return sendJsonError(req, "No filename found"); + } + filenameStart += 10; + char* filenameEnd = strchr(filenameStart, '"'); + if (!filenameEnd) { + delete[] fullData; + return sendJsonError(req, "Invalid filename"); + } + + size_t filenameLen = filenameEnd - filenameStart; + char filename[128]; + if (filenameLen >= sizeof(filename)) filenameLen = sizeof(filename) - 1; + memcpy(filename, filenameStart, filenameLen); + filename[filenameLen] = '\0'; + + char* dataStart = strstr(filenameEnd, "\r\n\r\n"); + if (!dataStart) { + delete[] fullData; + return sendJsonError(req, "Invalid multipart format"); + } + dataStart += 4; + + char endBoundary[80]; + snprintf(endBoundary, sizeof(endBoundary), "\r\n%.72s", boundary); + char* dataEnd = strstr(dataStart, endBoundary); + if (!dataEnd) { + dataEnd = strstr(dataStart, boundary); + } + if (!dataEnd) { + delete[] fullData; + return sendJsonError(req, "End boundary not found"); + } + + size_t fileSize = dataEnd - dataStart; + + char resolvedDir[384]; + char targetDirPath[256]; + snprintf(targetDirPath, sizeof(targetDirPath), "%.7s%.127s", SdCard::MOUNT_POINT, path); + + const char* actualDir = targetDirPath; + if (resolveCaseInsensitivePath(targetDirPath, resolvedDir, sizeof(resolvedDir))) { + actualDir = resolvedDir; + } + + char fullPath[384]; + snprintf(fullPath, sizeof(fullPath), "%.250s/%.120s", actualDir, filename); + + ESP_LOGI(TAG, "Uploading: %s (%zu bytes)", fullPath, fileSize); + + struct stat dirStat; + if (stat(actualDir, &dirStat) != 0) { + if (mkdir(actualDir, 0755) != 0 && errno != EEXIST) { + delete[] fullData; + return sendJsonError(req, "Cannot create directory"); + } + } + + FILE* f = fopen(fullPath, "wb"); + if (!f) { + ESP_LOGE(TAG, "Cannot create file: %s (errno=%d)", fullPath, errno); + delete[] fullData; + return sendJsonError(req, "Cannot create file"); + } + + size_t written = fwrite(dataStart, 1, fileSize, f); + fclose(f); + delete[] fullData; + + if (written != fileSize) { + return sendJsonError(req, "Write failed"); + } + + ESP_LOGI(TAG, "Upload complete: %s", fullPath); + + cJSON* json = cJSON_CreateObject(); + cJSON_AddBoolToObject(json, "success", true); + cJSON_AddStringToObject(json, "filename", filename); + cJSON_AddNumberToObject(json, "size", (double)fileSize); + return sendJsonObject(req, json); +} + +// GET /api/files/download?file=/path/to/file - Download file +esp_err_t WebServer::filesDownloadHandler(httpd_req_t* req) { + char file[256] = ""; + if (!getQueryParam(req, "file", file, sizeof(file)) || strlen(file) == 0) { + httpd_resp_send_err(req, HTTPD_400_BAD_REQUEST, "Missing file parameter"); + return ESP_FAIL; + } + + char fullPath[384]; + snprintf(fullPath, sizeof(fullPath), "%.7s%.255s", SdCard::MOUNT_POINT, file); + + const char* basename = strrchr(file, '/'); + basename = basename ? basename + 1 : file; + char disposition[256]; + snprintf(disposition, sizeof(disposition), "attachment; filename=\"%.200s\"", basename); + httpd_resp_set_hdr(req, "Content-Disposition", disposition); + + return sendFile(req, fullPath); +} + +// DELETE /api/files/delete?file=/path/to/file - Delete file or empty directory +esp_err_t WebServer::filesDeleteHandler(httpd_req_t* req) { + char file[256] = ""; + if (!getQueryParam(req, "file", file, sizeof(file)) || strlen(file) == 0) { + return sendJsonError(req, "Missing file parameter"); + } + + if (!SdCard::instance().isMounted()) { + return sendJsonError(req, "SD card not mounted"); + } + + char fullPath[384]; + snprintf(fullPath, sizeof(fullPath), "%.7s%.255s", SdCard::MOUNT_POINT, file); + + ESP_LOGI(TAG, "Deleting: %s", fullPath); + + struct stat st; + if (stat(fullPath, &st) != 0) { + return sendJsonError(req, "File not found"); + } + + int result; + if (S_ISDIR(st.st_mode)) { + result = rmdir(fullPath); + } else { + result = unlink(fullPath); + } + + if (result == 0) { + return sendJsonSuccess(req); + } + return sendJsonError(req, "Delete failed (directory not empty?)"); +} + +// POST /api/files/mkdir?path=/path/to/new/dir - Create directory +esp_err_t WebServer::filesMkdirHandler(httpd_req_t* req) { + char path[256] = ""; + if (!getQueryParam(req, "path", path, sizeof(path)) || strlen(path) == 0) { + return sendJsonError(req, "Missing path parameter"); + } + + if (!SdCard::instance().isMounted()) { + return sendJsonError(req, "SD card not mounted"); + } + + char fullPath[384]; + snprintf(fullPath, sizeof(fullPath), "%.7s%.255s", SdCard::MOUNT_POINT, path); + + ESP_LOGI(TAG, "Creating directory: %s", fullPath); + + if (mkdir(fullPath, 0755) == 0) { + return sendJsonSuccess(req); + } + return sendJsonError(req, "Cannot create directory"); +} + +// GET /api/files/read?file=/path/to/file - Read text file content for editor +esp_err_t WebServer::filesReadHandler(httpd_req_t* req) { + char file[256] = ""; + if (!getQueryParam(req, "file", file, sizeof(file)) || strlen(file) == 0) { + return sendJsonError(req, "Missing file parameter"); + } + + if (!SdCard::instance().isMounted()) { + return sendJsonError(req, "SD card not mounted"); + } + + char targetPath[384]; + snprintf(targetPath, sizeof(targetPath), "%.7s%.255s", SdCard::MOUNT_POINT, file); + + char resolvedPath[384]; + const char* actualPath = targetPath; + if (resolveCaseInsensitivePath(targetPath, resolvedPath, sizeof(resolvedPath))) { + actualPath = resolvedPath; + } + + struct stat st; + if (stat(actualPath, &st) != 0) { + return sendJsonError(req, "File not found"); + } + + if (st.st_size > 65536) { + return sendJsonError(req, "File too large for editor (max 64KB)"); + } + + FILE* f = fopen(actualPath, "r"); + if (!f) { + return sendJsonError(req, "Cannot open file"); + } + + char* content = new char[st.st_size + 1]; + if (!content) { + fclose(f); + return sendJsonError(req, "Out of memory"); + } + + size_t bytesRead = fread(content, 1, st.st_size, f); + fclose(f); + content[bytesRead] = '\0'; + + httpd_resp_set_type(req, "text/plain; charset=utf-8"); + httpd_resp_send(req, content, bytesRead); + + delete[] content; + return ESP_OK; +} + +// POST /api/files/write?file=/path/to/file - Write text file content from editor +esp_err_t WebServer::filesWriteHandler(httpd_req_t* req) { + char file[256] = ""; + if (!getQueryParam(req, "file", file, sizeof(file)) || strlen(file) == 0) { + return sendJsonError(req, "Missing file parameter"); + } + + if (!SdCard::instance().isMounted()) { + return sendJsonError(req, "SD card not mounted"); + } + + if (req->content_len > 65536) { + return sendJsonError(req, "Content too large (max 64KB)"); + } + + char targetPath[384]; + snprintf(targetPath, sizeof(targetPath), "%.7s%.255s", SdCard::MOUNT_POINT, file); + + char resolvedPath[384]; + const char* actualPath = targetPath; + if (resolveCaseInsensitivePath(targetPath, resolvedPath, sizeof(resolvedPath))) { + actualPath = resolvedPath; + } + + char* content = new char[req->content_len + 1]; + if (!content) { + return sendJsonError(req, "Out of memory"); + } + + size_t received = 0; + while (received < req->content_len) { + int ret = httpd_req_recv(req, content + received, req->content_len - received); + if (ret <= 0) { + delete[] content; + return sendJsonError(req, "Receive failed"); + } + received += ret; + } + content[received] = '\0'; + + ESP_LOGI(TAG, "Writing file: %s (%zu bytes)", actualPath, received); + + FILE* f = fopen(actualPath, "w"); + if (!f) { + delete[] content; + return sendJsonError(req, "Cannot create file"); + } + + size_t written = fwrite(content, 1, received, f); + fclose(f); + delete[] content; + + if (written != received) { + return sendJsonError(req, "Write incomplete"); + } + + return sendJsonSuccess(req); +} diff --git a/main/webserver/KnxHandlers.cpp b/main/webserver/KnxHandlers.cpp new file mode 100644 index 0000000..116743f --- /dev/null +++ b/main/webserver/KnxHandlers.cpp @@ -0,0 +1,35 @@ +#include "WebServer.hpp" +#include "../KnxWorker.hpp" +#include "../Gui.hpp" +#include + +esp_err_t WebServer::getKnxAddressesHandler(httpd_req_t* req) { + KnxWorker& knxWorker = Gui::knxWorker; + size_t count = knxWorker.getGroupObjectCount(); + + cJSON* arr = cJSON_CreateArray(); + + for (size_t i = 1; i <= count; i++) { + KnxGroupObjectInfo info; + if (knxWorker.getGroupObjectInfo(i, info)) { + char addrStr[16]; + KnxWorker::formatGroupAddress(info.groupAddress, addrStr, sizeof(addrStr)); + + cJSON* obj = cJSON_CreateObject(); + cJSON_AddNumberToObject(obj, "index", info.goIndex); + cJSON_AddNumberToObject(obj, "addr", info.groupAddress); + cJSON_AddStringToObject(obj, "addrStr", addrStr); + cJSON_AddBoolToObject(obj, "comm", info.commFlag); + cJSON_AddBoolToObject(obj, "read", info.readFlag); + cJSON_AddBoolToObject(obj, "write", info.writeFlag); + cJSON_AddItemToArray(arr, obj); + } + } + + char* str = cJSON_PrintUnformatted(arr); + httpd_resp_set_type(req, "application/json"); + httpd_resp_send(req, str, strlen(str)); + free(str); + cJSON_Delete(arr); + return ESP_OK; +} diff --git a/main/webserver/StaticFileHandlers.cpp b/main/webserver/StaticFileHandlers.cpp new file mode 100644 index 0000000..e87ff67 --- /dev/null +++ b/main/webserver/StaticFileHandlers.cpp @@ -0,0 +1,35 @@ +#include "WebServer.hpp" +#include "../SdCard.hpp" +#include "esp_log.h" +#include + +static const char* TAG = "WebServer"; + +esp_err_t WebServer::rootHandler(httpd_req_t* req) { + if (!SdCard::instance().isMounted()) { + httpd_resp_set_type(req, "text/html; charset=utf-8"); + const char* errorPage = "

SD Card Error

" + "

SD card not mounted. Please insert SD card with /webseite/index.html

" + "
"; + httpd_resp_send(req, errorPage, strlen(errorPage)); + return ESP_OK; + } + + return sendFile(req, "/sdcard/webseite/index.html"); +} + +esp_err_t WebServer::staticFileHandler(httpd_req_t* req) { + char filepath[CONFIG_HTTPD_MAX_URI_LEN + 8]; + snprintf(filepath, sizeof(filepath), "/sdcard%.*s", + (int)(sizeof(filepath) - 8), req->uri); + + return sendFile(req, filepath); +} + +esp_err_t WebServer::imagesHandler(httpd_req_t* req) { + char filepath[CONFIG_HTTPD_MAX_URI_LEN + 8]; + snprintf(filepath, sizeof(filepath), "/sdcard%.*s", + (int)(sizeof(filepath) - 8), req->uri); + + return sendFile(req, filepath); +} diff --git a/main/webserver/StatusHandlers.cpp b/main/webserver/StatusHandlers.cpp new file mode 100644 index 0000000..3fd9144 --- /dev/null +++ b/main/webserver/StatusHandlers.cpp @@ -0,0 +1,29 @@ +#include "WebServer.hpp" +#include "../SdCard.hpp" +#include "esp_log.h" +#include + +static const char* TAG = "WebServer"; + +esp_err_t WebServer::postUsbModeHandler(httpd_req_t* req) { + ESP_LOGI(TAG, "Enabling USB Mass Storage mode"); + + bool success = SdCard::instance().enableUsbMsc(); + + cJSON* json = cJSON_CreateObject(); + if (success) { + cJSON_AddStringToObject(json, "status", "ok"); + cJSON_AddStringToObject(json, "message", "USB MSC enabled. Connect USB cable to access SD card. Reboot to return to normal mode."); + } else { + cJSON_AddStringToObject(json, "status", "error"); + cJSON_AddStringToObject(json, "message", "Failed to enable USB MSC"); + } + return sendJsonObject(req, json); +} + +esp_err_t WebServer::getStatusHandler(httpd_req_t* req) { + cJSON* json = cJSON_CreateObject(); + cJSON_AddBoolToObject(json, "sdMounted", SdCard::instance().isMounted()); + cJSON_AddBoolToObject(json, "usbMscActive", SdCard::instance().isUsbMscActive()); + return sendJsonObject(req, json); +} diff --git a/main/webserver/WebServer.cpp b/main/webserver/WebServer.cpp new file mode 100644 index 0000000..80c1f9f --- /dev/null +++ b/main/webserver/WebServer.cpp @@ -0,0 +1,306 @@ +#include "WebServer.hpp" +#include "../SdCard.hpp" +#include "esp_log.h" +#include +#include +#include + +static const char* TAG = "WebServer"; + +WebServer& WebServer::instance() { + static WebServer instance; + return instance; +} + +WebServer::~WebServer() { + stop(); +} + +void WebServer::start() { + if (server_ != nullptr) { + ESP_LOGW(TAG, "Server already running"); + return; + } + + httpd_config_t config = HTTPD_DEFAULT_CONFIG(); + config.uri_match_fn = httpd_uri_match_wildcard; + config.stack_size = 8192; + config.max_uri_handlers = 20; + + ESP_LOGI(TAG, "Starting HTTP server on port %d", config.server_port); + + if (httpd_start(&server_, &config) != ESP_OK) { + ESP_LOGE(TAG, "Failed to start HTTP server"); + return; + } + + // Static file routes + httpd_uri_t root = { .uri = "/", .method = HTTP_GET, .handler = rootHandler, .user_ctx = nullptr }; + httpd_register_uri_handler(server_, &root); + + httpd_uri_t webseite = { .uri = "/webseite/*", .method = HTTP_GET, .handler = staticFileHandler, .user_ctx = nullptr }; + httpd_register_uri_handler(server_, &webseite); + + httpd_uri_t images = { .uri = "/images/*", .method = HTTP_GET, .handler = imagesHandler, .user_ctx = nullptr }; + httpd_register_uri_handler(server_, &images); + + // Config routes + httpd_uri_t getConfig = { .uri = "/api/config", .method = HTTP_GET, .handler = getConfigHandler, .user_ctx = nullptr }; + httpd_register_uri_handler(server_, &getConfig); + + httpd_uri_t postConfig = { .uri = "/api/config", .method = HTTP_POST, .handler = postConfigHandler, .user_ctx = nullptr }; + httpd_register_uri_handler(server_, &postConfig); + + httpd_uri_t postSave = { .uri = "/api/save", .method = HTTP_POST, .handler = postSaveHandler, .user_ctx = nullptr }; + httpd_register_uri_handler(server_, &postSave); + + httpd_uri_t postReset = { .uri = "/api/reset", .method = HTTP_POST, .handler = postResetHandler, .user_ctx = nullptr }; + httpd_register_uri_handler(server_, &postReset); + + // KNX routes + httpd_uri_t getKnxAddresses = { .uri = "/api/knx/addresses", .method = HTTP_GET, .handler = getKnxAddressesHandler, .user_ctx = nullptr }; + httpd_register_uri_handler(server_, &getKnxAddresses); + + // Status routes + httpd_uri_t postUsbMode = { .uri = "/api/usb-mode", .method = HTTP_POST, .handler = postUsbModeHandler, .user_ctx = nullptr }; + httpd_register_uri_handler(server_, &postUsbMode); + + httpd_uri_t getStatus = { .uri = "/api/status", .method = HTTP_GET, .handler = getStatusHandler, .user_ctx = nullptr }; + httpd_register_uri_handler(server_, &getStatus); + + // File manager routes + httpd_uri_t fileManager = { .uri = "/files", .method = HTTP_GET, .handler = fileManagerHandler, .user_ctx = nullptr }; + httpd_register_uri_handler(server_, &fileManager); + + httpd_uri_t filesList = { .uri = "/api/files/list", .method = HTTP_GET, .handler = filesListHandler, .user_ctx = nullptr }; + httpd_register_uri_handler(server_, &filesList); + + httpd_uri_t filesUpload = { .uri = "/api/files/upload", .method = HTTP_POST, .handler = filesUploadHandler, .user_ctx = nullptr }; + httpd_register_uri_handler(server_, &filesUpload); + + httpd_uri_t filesDownload = { .uri = "/api/files/download", .method = HTTP_GET, .handler = filesDownloadHandler, .user_ctx = nullptr }; + httpd_register_uri_handler(server_, &filesDownload); + + httpd_uri_t filesDelete = { .uri = "/api/files/delete", .method = HTTP_DELETE, .handler = filesDeleteHandler, .user_ctx = nullptr }; + httpd_register_uri_handler(server_, &filesDelete); + + httpd_uri_t filesMkdir = { .uri = "/api/files/mkdir", .method = HTTP_POST, .handler = filesMkdirHandler, .user_ctx = nullptr }; + httpd_register_uri_handler(server_, &filesMkdir); + + httpd_uri_t filesRead = { .uri = "/api/files/read", .method = HTTP_GET, .handler = filesReadHandler, .user_ctx = nullptr }; + httpd_register_uri_handler(server_, &filesRead); + + httpd_uri_t filesWrite = { .uri = "/api/files/write", .method = HTTP_POST, .handler = filesWriteHandler, .user_ctx = nullptr }; + httpd_register_uri_handler(server_, &filesWrite); + + ESP_LOGI(TAG, "HTTP server started successfully"); +} + +void WebServer::stop() { + if (server_ != nullptr) { + httpd_stop(server_); + server_ = nullptr; + ESP_LOGI(TAG, "HTTP server stopped"); + } +} + +// ============================================================================ +// Shared Utility Functions +// ============================================================================ + +const char* WebServer::getContentType(const char* filepath) { + const char* ext = strrchr(filepath, '.'); + if (!ext) return "application/octet-stream"; + + if (strcasecmp(ext, ".html") == 0 || strcasecmp(ext, ".htm") == 0) return "text/html; charset=utf-8"; + if (strcasecmp(ext, ".css") == 0) return "text/css"; + if (strcasecmp(ext, ".js") == 0) return "application/javascript"; + if (strcasecmp(ext, ".json") == 0) return "application/json"; + if (strcasecmp(ext, ".png") == 0) return "image/png"; + if (strcasecmp(ext, ".jpg") == 0 || strcasecmp(ext, ".jpeg") == 0) return "image/jpeg"; + if (strcasecmp(ext, ".gif") == 0) return "image/gif"; + if (strcasecmp(ext, ".svg") == 0) return "image/svg+xml"; + if (strcasecmp(ext, ".ico") == 0) return "image/x-icon"; + + return "application/octet-stream"; +} + +// Case-insensitive path resolution for FAT filesystem +bool resolveCaseInsensitivePath(const char* requestedPath, char* resolvedPath, size_t maxLen) { + strncpy(resolvedPath, SdCard::MOUNT_POINT, maxLen); + resolvedPath[maxLen - 1] = '\0'; + + const char* relPath = requestedPath; + if (strncmp(requestedPath, SdCard::MOUNT_POINT, strlen(SdCard::MOUNT_POINT)) == 0) { + relPath = requestedPath + strlen(SdCard::MOUNT_POINT); + } + + if (!relPath || !*relPath || (relPath[0] == '/' && !relPath[1])) { + return true; + } + + char component[256]; + const char* start = relPath; + + while (*start) { + while (*start == '/') start++; + if (!*start) break; + + const char* end = start; + while (*end && *end != '/') end++; + + size_t compLen = end - start; + if (compLen >= sizeof(component)) compLen = sizeof(component) - 1; + memcpy(component, start, compLen); + component[compLen] = '\0'; + + DIR* dir = opendir(resolvedPath); + if (!dir) return false; + + bool found = false; + struct dirent* entry; + while ((entry = readdir(dir)) != nullptr) { + if (strcasecmp(entry->d_name, component) == 0) { + size_t curLen = strlen(resolvedPath); + snprintf(resolvedPath + curLen, maxLen - curLen, "/%s", entry->d_name); + found = true; + break; + } + } + closedir(dir); + + if (!found) return false; + start = end; + } + + return true; +} + +esp_err_t WebServer::sendFile(httpd_req_t* req, const char* filepath) { + char resolvedPath[384]; + const char* actualPath = filepath; + + struct stat st; + if (stat(filepath, &st) != 0) { + if (resolveCaseInsensitivePath(filepath, resolvedPath, sizeof(resolvedPath))) { + if (stat(resolvedPath, &st) == 0) { + actualPath = resolvedPath; + } + } + } + + if (stat(actualPath, &st) != 0) { + ESP_LOGE(TAG, "File not found: %s", filepath); + httpd_resp_send_err(req, HTTPD_404_NOT_FOUND, "File not found"); + return ESP_FAIL; + } + + FILE* f = fopen(actualPath, "r"); + if (!f) { + ESP_LOGE(TAG, "Failed to open file: %s", actualPath); + httpd_resp_send_err(req, HTTPD_500_INTERNAL_SERVER_ERROR, "Failed to open file"); + return ESP_FAIL; + } + + httpd_resp_set_type(req, getContentType(actualPath)); + + char* chunk = new char[1024]; + if (!chunk) { + fclose(f); + httpd_resp_send_err(req, HTTPD_500_INTERNAL_SERVER_ERROR, "Out of memory"); + return ESP_FAIL; + } + + size_t read; + while ((read = fread(chunk, 1, 1024, f)) > 0) { + if (httpd_resp_send_chunk(req, chunk, read) != ESP_OK) { + delete[] chunk; + fclose(f); + return ESP_FAIL; + } + } + + delete[] chunk; + fclose(f); + httpd_resp_send_chunk(req, nullptr, 0); + return ESP_OK; +} + +// URL decode helper (in-place) +void urlDecode(char* str) { + char* dst = str; + char* src = str; + while (*src) { + if (*src == '%' && src[1] && src[2]) { + int hi = src[1]; + int lo = src[2]; + hi = (hi >= '0' && hi <= '9') ? hi - '0' : + (hi >= 'A' && hi <= 'F') ? hi - 'A' + 10 : + (hi >= 'a' && hi <= 'f') ? hi - 'a' + 10 : -1; + lo = (lo >= '0' && lo <= '9') ? lo - '0' : + (lo >= 'A' && lo <= 'F') ? lo - 'A' + 10 : + (lo >= 'a' && lo <= 'f') ? lo - 'a' + 10 : -1; + if (hi >= 0 && lo >= 0) { + *dst++ = (char)((hi << 4) | lo); + src += 3; + continue; + } + } else if (*src == '+') { + *dst++ = ' '; + src++; + continue; + } + *dst++ = *src++; + } + *dst = '\0'; +} + +bool WebServer::getQueryParam(httpd_req_t* req, const char* key, char* value, size_t maxLen) { + size_t queryLen = httpd_req_get_url_query_len(req); + if (queryLen == 0) return false; + + char* query = new char[queryLen + 1]; + if (!query) return false; + + if (httpd_req_get_url_query_str(req, query, queryLen + 1) != ESP_OK) { + delete[] query; + return false; + } + + esp_err_t ret = httpd_query_key_value(query, key, value, maxLen); + delete[] query; + + if (ret == ESP_OK) { + urlDecode(value); + return true; + } + return false; +} + +// JSON response helpers +esp_err_t WebServer::sendJsonObject(httpd_req_t* req, cJSON* json) { + char* str = cJSON_PrintUnformatted(json); + if (!str) { + cJSON_Delete(json); + httpd_resp_send_err(req, HTTPD_500_INTERNAL_SERVER_ERROR, "JSON print failed"); + return ESP_FAIL; + } + httpd_resp_set_type(req, "application/json"); + httpd_resp_send(req, str, strlen(str)); + free(str); + cJSON_Delete(json); + return ESP_OK; +} + +esp_err_t WebServer::sendJsonError(httpd_req_t* req, const char* error) { + cJSON* json = cJSON_CreateObject(); + cJSON_AddBoolToObject(json, "success", false); + cJSON_AddStringToObject(json, "error", error); + return sendJsonObject(req, json); +} + +esp_err_t WebServer::sendJsonSuccess(httpd_req_t* req) { + cJSON* json = cJSON_CreateObject(); + cJSON_AddBoolToObject(json, "success", true); + return sendJsonObject(req, json); +} diff --git a/main/webserver/WebServer.hpp b/main/webserver/WebServer.hpp new file mode 100644 index 0000000..0cc6a1c --- /dev/null +++ b/main/webserver/WebServer.hpp @@ -0,0 +1,66 @@ +#pragma once + +#include "esp_http_server.h" +#include "cJSON.h" + +class WebServer { +public: + static WebServer& instance(); + + void start(); + void stop(); + bool isRunning() const { return server_ != nullptr; } + +private: + WebServer() = default; + ~WebServer(); + WebServer(const WebServer&) = delete; + WebServer& operator=(const WebServer&) = delete; + + httpd_handle_t server_ = nullptr; + + // Static file handlers (StaticFileHandlers.cpp) + static esp_err_t rootHandler(httpd_req_t* req); + static esp_err_t staticFileHandler(httpd_req_t* req); + static esp_err_t imagesHandler(httpd_req_t* req); + + // Config handlers (ConfigHandlers.cpp) + static esp_err_t getConfigHandler(httpd_req_t* req); + static esp_err_t postConfigHandler(httpd_req_t* req); + static esp_err_t postSaveHandler(httpd_req_t* req); + static esp_err_t postResetHandler(httpd_req_t* req); + + // KNX handlers (KnxHandlers.cpp) + static esp_err_t getKnxAddressesHandler(httpd_req_t* req); + + // Status handlers (StatusHandlers.cpp) + static esp_err_t postUsbModeHandler(httpd_req_t* req); + static esp_err_t getStatusHandler(httpd_req_t* req); + + // File manager handlers (FileManagerHandlers.cpp) + static esp_err_t fileManagerHandler(httpd_req_t* req); + static esp_err_t filesListHandler(httpd_req_t* req); + static esp_err_t filesUploadHandler(httpd_req_t* req); + static esp_err_t filesDownloadHandler(httpd_req_t* req); + static esp_err_t filesDeleteHandler(httpd_req_t* req); + static esp_err_t filesMkdirHandler(httpd_req_t* req); + static esp_err_t filesReadHandler(httpd_req_t* req); + static esp_err_t filesWriteHandler(httpd_req_t* req); + +public: + // Shared utility functions (used by handlers) + static const char* getContentType(const char* filepath); + static esp_err_t sendFile(httpd_req_t* req, const char* filepath); + static bool getQueryParam(httpd_req_t* req, const char* key, char* value, size_t maxLen); + + // JSON response helpers + static esp_err_t sendJsonObject(httpd_req_t* req, cJSON* json); + static esp_err_t sendJsonError(httpd_req_t* req, const char* error); + static esp_err_t sendJsonSuccess(httpd_req_t* req); +}; + +// Case-insensitive path resolution for FAT filesystem +bool resolveCaseInsensitivePath(const char* requestedPath, char* resolvedPath, size_t maxLen); + +// URL decode helper +void urlDecode(char* str);

Open File Manager