Finalize thesis report
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

Signed-off-by: Severin Kaderli <severin@kaderli.dev>
This commit is contained in:
Severin Kaderli 2023-01-17 17:55:44 +01:00
parent 1862068f09
commit 8fef45b856
Signed by: severinkaderli
GPG key ID: F419F8835B72F0C4
10 changed files with 5991 additions and 55 deletions

View file

@ -27,17 +27,16 @@ The transmission works over magnetic induction. By putting a load on a CPU the r
To indicate the start of a message in the signal, a preamble is used. The preamble used in this protocol is 3 high signals, followed by 3 low signals, followed by 3 high signals. The duration of one signal in the preamble is 1 second. That means the entire preamble takes 9 seconds.
After the preambl, the contents of the manchester encoded packet is sent.
After the preamble, the contents of the manchester encoded packet is sent. The entire transmission is repeated until the user stops the process.
\begin{figure}[H]
\begin{bytefield}[bitwidth=.05\linewidth, bitheight=11mm]{4}
\bitbox[]{4}[]{9 Symbols} & \bitbox[]{2}[]{4 Bit} & \bitbox[]{10}[]{n Bytes} & \bitbox[]{4}[]{1 Byte} \\
\bitbox{4}[bgcolor=gray!30]{Preamble} & \bitbox{2}[bgcolor=red!30]{Payload Length} & \bitbox{10}[bgcolor=blue!30]{Payload} & \bitbox{4}[bgcolor=green!30]{CRC-8-AUTOSAR}
\bitbox[]{4}[]{Preamble} & \bitbox[]{2}[]{Payload Length} & \bitbox[]{10}[]{Payload} & \bitbox[]{4}[]{Checksum} \\
\bitbox{4}[bgcolor=gray!30]{9 Symbols} & \bitbox{2}[bgcolor=red!30]{\SI{4}{\bit}} & \bitbox{10}[bgcolor=blue!30]{\SI[number-math-rm = \mathnormal, parse-numbers = false]{n}{\byte}} & \bitbox{4}[bgcolor=green!30]{\SI{1}{\byte}}
\end{bytefield}
\caption{Packet Structure, with Preamble at the Start}
\end{figure}
The following pseudocode in \autoref{listing:sending_pseudo} explains step by
step how a message should get encoded and transmitted using MagSend.
@ -48,6 +47,28 @@ step how a message should get encoded and transmitted using MagSend.
label={listing:sending_pseudo}
]{thesis/listings/sending_pseudo.py}
\subsubsection*{Example}
As an example the message "Test" is shown in the MagSend packet structure in \autoref{figure:testPacket}.
\begin{figure}[H]
\begin{bytefield}[bitwidth=.05\linewidth, bitheight=11mm]{4}
\bitbox[]{2}[]{Payload Length} & \bitbox[]{10}[]{Payload} & \bitbox[]{4}[]{Checksum} \\
\bitbox{2}[bgcolor=red!30]{0x4} & \bitbox{10}[bgcolor=blue!30]{0x54657374} & \bitbox{4}[bgcolor=green!30]{0x2D}
\end{bytefield}
\caption{Packet Structure of the message "Test"}
\label{figure:testPacket}
\end{figure}
When that previous packet is transmitted, the CPU utilization should look similiar to the one
in \autoref{figure:testCpu} with the included preamble.
\begin{figure}[H]
\centering
\includegraphics[width=\textwidth]{cpu_test.png}
\caption{CPU Utilization while sending a Packet}
\label{figure:testCpu}
\end{figure}
\subsection{Receiving}
The receiver utilizes a magnetometer to measure the magnetic field and
interprets the received sensor values as a signal.
@ -62,6 +83,18 @@ step how the signal should get interpreted and decoded using MagSend.
label={listing:receiving_pseudo}
]{thesis/listings/receiving_pseudo.py}
\subsubsection*{Example}
In \autoref{figure:testPacketMagneticInduction} the same packet from the sending
example can be seen. This time it is the \gls{mi} signals that the smartphone is
receiving from the magnetometer.
\begin{figure}[H]
\centering
\includegraphics[width=\textwidth]{magnetic_induction_test_packet.png}
\caption{Magnetic Induction Signal while receiving a Packet}
\label{figure:testPacketMagneticInduction}
\end{figure}
\newpage
\section{Website}
The website provides the user with an interface to transmit text over the
@ -102,7 +135,7 @@ on the CPU to generate a signal. A message is displayed that indicates that a se
\newpage
\section{App}
The app allows the user to receive messages over the protocol.
The app allows the user to receive messages over the MagSend protocol.
On the homescreen you have two buttons. One button is for receiving messages and one is to start the calibration process. By clicking one of the buttons the user will be switched to the corresponding screen.