Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions .github/workflows/thesis_ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Thesis CI

on:
push:
paths:
- 'docs/BT/CTU_FEL_THESIS/**'
Comment on lines +3 to +6

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Release step runs on every branch push — can overwrite production release from feature branches.

The workflow triggers on any push to docs/BT/CTU_FEL_THESIS/** regardless of branch, and the release step uses a fixed tag thesis-latest. A push from a feature branch will overwrite the release artifact built from main. Either restrict the trigger to main or gate the release step with a branch condition.

Option A: Restrict trigger to main
 on:
   push:
+    branches:
+      - main
     paths:
       - 'docs/BT/CTU_FEL_THESIS/**'
Option B: Gate only the release step
       - name: Release
+        if: github.ref == 'refs/heads/main'
         uses: softprops/action-gh-release@v2

Also applies to: 40-48

🤖 Prompt for AI Agents
In @.github/workflows/thesis_ci.yml around lines 3 - 6, The GitHub Actions
workflow currently triggers on every push to docs/BT/CTU_FEL_THESIS/** and the
release step uses the fixed tag thesis-latest; restrict or gate this to avoid
overwriting production releases from feature branches. Either change the
workflow trigger under on: push to include branches: [main] (so only pushes to
main run the workflow) or add a conditional to the release job/step (e.g., check
github.ref or github.ref_name for 'refs/heads/main'/'main') so the release step
that creates the thesis-latest tag runs only on main; update the release step
that references thesis-latest accordingly to only execute when the branch
condition is met.

- '.github/workflows/thesis_ci.yml'

permissions:
contents: write

jobs:
build_latex:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Compile Thesis PDF
uses: docker://texlive/texlive:latest

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick | 🔵 Trivial

Pinning texlive/texlive:latest makes builds non-reproducible.

Using :latest means the TeX Live version can change between builds, potentially introducing compilation differences or breakage. Consider pinning to a specific year tag (e.g., texlive/texlive:TL2024-historic) for reproducibility.

🤖 Prompt for AI Agents
In @.github/workflows/thesis_ci.yml at line 19, The workflow currently pins the
Docker image with an unstable tag "uses: docker://texlive/texlive:latest";
change that to a fixed, reproducible tag or digest (for example
"texlive/texlive:TL2024-historic" or a specific image digest) so builds are
deterministic—update the "uses: docker://texlive/texlive:latest" line in the CI
workflow to the chosen year-specific tag or SHA.

with:
entrypoint: /bin/sh
args: -c "apt-get update && apt-get install -y make && cd docs/BT/CTU_FEL_THESIS && make pdf || true"

- name: Rename Output
run: |
# Find the pdf generated by make in the thesis directory
cd docs/BT/CTU_FEL_THESIS
# The makefile produces $(BASENAME)_v$(VERSION).pdf - use sort -V for version sorting
PDF_FILE=$(find . -maxdepth 1 -name "bachelor_thesis_Yuan_v*.pdf" | sort -V | tail -n 1)
BUILD_DATE=$(date +%Y-%m-%d)
OUTPUT_NAME="袁伟泽_本科毕业论文_${BUILD_DATE}.pdf"
if [ -n "$PDF_FILE" ]; then
cp "$PDF_FILE" "$GITHUB_WORKSPACE/${OUTPUT_NAME}"
echo "OUTPUT_NAME=${OUTPUT_NAME}" >> $GITHUB_ENV
echo "Found and moved $PDF_FILE to ${OUTPUT_NAME}"
else
echo "No PDF found!"
# Debug output
ls -la
exit 1
fi
Comment thread
coderabbitai[bot] marked this conversation as resolved.

- name: Release
uses: softprops/action-gh-release@v2
with:
tag_name: thesis-latest
name: Latest Thesis Build
files: ${{ env.OUTPUT_NAME }}
draft: false
prerelease: false
make_latest: false
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,9 @@ certs/**
sensors/certs/

# Docs: keep only docs/README tracked
docs/BT/
docs/BT/*
!docs/BT/CTU_FEL_THESIS/
Comment on lines 44 to +46

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

# Check .gitignore content, focusing on lines 17 and 44-46
echo "=== .gitignore lines 1-50 ===" 
head -50 .gitignore

echo -e "\n=== Checking if .github/ is in .gitignore ==="
grep -n "\.github" .gitignore || echo "Not found"

echo -e "\n=== Checking tracked status of .github/workflows/thesis_ci.yml ==="
git ls-files --error-unmatch .github/workflows/thesis_ci.yml 2>&1 || echo "File is NOT tracked"

echo -e "\n=== List all tracked .github files ==="
git ls-files .github/ 2>&1 || echo "No .github files tracked or .github not in repo"

Repository: yuanweize/SmartHome_Server

Length of output: 1067


Update the stale comment on line 44 to reflect the actual rules.

The comment says "keep only docs/README tracked" but the negation pattern !docs/BT/CTU_FEL_THESIS/ actually re-includes the entire CTU_FEL_THESIS/ directory. Update the comment to accurately describe the intent.

Additionally, note that .github/ is ignored by design (user request). While .github/workflows/thesis_ci.yml is currently tracked (force-added), future .github/ files will be silently ignored unless also force-added. If additional GitHub workflows or metadata files are expected in the future, consider whether the ignore rule should be refined.

Suggested comment fix
-# Docs: keep only docs/README tracked
+# Docs: ignore docs/BT except the CTU_FEL_THESIS template
 docs/BT/*
 !docs/BT/CTU_FEL_THESIS/
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
# Docs: keep only docs/README tracked
docs/BT/
docs/BT/*
!docs/BT/CTU_FEL_THESIS/
# Docs: ignore docs/BT except the CTU_FEL_THESIS template
docs/BT/*
!docs/BT/CTU_FEL_THESIS/
🤖 Prompt for AI Agents
In @.gitignore around lines 44 - 46, Update the stale comment in .gitignore to
accurately describe the rules: replace "keep only docs/README tracked" with a
line stating that docs/BT/* is ignored but docs/BT/CTU_FEL_THESIS/ is explicitly
re-included (i.e., all files under docs/BT are ignored except the CTU_FEL_THESIS
directory). Also add a short note about .github being intentionally ignored (and
that individual files like .github/workflows/thesis_ci.yml were force-added) so
maintainers know future .github/* files will be ignored unless force-added or
the rule is adjusted.



# PDF converter working files
docs/pdf2md/input/
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,3 +106,5 @@ This project was developed under the supervision of [Prof. Miroslav Husák](http
Czech Technical University in Prague, Faculty of Electrical Engineering

[![GitHub](https://img.shields.io/badge/GitHub-@IYUANWEIZE-181717?logo=github)](https://github.com/IYUANWEIZE)

# [CodeRabbit Audit Trigger 1769364389]

Copilot AI Jan 25, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line is a Markdown level-1 heading, so it will render as a visible section in the README (and can trigger markdownlint rules about multiple H1 headings). If you need a non-user-facing audit marker, use a Markdown comment form (e.g., an HTML comment) or move the trigger to a dedicated file instead of adding a heading.

Suggested change
# [CodeRabbit Audit Trigger 1769364389]
<!-- CodeRabbit Audit Trigger 1769364389 -->

Copilot uses AI. Check for mistakes.
2 changes: 2 additions & 0 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,3 +106,5 @@ cd broker/emqx && docker compose up -d
捷克理工大学电气工程学院

[![GitHub](https://img.shields.io/badge/GitHub-@IYUANWEIZE-181717?logo=github)](https://github.com/IYUANWEIZE)

# [CodeRabbit Audit Trigger 1769364389]

Copilot AI Jan 25, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line is a Markdown level-1 heading, so it will render as a visible section in the README (and can trigger markdownlint rules about multiple H1 headings). If you need a non-user-facing audit marker, use a Markdown comment form (e.g., an HTML comment) or move the trigger to a dedicated file instead of adding a heading.

Suggested change
# [CodeRabbit Audit Trigger 1769364389]
<!-- [CodeRabbit Audit Trigger 1769364389] -->

Copilot uses AI. Check for mistakes.
2 changes: 2 additions & 0 deletions broker/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,3 +66,5 @@ See [`../certs/README.md`](../certs/README.md) for certificate generation instru

- [EMQX Documentation](https://www.emqx.io/docs/en/latest/)
- [Mosquitto Documentation](https://mosquitto.org/documentation/)

# [CodeRabbit Audit Trigger 1769364389]

Copilot AI Jan 25, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

# ... is a Markdown heading and will render visibly in the README. If the goal is only to touch the file for an audit trigger, use a Markdown comment form (e.g., HTML comment) instead so the rendered docs aren’t affected.

Suggested change
# [CodeRabbit Audit Trigger 1769364389]
<!-- CodeRabbit Audit Trigger 1769364389 -->

Copilot uses AI. Check for mistakes.
2 changes: 2 additions & 0 deletions broker/README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,3 +66,5 @@ docker compose up -d

- [EMQX 文档](https://www.emqx.io/docs/zh/latest/)
- [Mosquitto 文档](https://mosquitto.org/documentation/)

# [CodeRabbit Audit Trigger 1769364389]

Copilot AI Jan 25, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

# ... is a Markdown heading and will render visibly in the README. If the goal is only to touch the file for an audit trigger, use a Markdown comment form (e.g., HTML comment) instead so the rendered docs aren’t affected.

Suggested change
# [CodeRabbit Audit Trigger 1769364389]
<!-- CodeRabbit Audit Trigger 1769364389 -->

Copilot uses AI. Check for mistakes.
2 changes: 2 additions & 0 deletions broker/emqx/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,5 @@ services:
EMQX_LISTENERS__SSL__DEFAULT__SSL_OPTIONS__FAIL_IF_NO_PEER_CERT: "true"
# Authentication
EMQX_ALLOW_ANONYMOUS: "false"

# [CodeRabbit Audit Trigger 1769364389]
2 changes: 2 additions & 0 deletions broker/mosquitto/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,5 @@ services:
- ./config:/mosquitto/config
- ./data:/mosquitto/data
- ./log:/mosquitto/log

# [CodeRabbit Audit Trigger 1769364389]
2 changes: 2 additions & 0 deletions certs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,3 +85,5 @@ For deployment examples, see:
- [broker/emqx/docker-compose.yml](../broker/emqx/docker-compose.yml) - EMQX mTLS configuration
- [esphome/*.yaml](../esphome/) - ESP32 client certificate configuration
- [sensors/brokers.example.yml](../sensors/brokers.example.yml) - Simulator TLS configuration

# [CodeRabbit Audit Trigger 1769364389]

Copilot AI Jan 25, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

# ... is a Markdown heading and will render visibly in the README. If the goal is only to touch the file for an audit trigger, use a Markdown comment form (e.g., HTML comment) instead so the rendered docs aren’t affected.

Suggested change
# [CodeRabbit Audit Trigger 1769364389]
<!-- [CodeRabbit Audit Trigger 1769364389] -->

Copilot uses AI. Check for mistakes.
2 changes: 2 additions & 0 deletions certs/README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,3 +84,5 @@ openssl x509 -in ha/ha.pem -noout -subject -dates
- [broker/emqx/docker-compose.yml](../broker/emqx/docker-compose.yml) - EMQX mTLS 配置
- [esphome/*.yaml](../esphome/) - ESP32 客户端证书配置
- [sensors/brokers.example.yml](../sensors/brokers.example.yml) - 模拟器 TLS 配置

# [CodeRabbit Audit Trigger 1769364389]

Copilot AI Jan 25, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

# ... is a Markdown heading and will render visibly in the README. If the goal is only to touch the file for an audit trigger, use a Markdown comment form (e.g., HTML comment) instead so the rendered docs aren’t affected.

Suggested change
# [CodeRabbit Audit Trigger 1769364389]
<!-- [CodeRabbit Audit Trigger 1769364389] -->

Copilot uses AI. Check for mistakes.
1 change: 1 addition & 0 deletions docs/BT/CTU_FEL_THESIS/.version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
25.9
36 changes: 36 additions & 0 deletions docs/BT/CTU_FEL_THESIS/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Thesis build with auto-versioning
BASENAME = bachelor_thesis_Yuan
VERSION_FILE = .version
VERSION = $(shell cat $(VERSION_FILE) 2>/dev/null || echo "1.0")
JOBNAME = $(BASENAME)_v$(VERSION)

.PHONY: all pdf bump clean

# 默认: bump + pdf
all: bump pdf

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Version bump runs before build — failed builds skip version numbers.

all: bump pdf increments .version before compilation starts. If lualatex or biber fails, the version number is already consumed and the next build will skip it. Consider reversing the order or bumping only on success.

Proposed fix: bump after successful build
-all: bump pdf
+all: pdf bump

Or, alternatively, make bumping a manual step:

-all: bump pdf
+all: pdf
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
all: bump pdf
all: pdf bump
Suggested change
all: bump pdf
all: pdf
🤖 Prompt for AI Agents
In `@docs/BT/CTU_FEL_THESIS/Makefile` at line 10, The Makefile currently runs
"bump" before "pdf" via the "all: bump pdf" rule, causing .version to be
incremented even if the build (pdf target that invokes lualatex/biber) fails;
change the rule so the build completes successfully before bumping (e.g., make
"all: pdf bump" or invoke the bump step as a recipe run after the pdf target
finishes), or make bump a manual/explicit step so .version is only updated on
successful build; update references to targets "all", "bump", and "pdf"
accordingly.


pdf:
lualatex -interaction=nonstopmode -jobname=$(JOBNAME) thesis-final.tex
biber $(JOBNAME)
lualatex -interaction=nonstopmode -jobname=$(JOBNAME) thesis-final.tex
lualatex -interaction=nonstopmode -jobname=$(JOBNAME) thesis-final.tex
@if grep -q "^!" $(JOBNAME).log 2>/dev/null; then \
echo "❌ LaTeX errors found:"; \
grep "^!" $(JOBNAME).log; \
exit 1; \
else \
echo "✅ Output: $(JOBNAME).pdf"; \
fi
Comment on lines +12 to +23

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick | 🔵 Trivial

pdf target checks for errors only after all three lualatex runs complete.

The error grep on line 17 runs only after the third lualatex invocation. If the first lualatex run produces a fatal error, biber and subsequent runs will still execute (and likely fail too), wasting time. Consider failing fast after the first run.

Also, grep "^!" only catches TeX-level errors that begin with !. Some critical issues (e.g., missing fonts, biber errors) won't match this pattern. Checking biber's exit code directly would be more reliable.

Proposed fix: fail-fast on lualatex/biber errors
 pdf:
-	lualatex -interaction=nonstopmode -jobname=$(JOBNAME) thesis-final.tex
-	biber $(JOBNAME)
-	lualatex -interaction=nonstopmode -jobname=$(JOBNAME) thesis-final.tex
-	lualatex -interaction=nonstopmode -jobname=$(JOBNAME) thesis-final.tex
-	`@if` grep -q "^!" $(JOBNAME).log 2>/dev/null; then \
-		echo "❌ LaTeX errors found:"; \
-		grep "^!" $(JOBNAME).log; \
-		exit 1; \
-	else \
-		echo "✅ Output: $(JOBNAME).pdf"; \
-	fi
+	lualatex -interaction=nonstopmode -halt-on-error -jobname=$(JOBNAME) thesis-final.tex
+	biber $(JOBNAME)
+	lualatex -interaction=nonstopmode -halt-on-error -jobname=$(JOBNAME) thesis-final.tex
+	lualatex -interaction=nonstopmode -halt-on-error -jobname=$(JOBNAME) thesis-final.tex
+	`@echo` "✅ Output: $(JOBNAME).pdf"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
pdf:
lualatex -interaction=nonstopmode -jobname=$(JOBNAME) thesis-final.tex
biber $(JOBNAME)
lualatex -interaction=nonstopmode -jobname=$(JOBNAME) thesis-final.tex
lualatex -interaction=nonstopmode -jobname=$(JOBNAME) thesis-final.tex
@if grep -q "^!" $(JOBNAME).log 2>/dev/null; then \
echo "❌ LaTeX errors found:"; \
grep "^!" $(JOBNAME).log; \
exit 1; \
else \
echo "✅ Output: $(JOBNAME).pdf"; \
fi
pdf:
lualatex -interaction=nonstopmode -halt-on-error -jobname=$(JOBNAME) thesis-final.tex
biber $(JOBNAME)
lualatex -interaction=nonstopmode -halt-on-error -jobname=$(JOBNAME) thesis-final.tex
lualatex -interaction=nonstopmode -halt-on-error -jobname=$(JOBNAME) thesis-final.tex
`@echo` "✅ Output: $(JOBNAME).pdf"
🧰 Tools
🪛 checkmake (0.2.2)

[warning] 12-12: Target body for "pdf" exceeds allowed length of 5 (11).

(maxbodylength)

🤖 Prompt for AI Agents
In `@docs/BT/CTU_FEL_THESIS/Makefile` around lines 12 - 23, The pdf Makefile
target currently runs three lualatex calls and biber before checking for errors;
change the pdf target (referencing JOBNAME, the lualatex invocations and the
biber invocation) to fail fast by checking each command's exit status
immediately after it runs and exiting with a non‑zero code if it failed, and
also explicitly check biber's exit code instead of relying on log grepping; keep
the final log grep as a secondary check (or improve it to scan for multiple
failure patterns) but ensure lualatex and biber errors cause immediate failure
and print a clear error message referencing $(JOBNAME).log or biber stderr for
diagnostics.


bump:
@if [ ! -f $(VERSION_FILE) ]; then echo "1.0" > $(VERSION_FILE); fi
@NEW_VER=$$(awk 'BEGIN{printf "%.1f", '$(VERSION)'+0.1}'); \
echo "$$NEW_VER" > $(VERSION_FILE); \
echo "📌 Version: $(VERSION) → $$NEW_VER"

clean:
latexmk -C
rm -f $(BASENAME)_v*.aux $(BASENAME)_v*.bbl $(BASENAME)_v*.bcf \
$(BASENAME)_v*.blg $(BASENAME)_v*.log $(BASENAME)_v*.out \
$(BASENAME)_v*.run.xml $(BASENAME)_v*.lof $(BASENAME)_v*.lot \
$(BASENAME)_v*.toc $(BASENAME)_v*.pdf
98 changes: 98 additions & 0 deletions docs/BT/CTU_FEL_THESIS/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
# CTU/FEL Thesis Template (LuaLaTeX)

This folder is the canonical LaTeX thesis template for this repo.

## What to compile

- Main entry (use this): `thesis-final.tex`
- Template class (layout + title pages): `bachelorthesis.cls`

Chapters live in `chapters/` and are included from `thesis-final.tex`.

## Build (local)

This template uses **LuaLaTeX + biblatex/biber**.

From this folder:

```bash
lualatex thesis-final.tex
biber thesis-final
lualatex thesis-final.tex
lualatex thesis-final.tex
```

If you use `latexmk` (recommended), `latexmkrc` is provided:

```bash
latexmk -lualatex thesis-final.tex
```

Tip: `latexmkrc` sets a default main file, so in this folder you can also just run:

```bash
latexmk -lualatex
```

## Draft vs print layout

Default is **draft-friendly oneside** (no left/right margin swapping).

For final double-sided printing with binding margins, change the first line of `thesis-final.tex` to:

```tex
\documentclass[print]{bachelorthesis}
```

## Acronyms / glossary

- Acronyms are defined in `acronyms.tex`.
- The template uses **no-index glossaries**, so you do **not** need `makeglossaries`.
- Add an acronym via `\newacronym{...}{...}{...}` and use it in text with `\gls{...}`.

## Overleaf

1) Upload this folder as a project.
2) Set **Main file** to `thesis-final.tex`.
3) Set **Compiler** to **LuaLaTeX**.
4) Set **Bibliography** to **Biber**.

If you see errors like `output.bbl not found`, `Empty bibliography`, or many `Citation '...' undefined`, it usually means **biber did not run**. Use “Recompile from scratch”.

## Clean

If you use `latexmk`:

```bash
latexmk -c # keep PDF
latexmk -C # remove PDF too
```

If your build artifacts are named `output.*` (common when compiling with `-jobname=output`, as Overleaf sometimes does), clean them explicitly:

```bash
latexmk -C -jobname=output thesis-final.tex
```

If you accidentally created `acronyms.*` artifacts by running latexmk on `acronyms.tex`, clean them explicitly:

```bash
latexmk -C acronyms.tex
```

Or manual:

```bash
rm -f *.aux *.bbl *.bcf *.blg *.run.xml *.toc *.lof *.lot *.out *.log \
*.fls *.fdb_latexmk *.synctex.gz

# If you also have Overleaf-style artifacts:
rm -f output.*
```

## Notes

- Some Czech words remain where they are official names.
- Logo/image assets are optional; missing assets should not break compilation.

# [CodeRabbit Audit Trigger 1769364389]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Audit trigger renders as an H1 heading in the README.

In Markdown, # creates a heading. This line will display as a prominent heading when viewed on GitHub. Use an HTML comment to hide it:

Proposed fix
-# [CodeRabbit Audit Trigger 1769364389]
+<!-- [CodeRabbit Audit Trigger 1769364389] -->
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
# [CodeRabbit Audit Trigger 1769364389]
<!-- [CodeRabbit Audit Trigger 1769364389] -->
🤖 Prompt for AI Agents
In `@docs/BT/CTU_FEL_THESIS/README.md` at line 98, The README contains a literal
Markdown H1 line "# [CodeRabbit Audit Trigger 1769364389]" that unintentionally
renders as a heading; replace that visible heading with a hidden HTML comment
containing the same text (i.e., wrap "[CodeRabbit Audit Trigger 1769364389]" in
an HTML comment) so the audit trigger remains in the file without rendering as
an H1.

66 changes: 66 additions & 0 deletions docs/BT/CTU_FEL_THESIS/acronyms.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
% ============================================================================
% Acronyms / Abbreviations for Bachelor Thesis
% Domain-specific technical terms only (common terms like CPU, RAM, LED omitted)
% ============================================================================

% --- Communication Protocols ---
\newacronym{mqtt}{MQTT}{Message Queuing Telemetry Transport}
\newacronym{ble}{BLE}{Bluetooth Low Energy}

% --- Security and Cryptography ---
\newacronym{tls}{TLS}{Transport Layer Security}
\newacronym{mtls}{mTLS}{mutual Transport Layer Security}
\newacronym{ecc}{ECC}{Elliptic Curve Cryptography}
\newacronym{rsa}{RSA}{Rivest--Shamir--Adleman}
\newacronym{ecdh}{ECDH}{Elliptic Curve Diffie--Hellman}
\newacronym{ecdhe}{ECDHE}{Elliptic Curve Diffie--Hellman Ephemeral}
\newacronym{ecdsa}{ECDSA}{Elliptic Curve Digital Signature Algorithm}
\newacronym{eddsa}{EdDSA}{Edwards-curve Digital Signature Algorithm}
\newacronym{ca}{CA}{Certificate Authority}
\newacronym{acl}{ACL}{Access Control List}
\newacronym{crl}{CRL}{Certificate Revocation List}
\newacronym{csr}{CSR}{Certificate Signing Request}
\newacronym{ztna}{ZTNA}{Zero Trust Network Access}

% --- IoT and Smart Home ---
\newacronym{iot}{IoT}{Internet of Things}
\newacronym{ha}{HA}{Home Assistant}
\newacronym{haos}{HAOS}{Home Assistant Operating System}
\newacronym{hacs}{HACS}{Home Assistant Community Store}
\newacronym{ota}{OTA}{Over-The-Air}
\newacronym{lwt}{LWT}{Last Will and Testament}
\newacronym{emqx}{EMQX}{Erlang MQTT Broker}

% --- Hardware Interfaces ---
\newacronym{pir}{PIR}{Passive Infrared}
\newacronym{adc}{ADC}{Analog-to-Digital Converter}
\newacronym{pwm}{PWM}{Pulse Width Modulation}
\newacronym{gpio}{GPIO}{General Purpose Input/Output}
\newacronym{i2c}{I2C}{Inter-Integrated Circuit}
\newacronym{mems}{MEMS}{Micro-Electro-Mechanical Systems}
\newacronym{nvs}{NVS}{Non-Volatile Storage}

% --- Embedded Systems ---
\newacronym{mcu}{MCU}{Microcontroller Unit}
\newacronym{dram}{DRAM}{Dynamic Random Access Memory}
\newacronym{iram}{IRAM}{Instruction Random Access Memory}
\newacronym{espidf}{ESP-IDF}{Espressif IoT Development Framework}
\newacronym{espnn}{ESP-NN}{Espressif Neural Network Library}

% --- Machine Learning ---
\newacronym{tflite}{TFLite}{TensorFlow Lite}
\newacronym{cnn}{CNN}{Convolutional Neural Network}
\newacronym{smv}{SMV}{Signal Magnitude Vector}

% --- Network Performance ---
\newacronym{qos}{QoS}{Quality of Service}
\newacronym{rtt}{RTT}{Round-Trip Time}
\newacronym{bbr}{BBR}{Bottleneck Bandwidth and Round-trip propagation time}
\newacronym{fq}{FQ}{Fair Queueing}

% --- Virtualization ---
\newacronym{vps}{VPS}{Virtual Private Server}
\newacronym{vcpu}{vCPU}{virtual Central Processing Unit}
\newacronym{esxi}{ESXi}{Elastic Sky X integrated}

# [CodeRabbit Audit Trigger 1769364389]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

LaTeX compilation error: # is not a comment character.

Same issue as in the other .tex files — use %.

Proposed fix
-# [CodeRabbit Audit Trigger 1769364389]
+% [CodeRabbit Audit Trigger 1769364389]
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
# [CodeRabbit Audit Trigger 1769364389]
% [CodeRabbit Audit Trigger 1769364389]
🤖 Prompt for AI Agents
In `@docs/BT/CTU_FEL_THESIS/acronyms.tex` at line 66, Replace the invalid
shell-style comment "# [CodeRabbit Audit Trigger 1769364389]" with a LaTeX
comment using "%" so the line becomes "% [CodeRabbit Audit Trigger 1769364389]";
search for the exact string "# [CodeRabbit Audit Trigger 1769364389]" in
acronyms.tex (and other .tex files) and convert any leading "#" comment markers
to "%" to fix the LaTeX compilation error.

Loading