mirror of https://github.com/jhol/qtdmm.git
Release 0.8.14
This commit is contained in:
parent
7db7608108
commit
4a2ead0c42
|
@ -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
4
README
|
@ -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>
|
||||
|
||||
|
|
14
src/Makefile
14
src/Makefile
|
@ -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
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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:
|
||||
|
|
196
src/dmm.cpp
196
src/dmm.cpp
|
@ -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 + ")";
|
||||
|
|
12
src/dmm.h
12
src/dmm.h
|
@ -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 );
|
||||
|
|
156
src/dmmprefs.cpp
156
src/dmmprefs.cpp
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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() );
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
#include <help.xpm>
|
||||
#include <icon.xpm>
|
||||
|
||||
#define VERSION_STRING "0.8.13"
|
||||
#define VERSION_STRING "0.8.14"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -78,6 +78,6 @@ macx {
|
|||
RC_FILE = QtDMMIcon.icns
|
||||
}
|
||||
TARGET = qtdmm
|
||||
VERSION = 0.8.13
|
||||
VERSION = 0.8.14
|
||||
DESTDIR = ../bin
|
||||
|
||||
|
|
|
@ -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 <b>Metex ME-32</b>. 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>
|
||||
|
|
Loading…
Reference in New Issue