update
This commit is contained in:
parent
c7a38ea9a7
commit
74a5cf12e3
13
Bachelor.bib
13
Bachelor.bib
@ -154,6 +154,19 @@
|
|||||||
file = {/Users/fabian/Zotero/storage/3K7HX2EI/flutter-on-raspberry-pi-mostly-from-scratch-2824c5e7dcb1.html}
|
file = {/Users/fabian/Zotero/storage/3K7HX2EI/flutter-on-raspberry-pi-mostly-from-scratch-2824c5e7dcb1.html}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@online{gfallonItFOSSToyota2019,
|
||||||
|
title = {It's {{FOSS}}: {{Toyota Motors}} and Its {{Linux Journey}}},
|
||||||
|
shorttitle = {It's {{FOSS}}},
|
||||||
|
author = {{gfallon}},
|
||||||
|
date = {2019-01-11T18:41:12+00:00},
|
||||||
|
url = {https://www.automotivelinux.org/in-the-news/its-foss-toyota-motors-and-its-linux-journey/},
|
||||||
|
urldate = {2024-03-10},
|
||||||
|
abstract = {All Toyota vehicles and Lexus vehicles are going to use Automotive Grade Linux (AGL) majorly for the infotainment system. This is instrumental in Toyota Motor Corp because as per Brian...},
|
||||||
|
langid = {american},
|
||||||
|
organization = {Automotive Grade Linux},
|
||||||
|
file = {/Users/fabian/Zotero/storage/RI36I2EG/its-foss-toyota-motors-and-its-linux-journey.html}
|
||||||
|
}
|
||||||
|
|
||||||
@online{googleinc.DartLanguageEvolution,
|
@online{googleinc.DartLanguageEvolution,
|
||||||
title = {Dart Language Evolution},
|
title = {Dart Language Evolution},
|
||||||
author = {{Google Inc.}},
|
author = {{Google Inc.}},
|
||||||
|
BIN
assets/.DS_Store
vendored
BIN
assets/.DS_Store
vendored
Binary file not shown.
Binary file not shown.
BIN
assets/screenshots/.DS_Store
vendored
BIN
assets/screenshots/.DS_Store
vendored
Binary file not shown.
BIN
assets/skizzen/.DS_Store
vendored
Normal file
BIN
assets/skizzen/.DS_Store
vendored
Normal file
Binary file not shown.
BIN
assets/skizzen/alle.png
Normal file
BIN
assets/skizzen/alle.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.8 MiB |
@ -86,3 +86,5 @@ postbreak=\mbox{\textcolor{red}{$\hookrightarrow$}\space},
|
|||||||
\pretocmd{\dirtree}{\bigskip}{}{}
|
\pretocmd{\dirtree}{\bigskip}{}{}
|
||||||
|
|
||||||
\newcommand{\mkbibnodate}{n\adddot d\adddot}
|
\newcommand{\mkbibnodate}{n\adddot d\adddot}
|
||||||
|
|
||||||
|
\setlength{\parindent}{0em}
|
||||||
|
0
chapters/02_einleitung/03_gliederung.md
Normal file
0
chapters/02_einleitung/03_gliederung.md
Normal file
@ -4,6 +4,8 @@
|
|||||||
|
|
||||||
## Hardware
|
## Hardware
|
||||||
|
|
||||||
|
### Hardware für die Demo Anwendung
|
||||||
|
|
||||||
- Raspberry Pi 4
|
- Raspberry Pi 4
|
||||||
- Touchscreen 15 Zoll (1920x1080)
|
- Touchscreen 15 Zoll (1920x1080)
|
||||||
- Raspberry Pi 0 2W
|
- Raspberry Pi 0 2W
|
||||||
@ -11,88 +13,23 @@
|
|||||||
- RGB Matrix
|
- RGB Matrix
|
||||||
- Led
|
- Led
|
||||||
|
|
||||||
|
### Build Hardware
|
||||||
|
|
||||||
|
- AMD 6800U mit 16GB RAM, Linux
|
||||||
|
|
||||||
\pagebreak
|
\pagebreak
|
||||||
|
|
||||||
## Anforderungen
|
## Anforderungen
|
||||||
|
|
||||||
\begin{multicols}{3}
|
\Begin{multicols}{2}
|
||||||
|
|
||||||
\begin{figure}[H]
|
\begin{figure}[H]
|
||||||
\caption{Home Screen}
|
\caption{Skizzen der Anwendung}
|
||||||
\centering
|
\centering
|
||||||
{\includegraphics[width=2in]{./assets/skizzen/home.png}}
|
{\includegraphics[width=4in]{./assets/skizzen/alle.png}}
|
||||||
\label{fig:screeplot}
|
\label{fig:screeplot}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\begin{figure}[H]
|
lorem ipsum
|
||||||
\caption{Material 3 Widgets}
|
|
||||||
\centering
|
|
||||||
{\includegraphics[width=2in]{./assets/skizzen/materialWidgets.png}}
|
|
||||||
\label{fig:screeplot}
|
|
||||||
\end{figure}
|
|
||||||
|
|
||||||
\begin{figure}[H]
|
\End{multicols}
|
||||||
\caption{Video Player}
|
|
||||||
\centering
|
|
||||||
{\includegraphics[width=2in]{./assets/skizzen/video.png}}
|
|
||||||
\label{fig:screeplot}
|
|
||||||
\end{figure}
|
|
||||||
|
|
||||||
\end{multicols}
|
|
||||||
|
|
||||||
\begin{multicols}{3}
|
|
||||||
|
|
||||||
\begin{figure}[H]
|
|
||||||
\caption{Led Controller}
|
|
||||||
\centering
|
|
||||||
{\includegraphics[width=2in]{./assets/skizzen/led.png}}
|
|
||||||
\label{fig:screeplot}
|
|
||||||
\end{figure}
|
|
||||||
|
|
||||||
\begin{figure}[H]
|
|
||||||
\caption{Matrix Painter}
|
|
||||||
\centering
|
|
||||||
{\includegraphics[width=2in]{./assets/skizzen/matrix.png}}
|
|
||||||
\label{fig:screeplot}
|
|
||||||
\end{figure}
|
|
||||||
|
|
||||||
\begin{figure}[H]
|
|
||||||
\caption{System Informationen}
|
|
||||||
\centering
|
|
||||||
{\includegraphics[width=2in]{./assets/skizzen/systeminfo.png}}
|
|
||||||
\label{fig:screeplot}
|
|
||||||
\end{figure}
|
|
||||||
|
|
||||||
\end{multicols}
|
|
||||||
|
|
||||||
\begin{multicols}{3}
|
|
||||||
|
|
||||||
\begin{figure}[H]
|
|
||||||
\caption{Unendliche Liste}
|
|
||||||
\centering
|
|
||||||
{\includegraphics[width=2in]{./assets/skizzen/openapi.png}}
|
|
||||||
\label{fig:screeplot}
|
|
||||||
\end{figure}
|
|
||||||
|
|
||||||
\begin{figure}[H]
|
|
||||||
\caption{Kartenansicht}
|
|
||||||
\centering
|
|
||||||
{\includegraphics[width=2in]{./assets/skizzen/openstreetmap.png}}
|
|
||||||
\label{fig:screeplot}
|
|
||||||
\end{figure}
|
|
||||||
|
|
||||||
\begin{figure}[H]
|
|
||||||
\caption{Einstellungen}
|
|
||||||
\centering
|
|
||||||
{\includegraphics[width=2in]{./assets/skizzen/einstellungen.png}}
|
|
||||||
\label{fig:screeplot}
|
|
||||||
\end{figure}
|
|
||||||
|
|
||||||
\end{multicols}
|
|
||||||
|
|
||||||
\begin{figure}[H]
|
|
||||||
\caption{Endless Runner}
|
|
||||||
\centering
|
|
||||||
{\includegraphics[width=2in]{./assets/skizzen/dashgame.png}}
|
|
||||||
\label{fig:screeplot}
|
|
||||||
\end{figure}
|
|
||||||
|
@ -118,3 +118,7 @@ unveränderlichen Klasse:
|
|||||||
- toString, equlas, hashCode Methode
|
- toString, equlas, hashCode Methode
|
||||||
- copyWith Methode
|
- copyWith Methode
|
||||||
- JSON Serialisierung
|
- JSON Serialisierung
|
||||||
|
|
||||||
|
### State Management
|
||||||
|
|
||||||
|
Für das State Management wurde Riverpod gewählt.
|
||||||
|
@ -137,3 +137,8 @@ Tools • Dart 3.3.0 • DevTools 2.31.1
|
|||||||
```
|
```
|
||||||
|
|
||||||
## Setup von Raspberry Pi -->
|
## Setup von Raspberry Pi -->
|
||||||
|
|
||||||
|
### Raspberry Pi OS
|
||||||
|
|
||||||
|
- Einrichtung als Entwicklungsbetriebssystem mit Flutter Hot-Reload
|
||||||
|
- für rapide Entwicklung und Testen
|
@ -78,12 +78,21 @@ Key Design Concepts:
|
|||||||
|
|
||||||
## Implementierung der Features
|
## Implementierung der Features
|
||||||
|
|
||||||
|
Im Folgenden wird die Implementierung der
|
||||||
|
einzelnen Features des Projektes beschrieben.
|
||||||
|
|
||||||
\pagebreak
|
\pagebreak
|
||||||
|
|
||||||
### Home
|
### Home Feature
|
||||||
|
|
||||||
\begin{figure}[ht]
|
Das Home-Feature ist die Startseite der App. Es
|
||||||
\caption{Example caption}
|
besteht aus einem einfachen Screen, der
|
||||||
|
nur den Text "Flutter on Embedded Linux" anzeigt.
|
||||||
|
|
||||||
|
\Begin{multicols}{2}
|
||||||
|
|
||||||
|
\begin{figure}[H]
|
||||||
|
\caption{Ordnerstruktur des Home-Features}
|
||||||
\centering
|
\centering
|
||||||
\begin{minipage}{7cm}
|
\begin{minipage}{7cm}
|
||||||
\dirtree{%
|
\dirtree{%
|
||||||
@ -94,8 +103,6 @@ Key Design Concepts:
|
|||||||
\end{minipage}
|
\end{minipage}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\begin{multicols}{2}
|
|
||||||
|
|
||||||
\begin{figure}[H]
|
\begin{figure}[H]
|
||||||
\caption{Home Screen}
|
\caption{Home Screen}
|
||||||
\centering
|
\centering
|
||||||
@ -103,21 +110,21 @@ Key Design Concepts:
|
|||||||
\label{fig:screeplot}
|
\label{fig:screeplot}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\begin{figure}[H]
|
\End{multicols}
|
||||||
\caption{Home Screen}
|
|
||||||
\centering
|
|
||||||
{\includegraphics[width=8cm]{./assets/screenshots/homeDebug.png}}
|
|
||||||
\label{fig:screeplot}
|
|
||||||
\end{figure}
|
|
||||||
|
|
||||||
\end{multicols}
|
|
||||||
|
|
||||||
\pagebreak
|
\pagebreak
|
||||||
|
|
||||||
### Material Demo
|
### Material Demo Feature
|
||||||
|
|
||||||
\begin{figure}[ht]
|
Das Material Demo Feature zeigt eine Auswahl
|
||||||
\caption{Example caption}
|
von Material Design Widgets. Es besteht aus
|
||||||
|
einem Screen, der eine Liste von Widgets
|
||||||
|
anzeigt.
|
||||||
|
|
||||||
|
\Begin{multicols}{2}
|
||||||
|
|
||||||
|
\begin{figure}[H]
|
||||||
|
\caption{Ordnerstruktur des Material Demo Features}
|
||||||
\centering
|
\centering
|
||||||
\begin{minipage}{10cm}
|
\begin{minipage}{10cm}
|
||||||
\dirtree{%
|
\dirtree{%
|
||||||
@ -130,28 +137,30 @@ Key Design Concepts:
|
|||||||
\end{minipage}
|
\end{minipage}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\begin{multicols}{2}
|
|
||||||
|
|
||||||
\begin{figure}[H]
|
\begin{figure}[H]
|
||||||
\caption{Home Screen}
|
\caption{Material Demo Screen}
|
||||||
\centering
|
\centering
|
||||||
{\includegraphics[width=8cm]{./assets/screenshots/material3.png}}
|
{\includegraphics[width=8cm]{./assets/screenshots/material3.png}}
|
||||||
\label{fig:screeplot}
|
\label{fig:screeplot}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\begin{figure}[H]
|
\End{multicols}
|
||||||
|
|
||||||
|
<!-- \begin{figure}[H]
|
||||||
\caption{Home Screen}
|
\caption{Home Screen}
|
||||||
\centering
|
\centering
|
||||||
{\includegraphics[width=8cm]{./assets/screenshots/material3Dialog.png}}
|
{\includegraphics[width=8cm]{./assets/screenshots/material3Dialog.png}}
|
||||||
\label{fig:screeplot}
|
\label{fig:screeplot}
|
||||||
\end{figure}
|
\end{figure} -->
|
||||||
|
|
||||||
\end{multicols}
|
|
||||||
|
|
||||||
\pagebreak
|
\pagebreak
|
||||||
|
|
||||||
### Benchmark
|
### Benchmark
|
||||||
|
|
||||||
|
Das Benchmark Feature zeigt verschiedene
|
||||||
|
Benchmarks, die die Leistungsfähigkeit von
|
||||||
|
Flutter auf Embedded Linux demonstrieren.
|
||||||
|
|
||||||
\begin{figure}[h]
|
\begin{figure}[h]
|
||||||
\caption{Example caption}
|
\caption{Example caption}
|
||||||
\centering
|
\centering
|
||||||
@ -258,7 +267,12 @@ Key Design Concepts:
|
|||||||
|
|
||||||
### News
|
### News
|
||||||
|
|
||||||
\begin{figure}[ht]
|
Das News Feature zeigt eine Liste von Nachrichten
|
||||||
|
der Tagesschau.
|
||||||
|
|
||||||
|
\Begin{multicols}{2}
|
||||||
|
|
||||||
|
\begin{figure}[H]
|
||||||
\caption{Example caption}
|
\caption{Example caption}
|
||||||
\centering
|
\centering
|
||||||
\begin{minipage}{7cm}
|
\begin{minipage}{7cm}
|
||||||
@ -286,8 +300,6 @@ Key Design Concepts:
|
|||||||
\end{minipage}
|
\end{minipage}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\begin{multicols}{2}
|
|
||||||
|
|
||||||
\begin{figure}[H]
|
\begin{figure}[H]
|
||||||
\caption{Home Screen}
|
\caption{Home Screen}
|
||||||
\centering
|
\centering
|
||||||
@ -302,7 +314,22 @@ Key Design Concepts:
|
|||||||
\label{fig:screeplot}
|
\label{fig:screeplot}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\end{multicols}
|
\End{multicols}
|
||||||
|
|
||||||
|
\pagebreak
|
||||||
|
|
||||||
|
#### Freezed
|
||||||
|
|
||||||
|
wurde verwendet, um die Modelle zu generieren.
|
||||||
|
|
||||||
|
\lstinputlisting[language=Java, caption=Implementierung der News Klasse, linerange={0-20}, captionpos=t]
|
||||||
|
{code/flutter_elinux/lib/features/news_api/data/models/news.dart}
|
||||||
|
|
||||||
|
\lstinputlisting[language=Java, caption=Implementierung des News Controllers, captionpos=t]
|
||||||
|
{code/flutter_elinux/lib/features/news_api/data/repository/news_repository.dart}
|
||||||
|
|
||||||
|
\lstinputlisting[language=Java, caption=Implementierung des News Controllers, captionpos=t]
|
||||||
|
{code/flutter_elinux/lib/features/news_api/business/news_controller.dart}
|
||||||
|
|
||||||
\pagebreak
|
\pagebreak
|
||||||
|
|
||||||
@ -341,6 +368,9 @@ Key Design Concepts:
|
|||||||
|
|
||||||
\end{multicols}
|
\end{multicols}
|
||||||
|
|
||||||
|
\lstinputlisting[language=Java, caption=Implementierung des Morse Service, captionpos=t]
|
||||||
|
{code/flutter_elinux/lib/features/morse_led/business/service/morse_service.dart}
|
||||||
|
|
||||||
\pagebreak
|
\pagebreak
|
||||||
|
|
||||||
### Matrix
|
### Matrix
|
||||||
@ -405,11 +435,16 @@ Key Design Concepts:
|
|||||||
|
|
||||||
\end{multicols}
|
\end{multicols}
|
||||||
|
|
||||||
|
\lstinputlisting[language=Java, caption=Implementierung des Matrix Service, captionpos=t]
|
||||||
|
{code/flutter_elinux/lib/features/matrix_rgb/business/service/matrix_service.dart}
|
||||||
|
|
||||||
\pagebreak
|
\pagebreak
|
||||||
|
|
||||||
### System Informationen
|
### System Informationen
|
||||||
|
|
||||||
\begin{figure}[ht]
|
\Begin{multicols}{2}
|
||||||
|
|
||||||
|
\begin{figure}[H]
|
||||||
\caption{Example caption}
|
\caption{Example caption}
|
||||||
\centering
|
\centering
|
||||||
\begin{minipage}{7cm}
|
\begin{minipage}{7cm}
|
||||||
@ -433,11 +468,18 @@ Key Design Concepts:
|
|||||||
\label{fig:screeplot}
|
\label{fig:screeplot}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
|
\End{multicols}
|
||||||
|
|
||||||
|
\lstinputlisting[language=Java, caption=Implementierung des Memory Service, captionpos=t]
|
||||||
|
{code/flutter_elinux/lib/features/system_resources/business/service/memory_service.dart}
|
||||||
|
|
||||||
\pagebreak
|
\pagebreak
|
||||||
|
|
||||||
### Einstellungen
|
### Einstellungen
|
||||||
|
|
||||||
\begin{figure}[ht]
|
\Begin{multicols}{2}
|
||||||
|
|
||||||
|
\begin{figure}[H]
|
||||||
\caption{Example caption}
|
\caption{Example caption}
|
||||||
\centering
|
\centering
|
||||||
\begin{minipage}{7cm}
|
\begin{minipage}{7cm}
|
||||||
@ -462,8 +504,6 @@ Key Design Concepts:
|
|||||||
\end{minipage}
|
\end{minipage}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\begin{multicols}{2}
|
|
||||||
|
|
||||||
\begin{figure}[H]
|
\begin{figure}[H]
|
||||||
\caption{Home Screen}
|
\caption{Home Screen}
|
||||||
\centering
|
\centering
|
||||||
@ -478,7 +518,7 @@ Key Design Concepts:
|
|||||||
\label{fig:screeplot}
|
\label{fig:screeplot}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\end{multicols}
|
\End{multicols}
|
||||||
|
|
||||||
\pagebreak
|
\pagebreak
|
||||||
|
|
||||||
@ -524,3 +564,8 @@ Key Design Concepts:
|
|||||||
{\includegraphics[width=8cm]{./assets/screenshots/settingsMaterial2.png}}
|
{\includegraphics[width=8cm]{./assets/screenshots/settingsMaterial2.png}}
|
||||||
\label{fig:screeplot}
|
\label{fig:screeplot}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
|
\pagebreak
|
||||||
|
|
||||||
|
\lstinputlisting[language=Java, caption=Implementierung des Wifi Controllers, captionpos=t]
|
||||||
|
{code/flutter_elinux/lib/features/settings/business/wifi_controller.dart}
|
@ -10,7 +10,7 @@
|
|||||||
\hline
|
\hline
|
||||||
Flutter Embedder & Ergebnisse (Animationen nach 30 Minuten) & Durchschnittlich (gerundet) \\ \hline
|
Flutter Embedder & Ergebnisse (Animationen nach 30 Minuten) & Durchschnittlich (gerundet) \\ \hline
|
||||||
Flutter-Pi & 537, 543, 544 & 541 \\ \hline
|
Flutter-Pi & 537, 543, 544 & 541 \\ \hline
|
||||||
Flutter-Auto & 1025, 1163, 1129 & 1106 \\ \hline
|
Flutter-Auto mit Cage & 1025, 1163, 1129 & 1106 \\ \hline
|
||||||
\end{tabular}%
|
\end{tabular}%
|
||||||
}
|
}
|
||||||
\end{table}
|
\end{table}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user