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

iolayerbase.cpp

Go to the documentation of this file.
00001 #include <qlabel.h>
00002 #include <qlayout.h>
00003 #include <qcombobox.h>
00004 #include <qhbuttongroup.h>
00005 #include <qradiobutton.h>
00006 
00007 #include "iolayerbase.h"
00008 
00009 namespace {
00010     enum ParityIds {
00011         id_parity_none,
00012         id_parity_odd,
00013         id_parity_even
00014     };
00015 
00016     enum FlowIds {
00017         id_flow_hw,
00018         id_flow_sw,
00019         id_flow_none,
00020     };
00021 
00022     enum SpeedIds {
00023         id_baud_115200,
00024         id_baud_57600,
00025         id_baud_38400,
00026         id_baud_19200,
00027         id_baud_9600,
00028         id_baud_4800,
00029         id_baud_2400,
00030         id_baud_1200
00031     };
00032 
00033     enum DataIds {
00034         id_data_5,
00035         id_data_6,
00036         id_data_7,
00037         id_data_8
00038     };
00039 
00040     enum StopIds {
00041         id_stop_1,
00042         id_stop_1_5,
00043         id_stop_2
00044     };
00045 
00046 }
00047 
00048 
00049 IOLayerBase::IOLayerBase( QWidget* par,  const char* name )
00050     : QWidget( par, name )
00051 {
00052     m_speedLabel = new QLabel(tr("Speed"), this );
00053     m_speedBox = new QComboBox(this );
00054 
00055     m_groupFlow = new QHButtonGroup(tr("Flow control"),this );
00056     m_flowHw = new QRadioButton(tr("Hardware"), m_groupFlow );
00057     m_flowSw = new QRadioButton(tr("Software"), m_groupFlow );
00058     m_flowNone = new QRadioButton( tr("None"), m_groupFlow );
00059 
00060     m_groupParity = new QHButtonGroup(tr("Parity"), this );
00061     m_parityNone = new QRadioButton(tr("None"), m_groupParity );
00062     m_parityOdd = new QRadioButton(tr("Odd"), m_groupParity );
00063     m_parityEven = new QRadioButton(tr("Even"), m_groupParity );
00064 
00065     m_groupData = new QHButtonGroup(tr("Data Bits"), this);
00066     m_data5 = new QRadioButton(tr("5"), m_groupData );
00067     m_data6 = new QRadioButton(tr("6"), m_groupData );
00068     m_data7 = new QRadioButton(tr("7"), m_groupData );
00069     m_data8 = new QRadioButton(tr("8"), m_groupData );
00070 
00071     m_groupStop = new QHButtonGroup(tr("Stop Bits"), this );
00072     m_stop1 = new QRadioButton(tr("1"), m_groupStop );
00073     m_stop15 = new QRadioButton(tr("1.5"), m_groupStop );
00074     m_stop2 = new QRadioButton(tr("2"), m_groupStop );
00075 
00076 
00077     m_lroot = new QVBoxLayout( this );
00078     m_lroot->add(m_speedLabel );
00079     m_lroot->add(m_speedBox );
00080     m_lroot->add(m_groupFlow );
00081     m_lroot->add(m_groupParity );
00082     m_lroot->add( m_groupData );
00083     m_lroot->add( m_groupStop );
00084     m_lroot->addStretch(2);
00085 
00086     // profiles
00087     m_speedBox->insertItem(tr("115200 baud"), id_baud_115200 );
00088     m_speedBox->insertItem(tr("57600 baud"), id_baud_57600   );
00089     m_speedBox->insertItem(tr("38400 baud"), id_baud_38400   );
00090     m_speedBox->insertItem(tr("19200 baud"), id_baud_19200   );
00091     m_speedBox->insertItem(tr("9600 baud"), id_baud_9600     );
00092     m_speedBox->insertItem(tr("4800 baud"), id_baud_4800     );
00093     m_speedBox->insertItem(tr("2400 baud"), id_baud_2400     );
00094     m_speedBox->insertItem(tr("1200 baud"), id_baud_1200        );
00095 };
00096 IOLayerBase::~IOLayerBase() {
00097 
00098 }
00099 void IOLayerBase::setFlow( Flow flo ) {
00100     switch ( flo ) {
00101     case Software:
00102         m_flowSw->setChecked( true );
00103         break;
00104     case Hardware:
00105         m_flowHw->setChecked( true );
00106         break;
00107     case None:
00108         m_flowNone->setChecked( true );
00109         break;
00110     }
00111 }
00112 
00113 void IOLayerBase::setParity( Parity par ) {
00114     switch( par ) {
00115     case NonePar:
00116         m_parityNone->setChecked( true );
00117         break;
00118     case Odd:
00119         m_parityOdd->setChecked( true );
00120         break;
00121     case Even:
00122         m_parityEven->setChecked( true );
00123         break;
00124     }
00125 }
00126 void IOLayerBase::setSpeed( Speed sp ) {
00127     int index = -1;
00128     switch( sp ) {
00129     case Baud_115200:
00130         index = id_baud_115200;
00131         break;
00132     case Baud_57600:
00133         index = id_baud_57600;
00134         break;
00135     case Baud_38400:
00136         index = id_baud_38400;
00137         break;
00138     case Baud_19200:
00139         index = id_baud_19200;
00140         break;
00141     case Baud_4800:
00142         index = id_baud_4800;
00143         break;
00144     case Baud_2400:
00145         index = id_baud_2400;
00146         break;
00147     case Baud_1200:
00148         index = id_baud_1200;
00149         break;
00150     default:
00151     case Baud_9600:
00152         index = id_baud_9600;
00153         break;
00154     }
00155     m_speedBox->setCurrentItem(index );
00156 }
00157 
00158 void IOLayerBase::setData( Data data ) {
00159     switch( data ) {
00160     case Data_Five:
00161         m_data5->setChecked( true );
00162         break;
00163     case Data_Six:
00164         m_data6->setChecked( true );
00165         break;
00166     case Data_Seven:
00167         m_data7->setChecked( true );
00168         break;
00169     default:
00170         m_data8->setChecked( true );
00171         break;
00172     }
00173 }
00174 
00175 
00176 void IOLayerBase::setStop( Stop stop  ) {
00177     switch( stop ) {
00178     case Stop_Two:
00179         m_stop2->setChecked( true );
00180         break;
00181     case Stop_OnePointFive:
00182         m_stop15->setChecked( true );
00183         break;
00184     default:
00185         m_stop1->setChecked( true );
00186         break;
00187     }
00188 }
00189 
00190 
00191 
00192 IOLayerBase::Flow IOLayerBase::flow()const {
00193     if (m_flowHw->isChecked() ) {
00194         return Hardware;
00195     }else if( m_flowSw->isChecked() ) {
00196         return Software;
00197     } else {
00198         return None;
00199     }
00200 }
00201 IOLayerBase::Parity IOLayerBase::parity()const {
00202     if ( m_parityOdd->isChecked() ) {
00203         return Odd;
00204     } else if  ( m_parityEven->isChecked() ) {
00205         return Even;
00206     } else {
00207         return NonePar;
00208     }
00209 
00210 }
00211 IOLayerBase::Speed IOLayerBase::speed()const{
00212     switch( m_speedBox->currentItem() ) {
00213     case id_baud_115200:
00214         return Baud_115200;
00215         break;
00216     case id_baud_57600:
00217         return Baud_57600;
00218         break;
00219     case id_baud_38400:
00220         return Baud_38400;
00221         break;
00222     case id_baud_19200:
00223         return Baud_19200;
00224         break;
00225     case id_baud_4800:
00226         return Baud_4800;
00227         break;
00228     case id_baud_2400:
00229         return Baud_2400;
00230         break;
00231     case id_baud_1200:
00232         return Baud_1200;
00233         break;
00234     default:
00235     case id_baud_9600:
00236         return Baud_9600;
00237         break;
00238     }
00239 }
00240 IOLayerBase::Data IOLayerBase::data()const {
00241     if ( m_data5->isChecked() ) {
00242         return Data_Five;
00243     } else if  ( m_data6->isChecked() ) {
00244         return Data_Six;
00245     } else if  ( m_data7->isChecked() ) {
00246         return Data_Seven;
00247     } else {
00248         return Data_Eight;
00249     }
00250 }
00251 IOLayerBase::Stop IOLayerBase::stop()const {
00252     if ( m_stop2->isChecked() ) {
00253         return Stop_Two;
00254     } else if  ( m_stop15->isChecked() ) {
00255         return Stop_OnePointFive;
00256     } else {
00257         return Stop_One;
00258     }
00259 }
00260 

Generated on Sat Nov 5 16:16:50 2005 for OPIE by  doxygen 1.4.2