stub of new chapters

This commit is contained in:
2018-05-14 19:20:18 +02:00
parent 01f71d20bc
commit 5b896b1f0d
5 changed files with 68 additions and 1 deletions
+3
View File
@@ -0,0 +1,3 @@
\chapter{Hardware Realization}
\todo{TODO}
+48
View File
@@ -0,0 +1,48 @@
\chapter{Client Software}
With the communication protocol clearly defined in chapters \ref{sec:tinyframe} and \ref{sec:units-overview}, respective \ref{sec:wireless} for the wireless gateway, the implementation of a client software is relatively straightforward.
Two proof-of-concept client libraries have been developed in languages C and Python; the Python library can be accessed from MATLAB scripts thanks to the MATLAB's two-way Python integration \cite{matlabpy}. Controlling GEX from MATLAB may be useful when additional processing is required, e.g. with data from the \gls{ADC}; however, in many cases, an open source alternative native to Python exists that could be used for the same purpose, such as the NumPy and SciPy libraries \cite{numpyscipy}.
\section{General Library Structure}
The structure of a GEX support library is in all cases similar:
\begin{itemize}
\item \textbf{USB or serial port access}
This is the only platform-dependent part of the library. Unix-based systems provide a standardized POSIX API to configure the serial port. A raw access to \gls{USB} endpoints is possible using the libUSB C library. Access to the serial port or \gls{USB} from C on MS Windows has not been investigated, but should be possible using proprietary APIs.
Accessing the serial port or \gls{USB} endpoints from Python is more straightforward thanks to the cross platform libraries \textit{PySerial} and \textit{PyUSB}.
\item \textbf{TinyFrame}
The \textit{TinyFrame} protocol library can be used directly in desktop C applications, and it has been ported to Python and other languages.
\item \textbf{Higher-level GEX logic}
The host side of the communication protocol described in chapter \ref{sec:tinyframe} should be implemented as a part of the library. This includes the reading and writing of configuration files, unit list read-out, command payload building, and asynchronous event parsing.
Additional utilities may be defined on top of this basic protocol support for the command API of different GEX units, as described in \ref{sec:units-overview}. Those unit-specific ``drivers'' are available in the provided Python library.
\end{itemize}
\section{C Library}
The full C API available to a user program can be found in the library header files. An example of a simple application built with the API is shown below:
\todo[inline]{add the example}
\section{Python Library}
The Python library is more advanced than the C library, as it implements the raw USB access and includes support classes for each unit type.
\todo[inline]{describe the API and add an example}
\todo[inline]{Measurement / evaluation examples here...}
+15 -1
View File
@@ -412,12 +412,26 @@
}
@online{tinyframerepo,
author = {{Hruška, Ondřej}},
author = {Hruška, Ondřej},
title = {TinyFrame, a library for building and parsing data frames for serial interfaces},
url = {https://github.com/MightyPork/TinyFrame},
urldate = {2018-05-13}
}
@online{matlabpy,
author = {{The MathWorks, Inc.}},
title = {Using MATLAB with Python},
url = {https://www.mathworks.com/solutions/matlab-and-python.html},
urldate = {2018-05-13}
}
@online{numpyscipy,
author = {{SciPy developers}},
title = {SciPy.org},
url = {https://www.scipy.org/},
urldate = {2018-05-13}
}
BIN
View File
Binary file not shown.
+2
View File
@@ -36,7 +36,9 @@
\input{ch.fw_structure}
\input{ch.tinyframe}
\input{ch.wireless}
\input{ch.hardware_realization}
\input{ch.gex_units}
\input{ch.pc_software}
\part{Results}
\input{ch.conclusion}