| 1 | % ------------------------------------------------------------------ |
|---|
| 2 | % |
|---|
| 3 | % TITLE: OSSIE User Guide 0.7.0 |
|---|
| 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 |
|---|
| 24 | basic QPSK communication system. It consists of three components: a transmitter, |
|---|
| 25 | a channel, and a receiver. The transmitter generates bursts of 512 QPSK symbols |
|---|
| 26 | that are sent through an AWGN channel and decoded by the receiver. The number of |
|---|
| 27 | errors per burst will be printed out on the screen while the waveform runs.} |
|---|
| 28 | |
|---|
| 29 | %@usepackage{html} |
|---|
| 30 | %@usepackage{verbatim} |
|---|
| 31 | |
|---|
| 32 | %@begin{comment} |
|---|
| 33 | \usepackage{listings} |
|---|
| 34 | %@end{comment} |
|---|
| 35 | |
|---|
| 36 | \usepackage{appendix} |
|---|
| 37 | \usepackage[pdftex]{graphicx} |
|---|
| 38 | \usepackage{url} |
|---|
| 39 | |
|---|
| 40 | % ------------------- BIBLIOGRAPHY STYLE ------------------- |
|---|
| 41 | \usepackage[sort]{natbib} |
|---|
| 42 | \bibliographystyle{plain} % note the change here |
|---|
| 43 | %\bibliographystyle{IEEEtran} |
|---|
| 44 | \bibpunct{[}{]}{,}{n}{}{;} % define bibliography punctuation |
|---|
| 45 | % The six mandatory arguments for \bibpunct are: |
|---|
| 46 | % 1. opening bracket: '(', '[', '{', or '<' |
|---|
| 47 | % 2. closing bracket: ')', ']', '}', or '>' |
|---|
| 48 | % 3. separator between multiple citations: ';' or ',' |
|---|
| 49 | % 4. citation style: 'n' for numerical style, 's' for numerical superscript style, or 'a' for authorÃyear style |
|---|
| 50 | % 5. punctuation between the author names and the year |
|---|
| 51 | % 6. punctuation between years or numbers when common author lists are suppressed: ',' or ';' |
|---|
| 52 | |
|---|
| 53 | %@begin{comment} |
|---|
| 54 | % due to magic hacks, hyperref must be right before document begin |
|---|
| 55 | \usepackage[pdftex]{hyperref} |
|---|
| 56 | \hypersetup{colorlinks, |
|---|
| 57 | citecolor=blue, |
|---|
| 58 | filecolor=blue, |
|---|
| 59 | linkcolor=blue, |
|---|
| 60 | urlcolor=blue, |
|---|
| 61 | pdftex} |
|---|
| 62 | %@end{comment} |
|---|
| 63 | |
|---|
| 64 | % ------------------- MAIN DOCUMENT ------------------- |
|---|
| 65 | \begin{document} |
|---|
| 66 | \thispagestyle{empty} |
|---|
| 67 | \pagenumbering{roman} |
|---|
| 68 | |
|---|
| 69 | %@begin{comment} |
|---|
| 70 | \definecolor{MyCommentColor}{rgb}{0.1,0.4,0.1} |
|---|
| 71 | \definecolor{MyCodeBackgroundColor}{rgb}{0.95,0.95,0.95} |
|---|
| 72 | %\definecolor{MyCodeFrameRuleColor}{rgb}{0.9,0.9,0.9} |
|---|
| 73 | \definecolor{MyStringColor}{rgb}{0.6,0.1,0.1} |
|---|
| 74 | \definecolor{MyKeywordColor}{rgb}{0.6,0.1,0.1} |
|---|
| 75 | |
|---|
| 76 | % define lstlistings style |
|---|
| 77 | % (see http://tug.ctan.org/tex-archive/macros/latex/contrib/listings/) |
|---|
| 78 | \lstloadlanguages{[GNU]C++,Python,[CORBA]IDL,sh} |
|---|
| 79 | |
|---|
| 80 | \lstset{% general command to set parameter(s) |
|---|
| 81 | basicstyle=\small\ttfamily, % print whole listing small |
|---|
| 82 | keywordstyle=\color{MyKeywordColor}\bfseries, |
|---|
| 83 | identifierstyle=\color{black}, |
|---|
| 84 | commentstyle=\color{MyCommentColor}, % define color and sytle of comments |
|---|
| 85 | stringstyle=\ttfamily\color{MyStringColor}, % typewriter type for strings |
|---|
| 86 | %showstringspaces=false, % no special string spaces |
|---|
| 87 | backgroundcolor=\color{MyCodeBackgroundColor}, |
|---|
| 88 | frame=none, |
|---|
| 89 | %framerule=0.5pt, |
|---|
| 90 | %framexleftmargin=2pt, |
|---|
| 91 | %framexrightmargin=2pt, |
|---|
| 92 | %framexbottommargin=2pt, |
|---|
| 93 | %framextopmargin=2pt, |
|---|
| 94 | %rulecolor=\color{MyCodeFrameRuleColor}, |
|---|
| 95 | nolol=true, % suppress listoflistings entry |
|---|
| 96 | tabsize=4, |
|---|
| 97 | linewidth=\linewidth, |
|---|
| 98 | breaklines=false, |
|---|
| 99 | xleftmargin=6pt, |
|---|
| 100 | xrightmargin=6pt |
|---|
| 101 | } |
|---|
| 102 | %@end{comment} |
|---|
| 103 | |
|---|
| 104 | {\huge OSSIE 0.7.0 User Guide\\} |
|---|
| 105 | |
|---|
| 106 | %\vfill |
|---|
| 107 | |
|---|
| 108 | {\sf Matt Carrick, Drew Cormier, Christopher Covington, Carl B. Dietrich, \\ |
|---|
| 109 | Joseph Gaeddert, Benjamin Hilburn, C. Ian Phelps, Jason Snyder, \\ |
|---|
| 110 | Shereef Sayed, Haris Volos} |
|---|
| 111 | |
|---|
| 112 | \vfill |
|---|
| 113 | |
|---|
| 114 | September, 2008 |
|---|
| 115 | |
|---|
| 116 | |
|---|
| 117 | \vfill |
|---|
| 118 | |
|---|
| 119 | \begin{figure*}[!ht] |
|---|
| 120 | \centering |
|---|
| 121 | \includegraphics[width=6in]{figures/alf_screenshot_00.png} |
|---|
| 122 | \end{figure*} |
|---|
| 123 | |
|---|
| 124 | \vfill |
|---|
| 125 | |
|---|
| 126 | OSSIE is an open source Software Defined Radio (SDR) development effort based |
|---|
| 127 | at Virginia Tech. OSSIE is primarily intended to enable research and education |
|---|
| 128 | in SDR and wireless communications. The software package includes an SDR core |
|---|
| 129 | framework based on the JTRS Software Communications Architecture, tools |
|---|
| 130 | for rapid development of SDR components and waveforms (applications), and an |
|---|
| 131 | evolving library of pre-built components and waveforms. In addition, free |
|---|
| 132 | laboratory exercises for SDR education and training are being developed in |
|---|
| 133 | cooperation with the Naval Postgraduate School.\\ |
|---|
| 134 | |
|---|
| 135 | \begin{center} |
|---|
| 136 | {\sf\small OSSIE is the Open Source SCA Implementation::Embedded} |
|---|
| 137 | \end{center} |
|---|
| 138 | |
|---|
| 139 | \pagebreak |
|---|
| 140 | \tableofcontents |
|---|
| 141 | %@begin{comment} |
|---|
| 142 | \lstlistoflistings |
|---|
| 143 | %@end{comment} |
|---|
| 144 | |
|---|
| 145 | \pagebreak |
|---|
| 146 | \pagenumbering{arabic} |
|---|
| 147 | |
|---|
| 148 | % ------------------- Quick Start Guide ------------------- |
|---|
| 149 | \newpage |
|---|
| 150 | \input{QuickStartGuide} |
|---|
| 151 | |
|---|
| 152 | % ------------------- Introduction ------------------- |
|---|
| 153 | \newpage |
|---|
| 154 | \input{Introduction} |
|---|
| 155 | |
|---|
| 156 | % ------------------- Installation Guide ------------------- |
|---|
| 157 | \newpage |
|---|
| 158 | \input{Installation} |
|---|
| 159 | |
|---|
| 160 | % ------------------- Running Waveforms ------------------- |
|---|
| 161 | \newpage |
|---|
| 162 | \input{RunningWaveforms} |
|---|
| 163 | |
|---|
| 164 | |
|---|
| 165 | % ------------------- OEF Guide ------------------- |
|---|
| 166 | \newpage |
|---|
| 167 | \include{OEFGuide} |
|---|
| 168 | |
|---|
| 169 | % ------------------- OWD Guide ------------------- |
|---|
| 170 | \newpage |
|---|
| 171 | \include{OWDGuide} |
|---|
| 172 | |
|---|
| 173 | % ------------------- ALF Guide ------------------- |
|---|
| 174 | \newpage |
|---|
| 175 | \include{ALFGuide} |
|---|
| 176 | |
|---|
| 177 | % ------------------- Helping With Development ------------------- |
|---|
| 178 | \newpage |
|---|
| 179 | \input{HelpingWithDevelopment} |
|---|
| 180 | |
|---|
| 181 | % ------------------- Troubleshooting ------------------- |
|---|
| 182 | \newpage |
|---|
| 183 | \input{Troubleshooting} |
|---|
| 184 | |
|---|
| 185 | % ------------------- NoCites ------------------- |
|---|
| 186 | \nocite{vmware:web} |
|---|
| 187 | \nocite{irctutorial:web} |
|---|
| 188 | \nocite{writingbugreports:web} |
|---|
| 189 | \nocite{Bard:2007} |
|---|
| 190 | \nocite{Buracchini:2000} |
|---|
| 191 | \nocite{Reed:2002} |
|---|
| 192 | \nocite{jtrssca:web} |
|---|
| 193 | |
|---|
| 194 | % ------------------------------------------------------------------ |
|---|
| 195 | % |
|---|
| 196 | % APPENDICES |
|---|
| 197 | % |
|---|
| 198 | % ------------------------------------------------------------------ |
|---|
| 199 | \pagebreak |
|---|
| 200 | \appendix |
|---|
| 201 | \appendixpage |
|---|
| 202 | \addappheadtotoc |
|---|
| 203 | |
|---|
| 204 | % -------------------- managing services -------------------------- |
|---|
| 205 | \section{Managing Services on Fedora Core 9} |
|---|
| 206 | \label{appendix:services} |
|---|
| 207 | Controlling which services are currently running on your computer and which |
|---|
| 208 | start up with your computer is very easy with Fedora Core's Service |
|---|
| 209 | Configuration interface. From the GNOME taskbar, click |
|---|
| 210 | System$\to$Administration$\to$Services. You will need to enter your root (system |
|---|
| 211 | administrator) password to use the dialog. The window that pops up shows you |
|---|
| 212 | all of the available services on your computer. Services that have a check in |
|---|
| 213 | the box next to them are currently running. To turn a service on or off, |
|---|
| 214 | simply click the box, or select it and press the `Start' or `Stop' button at |
|---|
| 215 | the top of the list. |
|---|
| 216 | |
|---|
| 217 | In order to edit which services start with your computer when it boots, you need |
|---|
| 218 | to know a little about runlevels. You computer has several different |
|---|
| 219 | runlevels. The one you are most concerned with is runlevel 5. Runlevel 5 means |
|---|
| 220 | multiuser X-server mode. Generally speaking, if you are using a graphical |
|---|
| 221 | interface then you are in runlevel 5. |
|---|
| 222 | |
|---|
| 223 | To have omniNames start with your computer, select it in the services list, |
|---|
| 224 | click `Edit Runlevel' on the top menubar, and select runlevel 5. Click |
|---|
| 225 | the save button to save your configuration. |
|---|
| 226 | |
|---|
| 227 | That's it! The next time you start your computer, omniNames will start running |
|---|
| 228 | automatically. |
|---|
| 229 | |
|---|
| 230 | % ------------------- omniNames.sh ------------------- |
|---|
| 231 | \section{Creating {\tt omniNames.sh}} |
|---|
| 232 | \label{appendix:omninamessh} |
|---|
| 233 | Installing omniORB from RPM automatically starts the naming service when the |
|---|
| 234 | system boots. |
|---|
| 235 | If omniORB was {\it not} installed using RPM, the naming service will |
|---|
| 236 | probably need to be started manually. |
|---|
| 237 | To do so, create a file called {\tt omniNames.sh} containing the following |
|---|
| 238 | \begin{lstlisting}[caption={{\tt omniNames.sh} file}, nolol=false] |
|---|
| 239 | #!/bin/sh |
|---|
| 240 | |
|---|
| 241 | killall omniNames |
|---|
| 242 | rm /sdr/logs/omninames* |
|---|
| 243 | |
|---|
| 244 | omniNames -start -logdir /sdr/logs & |
|---|
| 245 | \end{lstlisting} |
|---|
| 246 | |
|---|
| 247 | Once this file is created, the file must be given executable permissions: |
|---|
| 248 | \begin{lstlisting}[] |
|---|
| 249 | $ chmod 755 omniNames.sh |
|---|
| 250 | # cp omniNames.sh /usr/local/bin |
|---|
| 251 | \end{lstlisting} |
|---|
| 252 | |
|---|
| 253 | Create a directory for the logs: |
|---|
| 254 | \begin{lstlisting}[] |
|---|
| 255 | $ mkdir /sdr/logs |
|---|
| 256 | \end{lstlisting} |
|---|
| 257 | |
|---|
| 258 | The script can now be run by executing {\tt omniNames.sh} in any terminal. |
|---|
| 259 | You can check to see if {\tt omniNames} is running by executing: |
|---|
| 260 | \begin{lstlisting}[] |
|---|
| 261 | $ nameclt list |
|---|
| 262 | \end{lstlisting} |
|---|
| 263 | If the naming service is {\it not} running you will see an error something like: |
|---|
| 264 | \begin{lstlisting}[] |
|---|
| 265 | Unexpected error when trying to narrow the NamingContext. |
|---|
| 266 | \end{lstlisting} |
|---|
| 267 | |
|---|
| 268 | % ------------------- ossie.pth ------------------- |
|---|
| 269 | \newpage |
|---|
| 270 | \section{Configuring {\tt ossie.pth}} |
|---|
| 271 | \label{appendix:ossiepth} |
|---|
| 272 | In order for the Python tools to link properly, a Python path file must be |
|---|
| 273 | created to point to the shared modules. |
|---|
| 274 | The default {\tt ossie.pth} file is located under \\ |
|---|
| 275 | {\tt ossie-0.7.0/src/system/ossie/idl/python/} and is installed by default in \\ |
|---|
| 276 | {\tt /usr/lib/pythonX.X/site-packages} when you install the ossie core |
|---|
| 277 | framework libraries. |
|---|
| 278 | |
|---|
| 279 | If you did {\it not} install omniORBpy using an RPM, you might need to add \\ |
|---|
| 280 | {\tt /usr/local/lib/pythonX.X/site-packages} to {\tt ossie.pth}, where |
|---|
| 281 | {\it X.X} corresponds to the specific version of Python installed on your |
|---|
| 282 | system. |
|---|
| 283 | Now reinstall by running {\tt python setup.py install} as root within the \\ |
|---|
| 284 | {\tt ossie-0.7.0/src/system/ossie/idl/python/} directory: |
|---|
| 285 | \begin{lstlisting}[] |
|---|
| 286 | # cd ossie-0.7.0/src/system/ossie/idl/python/ |
|---|
| 287 | # python setup.py install |
|---|
| 288 | \end{lstlisting} |
|---|
| 289 | |
|---|
| 290 | % ------------------- Known Bugs ------------------- |
|---|
| 291 | \include{Bugs} |
|---|
| 292 | |
|---|
| 293 | |
|---|
| 294 | % ------------------- Abbreviations ------------------- |
|---|
| 295 | \input{Abbreviations} |
|---|
| 296 | |
|---|
| 297 | % ------------------------------------------------------------------ |
|---|
| 298 | % |
|---|
| 299 | % BIBLIOGRAPHY |
|---|
| 300 | % |
|---|
| 301 | % ------------------------------------------------------------------ |
|---|
| 302 | \newpage |
|---|
| 303 | \bibliography{UserGuide} |
|---|
| 304 | |
|---|
| 305 | % ------------------- Change Log ------------------- |
|---|
| 306 | \newpage |
|---|
| 307 | \section{Change Log} |
|---|
| 308 | \label{appendix:changelog} |
|---|
| 309 | |
|---|
| 310 | \subsection {OSSIE 0.7.0} |
|---|
| 311 | \begin{enumerate} |
|---|
| 312 | \item Start of change log. |
|---|
| 313 | \item Allows for non /sdr install. |
|---|
| 314 | \item Installation through RPMs. |
|---|
| 315 | \item ALF can start and stop waveforms. |
|---|
| 316 | \item Reduced plot tool's refresh rate. |
|---|
| 317 | \item Removed "sample waveform" option in OWD |
|---|
| 318 | \item Removed duplicate DOCTYPE descriptors in generated XML files. |
|---|
| 319 | \item Fixed path in USRP's scd file. |
|---|
| 320 | \item Fixed soundCardCapture device name to prevent OWD error. |
|---|
| 321 | \item Added Ubuntu 8.04 as supported platform. |
|---|
| 322 | \item OWD default save directory is now home directory. |
|---|
| 323 | \item ALF's plot tool has normalized frequency axis. |
|---|
| 324 | \item Debug statements use DEBUG macro instead of std::cout |
|---|
| 325 | \item Tools now installed to site-packages. |
|---|
| 326 | \item ALF, OWD, and OWD Component Editor can be run from any directory. |
|---|
| 327 | \item More than two nodes can be run through a single domain manager. |
|---|
| 328 | \item Added webcam components. |
|---|
| 329 | \item Installation from source broken into two steps. |
|---|
| 330 | \end{enumerate} |
|---|
| 331 | |
|---|
| 332 | \end{document} |
|---|