summaryrefslogtreecommitdiffstats
path: root/notFinishedCode/Report/test.tex.backup
diff options
context:
space:
mode:
Diffstat (limited to 'notFinishedCode/Report/test.tex.backup')
-rw-r--r--notFinishedCode/Report/test.tex.backup34
1 files changed, 31 insertions, 3 deletions
diff --git a/notFinishedCode/Report/test.tex.backup b/notFinishedCode/Report/test.tex.backup
index acf4885..15329de 100644
--- a/notFinishedCode/Report/test.tex.backup
+++ b/notFinishedCode/Report/test.tex.backup
@@ -221,8 +221,13 @@ proceeds with the tests by connecting itself to the handlers and sending them co
to perform the tests\footnote{Before it connects to the handlers, it uses the ping
results to see is the service/device physically connected to the network.}.
At the higher level, these commands can be seen as requests for being the
-callee and caller. Meanwhile the handlers send their test result to the main
-test software which
+callee and caller. Meanwhile the handlers send their test results to the main
+test software which in return decides if the test result was successful or not.
+The result is written to the database (in case the software was started from the website),
+otherwise the results are displayed in the terminal window and the user who started
+it manually can see the test results. We will proceed with introducing the classes.
+The software class diagram can be seen in the following figure. More details for the
+classes, like the input/output can be found on our project's wiki page \cite{wiki}.
\begin{figure}[ht!]
@@ -231,6 +236,7 @@ test software which
\caption[]{Class diagram (some classes were excluded)}
\end{figure}
+\newpage
\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 back-trace 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.
@@ -287,7 +293,8 @@ A ping timeout response was set up to 2 seconds. For more details and insights,
\caption[]{Ping class, used by test software}
\end{figure}
\subsection{Data logging}
-If bugs appear it is important to reconstruct the case. One of the best ways to reconstruct the case was to log every single step part of code gets executed.
+If errors appear it is important to reconstruct the events that led to the misbehaviour of the software. One of the best ways to reconstruct the events was to log
+events for different blocks of programming code.
We had used the logging class to follow our handler code run on the BeagleBoard. In case there is an error we could look inside of the log files and track the error.
How the class works and what kind of outputs it produces can be found on our project wiki page \cite{wiki}.
\begin{figure}[ht!]
@@ -296,6 +303,27 @@ How the class works and what kind of outputs it produces can be found on our pro
\caption[]{Logging class}
\end{figure}
\subsection{SSH Class}
+Since security played an important role in our team project. We decided to encrypt all of our data that was not processed on our server computer.
+The simplest solution to this problem was to build an SSH Class that could open and close a local forwarding port.
+All data sent through the created port is encrypted until it gets to its destination location.
+\subsection{USB Cell phone detection class}
+Since we had used cables to connect the cell phones with the computer, usually the devices
+got their own port addresses. They were automatically assigned by the operating system,
+either after the cables were plugged into the USB port or after a system reboot.
+One of the problems we had to deal with was assigning the right cell phone
+(i.e. with the appropriate GSM network) to the corresponding port address.
+The operating system randomly assigned the port names after every reboot.
+We were looking for a solution to prevent this misaddressing of the devices.
+Our solution was to recognize every device and update the port address in the database.
+The principle how we identify the cell phones is by their calling numbers in the database.
+More details can be found on our project wiki page \cite{wiki}.
+\subsection{Truth table class}
+The truth table class was built to identify the broken and working parts of the system.
+It requires the test results to be present to be operable.
+Then the class tries to identify the broken parts of our telecommunication network.
+The class can easily identify how many nanoBTSs are installed on the network and
+derive a decision which part of the network is broken.
+All the results are stored in the list which are easy to read by the initTrueTable(x) function.
\clearpage
\section{Hardware design}
In our team project we had the option to choose all the required hardware ourself beside the two BeagleBoards, which we were supplied by Konrad and Dennis.