close Warning: Can't synchronize with repository "(default)" (/common/SVN/crkit does not appear to be a Subversion repository.). Look in the Trac log for more information.

Changes between Version 1 and Version 2 of wiser/mSoftware/aWiserd


Ignore:
Timestamp:
Aug 1, 2014, 3:17:21 AM (10 years ago)
Author:
seskar
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • wiser/mSoftware/aWiserd

    v1 v2  
    1 == wiserd ==
     1=== wiserd ===
    22
    3 [[TOC(Documentation/dSDR/*, depth=2)]]
     3[[TOC(wiser/mSoftware* )]]
    44
    55'''wiserd''' was developed as a basic software building block of a distributed frequency-domain based spectrum sensing system consisting of a number of deployed spectrum sensors (SDR nodes) that are managed by the centralized controller. The main goal was to provision the SDR node with a monolithic (i.e. simple to deploy) relatively portable (i.e. with minimal number of software dependencies) application with fft based processing of time-domain RF signals that has ability to control RF and spectrum sensing parameters. Over time, the '''wiserd''' grew up to include other (not necessarily frequency domain and not receiver only) modules. The [http://en.wikipedia.org/wiki/Daemon_%28computing%29 daemon type C++ application] is divided into modules and is multithreaded. The block-diagram of the application is shown in Figure 1. It consist of the following functional modules:
     
    1818The '''wiserd''' code was written using [http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml Google style].
    1919
    20 === Receiver modules ===
     20==== Receiver modules ====
    2121
    2222  1. '''fft_movavg_udp''': performs the FFT on the time samples received from the receiver module, calculates the moving average and sends the results via UDP. The consumer name used to add the consumer while using the program is "fftmovingavgudp". Needed parameters: FFT length, averaging window length, UDP address and port.
     
    2626  1. '''fft_sigpower_oml''': performs the FFT on the time samples receivd from the receiver module, calculates the peak power in dBm and 3dB bandwidth each second, and on used command sends the results to the OML server. Needed parameters: FFT length, OML server address and port (use server name "FILE" to store locally), OML filename.
    2727
    28 === Transmitter modules ===
     28==== Transmitter modules ====
    2929
    3030  1. '''signal_from_file''': reads IQ time samples stored as complex floats from a file and sends them to the transmitting module. Producer name is "signalfromfile". Needed parameters: file name.
    3131  1. '''waveform''': has a number of predefined waveforms to be sent to the transmitting module. Consumer name is "waveform". Needed parameters: waveform type, waveform frequency (depending on the type).
    3232
    33 === Usage ===
     33==== Usage ====
    3434
    3535The commands may be entered in the command line or sent via TCP. The default port is 5123. The list of commands with their syntax:
    3636
    37 ==== get ====
     37===== get =====
    3838'''get''' command is used to obtain values of parameters of certain modules. The user must use the correct module (uhd, rx and tx) when trying to access a parameter. For example, the receiver frequency, called rx_freq, is a parameter of the radio module (uhd), since it is set using the radio device driver. On the other hand, FFT length or the moving average window or anything the receiver consumers might need is a part of the receiver module (rx). For example, the command to get the current value of the receiver frequency is:
    3939{{{
     
    4141}}}
    4242
    43 ==== set ====
     43===== set =====
    4444'''set''' command is used to set values of the parameters. It's similar to "get", with the addition of the value at the end. Example:
    4545{{{
     
    4747}}}
    4848
    49 ==== add ====
     49===== add =====
    5050'''"add"''' command is used to add a consumer to the transmitting or receiving module. Examples:
    5151{{{
     
    5454}}}
    5555
    56 ==== delete ====
     56===== delete =====
    5757'''"delete"''' command deletes (stops) an added producer/consumer from the transmitting or receiving module. Examples:
    5858{{{
     
    6060}}}
    6161
    62 ==== scan ====
     62===== scan =====
    6363"scan" is a procedure that reads a script from a file, and then follows it to perform scanning of the spectrum by repeatedly adding the store_to_file consumer, and then deleting it when the work is done, for different values of receiving parameters. It has a single parameter: the file name from which the script is loaded. The input file is a textual file. The first line contains a single number N, the number of times the store_to_file will be run, followed by N lines containing 4 parameters each: central receiver frequency, receiver sampling rate, receiver gain and the required number of samples to be stored.
    6464
    65 === Module Parameters ===
     65==== Module Parameters ====
    6666
    6767  || Receiver module ('''rx''') ||
     
    9393  || clock_ref        || USRP radio clock reference ||
    9494
    95 === Development ===
     95==== Development ====
    9696
    9797The latest version of the '''wiserd''' code is available in the [source:wiserd git repository]. To check out the latest code: