Release 0.8.11

This commit is contained in:
Matthias Toussaint 2014-04-12 09:56:47 +01:00 committed by Joel Holdsworth
parent 00c99f3791
commit 82d6766dc3
19 changed files with 397 additions and 220 deletions

View File

@ -1,3 +1,7 @@
20/11/2007 0.8.11
- GCC 4.3 compilation issues
- Make it compile on OSX
30/09/2007 0.8.10
- Added Sinometer MAS-343
- Adedd PeakTech 3330

View File

@ -1,9 +1,8 @@
Installation QtDMM 0.8.10 (c) 2001-2007 M.Toussaint
Installation QtDMM 0.8 (c) 2001-2005 M.Toussaint
Requirements:
-------------
- Qt library 3.x <http://www.trolltech.com> developer version
(will not compile with Qt 4.x)
- Qt library >= 3.0 <http://www.trolltech.com> developer version
- A supported multimeter or a compatible model
Compilation:
@ -34,7 +33,7 @@ presets and future users can benefit from you help.
If you encounter any problems don't hesitate to contact me
-- 30/09/2007
-- 15/08/2005
Matthias Toussaint
<qtdmm@mtoussaint.de>

4
README
View File

@ -1,4 +1,4 @@
QtDMM 0.8.10 (c) 2001-2007 M.Toussaint
QtDMM 0.8.6 (c) 2001-2005 M.Toussaint
QtDMM is a simple DMM readout software including a configurable transient
recorder. A friend of mine asked me for a DMM readout software for Linux
@ -64,7 +64,7 @@ QtDMM is distributed under the GNU Public License, version 2.
The tab size of the sourcefiles is 2
-- 30/09/2007
-- 20/12/2005
Matthias Toussaint
<qtdmm@mtoussaint.de>

View File

@ -2,4 +2,10 @@
jacob@wiersma-online.de
- check printing
- fix import/export
- QM 1538 vik.olliver@uiactive.com
- Presets for Voltcraft M-4650CR
1200,7,n,2
Display 4 1/2
Protokoll: 14 bytes ascii, continuous
- autoscrolling

18
qtdmm.1 Normal file
View File

@ -0,0 +1,18 @@
.\" Hey, EMACS: -*- nroff -*-
.TH QTDMM 1 "Dec 14, 2006"
.SH NAME
QtDMM \- GUI for Digital Multimeters
.SH SYNOPSIS
.B qtdmm
.SH DESCRIPTION
QtDMM presents a graphical user interface to digital multimeters. It caters
for the loggin of data, its export and the triggering of external applications.
The recorder features manual start, scheduled start (at a given time) and
triggered automatic start when given thresholds are reached. Additionally
you can start an external application when given thresholds are reached.
.SH SEE ALSO
.BR http://www.mtoussaint.de/qtdmm.html
.br
online help of application
.SH AUTHOR
QtDMM was written by Matthias Toussaint.

View File

@ -21,10 +21,13 @@
#include <colorbutton.h>
#include <qcolordialog.h>
#include <qpainter.h>
#include <qimage.h>
#include <qpixmap.h>
ColorButton::ColorButton( QWidget *parent, const char *name ) :
QPushButton( parent, name )
{
m_color = QColor( 255, 255, 255 );
setAutoDefault( false );
connect( this, SIGNAL( clicked() ), this, SLOT( clickedSLOT() ));
@ -37,13 +40,31 @@ ColorButton::~ColorButton()
QColor
ColorButton::color() const
{
return backgroundColor();
return m_color;
}
void
ColorButton::setColor( const QColor & c )
{
setBackgroundColor( c );
m_color = c;
QImage img( 16, 12, 32 );
img.fill(m_color.rgb());
for (int i=0; i<16; ++i)
{
((QRgb *)img.scanLine(0))[i] = 0;
((QRgb *)img.scanLine(11))[i] = 0;
}
for (int i=0; i<12; ++i)
{
((QRgb *)img.scanLine(i))[0] = 0;
((QRgb *)img.scanLine(i))[15] = 0;
}
QPixmap pix;
pix.convertFromImage( img );
setPixmap( pix );
}
void
@ -59,10 +80,12 @@ ColorButton::clickedSLOT()
emit valueChanged( c );
}
}
/*
void
ColorButton::drawButtonLabel( QPainter *p )
{
p->setBrush( color() );
p->drawRoundRect( 6, 6, width()-12, height()-12, 30, 30 );
}
*/

View File

@ -22,6 +22,7 @@
#define COLORBUTTON_HH
#include <qpushbutton.h>
#include <qcolor.h>
class QPainter;
@ -43,7 +44,8 @@ protected slots:
void clickedSLOT();
protected:
void drawButtonLabel( QPainter * );
QColor m_color;
// void drawButtonLabel( QPainter * );
};

View File

@ -32,7 +32,7 @@
#include <specialchars.xpm>
#include <minus.xpm>
#include <G.xpm>
#include <M.xpm>
#include <cm.xpm>
#include <k.xpm>
#include <m.xpm>
#include <u.xpm>
@ -54,7 +54,7 @@
#include <specialchars_small.xpm>
#include <minus_small.xpm>
#include <G_small.xpm>
#include <M_small.xpm>
#include <cm_small.xpm>
#include <k_small.xpm>
#include <m_small.xpm>
#include <u_small.xpm>

View File

@ -15,7 +15,7 @@
// thereof. In no event will the author be liable for any lost revenue
// or profits or other special, indirect and consequential damages.
//----------------------------------------------------------------------
// (c) 2001 Matthias Toussaint
// (c) 2001-2007 Matthias Toussaint
//======================================================================
#include <qapplication.h>
@ -39,7 +39,7 @@
#include <dmmgraph.h>
#include <math.h> // RedHat needs it
#include <cstdlib>
#include <iostream>
#include <icon.xpm>
@ -1212,7 +1212,7 @@ DMMGraph::fillInfoBox( const QPoint & pos )
if (fabs(val) < 1 && val != 0)
{
val *= 1000;
prefix = "";
prefix = "u";
}
if (fabs(val) < 1 && val != 0)
{
@ -1403,7 +1403,7 @@ DMMGraph::importDataSLOT()
file.close();
}
std::cerr << "sample=" << sample << std::endl;
//std::cerr << "sample=" << sample << std::endl;
m_sampleTime = sample / (cnt>1 ? cnt-1 : 1); //m_graphStartDateTime.secsTo( graphEnd );
@ -1461,11 +1461,11 @@ DMMGraph::importDataSLOT()
computeUnitFactor();
}
std::cerr << "min=" << m_scaleMin << " max=" << m_scaleMax << std::endl;
std::cerr << "factor=" << m_factor << " prefix=" <<
m_prefix.latin1() << " unit=" << m_unit.latin1() << std::endl;
//std::cerr << "min=" << m_scaleMin << " max=" << m_scaleMax << std::endl;
//std::cerr << "factor=" << m_factor << " prefix=" <<
// m_prefix.latin1() << " unit=" << m_unit.latin1() << std::endl;
std::cerr << "size=" << size << "cnt*m_sampleTime=" << cnt*m_sampleTime << std::endl;
//std::cerr << "size=" << size << "cnt*m_sampleTime=" << cnt*m_sampleTime << std::endl;
// TEST
emit graphSize( size, cnt*m_sampleTime );
}

View File

@ -24,6 +24,7 @@
#include <qspinbox.h>
#include <qtoolbutton.h>
#include <qlineedit.h>
#include <qpushbutton.h>
#include <qfiledialog.h>
#include <qdir.h>
#include <qfileinfo.h>
@ -57,13 +58,13 @@
struct DMMInfo dmm_info[] = {
{"Digitek DT-9062", 3, 5, 8, 1, 1, 0, 1},
{"Digitech QM1350", 0, 0, 7, 2, 1, 0, 1},
{"Digitech QM1538", 3, 5, 8, 1, 1, 0, 1},
{"Digitech QM1537", 3, 8, 8, 1, 1, 0, 1},
{"Digitech QM1350", 0, 0, 7, 2, 1, 0, 1}, // no image
{"Digitech QM1538", 3, 5, 8, 1, 1, 0, 1}, // no image
{"Digitech QM1537", 3, 8, 8, 1, 1, 0, 1}, // no image
{"ELV M9803R", 5, 4, 7, 1, 1, 1, 1},
{"ELV M9803R", 5, 4, 7, 1, 1, 1, 1}, // no image
{"Iso-Tech IDM 73", 6, 6, 7, 1, 1, 2, 8},
{"Iso-Tech IDM 73", 6, 6, 7, 1, 1, 2, 8}, // no image
{"MASTECH MAS-343", 0, 0, 7, 2, 1, 0, 1},
{"MASTECH MAS-345", 0, 0, 7, 2, 1, 0, 1},
@ -73,7 +74,7 @@ struct DMMInfo dmm_info[] = {
{"McVoice M-980T", 5, 4, 7, 1, 1, 1, 1},
{"Metex M-3660D", 1, 0, 7, 2, 1, 0, 1},
{"Metex M-3830D", 1, 0, 7, 2, 4, 0, 1},
{"Metex M-3830D", 1, 0, 7, 2, 4, 0, 1}, // no image
{"Metex M-3850D", 1, 0, 7, 2, 4, 0, 1},
{"Metex M-3850M", 5, 0, 7, 2, 4, 0, 1},
{"Metex ME-11", 0, 0, 7, 2, 1, 0, 1},
@ -84,22 +85,22 @@ struct DMMInfo dmm_info[] = {
{"PeakTech 3330", 3, 5, 8, 1, 1, 0, 1},
{"PeakTech 4010", 5, 0, 7, 2, 1, 0, 1},
{"Peaktech 4360", 0, 0, 7, 2, 1, 0, 1},
{"PeakTech 4360", 0, 0, 7, 2, 1, 0, 1},
{"PeakTech 4390", 5, 0, 7, 2, 4, 0, 1},
{"PeakTech 451", 0, 1, 7, 2, 1, 0, 1},
{"PeakTech 451", 0, 1, 7, 2, 1, 0, 1}, // no image
{"Radioshack 22-805 DMM", 0, 0, 7, 2, 1, 0, 1},
{"Radioshack RS22-168A", 1, 0, 7, 2, 1, 0, 1},
{"Radioshack RS22-168A", 1, 0, 7, 2, 1, 0, 1}, // no image
{"Sinometer MAS-343", 0, 0, 7, 2, 1, 0, 1},
{"Uni-Trend UT30A", 3, 5, 8, 1, 1, 0, 1},
{"Uni-Trend UT30E", 3, 5, 8, 1, 1, 0, 1},
{"Uni-Trend UT30E", 3, 5, 8, 1, 1, 0, 1}, // no image
{"Voltcraft M-3610D", 1, 0, 7, 2, 1, 0, 1},
{"Voltcraft M-3610D", 1, 0, 7, 2, 1, 0, 1}, // no image
{"Voltcraft M-3650D", 1, 0, 7, 2, 1, 0, 1},
{"Voltcraft M-3860", 5, 0, 7, 2, 4, 0, 2},
{"Voltcraft M-4650CR", 1, 2, 7, 2, 1, 0, 2 },
{"Voltcraft M-3860", 5, 0, 7, 2, 4, 0, 2}, // no image
{"Voltcraft M-4650CR", 1, 2, 7, 2, 1, 0, 2 }, // no image
{"Voltcraft M-4660", 1, 0, 7, 2, 4, 0, 3},
{"Voltcraft ME-11", 0, 0, 7, 2, 1, 0, 1},
{"Voltcraft ME-22T", 3, 0, 7, 2, 1, 0, 1},
@ -149,12 +150,40 @@ DmmPrefs::DmmPrefs( QWidget *parent, const char *name ) :
this, SLOT( saveSLOT()));
m_path = QDir::currentDirPath();
#ifdef Q_WS_MACX
connect( ui_scanPorts, SIGNAL( clicked() ),
this, SLOT( scanDevicesSLOT() ));
portNumber->hide();
scanDevicesSLOT();
#else
ui_scanPorts->hide();
#endif
}
DmmPrefs::~DmmPrefs()
{
}
void DmmPrefs::scanDevicesSLOT()
{
#ifdef Q_WS_MACX
port->clear();
QDir dir( "/dev" );
QStringList files = dir.entryList( "cu.*", QDir::System );
for (unsigned i=0; i<files.count(); ++i)
{
port->insertItem( QString( "/dev/" ) + files[i] );
}
files = dir.entryList( "tty.*", QDir::System );
for (unsigned i=0; i<files.count(); ++i)
{
port->insertItem( QString( "/dev/" ) + files[i] );
}
#endif
}
QString DmmPrefs::deviceListText() const
{
QString text;
@ -376,9 +405,13 @@ DmmPrefs::dmmName() const
QString
DmmPrefs::device() const
{
#ifdef Q_WS_MACX
return port->currentText();
#else
QString txt;
txt.sprintf( "%s%d", port->currentText().latin1(), portNumber->value() );
return txt;
#endif
}
void

View File

@ -59,11 +59,13 @@ public slots:
virtual void defaultsSLOT();
virtual void factoryDefaultsSLOT();
virtual void applySLOT();
protected slots:
void modelSLOT( int );
void loadSLOT();
void saveSLOT();
// empty finction as damn moc doesn't know about defines
void scanDevicesSLOT();
protected:
QString m_path;

View File

@ -52,7 +52,7 @@ main( int argc, char **argv )
qInstallMsgHandler( myMessageOutput );
QApplication app( argc, argv );
MainWin mainWin( 0 );
MainWin mainWin;
// very simple parsing (tm)
for (int i=0; i<argc; ++i)
@ -66,6 +66,7 @@ main( int argc, char **argv )
app.setMainWidget( &mainWin );
mainWin.show();
mainWin.move( 100, 100 );
return app.exec();
}

View File

@ -44,7 +44,7 @@
#include <help.xpm>
#include <icon.xpm>
#define VERSION_STRING "0.8.10"
#define VERSION_STRING "0.8.11"
#include <iostream>

View File

@ -1,5 +1,8 @@
TEMPLATE = app
CONFIG = qt release warn_on thread
CONFIG += qt release warn_on thread
macx {
CONFIG += static
}
INCLUDEPATH = . moc xpm
MOC_DIR = moc
OBJECTS_DIR = tmp
@ -70,8 +73,11 @@ SOURCES = \
simplecfg.cpp \
tipdlg.cpp
LIBS =
macx {
LIBS = -framework Carbon -framework QuickTime -lz $(QTDIR)/lib/libqt-mt.a
RC_FILE = QtDMMIcon.icns
}
TARGET = qtdmm
VERSION = 0.8.4
VERSION = 0.8.11
DESTDIR = ../bin

View File

@ -25,7 +25,8 @@
const char *TipDlg::s_tipText[] = {
"<font size=+2>Welcome</font><p>QtDMM is a small DMM "
"(Digital Multi Meter) readout software for Linux/UNIX."
"(Digital Multi Meter) readout software for Linux/UNIX"
" and since version 0.8.11 for Mac OSX."
" If you don't want to see the tips of the day you "
"can switch them of with"
" the checkbox below this text. The tips can be switched "

View File

@ -8,7 +8,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>534</width>
<width>598</width>
<height>635</height>
</rect>
</property>
@ -143,23 +143,81 @@
<property name="spacing">
<number>5</number>
</property>
<widget class="QLabel" row="0" column="0">
<widget class="QLayoutWidget" row="0" column="1" rowspan="2" colspan="1">
<property name="name">
<cstring>TextLabel2</cstring>
</property>
<property name="text">
<string>&amp;Port:</string>
</property>
<property name="alignment">
<set>AlignVCenter|AlignRight</set>
</property>
<property name="buddy" stdset="0">
<cstring>port</cstring>
</property>
<property name="hAlign" stdset="0">
<cstring>layout2</cstring>
</property>
<hbox>
<property name="name">
<cstring>unnamed</cstring>
</property>
<property name="margin">
<number>0</number>
</property>
<property name="spacing">
<number>2</number>
</property>
<widget class="QComboBox">
<item>
<property name="text">
<string>/dev/ttyS</string>
</property>
</item>
<item>
<property name="text">
<string>/dev/usb/ttyUSB</string>
</property>
</item>
<item>
<property name="text">
<string>/dev/ttyUSB</string>
</property>
</item>
<item>
<property name="text">
<string>/dev/tty.usbserial</string>
</property>
</item>
<property name="name">
<cstring>port</cstring>
</property>
<property name="sizePolicy">
<sizepolicy>
<hsizetype>3</hsizetype>
<vsizetype>0</vsizetype>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="currentItem">
<number>0</number>
</property>
<property name="whatsThis" stdset="0">
<string>Choose the serial device here. &lt;i&gt;(Hint for DOS people: /dev/ttyS0 corresponds to COM1. /dev/ttyS1 to COM2 ...)&lt;/i&gt;</string>
</property>
</widget>
<widget class="QSpinBox">
<property name="name">
<cstring>portNumber</cstring>
</property>
<property name="whatsThis" stdset="0">
<string>Enter the number of the port.</string>
</property>
</widget>
<widget class="QPushButton">
<property name="name">
<cstring>ui_scanPorts</cstring>
</property>
<property name="text">
<string>Scan</string>
</property>
<property name="whatsThis" stdset="0">
<string>Clicke here to scan for new devices.</string>
</property>
</widget>
</hbox>
</widget>
<widget class="QLabel" row="1" column="0">
<widget class="QLabel" row="2" column="0">
<property name="name">
<cstring>ui_bitsLabel</cstring>
</property>
@ -175,102 +233,12 @@
<property name="hAlign" stdset="0">
</property>
</widget>
<widget class="QComboBox" row="1" column="1" rowspan="1" colspan="2">
<item>
<property name="text">
<string>5 bits</string>
</property>
</item>
<item>
<property name="text">
<string>6 bits</string>
</property>
</item>
<item>
<property name="text">
<string>7 bits</string>
</property>
</item>
<item>
<property name="text">
<string>8 bits</string>
</property>
</item>
<widget class="QLabel" row="3" column="0">
<property name="name">
<cstring>bitsCombo</cstring>
</property>
<property name="whatsThis" stdset="0">
<string>Number of bits for serial communication.</string>
</property>
</widget>
<widget class="QLabel" row="0" column="3">
<property name="name">
<cstring>ui_baudLabel</cstring>
<cstring>ui_parityLabel</cstring>
</property>
<property name="text">
<string>Baud &amp;rate:</string>
</property>
<property name="alignment">
<set>AlignVCenter|AlignRight</set>
</property>
<property name="buddy" stdset="0">
<cstring>baudRate</cstring>
</property>
<property name="hAlign" stdset="0">
</property>
</widget>
<widget class="QComboBox" row="0" column="4">
<item>
<property name="text">
<string>600 baud</string>
</property>
</item>
<item>
<property name="text">
<string>1200 baud</string>
</property>
</item>
<item>
<property name="text">
<string>1800 baud</string>
</property>
</item>
<item>
<property name="text">
<string>2400 baud</string>
</property>
</item>
<item>
<property name="text">
<string>4800 baud</string>
</property>
</item>
<item>
<property name="text">
<string>9600 baud</string>
</property>
</item>
<item>
<property name="text">
<string>19200 baud</string>
</property>
</item>
<property name="name">
<cstring>baudRate</cstring>
</property>
<property name="currentItem">
<number>0</number>
</property>
<property name="whatsThis" stdset="0">
<string>Select the baud rate for the DMM here. If you encounter problems connecting to your DMM try lowering the baud rate. I had some problems with my &lt;b&gt;Metex ME-32&lt;/b&gt;. The Documentation said 1200 baud but it only worked at 600.</string>
</property>
</widget>
<widget class="QLabel" row="1" column="3">
<property name="name">
<cstring>ui_stopLabel</cstring>
</property>
<property name="text">
<string>&amp;Stop bits:</string>
<string>Parit&amp;y</string>
</property>
<property name="alignment">
<set>AlignVCenter|AlignRight</set>
@ -281,7 +249,7 @@
<property name="hAlign" stdset="0">
</property>
</widget>
<widget class="QComboBox" row="1" column="4">
<widget class="QComboBox" row="1" column="3" rowspan="2" colspan="1">
<item>
<property name="text">
<string>1 Stop bit</string>
@ -299,62 +267,7 @@
<string>Number of stop bits for serial communication.</string>
</property>
</widget>
<widget class="QComboBox" row="2" column="1" rowspan="1" colspan="2">
<item>
<property name="text">
<string>None</string>
</property>
</item>
<item>
<property name="text">
<string>Even</string>
</property>
</item>
<item>
<property name="text">
<string>Odd</string>
</property>
</item>
<property name="name">
<cstring>parityCombo</cstring>
</property>
<property name="whatsThis" stdset="0">
<string>Parity for serial communication. May be None, Odd or Even.</string>
</property>
</widget>
<widget class="QLabel" row="2" column="0">
<property name="name">
<cstring>ui_parityLabel</cstring>
</property>
<property name="text">
<string>Parit&amp;y</string>
</property>
<property name="alignment">
<set>AlignVCenter|AlignRight</set>
</property>
<property name="buddy" stdset="0">
<cstring>stopBitsCombo</cstring>
</property>
<property name="hAlign" stdset="0">
</property>
</widget>
<widget class="QLabel" row="2" column="3">
<property name="name">
<cstring>ui_displayLabel</cstring>
</property>
<property name="text">
<string>&amp;Digits</string>
</property>
<property name="alignment">
<set>AlignVCenter|AlignRight</set>
</property>
<property name="buddy" stdset="0">
<cstring>stopBitsCombo</cstring>
</property>
<property name="hAlign" stdset="0">
</property>
</widget>
<widget class="QComboBox" row="2" column="4">
<widget class="QComboBox" row="3" column="3">
<item>
<property name="text">
<string>2000</string>
@ -417,38 +330,165 @@
&lt;/ul&gt;</string>
</property>
</widget>
<widget class="QComboBox" row="0" column="1">
<widget class="QLabel" row="1" column="2" rowspan="2" colspan="1">
<property name="name">
<cstring>ui_stopLabel</cstring>
</property>
<property name="text">
<string>&amp;Stop bits:</string>
</property>
<property name="alignment">
<set>AlignVCenter|AlignRight</set>
</property>
<property name="buddy" stdset="0">
<cstring>stopBitsCombo</cstring>
</property>
<property name="hAlign" stdset="0">
</property>
</widget>
<widget class="QComboBox" row="0" column="3">
<item>
<property name="text">
<string>/dev/ttyS</string>
<string>600 baud</string>
</property>
</item>
<item>
<property name="text">
<string>/dev/usb/ttyUSB</string>
<string>1200 baud</string>
</property>
</item>
<item>
<property name="text">
<string>/dev/ttyUSB</string>
<string>1800 baud</string>
</property>
</item>
<item>
<property name="text">
<string>2400 baud</string>
</property>
</item>
<item>
<property name="text">
<string>4800 baud</string>
</property>
</item>
<item>
<property name="text">
<string>9600 baud</string>
</property>
</item>
<item>
<property name="text">
<string>19200 baud</string>
</property>
</item>
<property name="name">
<cstring>port</cstring>
<cstring>baudRate</cstring>
</property>
<property name="currentItem">
<number>0</number>
</property>
<property name="whatsThis" stdset="0">
<string>Choose the serial device here. &lt;i&gt;(Hint for DOS people: /dev/ttyS0 corresponds to COM1. /dev/ttyS1 to COM2 ...)&lt;/i&gt;</string>
<string>Select the baud rate for the DMM here. If you encounter problems connecting to your DMM try lowering the baud rate. I had some problems with my &lt;b&gt;Metex ME-32&lt;/b&gt;. The Documentation said 1200 baud but it only worked at 600.</string>
</property>
</widget>
<widget class="QSpinBox" row="0" column="2">
<widget class="QLabel" row="3" column="2">
<property name="name">
<cstring>portNumber</cstring>
<cstring>ui_displayLabel</cstring>
</property>
<property name="text">
<string>&amp;Digits</string>
</property>
<property name="alignment">
<set>AlignVCenter|AlignRight</set>
</property>
<property name="buddy" stdset="0">
<cstring>stopBitsCombo</cstring>
</property>
<property name="hAlign" stdset="0">
</property>
</widget>
<widget class="QLabel" row="0" column="2">
<property name="name">
<cstring>ui_baudLabel</cstring>
</property>
<property name="text">
<string>Baud &amp;rate:</string>
</property>
<property name="alignment">
<set>AlignVCenter|AlignRight</set>
</property>
<property name="buddy" stdset="0">
<cstring>baudRate</cstring>
</property>
<property name="hAlign" stdset="0">
</property>
</widget>
<widget class="QLabel" row="0" column="0">
<property name="name">
<cstring>TextLabel2</cstring>
</property>
<property name="text">
<string>&amp;Port:</string>
</property>
<property name="alignment">
<set>AlignVCenter|AlignRight</set>
</property>
<property name="buddy" stdset="0">
<cstring>port</cstring>
</property>
<property name="hAlign" stdset="0">
</property>
</widget>
<widget class="QComboBox" row="2" column="1">
<item>
<property name="text">
<string>5 bits</string>
</property>
</item>
<item>
<property name="text">
<string>6 bits</string>
</property>
</item>
<item>
<property name="text">
<string>7 bits</string>
</property>
</item>
<item>
<property name="text">
<string>8 bits</string>
</property>
</item>
<property name="name">
<cstring>bitsCombo</cstring>
</property>
<property name="whatsThis" stdset="0">
<string>Enter the number of the port.</string>
<string>Number of bits for serial communication.</string>
</property>
</widget>
<widget class="QComboBox" row="3" column="1">
<item>
<property name="text">
<string>None</string>
</property>
</item>
<item>
<property name="text">
<string>Even</string>
</property>
</item>
<item>
<property name="text">
<string>Odd</string>
</property>
</item>
<property name="name">
<cstring>parityCombo</cstring>
</property>
<property name="whatsThis" stdset="0">
<string>Parity for serial communication. May be None, Odd or Even.</string>
</property>
</widget>
</grid>
@ -656,13 +696,13 @@
</customwidgets>
<images>
<image name="image0">
<data format="PNG" length="992">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000003a749444154388db595db6bdc4514c73fbfdffee26e9adb363149636d132ab62249a460a9542b22f14114d410a848fb604104093efae0dd17df7ca87f8014ec830fd22a548a90a86d646b83a5de5a2506499a264db29bcde6b2bfcb5ccef8b03171ad41113330cc6166ce67ce7ce7cc8c97cbe5d88ae26f09f5bf82cf9cf3ddd9e1c0fdafe091d13a77fc5837c78f7673eab4dd14feafc167870317a93d6ef0855e5ab2695ab2697aee6ddf74bed7f9fccfeee947da100165411b4119f8f8dc345fbc167a9f5fa8715d776679ecd14e9a1a6a30c6a1b5c518472693e2f5772f71b41fefafe060776b9a6303cd2803b1056520d170a8a78e4f2f8cb9febe5ddcbfbf19ad41a96ae728323c3bb08fb7deffc1bd3398ae8207ce55cb6414cc8c4ed36062de7cf93eb6d582b57fbf5d1147f7de2c87f73703e5ea88ad6c804bd723a62f4ff0645f175dbb6b37d50f6071d570e29339700eadeb38f2f6a29b9af340049c23f87334cbb3cb1c3ad0f18fd0525978e28d31fa1eba833dbbea1181ae7d3b58295bb48113ef7d4b6065c3c1dfd9c6ab1ffcc4c10382b360c562ad20c621d661d6eccfbe2932f07827b7b566393f5909329d81efaf2c31353c7eab146786f274dddd4aefce80edb76f231447a41c91823076845a88637871ef0e929a80d1df2a50cf8785c988f98b1320abe44ed67a55e0a19179c64e75b330af696a09907ac8af406105266fc2ea22141228cc43b16429e413c285556e5e9da7345386d883868ab6813115e897a311877b1aa9cd404d5b0d57c69669ddddc8d80d189f84d9bc215fb0cc150cf982212c4544a532a599459c7210028105d6c0b2966ee72f15e97fb099b2c05c02f37e23bf7c671197228c1d4a41ac844439e24428e44374a8a1ae0e6c02249052e02a87e68b1596cbf0e3b51247faea192bc28d22c4407145585a1512ed88954369282d696667436c90c6cfa4abd32565c87dd8e8ad1d1e0c5d5ce1e1de266657a13e808e0cd45b68ec08582a2a4ce0d12c86461dd3d0aeb82b9b42920409134ca28942437e41989cd2eb6b04c63abeca2df0ca33eddcd3b0d6bb1db486387668ed93248624b128e5a354401c1bb40e88e35a94aa41a90ca7479638797d2311fc726898985ce1a983d597c2f721087c52290fdff7d76c7fddf6fdcad81ff6d75723721f65d7df8b6061a6cc4bcf75de72bb52a94a7538440c89d24471421469c25011270971a4d15a48b461fcd71068da9002df63f8729107069770e21001c42122582b582d1863b046b0c6608cc5688b18a9b46229870ec2eac7ccdbaacff47797721a4f2ef8084a0000000049454e44ae426082</data>
<data format="PNG" length="992">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000003a749444154789cb595db6bdc4514c73fbfdffee26e9adb363149636d132ab62249a460a9542b22f14114d410a848fb604104093efae0dd17df7ca87f8014ec830fd22a548a90a86d646b83a5de5a2506499a264db29bcde6b2bfcb5ccef8b03171ad41113330cc6166ce67ce7ce7cc8c97cbe5d88ae26f09f5bf82cf9cf3ddd9e1c0fdafe091d13a77fc5837c78f7673eab4dd14feafc167870317a93d6ef0855e5ab2695ab2697aee6ddf74bed7f9fccfeee947da100165411b4119f8f8dc345fbc167a9f5fa8715d776679ecd14e9a1a6a30c6a1b5c518472693e2f5772f71b41fefafe060776b9a6303cd2803b1056520d170a8a78e4f2f8cb9febe5ddcbfbf19ad41a96ae728323c3bb08fb7deffc1bd3398ae8207ce55cb6414cc8c4ed36062de7cf93eb6d582b57fbf5d1147f7de2c87f73703e5ea88ad6c804bd723a62f4ff0645f175dbb6b37d50f6071d570e29339700eadeb38f2f6a29b9af340049c23f87334cbb3cb1c3ad0f18fd0525978e28d31fa1eba833dbbea1181ae7d3b58295bb48113ef7d4b6065c3c1dfd9c6ab1ffcc4c10382b360c562ad20c621d661d6eccfbe2932f07827b7b566393f5909329d81efaf2c31353c7eab146786f274dddd4aefce80edb76f231447a41c91823076845a88637871ef0e929a80d1df2a50cf8785c988f98b1320abe44ed67a55e0a19179c64e75b330af696a09907ac8af406105266fc2ea22141228cc43b16429e413c285556e5e9da7345386d883868ab6813115e897a311877b1aa9cd404d5b0d57c69669ddddc8d80d189f84d9bc215fb0cc150cf982212c4544a532a599459c7210028105d6c0b2966ee72f15e97fb099b2c05c02f37e23bf7c671197228c1d4a41ac844439e24428e44374a8a1ae0e6c02249052e02a87e68b1596cbf0e3b51247faea192bc28d22c4407145585a1512ed88954369282d696667436c90c6cfa4abd32565c87dd8e8ad1d1e0c5d5ce1e1de266657a13e808e0cd45b68ec08582a2a4ce0d12c86461dd3d0aeb82b9b42920409134ca28942437e41989cd2eb6b04c63abeca2df0ca33eddcd3b0d6bb1db486387668ed93248624b128e5a354401c1bb40e88e35a94aa41a90ca7479638797d2311fc726898985ce1a983d597c2f721087c52290fdff7d76c7fddf6fdcad81ff6d75723721f65d7df8b6061a6cc4bcf75de72bb52a94a7538440c89d24471421469c25011270971a4d15a48b461fcd71068da9002df63f8729107069770e21001c42122582b582d1863b046b0c6608cc5688b18a9b46229870ec2eac7ccdbaacff47797721a4fc40f4d680000000049454e44ae426082</data>
</image>
<image name="image1">
<data format="PNG" length="731">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000002a249444154388db594bd6f5c5510c57fcf1f496105298e0329a0e25f48414185e811a4a02012121565e853a1502021e18a1a0929050852d0502051b12d428ae8c347b063a3c426ebf8bd3b730ec5bdfbb26b2f091419e9e9adf6defb9b73cfccbc6e329970f3d66d9b1ab6dbd37e0336486aeb00755d6d1f98f7af5eee988bb59bb76efb8d375f4336afbff232fbf77b56573bd6563bce6dacf3b4b8f1d9f748e6daf56fbc7de3ad11be6640aa2a013ef8f0abf1d0179f5e5d0ab34d647dc6ffda8d463086c8c48ff7f0eedbaf128aa550d94498be08c944887bf70e8938013635b3e7c82659e9ba934c4a88a188485322e987e48fbb0f284339b577cd8688aa38c27cfec93b741d745db7708b12a244851ef7413f043ffdb2c750622cec09b0194a02f0e5773f93590fa7448940692292122253a484523c9c0eecec1ea0149ef37ace0aeaa221b21e96bc008d109949ca64d4f7ceee0129e1d4828d23184389c4ccc0493675ca7a7d497350310c59c5c818a325e015034324925bdbb5f683134352df184cc7d6c5e7d8da3a57ebb05431aebe8678efcae5da156daab2792dcd7c3792b87f180c512df878fb5be4a5c583d28a374bfc6fd0081129f61f4c91ccd9b3674865bdc669c59039fb0e98df76f6aa3243665668bb514a1c3e0c8e8e8334bcb0b989314b04cf26af6634f0e2a58ba3da08511a34521c4c071e0d476cacd4a2f625974247c52562b4e2ceddddc7e014a508b92a9d3e8a96c864265b9b179653c7e2b53997cc4b979e5f50fbf774e0cffd29eb67928d4e0ca5da23d7c44f0033f6a16deeecec514a72741cf47dd297a484e94b504af3ba0dd185f3e79f0ccea85df1c38fbf37e555cd4c7966559fe1b1b016fc7af8176af5595f5f5d007793c9846bd7bf5eec97d3ddf3d4d8fee8cac2e7b09b4c26ff9ff21f62e599509f25f81fedcca62070ce498c0000000049454e44ae426082</data>
<data format="PNG" length="731">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000002a249444154789cb594bd6f5c5510c57fcf1f496105298e0329a0e25f48414185e811a4a02012121565e853a1502021e18a1a0929050852d0502051b12d428ae8c347b063a3c426ebf8bd3b730ec5bdfbb26b2f091419e9e9adf6defb9b73cfccbc6e329970f3d66d9b1ab6dbd37e0336486aeb00755d6d1f98f7af5eee988bb59bb76efb8d375f4336afbff232fbf77b56573bd6563bce6dacf3b4b8f1d9f748e6daf56fbc7de3ad11be6640aa2a013ef8f0abf1d0179f5e5d0ab34d647dc6ffda8d463086c8c48ff7f0eedbaf128aa550d94498be08c944887bf70e8938013635b3e7c82659e9ba934c4a88a188485322e987e48fbb0f284339b577cd8688aa38c27cfec93b741d745db7708b12a244851ef7413f043ffdb2c750622cec09b0194a02f0e5773f93590fa7448940692292122253a484523c9c0eecec1ea0149ef37ace0aeaa221b21e96bc008d109949ca64d4f7ceee0129e1d4828d23184389c4ccc0493675ca7a7d497350310c59c5c818a325e015034324925bdbb5f683134352df184cc7d6c5e7d8da3a57ebb05431aebe8678efcae5da156daab2792dcd7c3792b87f180c512df878fb5be4a5c583d28a374bfc6fd0081129f61f4c91ccd9b3674865bdc669c59039fb0e98df76f6aa3243665668bb514a1c3e0c8e8e8334bcb0b989314b04cf26af6634f0e2a58ba3da08511a34521c4c071e0d476cacd4a2f625974247c52562b4e2ceddddc7e014a508b92a9d3e8a96c864265b9b179653c7e2b53997cc4b979e5f50fbf774e0cffd29eb67928d4e0ca5da23d7c44f0033f6a16deeecec514a72741cf47dd297a484e94b504af3ba0dd185f3e79f0ccea85df1c38fbf37e555cd4c7966559fe1b1b016fc7af8176af5595f5f5d007793c9846bd7bf5eec97d3ddf3d4d8fee8cac2e7b09b4c26ff9ff21f62e599509f25f81fedcca620b8886cd70000000049454e44ae426082</data>
</image>
<image name="image2">
<data format="PNG" length="256">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000000c749444154388dad55db1184200c4c180bb81a28c73aad811228c356f42b3792db3cc0db2fc724bb7901dc7b270f27ed17fa5fa9b117b7cd90211f4ba0ac906a7f1453b4d30ca917bb590681552af23f69bfc4ffa71519d2c8f62546ea5ea03738b1c18c33a4d156f0d13f43b61952e4af6d6e8fb3a408f080448419a433d6486d85052fdba892a295f5d45785cd8c51a9d6de6a814a8d2131da51f98e7a3b64ec9da04a8db53d43be3c3c0b22cacf17e4cdb5a931649ceddf34b190cf0aa019f03f1fd3e7457f03b5a66c9ed26e86130000000049454e44ae426082</data>
<data format="PNG" length="256">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000000c749444154789cad55db1184200c4c180bb81a28c73aad811228c356f42b3792db3cc0db2fc724bb7901dc7b270f27ed17fa5fa9b117b7cd90211f4ba0ac906a7f1453b4d30ca917bb590681552af23f69bfc4ffa71519d2c8f62546ea5ea03738b1c18c33a4d156f0d13f43b61952e4af6d6e8fb3a408f080448419a433d6486d85052fdba892a295f5d45785cd8c51a9d6de6a814a8d2131da51f98e7a3b64ec9da04a8db53d43be3c3c0b22cacf17e4cdb5a931649ceddf34b190cf0aa019f03f1fd3e7457f03b5a66c9e1f13d0b20000000049454e44ae426082</data>
</image>
</images>
<tabstops>

View File

@ -8,8 +8,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>485</width>
<height>215</height>
<width>510</width>
<height>246</height>
</rect>
</property>
<property name="caption">
@ -52,6 +52,14 @@
<property name="name">
<cstring>ui_tip</cstring>
</property>
<property name="sizePolicy">
<sizepolicy>
<hsizetype>7</hsizetype>
<vsizetype>7</vsizetype>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>400</width>
@ -61,7 +69,7 @@
<property name="maximumSize">
<size>
<width>32767</width>
<height>200</height>
<height>32767</height>
</size>
</property>
<property name="frameShape">

21
src/xpm/cm.xpm Normal file
View File

@ -0,0 +1,21 @@
/* XPM */
static char * M_xpm[] = {
"12 16 2 1",
" c None",
". c #000000",
".. ..",
"... ...",
".... ....",
"..... .....",
".. ...... ..",
".. .... ..",
".. .. ..",
".. .. ..",
".. ..",
".. ..",
".. ..",
".. ..",
".. ..",
".. ..",
".. ..",
".. .."};

13
src/xpm/cm_small.xpm Normal file
View File

@ -0,0 +1,13 @@
/* XPM */
static char * M_small_xpm[] = {
"7 8 2 1",
" c None",
". c #000000",
". .",
".. ..",
"... ...",
". ... .",
". . .",
". .",
". .",
". ."};