root/documentation/ossie/user-guide-0.7.3/UserGuide.tex @ 9221

Revision 9221, 15.1 KB (checked in by mcarrick, 4 years ago)

adding sections for wavedash

  • Property svn:eol-style set to native
Line 
1% ------------------------------------------------------------------
2%
3%   TITLE: OSSIE Installation and User Guide 0.7.3
4% AUTHORS: Matt Carrick, Drew Cormier, Christopher Covington,
5%          Carl B. Dietrich, Joseph Gaeddert, Benjamin Hilburn,
6%          C. Ian Phelps, Shereef Sayed, Jason Snyder, Haris Volos
7% CREATED:
8% REVISED:
9%     URL: http://ossie.wireless.vt.edu/
10%
11% ------------------------------------------------------------------
12
13\documentclass[11pt]{article}
14
15\setlength{\textwidth}{6.5in}
16\setlength{\textheight}{8.2in}
17\setlength{\evensidemargin}{0in}
18\setlength{\oddsidemargin}{0in}
19\setlength{\topmargin}{0in}
20\setlength{\parindent}{0pt}
21\setlength{\parskip}{0.1in}
22
23\newcommand{\describeossiedemo}{The demonstration waveform simulates a very
24basic QPSK communication system. It consists of three components: a transmitter,
25a channel, and a receiver. The transmitter generates bursts of 512 QPSK symbols
26that are sent through an AWGN channel and decoded by the receiver. The number of
27errors per burst will be printed out on the screen while the waveform runs.}
28
29\newcommand{\ossieversion}{0.7.3}
30
31%@usepackage{html}
32%@usepackage{verbatim}
33
34%@begin{comment}
35\usepackage{listings}
36%@end{comment}
37
38\usepackage{appendix}
39\usepackage[pdftex]{graphicx}
40\usepackage{url}
41
42% ------------------- BIBLIOGRAPHY STYLE -------------------
43\usepackage[sort]{natbib}
44\bibliographystyle{plain} % note the change here
45%\bibliographystyle{IEEEtran}
46\bibpunct{[}{]}{,}{n}{}{;}  % define bibliography punctuation
47% The six mandatory arguments for \bibpunct are:
48%   1. opening bracket: '(', '[', '{', or '<'
49%   2. closing bracket: ')', ']', '}', or '>'
50%   3. separator between multiple citations: ';' or ','
51%   4. citation style: 'n' for numerical style, 's' for numerical superscript style, or 'a' for authorÐyear style
52%   5. punctuation between the author names and the year
53%   6. punctuation between years or numbers when common author lists are suppressed: ',' or ';'
54
55%@begin{comment}
56% due to magic hacks, hyperref must be right before document begin
57\usepackage[pdftex]{hyperref}
58\hypersetup{colorlinks,
59           citecolor=blue,
60           filecolor=blue,
61           linkcolor=blue,
62           urlcolor=blue,
63           pdftex}
64%@end{comment}
65
66% ------------------- MAIN DOCUMENT -------------------
67\begin{document}
68\thispagestyle{empty}
69\pagenumbering{roman}
70
71%@begin{comment}
72\definecolor{MyCommentColor}{rgb}{0.1,0.4,0.1}
73\definecolor{MyCodeBackgroundColor}{rgb}{0.95,0.95,0.95}
74%\definecolor{MyCodeFrameRuleColor}{rgb}{0.9,0.9,0.9}
75\definecolor{MyStringColor}{rgb}{0.6,0.1,0.1}
76\definecolor{MyKeywordColor}{rgb}{0.6,0.1,0.1}
77
78% define lstlistings style
79% (see http://tug.ctan.org/tex-archive/macros/latex/contrib/listings/)
80\lstloadlanguages{[GNU]C++,Python,[CORBA]IDL,sh}
81
82\lstset{% general command to set parameter(s)
83    basicstyle=\small\ttfamily,          % print whole listing small
84    keywordstyle=\color{MyKeywordColor}\bfseries,
85    identifierstyle=\color{black},
86    commentstyle=\color{MyCommentColor}, % define color and sytle of comments
87    stringstyle=\ttfamily\color{MyStringColor},      % typewriter type for strings
88    %showstringspaces=false,     % no special string spaces
89    backgroundcolor=\color{MyCodeBackgroundColor},
90    frame=none,
91    %framerule=0.5pt,
92    %framexleftmargin=2pt,
93    %framexrightmargin=2pt,
94    %framexbottommargin=2pt,
95    %framextopmargin=2pt,
96    %rulecolor=\color{MyCodeFrameRuleColor},
97    nolol=true,     % suppress listoflistings entry
98    tabsize=4,
99    linewidth=\linewidth,
100    breaklines=false,
101    xleftmargin=6pt,
102    xrightmargin=6pt
103}
104%@end{comment}
105
106{\huge OSSIE \ossieversion\ Installation and User Guide\\}
107
108%\vfill
109
110{\sf Matt Carrick, Drew Cormier, Christopher Covington, Carl B. Dietrich, \\
111Joseph Gaeddert, Benjamin Hilburn, C. Ian Phelps, Shereef Sayed, \\
112Jason Snyder, Haris Volos}
113
114\vfill
115
116March, 2009
117
118
119\vfill
120
121\begin{figure*}[!ht]
122\centering
123\includegraphics[width=6in]{figures/alf_screenshot_00.png}
124\end{figure*}
125
126\vfill
127
128OSSIE is an open source Software Defined Radio (SDR) development effort based
129at Virginia Tech. OSSIE is primarily intended to enable research and education
130in SDR and wireless communications. The software package includes an SDR core
131framework based on the JTRS Software Communications Architecture, tools
132for rapid development of SDR components and waveforms (applications), and an
133evolving library of pre-built components and waveforms. In addition, free
134laboratory exercises for SDR education and training are being developed in
135cooperation with the Naval Postgraduate School.\\
136
137\begin{center}
138{\sf\small OSSIE is the Open Source SCA Implementation::Embedded}
139\end{center}
140
141\pagebreak
142\tableofcontents
143%@begin{comment}
144\lstlistoflistings
145%@end{comment}
146
147\pagebreak
148\pagenumbering{arabic}
149
150% ------------------- Quick Start Guide -------------------
151\newpage
152\input{QuickStartGuide}
153
154% ------------------- Introduction -------------------
155\newpage
156\input{Introduction}
157
158% ------------------- Installation Guide -------------------
159\newpage
160\input{Installation}
161
162% ------------------- Running Waveforms -------------------
163\newpage
164\input{RunningWaveforms}
165
166% ------------------- Waveform Workshop -------------------
167\newpage
168\input{WaveformWorkshop}
169
170% ------------------- OEF Guide -------------------
171\newpage
172\include{OEFGuide}
173
174% ------------------- OWD Guide -------------------
175\newpage
176\include{OWDGuide}
177
178% ------------------- ALF Guide -------------------
179\newpage
180\include{ALFGuide}
181
182% ------------------- WaveDash Guide -------------------
183\newpage
184\include{WaveDash}
185
186% ------------------- Helping With Development -------------------
187\newpage
188\input{HelpingWithDevelopment}
189
190% ------------------- Troubleshooting -------------------
191\newpage
192\input{Troubleshooting}
193
194% ------------------- NoCites -------------------
195\nocite{vmware:web}
196\nocite{irctutorial:web}
197\nocite{writingbugreports:web}
198\nocite{Bard:2007}
199\nocite{Buracchini:2000}
200\nocite{Reed:2002}
201\nocite{jtrssca:web}
202
203% ------------------------------------------------------------------
204%
205%             APPENDICES
206%
207% ------------------------------------------------------------------
208\pagebreak
209\appendix
210\appendixpage
211\addappheadtotoc
212
213% -------------------- managing services --------------------------
214\section{Managing Services on Fedora Core 9}
215\label{appendix:services}
216Controlling which services are currently running on your computer and which
217start up with your computer is very easy with Fedora Core's Service
218Configuration interface. From the GNOME taskbar, click
219System$\to$Administration$\to$Services. You will need to enter your root (system
220administrator) password to use the dialog.  The window that pops up shows you
221all of the available services on your computer.  Services that have a check in
222the box next to them are currently running.  To turn a service on or off,
223simply click the box, or select it and press the `Start' or `Stop' button at
224the top of the list.
225
226In order to edit which services start with your computer when it boots, you need
227to know a little about runlevels.  You computer has several different
228runlevels. The one you are most concerned with is runlevel 5.  Runlevel 5 means
229multiuser X-server mode.  Generally speaking, if you are using a graphical
230interface then you are in runlevel 5.
231
232To have omniNames start with your computer, select it in the services list,
233click `Edit Runlevel' on the top menubar, and select runlevel 5.  Click
234the save button to save your configuration.
235
236That's it!  The next time you start your computer, omniNames will start running
237automatically.
238
239% ------------------- omniNames.sh -------------------
240\section{Creating {\tt omniNames.sh}}
241\label{appendix:omninamessh}
242Installing omniORB from RPM automatically starts the naming service when the
243system boots.
244If omniORB was {\it not} installed using RPM, the naming service will
245probably need to be started manually.
246To do so, create a file called {\tt omniNames.sh} containing the following
247\begin{lstlisting}[caption={{\tt omniNames.sh} file}, nolol=false]
248 #!/bin/sh
249 
250 killall omniNames
251 rm /sdr/logs/omninames*
252 
253 omniNames -start -logdir /sdr/logs &
254\end{lstlisting}
255
256Once this file is created, the file must be given executable permissions:
257\begin{lstlisting}[]
258 $ chmod 755 omniNames.sh
259 # cp omniNames.sh /usr/local/bin
260\end{lstlisting}
261
262Create a directory for the logs:
263\begin{lstlisting}[]
264 $ mkdir /sdr/logs
265\end{lstlisting}
266
267The script can now be run by executing {\tt omniNames.sh} in any terminal.
268You can check to see if {\tt omniNames} is running by executing:
269\begin{lstlisting}[]
270 $ nameclt list
271\end{lstlisting}
272If the naming service is {\it not} running you will see an error like:
273\begin{lstlisting}[]
274  Unexpected error when trying to narrow the NamingContext.
275\end{lstlisting}
276
277% ------------------- ossie.pth -------------------
278\newpage
279\section{Configuring {\tt ossie.pth}}
280\label{appendix:ossiepth}
281In order for the Python tools to link properly, a Python path file must be
282created to point to the shared modules.
283The default {\tt ossie.pth} file is located under \\
284{\tt ossie-\ossieversion/src/system/ossie/idl/python/} and is installed by default in \\
285{\tt /usr/lib/pythonX.X/site-packages} when you install the ossie core
286framework libraries.
287
288If you did {\it not} install omniORBpy using an RPM, you might need to add \\
289{\tt /usr/local/lib/pythonX.X/site-packages} to {\tt ossie.pth}, where
290{\it X.X} corresponds to the specific version of Python installed on your
291system.
292Now reinstall by running {\tt python setup.py install} as root within the \\
293{\tt ossie-\ossieversion/src/system/ossie/idl/python/} directory:
294\begin{lstlisting}[]
295 # cd ossie-0.7.3/src/system/ossie/idl/python/
296 # python setup.py install
297\end{lstlisting}
298
299% ----------- source component creation ----------
300\newpage
301\section{Data Source Component Creation}
302\label{appendix:datasourcecreation}
303The component TxDemo will be used as an example on how to create a data source.
304When creating a component which is not a data source, typically only the function
305{\tt ProcessData} needs to be modified to include the desired operation. This is
306not the case for a source component, however. The code that needs to be updated in
307this example resides in the {\tt start}, {\tt stop}, and {\tt ProcessData} functions.
308Locate the directory {\tt components/TxDemo} and open the files TxDemo.h and TxDemo.cpp.
309
310In TxDemo.h, near the end of the file the following code will be listed:
311\begin{lstlisting}[]
312  bool continue_processing(void);
313  volatile bool thread_started;
314\end{lstlisting}
315The flag {\tt thread\_started} holds the state of the component; whether or not the
316component should continue sending data. A function {\tt continue\_processing} is also
317declared which will be used to check {\tt thread\_started} and determine if the component
318should continue sending packets.
319
320In TxDemo.cpp, locate the {\tt start} function and the following code will be listed:
321\begin{lstlisting}[]
322  omni_mutex_lock l(processing_mutex);
323  if (false == thread_started){
324    thread_started = true;    //initialize
325    //Create the thread for the writer's processing function
326    processing_thread = new omni_thread(Run, (void *) this);
327
328    //Start the thread containing the writer's processing function
329    processing_thread->start();
330    }
331\end{lstlisting}
332This code creates a new thread and starts processing when the {\tt thread\_started}
333variable is set to true.
334
335Now locate the {\tt stop} function, and the following code will be listed:
336\begin{lstlisting}[]
337  omni_mutex_lock l(processing_mutex);
338  thread_started=false;
339\end{lstlisting}
340This code stops the processing on the thread by setting {\tt thread\_started} to false.
341
342Now locate the {\tt ProcessData} function, and the following code will be listed:
343\begin{lstlisting}[]
344  while(continue_processing()) {
345    // push data to output
346    dataOutPort->pushPacket(I_out, Q_out);
347
348    // wait
349    usleep(packet_delay*1000);
350    }
351\end{lstlisting}
352This code checks the function {\tt continue\_processing} to determine if packets should
353continue to be sent using {\tt pushPacket}. The {\tt usleep} function call is specific
354to TxDemo, and is not necessarily required in other data sources.
355
356The last section of code that must be created is the {\tt continue\_processing} function.
357The code for the function is listed as the following:
358\begin{lstlisting}[]
359  bool TxDemo_i::continue_processing(void)
360  {
361    omni_mutex_lock l(processing_mutex);
362    return thread_started;
363  }
364\end{lstlisting}
365
366All of the code listings provided above are not created by default when a new component is
367generated, since the code is only required for source components. Instead, all of the
368code must be added by hand. The addition of the code will create the appropriate environment
369for the data source, and afterwards only the data creation must be added to the {\tt ProcessData}
370function.
371
372% ------------------- Known Bugs -------------------
373\include{Bugs}
374
375
376% ------------------- Abbreviations -------------------
377\input{Abbreviations}
378
379% ------------------------------------------------------------------
380%
381%             BIBLIOGRAPHY
382%
383% ------------------------------------------------------------------
384\newpage
385\bibliography{UserGuide}
386
387% ------------------- Change Log -------------------
388\newpage
389\section{Change Log}
390\label{appendix:changelog}
391
392\subsection {OSSIE 0.7.3}
393\begin{enumerate}
394\item Addition of new waveforms: OSSIETalkLoopBack, OSSIETalkUSRP
395\item Addition of new components: Channel, Conv\_Dec, Conv\_Enc, DigitalModem, FrameAssembler, OSSIETalk, PacketResizer, SymbolSyncPoly
396\item Decimator has the ability to use either IIR or FIR.
397\item OWD provides generation of custom license headers.
398\item More removal of vestigal project files.
399\end{enumerate}
400
401\subsection {OSSIE 0.7.2}
402\begin{enumerate}
403\item Improved start/stop capability within TxDemo component.
404\item Corrected XML Template files for OWDC component generation.
405\item Removal of incorrect entry point tags in default\_GPP\_node SPD.
406\item Deletion of vestigial project files.
407\item Addition of Interpolator component.
408\end{enumerate}
409
410\subsection {OSSIE 0.7.1}
411\begin{enumerate}
412\item Removal of duplicate profile templates.
413\item Added start, stop capability to TxDemo component.
414\item Fixed USRP\_Commander rx\_freq property typo.
415\item Fixed capability of components being run as waveforms.
416\end{enumerate}
417
418\subsection {OSSIE 0.7.0}
419\begin{enumerate}
420\item Start of change log.
421\item Allows for non /sdr install.
422\item Installation through RPMs.
423\item ALF can start and stop waveforms.
424\item Reduced plot tool's refresh rate.
425\item Removed ``sample waveform'' option in OWD.
426\item Removed duplicate DOCTYPE descriptors in generated XML files.
427\item Fixed path in USRP's SCD file.
428\item Fixed soundCardCapture device name to prevent OWD error.
429\item Added Ubuntu 8.04 as supported platform.
430\item OWD default save directory is now home directory.
431\item ALF's plot tool has normalized frequency axis.
432\item Debug statements use DEBUG macro instead of std::cout.
433\item Tools now installed to site-packages.
434\item ALF, OWD, and OWD Component Editor can be run from any directory.
435\item More than two nodes can be run through a single domain manager.
436\item Added webcam components.
437\item Installation from source broken into two steps.
438\end{enumerate}
439
440\end{document}
Note: See TracBrowser for help on using the browser.