This commit is contained in:
baldeau 2024-03-10 23:13:31 +01:00
parent c7a38ea9a7
commit 74a5cf12e3
16 changed files with 113 additions and 107 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@ -154,6 +154,19 @@
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,
title = {Dart Language Evolution},
author = {{Google Inc.}},

BIN
assets/.DS_Store vendored

Binary file not shown.

Binary file not shown.

BIN
assets/skizzen/.DS_Store vendored Normal file

Binary file not shown.

BIN
assets/skizzen/alle.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

View File

@ -86,3 +86,5 @@ postbreak=\mbox{\textcolor{red}{$\hookrightarrow$}\space},
\pretocmd{\dirtree}{\bigskip}{}{}
\newcommand{\mkbibnodate}{n\adddot d\adddot}
\setlength{\parindent}{0em}

View File

View File

@ -4,6 +4,8 @@
## Hardware
### Hardware für die Demo Anwendung
- Raspberry Pi 4
- Touchscreen 15 Zoll (1920x1080)
- Raspberry Pi 0 2W
@ -11,88 +13,23 @@
- RGB Matrix
- Led
### Build Hardware
- AMD 6800U mit 16GB RAM, Linux
\pagebreak
## Anforderungen
\begin{multicols}{3}
\Begin{multicols}{2}
\begin{figure}[H]
\caption{Home Screen}
\caption{Skizzen der Anwendung}
\centering
{\includegraphics[width=2in]{./assets/skizzen/home.png}}
{\includegraphics[width=4in]{./assets/skizzen/alle.png}}
\label{fig:screeplot}
\end{figure}
\begin{figure}[H]
\caption{Material 3 Widgets}
\centering
{\includegraphics[width=2in]{./assets/skizzen/materialWidgets.png}}
\label{fig:screeplot}
\end{figure}
lorem ipsum
\begin{figure}[H]
\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}
\End{multicols}

View File

@ -118,3 +118,7 @@ unveränderlichen Klasse:
- toString, equlas, hashCode Methode
- copyWith Methode
- JSON Serialisierung
### State Management
Für das State Management wurde Riverpod gewählt.

View File

@ -137,3 +137,8 @@ Tools • Dart 3.3.0 • DevTools 2.31.1
```
## Setup von Raspberry Pi -->
### Raspberry Pi OS
- Einrichtung als Entwicklungsbetriebssystem mit Flutter Hot-Reload
- für rapide Entwicklung und Testen

View File

@ -78,12 +78,21 @@ Key Design Concepts:
## Implementierung der Features
Im Folgenden wird die Implementierung der
einzelnen Features des Projektes beschrieben.
\pagebreak
### Home
### Home Feature
\begin{figure}[ht]
\caption{Example caption}
Das Home-Feature ist die Startseite der App. Es
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
\begin{minipage}{7cm}
\dirtree{%
@ -94,8 +103,6 @@ Key Design Concepts:
\end{minipage}
\end{figure}
\begin{multicols}{2}
\begin{figure}[H]
\caption{Home Screen}
\centering
@ -103,21 +110,21 @@ Key Design Concepts:
\label{fig:screeplot}
\end{figure}
\begin{figure}[H]
\caption{Home Screen}
\centering
{\includegraphics[width=8cm]{./assets/screenshots/homeDebug.png}}
\label{fig:screeplot}
\end{figure}
\end{multicols}
\End{multicols}
\pagebreak
### Material Demo
### Material Demo Feature
\begin{figure}[ht]
\caption{Example caption}
Das Material Demo Feature zeigt eine Auswahl
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
\begin{minipage}{10cm}
\dirtree{%
@ -130,28 +137,30 @@ Key Design Concepts:
\end{minipage}
\end{figure}
\begin{multicols}{2}
\begin{figure}[H]
\caption{Home Screen}
\caption{Material Demo Screen}
\centering
{\includegraphics[width=8cm]{./assets/screenshots/material3.png}}
\label{fig:screeplot}
\end{figure}
\begin{figure}[H]
\End{multicols}
<!-- \begin{figure}[H]
\caption{Home Screen}
\centering
{\includegraphics[width=8cm]{./assets/screenshots/material3Dialog.png}}
\label{fig:screeplot}
\end{figure}
\end{multicols}
\end{figure} -->
\pagebreak
### Benchmark
Das Benchmark Feature zeigt verschiedene
Benchmarks, die die Leistungsfähigkeit von
Flutter auf Embedded Linux demonstrieren.
\begin{figure}[h]
\caption{Example caption}
\centering
@ -258,7 +267,12 @@ Key Design Concepts:
### News
\begin{figure}[ht]
Das News Feature zeigt eine Liste von Nachrichten
der Tagesschau.
\Begin{multicols}{2}
\begin{figure}[H]
\caption{Example caption}
\centering
\begin{minipage}{7cm}
@ -286,8 +300,6 @@ Key Design Concepts:
\end{minipage}
\end{figure}
\begin{multicols}{2}
\begin{figure}[H]
\caption{Home Screen}
\centering
@ -302,7 +314,22 @@ Key Design Concepts:
\label{fig:screeplot}
\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
@ -341,6 +368,9 @@ Key Design Concepts:
\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
### Matrix
@ -405,11 +435,16 @@ Key Design Concepts:
\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
### System Informationen
\begin{figure}[ht]
\Begin{multicols}{2}
\begin{figure}[H]
\caption{Example caption}
\centering
\begin{minipage}{7cm}
@ -433,11 +468,18 @@ Key Design Concepts:
\label{fig:screeplot}
\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
### Einstellungen
\begin{figure}[ht]
\Begin{multicols}{2}
\begin{figure}[H]
\caption{Example caption}
\centering
\begin{minipage}{7cm}
@ -462,8 +504,6 @@ Key Design Concepts:
\end{minipage}
\end{figure}
\begin{multicols}{2}
\begin{figure}[H]
\caption{Home Screen}
\centering
@ -478,7 +518,7 @@ Key Design Concepts:
\label{fig:screeplot}
\end{figure}
\end{multicols}
\End{multicols}
\pagebreak
@ -524,3 +564,8 @@ Key Design Concepts:
{\includegraphics[width=8cm]{./assets/screenshots/settingsMaterial2.png}}
\label{fig:screeplot}
\end{figure}
\pagebreak
\lstinputlisting[language=Java, caption=Implementierung des Wifi Controllers, captionpos=t]
{code/flutter_elinux/lib/features/settings/business/wifi_controller.dart}

View File

@ -10,7 +10,7 @@
\hline
Flutter Embedder & Ergebnisse (Animationen nach 30 Minuten) & Durchschnittlich (gerundet) \\ \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{table}