From 4404ffd114c76bac819f2d70f89f8e2a12652738 Mon Sep 17 00:00:00 2001
From: Refik Hadzialic
Date: Tue, 11 Oct 2011 13:12:51 +0200
Subject: Working on the report!

---
 notFinishedCode/Report/test.tex | 30 +++++++++++++++++++++++++-----
 1 file changed, 25 insertions(+), 5 deletions(-)

(limited to 'notFinishedCode/Report/test.tex')

diff --git a/notFinishedCode/Report/test.tex b/notFinishedCode/Report/test.tex
index 25f0271..8998141 100644
--- a/notFinishedCode/Report/test.tex
+++ b/notFinishedCode/Report/test.tex
@@ -105,15 +105,31 @@ Gradually we implemented a bit-by-bit of the final software. Every single step w
 \section{Requirements}           % chapter 2
 \newpage
 \section{Database design}
-How we designed our database and why, explain in this section!
+How we designed our database and why, explain in this section! Our database of choice was MySQL b
 \newpage
 \section{Software design}     % section 2.1
 \subsection{Database access}         % subsection 2.1.1
+Accessing the database is of critical value to our project, therefore we had developed our own class that limits the access to the database. In the process of developing our own class we used the MySQLdb library in Python \cite{mysqlManual}.
+The database class has two working modes, a normal working mode and a debugging mode. The difference between these two modes is in the output information. In case the error handling function raises an error and it is unknown, if the debug mode is set a complete backtrace of the error will be printed out. A developer can change the mode by setting the variable \emph{debugMode=1}. The class diagram can be seen in the following figure. 
+\begin{figure}[ht!]
+  \centering
+  \includegraphics[width=100mm]{dbClass.png}
+  \caption[]{Class diagram for the dbClass}
+\end{figure}
+The method names are self-explanatory and do not require extra explanations. All the outputs produced by the class can be found on the project wiki page \cite{wiki}.
 \subsection{Controlling the cell phones}
 Our first version of the developed program code for controlling the cell phones used predefined timed values
 to send commands instead of using a state controlled approach to confirm that every command was successfuly received and executed by the cell phone. 
 It meant we had to make an enormous number of assumptions. In comparison to our second approach, to build a state controlled cell phone control class,
 our first approach was inferior and slower. The state controlled method connected two cell phones, on the same base station, up to 15 times faster than timed approach. 
+\begin{figure}[ht!]
+  \centering
+  \includegraphics[width=80mm]{serialPort.png}
+  \caption[]{GSM class diagram for controlling the cell phones}
+\end{figure}
+One can easyly apply the the class just by correctly defining the parameters: port address, baud rate and timeout. The former two are self-explanatory and the timeout parameter is used to define when the alarm function should raise a timeout exception. 
+A timeout exception gets raised when the cell phone does not respond (i.e. when the cell phone enters a deadlock or delayed state.) We had used the serial port library inside of Python although we use USB cables to connect to our cell phones. One should 
+be aware that our USB cables create a virtual serial port. More details on class design and an example can be found on our project wiki \cite{wiki}.
 \subsection{subsection}
 \newpage
 \section{Hardware design}
@@ -146,7 +162,9 @@ The first one, Siemens M45, had a cable supplied with it and it was not difficul
 At the start we did not have a cable supplied for the Siemens S55 phone. We controlled it over the Bluetooth port.
 
 \subsection{Cables for the cell phones}
-
+Due to the fact that we had used 5 cell phones on a single computer, the best solution was to order 5 USB cables. 
+Konrad bought 5 cables for 5 Siemens S55 cell phones. All of the cables have an USB2Serial chip converter inside of them. 
+Once they were plugged into the USB port, Ubuntu automatically recognized the cables and it created properly virtual ports.
 \clearpage
 
 \section{Communication protocol}
@@ -430,9 +448,11 @@ If one of the fields is red it means the subsystem is not online or cannot be se
 %bibliography start
 \begin{thebibliography}{9}
 
-\bibitem{site1} H. Simpson, \emph{Proof of the Riemann
-Hypothesis},  preprint (2003), available at 
-\url{http://www.math.drofnats.edu/riemann.ps}.
+\bibitem{mysqlManual} \emph{MySQLdb User's Guide},  accessed on 05.06.2011, available at \\
+\url{http://mysql-python.sourceforge.net/MySQLdb.html}.
+
+\bibitem{wiki} \emph{[2011] GSM Selftest  - Wiki - Lehrstuhl f\"{u}r Kommunikationssysteme}, accessed on 20.09.2011, available at \\
+\url{http://lab.ks.uni-freiburg.de/projects/gsm-selftest/wiki}.
  
 \bibitem{sshTunnel} R. Natarajan, \emph{3 Steps to perform SSH login without password using ssh-keygen \& ssh-copy-id},  accessed on 18.08.2011, available at 
 \url{http://goo.gl/fX68N}.
-- 
cgit v1.2.3-55-g7522

