Source Code für meine Bachelorarbeit "Implementierung und Evaluation eines Kommunikationsmodells auf ESP32-basierten Ethernet-Netzwerken innerhalb eines Elektro-Gokarts"
Das Repository besteht aus zwei Projekten:
- protocol: Eine plattformunabhängige Rust-Bibliothek, die das Kommunikationsprotokoll implementiert
- Service Discovery (SD): Multicast-basierte Diensterkennung
- Remote Procedure Calls (RPC): Methodenaufrufe
- Publish/Subscribe: Event-basierte Kommunikation
- embedded-poc: Ein Proof of Concept für den ESP32, das die Protocol Library nutzt
- Beispielanwendungen und Evaluationen
- Rust (mindestens 1.87): Installation
- Git: Für das Klonen des Repositories
- Docker (optional): Für Evaluationen und Tests
Für die Entwicklung mit ESP32-Hardware:
-
Rust ESP32 Toolchain:
# ESP Rust Toolchain installieren cargo install ldproxy cargo install espup espup install . ~/export-esp.sh
-
Hardware-Verbindung:
- ESP32-Entwicklungsboard mit Ethernet (z.B. Olimex ESP32-POE)
- USB-Kabel für Programmierung und Debugging
git clone https://github.com/mad201802/esp32-protocol.git
cd esp32-protocolDie Protocol Library kann unabhängig von ESP32-Hardware verwendet werden:
cd protocol
# Dependencies installieren
cargo build
# Tests ausführen
cargo test
# Beispiel-Server starten
cargo run --example _dev_server
# In einem anderen Terminal: Beispiel-Client starten
cargo run --example _dev_clientFür die ESP32-Implementierung:
cd embedded-poc
# ESP32-spezifische Dependencies installieren
cargo build
# Auf ESP32 flashen (Hardware muss angeschlossen sein)
cargo run
# Monitoring der seriellen Ausgabe
cargo run -- monitorFür Tests und Evaluationen ohne Hardware:
cd protocol
# Examples bauen
./scripts/build_examples.sh
# Development Environment starten
docker-compose up
# Spezifische Evaluationen ausführen
docker-compose -f eval/docker-compose.fa1.yml up
docker-compose -f eval/docker-compose.nfa2.yml up-
ESP32 Compilation Errors:
# Toolchain neu installieren espup update . ~/export-esp.sh
-
Netzwerkprobleme:
- Multicast-Support des Netzwerk-Switches überprüfen
- IP-Adressen-Bereich anpassen
-
Docker Netzwerkprobleme:
# Docker Networks zurücksetzen docker network prune docker-compose down && docker-compose up
Ausführliches Logging aktivieren:
RUST_LOG=debug cargo run --example _dev_serverIm Rahmen dieser Bachelorarbeit wurde bei der Entwicklung des Codes das KI-gestützte Tool GitHub Copilot verwendet. Vorschläge und Code-Snippets von GitHub Copilot wurden geprüft, angepasst und in eigenen Kontext eingebettet. Die finale Verantwortung für den gesamten Code und dessen Funktionsweise liegt beim Autor dieser Arbeit.
Dieses Projekt wurde im Rahmen der Abschlussarbeit "Implementierung und Evaluation eines Kommunikationsmodells auf ESP32-basierten Ethernet-Netzwerken innerhalb eines Elektro-Gokarts" entwickelt.