Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

simthlib::TransmissionMonitor Class Reference

#include <monitor.h>

Inheritance diagram for simthlib::TransmissionMonitor:

Inheritance graph
[legend]
List of all members.

Public Types

enum  InputTypes { BIT_BIT, BIT_LLR, LLR_LLR, LLR_BIT }

Public Member Functions

virtual void setXValue (double newXValue)=0
virtual void setX2Value (double newX2Value)=0
 TransmissionMonitor (int ID, simth::DeviceSystemIntf *syst, const simth::PropertyList &pl)
virtual long int errors () const =0
virtual void record (const simth::BitSeq &bits, const simth::BitSeq &recBits, double xValue)=0
virtual void process ()
virtual void updateInputLengths ()
virtual void updateOutputLengths ()
virtual void refresh ()
virtual void print (std::ostream &os) const
virtual void startOfSimulation ()

Static Public Member Functions

static void init (const std::string &filename, simth::Device **dev, simth::DeviceSystemIntf *sysPtr, int ID, const std::string &regionQualifier="")

Public Attributes

long int minBits_
long int maxBits_
long int minErrors_
InputTypes inputCombination

Protected Member Functions

long int minBits () const
long int maxBits () const
long int minErrors () const
virtual double xValue () const =0
virtual double x2Value () const =0
virtual void record (const simth::BitSeq &bits, const simth::BitSeq &recBits)=0
void writeGnuplotFile (const std::string &gnuplotFilename, const std::string &dataFilename, bool append=false)
void writePositionGnuplotFile (const std::string &gnuplotFilename, const std::string &positionDataFilename, bool append=false) const

Related Functions

(Note that these are not member functions.)

 propertylist_TransmissionMonitor (not_a_function)

Detailed Description

Base class of all classes used to analyze and compare bit (or simth::LLR_) streams of a simulation system, e.g. count bit errors, display the bit error rate (BER) thru a given x-value range (e.g. the SNR range) or to display the position of bit errors. To do so, you have to connect a (double) loop variable (see loopvariables.h in the Simthetic documentation), for example a loop variable representing the SNR-range, with the first control interface of this device. This is simply done by adding the item 'x1_loop: snr'. SNRwith Additionaly, it is a possible to repeat that for another, called x2 value.


Member Enumeration Documentation

enum simthlib::TransmissionMonitor::InputTypes
 

Enumeration values:
BIT_BIT 
BIT_LLR 
LLR_LLR 
LLR_BIT 


Constructor & Destructor Documentation

simthlib::TransmissionMonitor::TransmissionMonitor int  ID,
simth::DeviceSystemIntf syst,
const simth::PropertyList pl
 

Class constructor.


Member Function Documentation

virtual long int simthlib::TransmissionMonitor::errors  )  const [pure virtual]
 

Implemented in simthlib::TransmissionMonitorFile.

static void simthlib::TransmissionMonitor::init const std::string &  filename,
simth::Device **  dev,
simth::DeviceSystemIntf sysPtr,
int  ID,
const std::string &  regionQualifier = ""
[static]
 

long int simthlib::TransmissionMonitor::maxBits  )  const [inline, protected]
 

long int simthlib::TransmissionMonitor::minBits  )  const [inline, protected]
 

long int simthlib::TransmissionMonitor::minErrors  )  const [inline, protected]
 

virtual void simthlib::TransmissionMonitor::print std::ostream &  os  )  const [virtual]
 

Reimplemented from simth::Device.

virtual void simthlib::TransmissionMonitor::process  )  [virtual]
 

Implements simth::Device.

Reimplemented in simthlib::ErrorPositionPipe.

virtual void simthlib::TransmissionMonitor::record const simth::BitSeq bits,
const simth::BitSeq recBits,
double  xValue
[pure virtual]
 

This function is called by the function process of the base class. It records the last transmission and sets the current x-value to the value given as argument. The way of recording the transmission is determined by the derived classes. A common way would be for example to compute the BER and write the result in a specified file. If the x-value given as argument differs from the previous x-value, a derived class could write the stored information to a file and reset the bit error counter to zero in order to start a new analysis.

Implemented in simthlib::TransmissionMonitorFile, and simthlib::ErrorPositionMonitor.

virtual void simthlib::TransmissionMonitor::record const simth::BitSeq bits,
const simth::BitSeq recBits
[protected, pure virtual]
 

Records the last transmission. The way of record the transmission is determined by the derived classes.

Implemented in simthlib::TransmissionMonitorFile.

virtual void simthlib::TransmissionMonitor::refresh  )  [virtual]
 

Called when the channel realization is refreshed as well.

Reimplemented from simth::Device.

Reimplemented in simthlib::TransmissionMonitorFile.

virtual void simthlib::TransmissionMonitor::setX2Value double  newX2Value  )  [pure virtual]
 

Implemented in simthlib::TransmissionMonitorFile.

virtual void simthlib::TransmissionMonitor::setXValue double  newXValue  )  [pure virtual]
 

Implemented in simthlib::TransmissionMonitorFile.

virtual void simthlib::TransmissionMonitor::startOfSimulation  )  [virtual]
 

Reimplemented from simth::Device.

virtual void simthlib::TransmissionMonitor::updateInputLengths  )  [virtual]
 

Implements simth::Device.

Reimplemented in simthlib::ErrorPositionPipe.

virtual void simthlib::TransmissionMonitor::updateOutputLengths  )  [virtual]
 

Implements simth::Device.

Reimplemented in simthlib::ErrorPositionPipe.

void simthlib::TransmissionMonitor::writeGnuplotFile const std::string &  gnuplotFilename,
const std::string &  dataFilename,
bool  append = false
[protected]
 

void simthlib::TransmissionMonitor::writePositionGnuplotFile const std::string &  gnuplotFilename,
const std::string &  positionDataFilename,
bool  append = false
const [protected]
 

virtual double simthlib::TransmissionMonitor::x2Value  )  const [protected, pure virtual]
 

Implemented in simthlib::TransmissionMonitorFile.

virtual double simthlib::TransmissionMonitor::xValue  )  const [protected, pure virtual]
 

Implemented in simthlib::TransmissionMonitorFile.


Friends And Related Function Documentation

propertylist_TransmissionMonitor not_a_function   )  [related]
 

These are the properties of class TransmissionMonitor . This list is auto-generated from the XML-Devicelist of this device by means of an XSLT transformation script.

Description of this device in the XML file: Base class of all classes used to analyze and compare bit (or simth::LLR) streams of a simulation system. (FIXME: needs updating) E.g. count bit errors, display the bit error rate (BER) thru a given x-value range (e.g. the SNR range) or to display the position of bit errors. To do so, you have to connect a (double) loop variable (see loopvariables.h in the Simthetic documentation), for example a loop variable representing the SNR-range, with the first control interface of this device. This is simply done by adding the item 'x1_loop: snr'. Additionaly, it is a possible to repeat that for another, called x2 value.

Note that this class also has the Properties of its base classes. The direct base class is simth::Device ; direct link to its propertylist should be propertylist_Device(). The list below usually includes the properties that have been inherited from the base classes; the properties which belong only to this class can be found at the end of this list.

input_type_combination
<enum>, default "bit_bit" -- The input type combination: Either bits are compared against bits, or bits are compared against LLR values, so that implicitly the LLR values will be hard-decided.

snr
<string>, default "SNR_loop" -- The name of the snr loop.

x2_loop
<string>, default "" -- The name of the optional second x-value loop.

min_bits
<unsigned>, default "" -- The minimum number of bits to be transmitted. (This property has highest precedence compared to max_bits and min_bit_errors.)

max_bits
<unsigned>, default "0" -- The maximum number of bits to be transmitted. The current transmission will be terminated after at least this number of bits has been transmitted, but only if at least min_bits bits have been transmitted as well. (This property comes after min_bits in precedence, but before min_bit_errors.)

min_bit_errors
<unsigned>, default "10000" -- If set, then terminate the current transmission prematurely as soon as this number of bit errors have been received, but only if at least min_bits bits have been transmitted as well. WATCH OUT: Dont use this option when refresh_loop is greater than one, or your results will be totally skewed! See also the page The duration of a typical digital communcications simulation. (This property has smaller precedence than both min_bits and max_bits.)

refresh
<string>, default "none" -- If set, name of the refresh loop of the channel. If set, will enable recording of one BER value at each realization of the channel instead of only the average over all realizations at one SNR.

refresh_statistics
<bool>, default "false" -- If true, then calculate the actual mean and variance of the BER at each realization over all realizations of one SNR value. If false, then print one line of output for each realization. If the property 'refresh' is unset, then this property has no effect.

input_length
<sequencelength>, default "-1" -- The input size. -1 means undefined.

x1_loop
<string>, default "" -- [Obsolete. Only for compatibility with old parameter files.] The name of the first x-value loop. Either this or the property 'snr' (which is just an alias) has to be set.

pipe
<bool>, default "false" -- [OBSOLETE - only needed for non-factory-function creation of this object.] If true then this device is a pipe and not a (terminating) monitor.

11 properties in this class.


Member Data Documentation

InputTypes simthlib::TransmissionMonitor::inputCombination
 

long int simthlib::TransmissionMonitor::maxBits_
 

long int simthlib::TransmissionMonitor::minBits_
 

long int simthlib::TransmissionMonitor::minErrors_
 


Generated on Tue Aug 9 14:38:53 2005 for simtheticlib by  doxygen 1.4.1