Release 0.8.14

This commit is contained in:
Matthias Toussaint 2014-04-12 09:56:49 +01:00 committed by Joel Holdsworth
parent 7db7608108
commit 4a2ead0c42
15 changed files with 411 additions and 136 deletions

View File

@ -1,3 +1,7 @@
11/07/2009 0.8.14
- terminal flags
- VC 920
11/07/2009 0.8.13
- One hour recording crash bug
- Metex M-4650C settings (Samuel Hildebrandt)

4
README
View File

@ -39,6 +39,8 @@ is known to work with the following DMM's:
Voltcraft VC 670
Voltcraft VC 820
Voltcraft VC 840
Voltcraft VC 920
Voltcraft VC 940
The following models should work but need to be confirmed by a user:
@ -64,7 +66,7 @@ QtDMM is distributed under the GNU Public License, version 2.
The tab size of the sourcefiles is 2
-- 20/12/2005
-- 19/12/2011
Matthias Toussaint
<qtdmm@mtoussaint.de>

View File

@ -1,6 +1,6 @@
#############################################################################
# Makefile for building: ../bin/qtdmm
# Generated by qmake (1.07a) (Qt 3.3.5) on: Sun Aug 19 20:18:40 2007
# Generated by qmake (1.07a) (Qt 3.3.8) on: Mon Dec 19 11:52:35 2011
# Project: src.pro
# Template: app
# Command: $(QMAKE) -o Makefile src.pro
@ -12,14 +12,14 @@ CC = gcc
CXX = g++
LEX = flex
YACC = yacc
CFLAGS = -pipe -O2 -march=i586 -mtune=i686 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -g -fno-strict-aliasing -Wall -W -O2 -march=i586 -mtune=i686 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -g -fno-strict-aliasing -D_REENTRANT -DQT_NO_DEBUG -DQT_THREAD_SUPPORT
CXXFLAGS = -pipe -O2 -march=i586 -mtune=i686 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -g -fno-strict-aliasing -Wall -W -O2 -march=i586 -mtune=i686 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -g -fno-strict-aliasing -D_REENTRANT -DQT_NO_DEBUG -DQT_THREAD_SUPPORT
CFLAGS = -pipe -Wall -W -O2 -D_REENTRANT -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED
CXXFLAGS = -pipe -Wall -W -O2 -D_REENTRANT -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED
LEXFLAGS =
YACCFLAGS= -d
INCPATH = -I/usr/lib/qt3/mkspecs/default -I. -I. -Imoc -Ixpm -I/usr/include -I$(QTDIR)/include -Imoc/
INCPATH = -I/home/mt/RAID/src/Qt3/qt-x11-free-3.3.8/mkspecs/default -I. -I. -Imoc -Ixpm -I$(QTDIR)/include -Imoc/
LINK = g++
LFLAGS =
LIBS = $(SUBLIBS) -L/usr/lib/ -L$(QTDIR)/lib/ -L/usr/X11R6/lib/ -lqt-mt -lXext -lX11 -lm -lpthread
LFLAGS = -Wl,-rpath,$(QTDIR)/lib
LIBS = $(SUBLIBS) -L$(QTDIR)/lib -L/usr/X11R6/lib -lqt-mt -lXext -lX11 -lm -lpthread
AR = ar cqs
RANLIB =
MOC = $(QTDIR)/bin/moc
@ -260,7 +260,7 @@ uicables: $(UICDECLS) $(UICIMPLS)
$(MOC):
( cd $(QTDIR)/src/moc && $(MAKE) )
Makefile: src.pro /usr/lib/qt3/mkspecs/default/qmake.conf
Makefile: src.pro /home/mt/RAID/src/Qt3/qt-x11-free-3.3.8/mkspecs/default/qmake.conf /home/mt/RAID/src/Qt3/qt-x11-free-3.3.8/lib/libqt-mt.prl
$(QMAKE) -o Makefile src.pro
qmake:
@$(QMAKE) -o Makefile src.pro

View File

@ -690,6 +690,30 @@ ConfigDlg::intPointMode() const
/////////////////////////////////////////////////////////////////
// DMM
//
bool
ConfigDlg::rts() const
{
return m_dmm->rts();
}
bool
ConfigDlg::cts() const
{
return m_dmm->cts();
}
bool
ConfigDlg::dsr() const
{
return m_dmm->dsr();
}
bool
ConfigDlg::dtr() const
{
return m_dmm->dtr();
}
int
ConfigDlg::parity() const
{

View File

@ -77,6 +77,11 @@ public:
int bits() const;
int stopBits() const;
int numValues() const;
bool rts() const;
bool cts() const;
bool dsr() const;
bool dtr() const;
QColor bgColor() const;
QColor gridColor() const;
QColor dataColor() const;

View File

@ -233,6 +233,9 @@ DisplayWid::setDisplayMode( int dm, bool minMax, bool bar, int numValues )
case 8:
m_range = 6000;
case 9:
m_range = 40000;
break;
}
@ -370,7 +373,7 @@ DisplayWid::paintEvent( QPaintEvent * )
step /= 20;
off = (width()-20*step)/2-2;
}
else if (1 == m_displayMode || 3 == m_displayMode)
else if (1 == m_displayMode || 3 == m_displayMode || 9 == m_displayMode)
{
step /= 40;
off = (width()-40*step)/2-2;
@ -435,16 +438,19 @@ void
DisplayWid::drawSmallNumber( QPainter *p, const QString & num )
{
int x = 0;
int offset = ((m_displayMode > 1) && (m_displayMode != 8) ? 0 : 1);
int offset = 0;
while (num[offset] == ' ' && offset<num.length()) ++offset;
if (num[offset] == '-')
{
p->drawPixmap( 0, 9, *m_smallMinus );
offset++;
}
x += 12;
for (unsigned i=1+offset; i<num.length(); i++)
for (unsigned i=offset; i<num.length(); i++)
{
if (num[i] == '.')
{
@ -583,7 +589,7 @@ DisplayWid::drawBigUnit( QPainter *p, const QString & str )
{
p->drawPixmap( x, 0, *m_bigHz );
}
else if (str.mid(index) == "F")
else if (str.mid(index) == "F") // ignore Farenheit
{
p->drawPixmap( x, 0, *m_bigF );
}
@ -702,17 +708,19 @@ void
DisplayWid::drawBigNumber( QPainter *p, const QString & num )
{
int x = 0;
int offset = ((m_displayMode > 1) && (m_displayMode != 8) ? 0 : 1);
int offset = 0;
while (num[offset] == ' ' && offset<num.length()) ++offset;
bool comma = false;
if (num[offset] == '-')
{
p->drawPixmap( x, 0, *m_bigMinus );
offset++;
}
x += 28;
for (unsigned i=1+offset; i<num.length(); i++)
for (unsigned i=offset; i<num.length(); i++)
{
if (num[i] == '.')
{
@ -817,6 +825,7 @@ DisplayWid::calcNumDigits( int dm )
case 2:
case 3:
case 4:
case 9:
numDigits = 5;
break;
case 5:

View File

@ -52,11 +52,13 @@ DMM::~DMM()
}
void
DMM::setPortSettings( int bits, int stopBits, int parity, bool externalSetup )
DMM::setPortSettings( int bits, int stopBits, int parity, bool externalSetup,
bool rts, bool cts, bool dsr, bool dtr )
{
m_externalSetup = externalSetup;
m_parity = parity;
m_c_cflag = CREAD | CLOCAL;
m_flags = (rts?f_rts:0)|(cts?f_cts:0)|(dsr?f_dsr:0)|(dtr?f_dtr:0);
if (stopBits == 2)
{
@ -248,8 +250,20 @@ DMM::open()
return false;
}
if (m_flags & f_rts) mdlns |= TIOCM_RTS;
else mdlns &= ~TIOCM_RTS;
if (m_flags & f_cts) mdlns |= TIOCM_CTS;
else mdlns &= ~TIOCM_CTS;
if (m_flags & f_dtr) mdlns |= TIOCM_DTR;
else mdlns &= ~TIOCM_DTR;
if (m_flags & f_dsr) mdlns |= TIOCM_DSR;
else mdlns &= ~TIOCM_DSR;
mdlns &= ~TIOCM_RTS;
//mdlns &= ~TIOCM_RTS;
if (-1 == ioctl( m_handle, TIOCMSET, &mdlns ))
{
::close(m_handle);
@ -399,7 +413,17 @@ DMM::insertComma( const QString & val, int pos )
QString
DMM::insertCommaIT( const QString & val, int pos )
{
return val.left(pos) + "." + val.mid(pos);
QString res;
if (val[0] == '-' || val[0] == ' ')
{
res = val.left(pos+1) + "." + val.mid(pos+1);
}
else
{
res = val.left(pos) + "." + val.mid(pos);
}
return res;
}
void
@ -416,45 +440,49 @@ DMM::setNumValues( int numValues )
void DMM::readVC940Continuous( ReadEvent *re )
{
QString val;
QString val = " ";
QString special;
QString unit;
// Just guessing
for (int i=0; i<4; ++i)
{
val += re->string()[i];
}
if (re->string()[4]&0x0f != 0x0a)
{
val += re->string()[4];
}
double scale = 1.0;
int function = re->string()[6] & 0x0f;
int range = re->string()[5] & 0x0f;
int mode = re->string()[7];
int mode2 = re->string()[8];
if (function != 12 && mode2 & 0x04) val = "-";
for (int i=0; i<4; ++i)
{
val += re->string()[i];
}
if (re->string()[4] != 'A')
{
val += re->string()[4];
}
switch (function)
{
case 0:
insertCommaIT( val, 3 );
val = insertCommaIT( val, 3 );
special = "AC";
unit = "mV";
scale = 1e-3;
break;
case 1:
insertCommaIT( val, range );
val = insertCommaIT( val, range );
special = "DC";
unit = "V";
break;
case 2:
insertCommaIT( val, range );
val = insertCommaIT( val, range );
special = "AC";
unit = "V";
break;
case 3:
insertCommaIT( val, 3 );
val = insertCommaIT( val, 3 );
special = "DC";
unit = "mV";
scale = 1e-3;
@ -464,25 +492,30 @@ void DMM::readVC940Continuous( ReadEvent *re )
switch (range)
{
case 1:
insertCommaIT( val, 3 );
val = insertCommaIT( val, 3 );
break;
case 2:
insertCommaIT( val, 4 );
val = insertCommaIT( val, 1 );
unit = "kOhm";
scale = 1e3;
break;
case 3:
val = insertCommaIT( val, 2 );
unit = "kOhm";
scale = 1e3;
break;
case 4:
insertCommaIT( val, 3 );
val = insertCommaIT( val, 3 );
unit = "kOhm";
scale = 1e3;
break;
case 5:
insertCommaIT( val, 1 );
val = insertCommaIT( val, 1 );
unit = "MOhm";
scale = 1e6;
break;
case 6:
insertCommaIT( val, 2 );
val = insertCommaIT( val, 2 );
unit = "MOhm";
scale = 1e6;
break;
@ -494,37 +527,37 @@ void DMM::readVC940Continuous( ReadEvent *re )
switch (range)
{
case 1:
insertCommaIT( val, 2 );
val = insertCommaIT( val, 2 );
unit = "nF";
scale = 1e-9;
break;
case 2:
insertCommaIT( val, 3 );
val = insertCommaIT( val, 3 );
unit = "nF";
scale = 1e-9;
break;
case 3:
insertCommaIT( val, 4 );
unit = "nF";
scale = 1e-9;
val = insertCommaIT( val, 1 );
unit = "uF";
scale = 1e-6;
break;
case 4:
insertCommaIT( val, 2 );
val = insertCommaIT( val, 2 );
unit = "uF";
scale = 1e-6;
break;
case 5:
insertCommaIT( val, 3 );
val = insertCommaIT( val, 3 );
unit = "uF";
scale = 1e-6;
break;
case 6:
insertCommaIT( val, 4 );
val = insertCommaIT( val, 4 );
unit = "uF";
scale = 1e-6;
break;
case 7:
insertCommaIT( val, 2 );
val = insertCommaIT( val, 2 );
unit = "mF";
scale = 1e-3;
break;
@ -534,51 +567,130 @@ void DMM::readVC940Continuous( ReadEvent *re )
case 6:
special = "TE";
unit = "C";
val = insertCommaIT( val, 4 );
break;
case 7:
special = "DC";
if (mode & 0x01)
{
// can't handle AC+DC
special = "AC";
}
else special = "DC";
switch (range)
{
case 0:
insertCommaIT( val, 3 );
val = insertCommaIT( val, 3 );
break;
case 1:
insertCommaIT( val, 4 );
val = insertCommaIT( val, 4 );
break;
}
unit = "uA";
scale = 1e-6;
break;
case 8:
special = "DC";
if (mode & 0x01)
{
// can't handle AC+DC
special = "AC";
}
else special = "DC";
switch (range)
{
case 0:
insertCommaIT( val, 2 );
val = insertCommaIT( val, 2 );
break;
case 1:
insertCommaIT( val, 3 );
val = insertCommaIT( val, 3 );
break;
}
unit = "mA";
scale = 1e-3;
break;
case 9:
special = "DC";
if (mode & 0x01)
{
// can't handle AC+DC
special = "AC";
}
else special = "DC";
val = insertCommaIT( val, 2 );
unit = "A";
break;
case 10: // what the heck is this?
special = "FR";
unit = "Hz";
case 10: // buzzer
special = "OH";
unit = "Ohm";
val = insertCommaIT( val, 3 );
break;
case 11:
special = "DI";
unit = "";
unit = "V";
val = insertCommaIT( val, 1 );
break;
case 12:
if (mode2 & 0x04)
{
special = "PC";
unit = "%";
val = insertCommaIT( val, 3 );
}
else
{
special = "FR";
unit = "Hz";
switch (range)
{
case 0:
val = insertCommaIT( val, 2 );
break;
case 1:
val = insertCommaIT( val, 3 );
break;
case 2:
val = insertCommaIT( val, 1 );
unit = "kHz";
scale = 1e3;
break;
case 3:
val = insertCommaIT( val, 2 );
unit = "kHz";
scale = 1e3;
break;
case 4:
val = insertCommaIT( val, 3 );
unit = "kHz";
scale = 1e3;
break;
case 5:
val = insertCommaIT( val, 1 );
unit = "MHz";
scale = 1e6;
break;
case 6:
val = insertCommaIT( val, 2 );
unit = "MHz";
scale = 1e6;
break;
case 7:
val = insertCommaIT( val, 3 );
unit = "MHz";
scale = 1e6;
break;
}
}
break;
case 13:
special = "TE";
unit = "F";
val = insertCommaIT( val, 4 );
break;
}
double d_val = val.toDouble() * scale;
//printf( "d_val=%f val=%s unit=%s special=%s\n", d_val, val.latin1(), unit.latin1(), special.latin1() );
emit value( d_val, val, unit, special, true, re->id() );
m_error = tr( "Connected" ) + " (" + m_name + " @ " + m_device + ")";

View File

@ -33,6 +33,13 @@ class DMM : public QObject
Q_OBJECT
public:
enum {
f_rts=1,
f_cts=2,
f_dsr=4,
f_dtr=8
};
DMM( QObject *parent=0, const char *name=0 );
virtual ~DMM();
@ -44,7 +51,7 @@ public:
bool isOpen() const { return m_handle >= 0; }
void setFormat( ReadEvent::DataFormat );
void setName( const QString & );
void setPortSettings( int bits, int stopBits, int parity, bool externalSetup );
void setPortSettings( int bits, int stopBits, int parity, bool externalSetup, bool rts, bool cts, bool dsr, bool dtr );
void setNumValues( int );
void setConsoleLogging( bool on ) { m_consoleLogging = on; }
@ -70,7 +77,8 @@ protected:
struct termios m_oldSettings;
bool m_consoleLogging;
bool m_externalSetup;
int m_flags;
void timerEvent( QTimerEvent * );
void customEvent( QCustomEvent * );
QString insertComma( const QString &, int );

View File

@ -63,79 +63,80 @@
struct DMMInfo dmm_info[] = {
{"Digitek DT-9062", 3, 5, 8, 1, 1, 0, 1, 0},
{"Digitek INO2513", 3, 5, 8, 1, 1, 0, 1, 0}, // no image
{"Digitek DT-9062", 3, 5, 8, 1, 1, 0, 1, 0, 0,1,1,1},
{"Digitek INO2513", 3, 5, 8, 1, 1, 0, 1, 0, 0,1,1,1}, // no image
{"Digitech QM1350", 0, 0, 7, 2, 1, 0, 1, 0}, // no image
{"Digitech QM1462", 3, 5, 8, 1, 1, 0, 1, 0}, // no image
{"Digitech QM1538", 3, 5, 8, 1, 1, 0, 1, 0}, // no image
{"Digitech QM1537", 3, 8, 8, 1, 1, 0, 1, 0}, // no image
{"Digitech QM1350", 0, 0, 7, 2, 1, 0, 1, 0, 0,1,1,1}, // no image
{"Digitech QM1462", 3, 5, 8, 1, 1, 0, 1, 0, 0,1,1,1}, // no image
{"Digitech QM1538", 3, 5, 8, 1, 1, 0, 1, 0, 0,1,1,1}, // no image
{"Digitech QM1537", 3, 8, 8, 1, 1, 0, 1, 0, 0,1,1,1}, // no image
{"ELV M9803R", 5, 4, 7, 1, 1, 1, 1, 0}, // no image
{"ELV M9803R", 5, 4, 7, 1, 1, 1, 1, 0, 0,1,1,1}, // no image
{"Iso-Tech IDM 73", 6, 6, 7, 1, 1, 2, 8, 0}, // no image
{"Iso-Tech IDM 73", 6, 6, 7, 1, 1, 2, 8, 0, 0,1,1,1}, // no image
{"MASTECH MAS-343", 0, 0, 7, 2, 1, 0, 1, 0},
{"MASTECH MAS-345", 0, 0, 7, 2, 1, 0, 1, 0},
{"MASTECH M9803R", 5, 4, 7, 1, 1, 1, 1, 0},
{"MASTECH MAS-343", 0, 0, 7, 2, 1, 0, 1, 0, 0,1,1,1},
{"MASTECH MAS-345", 0, 0, 7, 2, 1, 0, 1, 0, 0,1,1,1},
{"MASTECH M9803R", 5, 4, 7, 1, 1, 1, 1, 0, 0,1,1,1},
{"McVoice M-345pro", 0, 0, 7, 2, 1, 0, 1, 0},
{"McVoice M-980T", 5, 4, 7, 1, 1, 0, 1, 0},
{"McVoice M-345pro", 0, 0, 7, 2, 1, 0, 1, 0, 0,1,1,1},
{"McVoice M-980T", 5, 4, 7, 1, 1, 0, 1, 0, 0,1,1,1},
{"Metex M-3660D", 1, 0, 7, 2, 1, 0, 1, 0},
{"Metex M-3830D", 1, 0, 7, 2, 4, 0, 1, 0}, // no image
{"Metex M-3850D", 1, 0, 7, 2, 4, 0, 1, 0},
{"Metex M-3850M", 5, 0, 7, 2, 4, 0, 1, 0},
{"Metex M-3870D", 1, 0, 7, 1, 1, 0, 1, 0},
{"Metex M-4650C", 1, 0, 7, 2, 4, 0, 2, 0},
{"Metex ME-11", 0, 0, 7, 2, 1, 0, 1, 0},
{"Metex ME-22", 3, 0, 7, 2, 1, 0, 1, 0},
{"Metex ME-32", 0, 0, 7, 2, 1, 0, 1, 0},
{"Metex ME-42", 0, 0, 7, 2, 1, 0, 1, 0},
{"Metex universal system 9160", 1, 0, 7, 2, 4, 0, 1, 0},
{"Metex M-3660D", 1, 0, 7, 2, 1, 0, 1, 0, 0,1,1,1},
{"Metex M-3830D", 1, 0, 7, 2, 4, 0, 1, 0, 0,1,1,1}, // no image
{"Metex M-3850D", 1, 0, 7, 2, 4, 0, 1, 0, 0,1,1,1},
{"Metex M-3850M", 5, 0, 7, 2, 4, 0, 1, 0, 0,1,1,1},
{"Metex M-3870D", 1, 0, 7, 1, 1, 0, 1, 0, 0,1,1,1},
{"Metex M-4650C", 1, 0, 7, 2, 4, 0, 2, 0, 0,1,1,1},
{"Metex ME-11", 0, 0, 7, 2, 1, 0, 1, 0, 0,1,1,1},
{"Metex ME-22", 3, 0, 7, 2, 1, 0, 1, 0, 0,1,1,1},
{"Metex ME-32", 0, 0, 7, 2, 1, 0, 1, 0, 0,1,1,1},
{"Metex ME-42", 0, 0, 7, 2, 1, 0, 1, 0, 0,1,1,1},
{"Metex universal system 9160", 1, 0, 7, 2, 4, 0, 1, 0, 0,1,1,1},
{"PeakTech 3330", 3, 5, 8, 1, 1, 0, 1, 0},
{"PeakTech 4010", 5, 0, 7, 2, 1, 0, 1, 0},
{"PeakTech 4015A", 5, 0, 7, 2, 4, 0, 4, 0},
{"PeakTech 4360", 0, 0, 7, 2, 1, 0, 1, 0},
{"PeakTech 4390", 5, 0, 7, 2, 4, 0, 1, 0},
{"PeakTech 451", 0, 1, 7, 2, 1, 0, 1, 0}, // no image
{"PeakTech 3330", 3, 5, 8, 1, 1, 0, 1, 0, 0,1,1,1},
{"PeakTech 4010", 5, 0, 7, 2, 1, 0, 1, 0, 0,1,1,1},
{"PeakTech 4015A", 5, 0, 7, 2, 4, 0, 4, 0, 0,1,1,1},
{"PeakTech 4360", 0, 0, 7, 2, 1, 0, 1, 0, 0,1,1,1},
{"PeakTech 4390", 5, 0, 7, 2, 4, 0, 1, 0, 0,1,1,1},
{"PeakTech 451", 0, 1, 7, 2, 1, 0, 1, 0, 0,1,1,1}, // no image
{"Radioshack 22-805 DMM", 0, 0, 7, 2, 1, 0, 1, 0},
{"Radioshack RS22-168A", 1, 0, 7, 2, 1, 0, 1, 0}, // no image
{"Radioshack 22-812", 4, 9, 8, 1, 1, 0, 1, 0},
{"Radioshack 22-805 DMM", 0, 0, 7, 2, 1, 0, 1, 0, 0,1,1,1},
{"Radioshack RS22-168A", 1, 0, 7, 2, 1, 0, 1, 0, 0,1,1,1}, // no image
{"Radioshack 22-812", 4, 9, 8, 1, 1, 0, 1, 0, 0,1,1,1},
{"Tenma 72-7745", 3, 5, 8, 1, 1, 0, 1, 0},
{"Tenma 72-1016", 6, 6, 7, 1, 2, 2, 8, 0},
{"Tenma 72-7745", 3, 5, 8, 1, 1, 0, 1, 0, 0,1,1,1},
{"Tenma 72-1016", 6, 6, 7, 1, 2, 2, 8, 0, 0,1,1,1},
{"Sinometer MAS-343", 0, 0, 7, 2, 1, 0, 1, 0},
{"Sinometer MAS-343", 0, 0, 7, 2, 1, 0, 1, 0, 0,1,1,1},
{"Uni-Trend UT30A", 3, 5, 8, 1, 1, 0, 1, 0},
{"Uni-Trend UT30E", 3, 5, 8, 1, 1, 0, 1, 0}, // no image
{"Uni-Trend UT30A", 3, 5, 8, 1, 1, 0, 1, 0, 0,1,1,1},
{"Uni-Trend UT30E", 3, 5, 8, 1, 1, 0, 1, 0, 0,1,1,1}, // no image
{"Voltcraft M-3610D", 1, 0, 7, 2, 1, 0, 1, 0}, // no image
{"Voltcraft M-3650D", 1, 0, 7, 2, 1, 0, 1, 0},
{"Voltcraft M-3860", 5, 0, 7, 2, 4, 0, 2, 0}, // no image
{"Voltcraft M-4650CR", 1, 2, 7, 2, 1, 0, 2, 0 }, // no image
{"Voltcraft M-4660", 1, 0, 7, 2, 4, 0, 3, 0},
{"Voltcraft ME-11", 0, 0, 7, 2, 1, 0, 1, 0},
{"Voltcraft ME-22T", 3, 0, 7, 2, 1, 0, 1, 0},
{"Voltcraft ME-32", 0, 0, 7, 2, 1, 0, 1, 0},
{"Voltcraft VC 670", 4, 2, 7, 1, 1, 0, 3, 0},
{"Voltcraft VC 820", 3, 5, 8, 1, 1, 0, 1, 0},
{"Voltcraft VC 840", 3, 5, 8, 1, 1, 0, 1, 0},
{"Voltcraft VC 940", 3, 7, 8, 1, 1, 2, 9, 0},
{"Voltcraft M-3610D", 1, 0, 7, 2, 1, 0, 1, 0, 0,1,1,1}, // no image
{"Voltcraft M-3650D", 1, 0, 7, 2, 1, 0, 1, 0, 0,1,1,1},
{"Voltcraft M-3860", 5, 0, 7, 2, 4, 0, 2, 0, 0,1,1,1}, // no image
{"Voltcraft M-4650CR", 1, 2, 7, 2, 1, 0, 2, 0 , 0,1,1,1}, // no image
{"Voltcraft M-4660", 1, 0, 7, 2, 4, 0, 3, 0, 0,1,1,1},
{"Voltcraft ME-11", 0, 0, 7, 2, 1, 0, 1, 0, 0,1,1,1},
{"Voltcraft ME-22T", 3, 0, 7, 2, 1, 0, 1, 0, 0,1,1,1},
{"Voltcraft ME-32", 0, 0, 7, 2, 1, 0, 1, 0, 0,1,1,1},
{"Voltcraft VC 670", 4, 2, 7, 1, 1, 0, 3, 0, 0,1,1,1},
{"Voltcraft VC 820", 3, 5, 8, 1, 1, 0, 1, 0, 0,1,1,1},
{"Voltcraft VC 840", 3, 5, 8, 1, 1, 0, 1, 0, 0,1,1,1},
{"Voltcraft VC 920", 3, 7, 7, 1, 1, 2, 9, 0, 0,1,1,1},
{"Voltcraft VC 940", 3, 7, 7, 1, 1, 2, 9, 0, 0,1,1,1},
{"*Voltcraft ME-42", 0, 0, 7, 2, 1, 0, 1, 0},
{"*Voltcraft M-4660A", 5, 0, 7, 2, 4, 0, 3, 0},
{"*Voltcraft M-4660M", 5, 0, 7, 2, 4, 0, 3, 0},
{"*Voltcraft MXD-4660A", 5, 0, 7, 2, 4, 0, 3, 0},
{"*Voltcraft VC 630", 4, 2, 7, 1, 1, 0, 3, 0},
{"*Voltcraft VC 650", 4, 2, 7, 1, 1, 0, 3, 0},
{"*Voltcraft VC 635", 3, 3, 7, 1, 1, 0, 3, 0},
{"*Voltcraft VC 655", 3, 3, 7, 1, 1, 0, 3, 0},
{"*Voltcraft ME-42", 0, 0, 7, 2, 1, 0, 1, 0, 0,1,1,1},
{"*Voltcraft M-4660A", 5, 0, 7, 2, 4, 0, 3, 0, 0,1,1,1},
{"*Voltcraft M-4660M", 5, 0, 7, 2, 4, 0, 3, 0, 0,1,1,1},
{"*Voltcraft MXD-4660A", 5, 0, 7, 2, 4, 0, 3, 0, 0,1,1,1},
{"*Voltcraft VC 630", 4, 2, 7, 1, 1, 0, 3, 0, 0,1,1,1},
{"*Voltcraft VC 650", 4, 2, 7, 1, 1, 0, 3, 0, 0,1,1,1},
{"*Voltcraft VC 635", 3, 3, 7, 1, 1, 0, 3, 0, 0,1,1,1},
{"*Voltcraft VC 655", 3, 3, 7, 1, 1, 0, 3, 0, 0,1,1,1},
{"",0,0,0,0,0,0,0,0} // End Of List
{"",0,0,0,0,0,0,0,0,0,0,0,0} // End Of List
};
DmmPrefs::DmmPrefs( QWidget *parent, const char *name ) :
@ -344,6 +345,10 @@ DmmPrefs::modelSLOT( int id )
parityCombo->setDisabled( id != 0 );
ui_numValues->setDisabled( id != 0 );
ui_externalSetup->setDisabled( id != 0 );
uirts->setDisabled( id != 0 );
uicts->setDisabled( id != 0 );
uidsr->setDisabled( id != 0 );
uidtr->setDisabled( id != 0 );
if (id != 0) message->hide();
else message->show();
@ -366,11 +371,35 @@ DmmPrefs::modelSLOT( int id )
displayCombo->setCurrentItem( dmm_info[id-1].display );
ui_numValues->setValue( dmm_info[id-1].numValues );
ui_externalSetup->setChecked( dmm_info[id-1].externalSetup );
uirts->setChecked( dmm_info[id-1].rts );
uicts->setChecked( dmm_info[id-1].cts );
uidsr->setChecked( dmm_info[id-1].dsr );
uidtr->setChecked( dmm_info[id-1].dtr );
ui_filename->setText( "" );
}
}
bool DmmPrefs::rts() const
{
return uirts->isChecked();
}
bool DmmPrefs::cts() const
{
return uicts->isChecked();
}
bool DmmPrefs::dsr() const
{
return uidsr->isChecked();
}
bool DmmPrefs::dtr() const
{
return uidtr->isChecked();
}
int
DmmPrefs::parity() const
{
@ -482,6 +511,10 @@ DmmPrefs::loadSLOT()
ui_externalSetup->setChecked( cfg.getBool( "DMM", "external-setup", false ) );
protocolCombo->setCurrentItem( cfg.getInt( "DMM", "data-format", 0 ));
ui_numValues->setValue( cfg.getInt( "DMM", "number-of-values", 1 ));
uirts->setChecked( cfg.getBool( "DMM", "rts", true ));
uicts->setChecked( cfg.getBool( "DMM", "cts", false ));
uidsr->setChecked( cfg.getBool( "DMM", "dsr", false ));
uidtr->setChecked( cfg.getBool( "DMM", "dtr", false ));
}
}
@ -523,6 +556,11 @@ DmmPrefs::saveSLOT()
cfg.setInt( "DMM", "data-format", protocolCombo->currentItem() );
cfg.setInt( "DMM", "number-of-values", ui_numValues->value() );
cfg.setBool( "DMM", "rts", uirts->isChecked() );
cfg.setBool( "DMM", "cts", uicts->isChecked() );
cfg.setBool( "DMM", "dsr", uidsr->isChecked() );
cfg.setBool( "DMM", "dtr", uidtr->isChecked() );
cfg.save();
}
}

View File

@ -35,6 +35,10 @@ struct DMMInfo
int parity;
int display;
bool externalSetup;
bool rts;
bool cts;
bool dsr;
bool dtr;
};
class DmmPrefs : public UIDmmPrefs
@ -50,6 +54,10 @@ public:
int speed() const;
int numValues() const;
bool externalSetup() const;
bool rts() const;
bool cts() const;
bool dsr() const;
bool dtr() const;
ReadEvent::DataFormat format() const;
int display() const;
QString dmmName() const;

View File

@ -397,7 +397,10 @@ MainWid::readConfig()
m_dmm->setSpeed( m_configDlg->speed() );
m_dmm->setFormat( m_configDlg->format() );
m_dmm->setPortSettings( m_configDlg->bits(), m_configDlg->stopBits(),
m_configDlg->parity(), m_configDlg->externalSetup() );
m_configDlg->parity(), m_configDlg->externalSetup(),
m_configDlg->rts(), m_configDlg->cts(),
m_configDlg->dsr(), m_configDlg->dtr()
);
ui_graph->setGraphSize( m_configDlg->windowSeconds(),
m_configDlg->totalSeconds() );

View File

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

View File

@ -182,7 +182,7 @@ ReaderThread::formatLength() const
case ReadEvent::IsoTech:
return 22;
case ReadEvent::VC940Continuous:
return 12;
return 11;
case ReadEvent::QM1537Continuous:
return 14;
case ReadEvent::RS22812Continuous:

View File

@ -78,6 +78,6 @@ macx {
RC_FILE = QtDMMIcon.icns
}
TARGET = qtdmm
VERSION = 0.8.13
VERSION = 0.8.14
DESTDIR = ../bin

View File

@ -8,8 +8,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>610</width>
<height>682</height>
<width>566</width>
<height>679</height>
</rect>
</property>
<property name="caption">
@ -443,14 +443,6 @@
<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="QCheckBox" row="0" column="0" rowspan="1" colspan="4">
<property name="name">
<cstring>ui_externalSetup</cstring>
</property>
<property name="text">
<string>External device setup</string>
</property>
</widget>
<widget class="QLabel" row="3" column="2">
<property name="name">
<cstring>ui_displayLabel</cstring>
@ -499,6 +491,76 @@
<property name="hAlign" stdset="0">
</property>
</widget>
<widget class="QCheckBox" row="0" column="0" rowspan="1" colspan="4">
<property name="name">
<cstring>ui_externalSetup</cstring>
</property>
<property name="text">
<string>External device setup</string>
</property>
</widget>
<widget class="QLayoutWidget" row="4" column="0" rowspan="1" colspan="4">
<property name="name">
<cstring>layout3</cstring>
</property>
<hbox>
<property name="name">
<cstring>unnamed</cstring>
</property>
<widget class="QCheckBox">
<property name="name">
<cstring>uirts</cstring>
</property>
<property name="text">
<string>RTS</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
<widget class="QCheckBox">
<property name="name">
<cstring>uicts</cstring>
</property>
<property name="text">
<string>CTS</string>
</property>
</widget>
<widget class="QCheckBox">
<property name="name">
<cstring>uidsr</cstring>
</property>
<property name="text">
<string>DSR</string>
</property>
</widget>
<widget class="QCheckBox">
<property name="name">
<cstring>uidtr</cstring>
</property>
<property name="text">
<string>DTR</string>
</property>
</widget>
<spacer>
<property name="name">
<cstring>spacer3</cstring>
</property>
<property name="orientation">
<enum>Horizontal</enum>
</property>
<property name="sizeType">
<enum>Expanding</enum>
</property>
<property name="sizeHint">
<size>
<width>201</width>
<height>21</height>
</size>
</property>
</spacer>
</hbox>
</widget>
</grid>
</widget>
<widget class="QButtonGroup">
@ -560,7 +622,7 @@
</item>
<item>
<property name="text">
<string>12 bytes binary, continuous (VC940)</string>
<string>11 bytes binary, continuous (VC940)</string>
</property>
</item>
<item>
@ -637,7 +699,7 @@
<property name="sizeHint">
<size>
<width>20</width>
<height>60</height>
<height>30</height>
</size>
</property>
</spacer>
@ -709,13 +771,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>