Skip to content
Snippets Groups Projects
Verified Commit ec186fec authored by Nádudvari Ákos's avatar Nádudvari Ákos
Browse files

feat: eredmények init

parent d83f095c
Branches
No related tags found
No related merge requests found
Pipeline #2712 passed
...@@ -29,7 +29,8 @@ in ...@@ -29,7 +29,8 @@ in
bookmark url csquotes listings listings-ext sourcecodepro silence bookmark url csquotes listings listings-ext sourcecodepro silence
biblatex-ieee ly1 metafont transparent catchfile microtype biblatex-ieee ly1 metafont transparent catchfile microtype
l3kernel l3packages texcount moreverb pdfpages pdflscape l3kernel l3packages texcount moreverb pdfpages pdflscape
tabularray ninecolors; tabularray ninecolors minted fvextra latex2pydata
newfloat pdftexcmds pgfkeyx pgfopts upquote lineno;
}); });
}; };
document.font = mkOption { document.font = mkOption {
...@@ -63,7 +64,8 @@ in ...@@ -63,7 +64,8 @@ in
packages.document = pkgs.stdenvNoCC.mkDerivation { packages.document = pkgs.stdenvNoCC.mkDerivation {
name = "latex-document"; name = "latex-document";
src = config.document.source; src = config.document.source;
buildInputs = [ pkgs.coreutils pkgs.inkscape config.document.texlive config.document.font locales ]; buildInputs = (with pkgs; [ coreutils inkscape latexminted ]) ++
[ config.document.texlive config.document.font locales ];
phases = [ "unpackPhase" "buildPhase" "installPhase" ]; phases = [ "unpackPhase" "buildPhase" "installPhase" ];
buildPhase = '' buildPhase = ''
set -o errexit set -o errexit
...@@ -92,7 +94,7 @@ in ...@@ -92,7 +94,7 @@ in
let let
doc-watcher = pkgs.writeShellApplication { doc-watcher = pkgs.writeShellApplication {
name = "doc-watcher"; name = "doc-watcher";
runtimeInputs = with pkgs; [ watchexec coreutils inkscape ] ++ [ config.document.texlive ]; runtimeInputs = with pkgs; [ watchexec coreutils inkscape latexminted ] ++ [ config.document.texlive ];
text = '' text = ''
export OSFONTDIR="${config.document.font}/share/fonts" export OSFONTDIR="${config.document.font}/share/fonts"
watchexec -r --print-events -- \ watchexec -r --print-events -- \
......
...@@ -425,6 +425,7 @@ stabilitását és biztonságát a modern DIY rendszerek nyitottságával és ...@@ -425,6 +425,7 @@ stabilitását és biztonságát a modern DIY rendszerek nyitottságával és
rugalmasságával igyekszik ötvözni. rugalmasságával igyekszik ötvözni.
\section{Biztonságtechnikai kérdések} \section{Biztonságtechnikai kérdések}
\label{bizt-kerd}
\paragraph{} Egy riasztórendszer megalkotásához elengedhetetlen a \paragraph{} Egy riasztórendszer megalkotásához elengedhetetlen a
tervezőnek ismermie a biztonságtechnika alapjait, illetve tisztában lennie a tervezőnek ismermie a biztonságtechnika alapjait, illetve tisztában lennie a
......
...@@ -182,6 +182,7 @@ célhardverekhez tartom jobban igazodónak, nem magas szintű IoT-barát ...@@ -182,6 +182,7 @@ célhardverekhez tartom jobban igazodónak, nem magas szintű IoT-barát
megoldásoknak. megoldásoknak.
\subsection{Rust nyelv és környezet} \subsection{Rust nyelv és környezet}
\label{rust-env}
\paragraph{} A Rust nyelv ötlete egy Mozilla-nál dolgozó fejlesztő fejéből \paragraph{} A Rust nyelv ötlete egy Mozilla-nál dolgozó fejlesztő fejéből
pattant ki, amikor egy liftbe beszállt és az elromlott, hibás szoftver miatt. pattant ki, amikor egy liftbe beszállt és az elromlott, hibás szoftver miatt.
...@@ -323,6 +324,7 @@ implementálásakor, amivel potenciálisan azonnal a flash memóriába lehet maj ...@@ -323,6 +324,7 @@ implementálásakor, amivel potenciálisan azonnal a flash memóriába lehet maj
framework; előre tervezés szempontjából hasznos tudásnak tartom. framework; előre tervezés szempontjából hasznos tudásnak tartom.
\subsection{Home Assistant okosotthon} \subsection{Home Assistant okosotthon}
\label{hass}
\paragraph{} A Home Assistant egy nyílt platform, otthon-automatizációs \paragraph{} A Home Assistant egy nyílt platform, otthon-automatizációs
célokra. Egy központi, egységes felületet ad a felhasználó számára, ahol célokra. Egy központi, egységes felületet ad a felhasználó számára, ahol
...@@ -351,8 +353,9 @@ szeretnénk irányítani. A szoftver definiálja az eszköz (device) fogalmát; ...@@ -351,8 +353,9 @@ szeretnénk irányítani. A szoftver definiálja az eszköz (device) fogalmát;
ami szintén egy entitások csoportosítása, de azt nem a felhasználó, hanem a ami szintén egy entitások csoportosítása, de azt nem a felhasználó, hanem a
gyártó/megalkotó határozza meg -- például egy IP kamera, ahol van egy kamera gyártó/megalkotó határozza meg -- például egy IP kamera, ahol van egy kamera
entitás, és egy nappali és éjszakai mód között váltó gomb. Vagy vegyünk egy okos entitás, és egy nappali és éjszakai mód között váltó gomb. Vagy vegyünk egy okos
kapu vezérlőt, ahol két mód elérhető: a kapu két szárnyát egyszerre nyitó gomb, kapu vezérlőt, ahol az entitások a következők: a kapu két szárnyát egyszerre
csak az egyik szárnyat nyitó gomb, és akár egy állapot visszajelző szenzor. nyitó gomb, csak az egyik szárnyat nyitó gomb, és akár egy állapot visszajelző
szenzor.
Az entitásokat a felhasználó eléri a Home Assistant webes felületén (frontend), Az entitásokat a felhasználó eléri a Home Assistant webes felületén (frontend),
amiben azokra automatizmusokat is lehet létrehozni. Egy automatizmus három amiben azokra automatizmusokat is lehet létrehozni. Egy automatizmus három
...@@ -377,22 +380,26 @@ ha nincs mozgás legalább 10 percen át, akkor kapcsolódjon le a lámpa. ...@@ -377,22 +380,26 @@ ha nincs mozgás legalább 10 percen át, akkor kapcsolódjon le a lámpa.
Az MQTT egy első osztályú integráció a Home Assistantban. Az MQTT minden QoS Az MQTT egy első osztályú integráció a Home Assistantban. Az MQTT minden QoS
szintjét támogatja, illetve a többi integrációhoz képest sokkal általánosabb szintjét támogatja, illetve a többi integrációhoz képest sokkal általánosabb
interfészt ad. Ez kimagaslóan jobb élményt ad a végfelhasználó és a fejlesztő interfészt ad. Ez kimagaslóan jobb élményt ad a végfelhasználó számára,
számára is. MQTT-n keresztül lehetőség van entitások és eszközök telepítésére mert egységes és konzisztens marad a frontend. A fejlesztő számára is jobb
manuális konfiguráció vagy az úgynevezett ``MQTT-discovery'' segítségével. élmény, mert az intgrációt így nem szükséges a Home Assistant forráskódján át
Mindkét esetben az eszközöknek és entitásoknak van egy deklaratív leíró sémája, implementálni Pythonban. MQTT-n keresztül lehetőség van entitások és eszközök
ami tartalmaz meta-adatokat az azok működtetésére. Manuális konfiguráció esetén telepítésére manuális konfigurációval vagy az úgynevezett ``MQTT-discovery''
ezt a Home Assistantban YAML formátumban kell megadni, autodiscovery során segítségével. Mindkét esetben az eszközöknek és entitásoknak van egy deklaratív
pedig egy előre meghatározott topic-on kell küldeni JSON formátumban a rendszer leíró sémája, ami tartalmaz meta-adatokat és leírást azok működtetésére.
felé. Látható, hogy az utóbbi esetben az azt támogató eszköz végfelhasználói Manuális konfiguráció esetén ezt a Home Assistantban YAML formátumban kell
onbarding élménye sokkal kényelmeseb. Például, az eszköz első indítása után megadni, autodiscovery során pedig egy előre meghatározott MQTT topic-on kell
az autodiscovery üzenet küldésével a Home Assistant frontend felületén azonnal küldeni JSON formátumban a rendszer felé. Látható, hogy az utóbbi esetben
látni fog a felhasználó egy jóváhagyandó üzenetet, hogy az készen áll a az azt támogató eszköz végfelhasználói onbarding élménye sokkal kényelmeseb.
használatra. Jóváhagyás után a meghirdetett entitások importálásra kerülnek a Például, az eszköz első indítása után az autodiscovery üzenet küldésével a Home
Home Assistantba. \cite{hass-mqtt} Célom úgy megvalósítani a saját rendszert, Assistant frontend felületén azonnal látni fog a felhasználó egy jóváhagyandó
hogy az alapból támogassa az autodiscovery-t. Így \aref{kereskedelmi}. üzenetet, hogy az készen áll a használatra. Jóváhagyás után a meghirdetett
fejezetben megismert DIY rendszereknél is potenciálisan jobb élményt tudna entitások importálásra kerülnek a Home Assistantba. \cite{hass-mqtt} Célom úgy
nyújtani, hiszen a kommunikáció vezetékes médiumon történne. Ennek realitását megvalósítani a saját rendszert, hogy az alapból támogassa az autodiscovery-t.
Így \aref{kereskedelmi}. fejezetben megismert DIY rendszereknél is potenciálisan
jobb élményt tudna nyújtani, hiszen a kommunikáció vezetékes médiumon történne,
ahol az Ethernet csatlakoztatásával azonnal a hálózatra kerül az eszköz. Ez
elméletben kényelmesebb, mint például a WiFi konfigurációja. Ennek realitását
szintén a gyakorlatban fogjuk tudni megállapítani. szintén a gyakorlatban fogjuk tudni megállapítani.
\clearpage % Ez azért kell, hogy nehogy képek átcsússzanak a következő fejezethez \clearpage % Ez azért kell, hogy nehogy képek átcsússzanak a következő fejezethez
This diff is collapsed.
...@@ -26,7 +26,7 @@ nélküli leütések számát jelenti. ...@@ -26,7 +26,7 @@ nélküli leütések számát jelenti.
\url{http://mirrors.ctan.org/support/texcount/doc/TeXcount.pdf}} \url{http://mirrors.ctan.org/support/texcount/doc/TeXcount.pdf}}
{ {
\small \footnotesize
\verbatiminput{./build/charcount.tex} \verbatiminput{./build/charcount.tex}
} }
......
...@@ -656,3 +656,65 @@ urldate = {2025-04-22}, ...@@ -656,3 +656,65 @@ urldate = {2025-04-22},
url = {https://www.home-assistant.io/integrations/mqtt/}, url = {https://www.home-assistant.io/integrations/mqtt/},
urldate = {2025-04-26}, urldate = {2025-04-26},
} }
@manual{ip101,
title = {Single Port 10/100 MII/RMII/TP/Fiber Fast Ethernet Transciever -
IP101G Data Sheet},
organization = {IC Plus Corp.},
url = {
https://www.lcsc.com/datasheet/lcsc_datasheet_2008201637_IC-Plus-IP101GRI_C703537.pdf
},
urldate = {2025-04-26},
}
@online{ip101-example,
title = {ESP32-Ethernet-Kit V1.2 Getting Started Guide},
url = {
https://docs.espressif.com/projects/esp-idf/en/v4.4/esp32/hw-reference/esp32/get-started-ethernet-kit.html
},
urldate = {2025-04-26},
}
@manual{w5500-datasheet,
title = {W5500 Datasheet - Version 1.1.0},
url = {https://docs.wiznet.io/img/products/w5500/W5500_ds_v110e.pdf},
urldate = {2025-04-26},
}
@online{esp-idf-template,
title = {Rust on ESP-IDF "Hello, World" template},
url = {https://github.com/esp-rs/esp-idf-template},
urldate = {2025-04-27},
}
@online{cargo,
title = {The Cargo Book},
url = {https://doc.rust-lang.org/cargo/},
urldate = {2025-04-27},
}
@online{rust-compiles-1,
title = {Opinion: Rust code typically works once compiled, why?},
organization = {Rust users forum},
url = {
https://users.rust-lang.org/t/opinion-rust-code-typically-works-once-compiled-why/95126
},
urldate = {2025-04-27},
}
@online{rust-compiles-2,
title = {Am I safe, if Rust program has successfully compiled?},
organization = {Reddit},
url = {
https://www.reddit.com/r/rust/comments/113bm7a/am_i_safe_if_rust_program_has_successfully/
},
urldate = {2025-04-27},
}
@online{rust-compiles-3,
title = {It's true that Rust approaches the "if it compiles, it works"
property that Hask...},
organization = {Hacker News},
url = {https://news.ycombinator.com/item?id=8392945},
urldate = {2025-04-27},
}
This diff is collapsed.
...@@ -121,7 +121,7 @@ ...@@ -121,7 +121,7 @@
% Kódrészletek % Kódrészletek
\usepackage{listings} \usepackage{listings}
\usepackage{sourcecodepro} % egy jó betűtípus % \usepackage{sourcecodepro} % egy jó betűtípus
\lstset{captionpos=b, numberbychapter=false, basicstyle=\ttfamily, showstringspaces=false, columns=fullflexible} \lstset{captionpos=b, numberbychapter=false, basicstyle=\ttfamily, showstringspaces=false, columns=fullflexible}
% Kódrészletek magyar stílusú számozása % Kódrészletek magyar stílusú számozása
...@@ -244,6 +244,12 @@ ...@@ -244,6 +244,12 @@
\usepackage{moreverb} \usepackage{moreverb}
\immediate\write18{texcount -char -tex -merge -sum ./\jobname.tex > ./build/charcount.tex} \immediate\write18{texcount -char -tex -merge -sum ./\jobname.tex > ./build/charcount.tex}
% syntax highlighthoz
\usepackage{minted}
\setminted{style=colorful,fontsize=\footnotesize,breaklines=true}
%TC:envir minted [] other
% ------------- Dokumentum legenerálása ----------------- % ------------- Dokumentum legenerálása -----------------
\begin{document} \begin{document}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment