kopia lustrzana https://gitlab.com/Teuniz/DSRemote
Work in progress.
rodzic
07b9811cb1
commit
4b11d29f9d
74
README.md
74
README.md
|
@ -45,3 +45,77 @@ Not tested yet:
|
||||||
* Record & Playback function
|
* Record & Playback function
|
||||||
* Wave Inspector
|
* Wave Inspector
|
||||||
* serial decoding.
|
* serial decoding.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
In case you insist on using Qt5, the recommended way is not to use the Qt5 libraries that comes with your distro.
|
||||||
|
Instead, download and compile the Qt5 source and use that to compile DSRemote.
|
||||||
|
Here's a step by step list of instuctions:
|
||||||
|
|
||||||
|
First, fulfill the requirements for Qt:
|
||||||
|
|
||||||
|
http://doc.qt.io/qt-5/linux.html
|
||||||
|
|
||||||
|
Debian/Ubuntu: sudo apt-get install build-essential libgl1-mesa-dev libcups2-dev libx11-dev
|
||||||
|
|
||||||
|
Fedora: sudo dnf groupinstall "C Development Tools and Libraries"
|
||||||
|
sudo dnf install mesa-libGL-devel cups-devel libx11-dev
|
||||||
|
|
||||||
|
openSUSE: sudo zypper install -t pattern devel_basis
|
||||||
|
sudo zypper install xorg-x11-devel cups-devel freetype-devel fontconfig-devel
|
||||||
|
|
||||||
|
#############################################################################################
|
||||||
|
# #
|
||||||
|
# Compile a static version of the Qt5 libraries excluding all modules that are not needed. #
|
||||||
|
# #
|
||||||
|
# This will not mess with your system libraries. The new compiled libraries will be stored #
|
||||||
|
# #
|
||||||
|
# in a new and separate directory: /usr/local/Qt-5.9.2 #
|
||||||
|
# #
|
||||||
|
# It will not interfere with other Qt programs. #
|
||||||
|
# #
|
||||||
|
#############################################################################################
|
||||||
|
|
||||||
|
mkdir Qt5-source
|
||||||
|
|
||||||
|
cd Qt5-source
|
||||||
|
|
||||||
|
wget http://ftp1.nluug.nl/languages/qt/official_releases/qt/5.9/5.9.2/single/qt-everywhere-opensource-src-5.9.2.tar.xz
|
||||||
|
|
||||||
|
here is a list of download mirrors: https://download.qt.io/static/mirrorlist/
|
||||||
|
The Qt source package you are going to need is: qt-everywhere-opensource-src-5.9.2.tar.xz
|
||||||
|
|
||||||
|
tar -xvf qt-everywhere-opensource-src-5.9.2.tar.xz
|
||||||
|
|
||||||
|
cd qt-everywhere-opensource-src-5.9.2
|
||||||
|
|
||||||
|
./configure -v -release -opensource -confirm-license -c++std c++11 -static -accessibility -fontconfig -skip qtdeclarative -skip qtconnectivity -skip qtmultimedia -no-qml-debug -qt-zlib -no-mtdev -no-journald -qt-libpng -qt-libjpeg -system-freetype -qt-harfbuzz -no-openssl -no-libproxy -no-glib -nomake examples -nomake tests -no-compile-examples -cups -no-evdev -no-dbus -no-eglfs -qreal double -no-opengl -skip qtlocation -skip qtsensors -skip qtwayland -skip qtgamepad -skip qtserialbus
|
||||||
|
|
||||||
|
(takes about 1.5 minutes)
|
||||||
|
|
||||||
|
make -j8
|
||||||
|
|
||||||
|
(takes about 11 minutes)
|
||||||
|
|
||||||
|
sudo make install
|
||||||
|
|
||||||
|
Now go to the directory that contains the DSRemote sourcecode and enter the following commands:
|
||||||
|
|
||||||
|
/usr/local/Qt-5.9.2/bin/qmake
|
||||||
|
|
||||||
|
make -j8
|
||||||
|
|
||||||
|
sudo make install
|
||||||
|
|
||||||
|
Now you can run the program by typing: dsremote
|
||||||
|
|
||||||
|
Congratulations!
|
||||||
|
You have compiled a static version of DSRemote that can be deployed on other systems without the need
|
||||||
|
to install the Qt libraries.
|
||||||
|
In order to reduce the size of the executable, run the following commands:
|
||||||
|
|
||||||
|
strip -s dsremote
|
||||||
|
|
||||||
|
upx dsremote
|
||||||
|
|
||||||
|
|
|
@ -186,7 +186,7 @@ UI_decoder_window::UI_decoder_window(QWidget *w_parent)
|
||||||
format_combobox->addItem("ASCII");
|
format_combobox->addItem("ASCII");
|
||||||
format_combobox->addItem("Decimal");
|
format_combobox->addItem("Decimal");
|
||||||
format_combobox->addItem("Binary");
|
format_combobox->addItem("Binary");
|
||||||
if(devparms->modelserie != 6)
|
if(devparms->modelserie != 6 && devparms->modelserie != 4)
|
||||||
{
|
{
|
||||||
format_combobox->addItem("Line");
|
format_combobox->addItem("Line");
|
||||||
}
|
}
|
||||||
|
|
2
global.h
2
global.h
|
@ -35,7 +35,7 @@
|
||||||
|
|
||||||
|
|
||||||
#define PROGRAM_NAME "DSRemote"
|
#define PROGRAM_NAME "DSRemote"
|
||||||
#define PROGRAM_VERSION "0.35_1709221301"
|
#define PROGRAM_VERSION "0.35_1710151835"
|
||||||
|
|
||||||
#define MAX_PATHLEN 4096
|
#define MAX_PATHLEN 4096
|
||||||
|
|
||||||
|
|
290
interface.cpp
290
interface.cpp
|
@ -1073,7 +1073,7 @@ void UI_Mainwindow::acqButtonClicked()
|
||||||
|
|
||||||
submenumemdepth.setTitle("Mem Depth");
|
submenumemdepth.setTitle("Mem Depth");
|
||||||
submenumemdepth.addAction("Auto", this, SLOT(set_memdepth_auto()));
|
submenumemdepth.addAction("Auto", this, SLOT(set_memdepth_auto()));
|
||||||
if(devparms.modelserie == 6)
|
if(devparms.modelserie == 6 || devparms.modelserie == 4)
|
||||||
{
|
{
|
||||||
if(!dual)
|
if(!dual)
|
||||||
{
|
{
|
||||||
|
@ -1092,7 +1092,7 @@ void UI_Mainwindow::acqButtonClicked()
|
||||||
submenumemdepth.addAction("70M", this, SLOT(set_memdepth_70m()));
|
submenumemdepth.addAction("70M", this, SLOT(set_memdepth_70m()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if((devparms.modelserie == 2) || (devparms.modelserie == 4))
|
else if(devparms.modelserie == 2)
|
||||||
{
|
{
|
||||||
if(chns_on < 2)
|
if(chns_on < 2)
|
||||||
{
|
{
|
||||||
|
@ -1100,14 +1100,7 @@ void UI_Mainwindow::acqButtonClicked()
|
||||||
submenumemdepth.addAction("140K", this, SLOT(set_memdepth_140k()));
|
submenumemdepth.addAction("140K", this, SLOT(set_memdepth_140k()));
|
||||||
submenumemdepth.addAction("1.4M", this, SLOT(set_memdepth_1400k()));
|
submenumemdepth.addAction("1.4M", this, SLOT(set_memdepth_1400k()));
|
||||||
submenumemdepth.addAction("14M", this, SLOT(set_memdepth_14m()));
|
submenumemdepth.addAction("14M", this, SLOT(set_memdepth_14m()));
|
||||||
if(devparms.modelserie == 2)
|
submenumemdepth.addAction("56M", this, SLOT(set_memdepth_56m()));
|
||||||
{
|
|
||||||
submenumemdepth.addAction("56M", this, SLOT(set_memdepth_56m()));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
submenumemdepth.addAction("140M", this, SLOT(set_memdepth_140m()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1115,14 +1108,7 @@ void UI_Mainwindow::acqButtonClicked()
|
||||||
submenumemdepth.addAction("70K", this, SLOT(set_memdepth_70k()));
|
submenumemdepth.addAction("70K", this, SLOT(set_memdepth_70k()));
|
||||||
submenumemdepth.addAction("700K", this, SLOT(set_memdepth_700k()));
|
submenumemdepth.addAction("700K", this, SLOT(set_memdepth_700k()));
|
||||||
submenumemdepth.addAction("7M", this, SLOT(set_memdepth_7m()));
|
submenumemdepth.addAction("7M", this, SLOT(set_memdepth_7m()));
|
||||||
if(devparms.modelserie == 2)
|
submenumemdepth.addAction("28M", this, SLOT(set_memdepth_28m()));
|
||||||
{
|
|
||||||
submenumemdepth.addAction("28M", this, SLOT(set_memdepth_28m()));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
submenumemdepth.addAction("70M", this, SLOT(set_memdepth_70m()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(devparms.modelserie == 1)
|
else if(devparms.modelserie == 1)
|
||||||
|
@ -1874,11 +1860,11 @@ void UI_Mainwindow::playpauseButtonClicked()
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if((devparms.modelserie == 6) && (devparms.func_wrec_enable == 1)) // DS6000 series record mode
|
if(((devparms.modelserie == 6) || (devparms.modelserie == 4)) && (devparms.func_wrec_enable == 1))
|
||||||
{
|
{
|
||||||
set_cue_cmd(":FUNC:WRM PLAY");
|
set_cue_cmd(":FUNC:WRM PLAY");
|
||||||
|
|
||||||
devparms.func_wrec_enable = 2; // DS6000 series play mode
|
devparms.func_wrec_enable = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
devparms.func_wplay_operate = 1;
|
devparms.func_wplay_operate = 1;
|
||||||
|
@ -1929,7 +1915,7 @@ void UI_Mainwindow::recordButtonClicked()
|
||||||
|
|
||||||
statusLabel->setText("Record on");
|
statusLabel->setText("Record on");
|
||||||
|
|
||||||
if(devparms.modelserie == 6)
|
if(devparms.modelserie == 6 || devparms.modelserie == 4)
|
||||||
{
|
{
|
||||||
set_cue_cmd(":FUNC:WREC:OPER REC");
|
set_cue_cmd(":FUNC:WREC:OPER REC");
|
||||||
}
|
}
|
||||||
|
@ -2270,6 +2256,18 @@ void UI_Mainwindow::chan_menu()
|
||||||
submenubwl.setTitle("BWL");
|
submenubwl.setTitle("BWL");
|
||||||
submenubwl.addAction("Off", this, SLOT(chan_bwl_off()));
|
submenubwl.addAction("Off", this, SLOT(chan_bwl_off()));
|
||||||
submenubwl.addAction("20MHz", this, SLOT(chan_bwl_20()));
|
submenubwl.addAction("20MHz", this, SLOT(chan_bwl_20()));
|
||||||
|
if(devparms.modelserie == 4)
|
||||||
|
{
|
||||||
|
if(devparms.bandwidth >= 200)
|
||||||
|
{
|
||||||
|
submenubwl.addAction("100MHz", this, SLOT(chan_bwl_100()));
|
||||||
|
}
|
||||||
|
|
||||||
|
if(devparms.bandwidth >= 300)
|
||||||
|
{
|
||||||
|
submenubwl.addAction("200MHz", this, SLOT(chan_bwl_200()));
|
||||||
|
}
|
||||||
|
}
|
||||||
if(devparms.modelserie == 6)
|
if(devparms.modelserie == 6)
|
||||||
{
|
{
|
||||||
submenubwl.addAction("250MHz", this, SLOT(chan_bwl_250()));
|
submenubwl.addAction("250MHz", this, SLOT(chan_bwl_250()));
|
||||||
|
@ -2285,17 +2283,37 @@ void UI_Mainwindow::chan_menu()
|
||||||
actionList[1]->setCheckable(true);
|
actionList[1]->setCheckable(true);
|
||||||
actionList[1]->setChecked(true);
|
actionList[1]->setChecked(true);
|
||||||
}
|
}
|
||||||
else if(devparms.modelserie == 6)
|
else if(devparms.modelserie == 4)
|
||||||
{
|
{
|
||||||
if(devparms.chanbwlimit[devparms.activechannel] == 250)
|
if(devparms.chanbwlimit[devparms.activechannel] == 100)
|
||||||
{
|
{
|
||||||
actionList[2]->setCheckable(true);
|
actionList[2]->setCheckable(true);
|
||||||
actionList[2]->setChecked(true);
|
actionList[2]->setChecked(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(devparms.chanbwlimit[devparms.activechannel] == 200)
|
||||||
|
{
|
||||||
|
actionList[3]->setCheckable(true);
|
||||||
|
actionList[3]->setChecked(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
else if(devparms.modelserie == 6)
|
||||||
|
{
|
||||||
|
if(devparms.chanbwlimit[devparms.activechannel] == 250)
|
||||||
|
{
|
||||||
|
actionList[2]->setCheckable(true);
|
||||||
|
actionList[2]->setChecked(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
menu.addMenu(&submenubwl);
|
menu.addMenu(&submenubwl);
|
||||||
|
|
||||||
submenuprobe.setTitle("Probe");
|
submenuprobe.setTitle("Probe");
|
||||||
|
if(devparms.modelserie != 6)
|
||||||
|
{
|
||||||
|
submenuprobe.addAction("0.01X", this, SLOT(chan_probe_001()));
|
||||||
|
submenuprobe.addAction("0.02X", this, SLOT(chan_probe_002()));
|
||||||
|
submenuprobe.addAction("0.05X", this, SLOT(chan_probe_005()));
|
||||||
|
}
|
||||||
submenuprobe.addAction("0.1X", this, SLOT(chan_probe_01()));
|
submenuprobe.addAction("0.1X", this, SLOT(chan_probe_01()));
|
||||||
if(devparms.modelserie != 6)
|
if(devparms.modelserie != 6)
|
||||||
{
|
{
|
||||||
|
@ -2315,59 +2333,95 @@ void UI_Mainwindow::chan_menu()
|
||||||
submenuprobe.addAction("50X", this, SLOT(chan_probe_50()));
|
submenuprobe.addAction("50X", this, SLOT(chan_probe_50()));
|
||||||
}
|
}
|
||||||
submenuprobe.addAction("100X", this, SLOT(chan_probe_100()));
|
submenuprobe.addAction("100X", this, SLOT(chan_probe_100()));
|
||||||
|
if(devparms.modelserie != 6)
|
||||||
|
{
|
||||||
|
submenuprobe.addAction("200X", this, SLOT(chan_probe_200()));
|
||||||
|
submenuprobe.addAction("500X", this, SLOT(chan_probe_500()));
|
||||||
|
submenuprobe.addAction("1000X", this, SLOT(chan_probe_1000()));
|
||||||
|
}
|
||||||
actionList = submenuprobe.actions();
|
actionList = submenuprobe.actions();
|
||||||
if(devparms.modelserie != 6)
|
if(devparms.modelserie != 6)
|
||||||
{
|
{
|
||||||
if(!dblcmp(devparms.chanprobe[devparms.activechannel], 0.1))
|
if(!dblcmp(devparms.chanprobe[devparms.activechannel], 0.01))
|
||||||
{
|
{
|
||||||
actionList[0]->setCheckable(true);
|
actionList[0]->setCheckable(true);
|
||||||
actionList[0]->setChecked(true);
|
actionList[0]->setChecked(true);
|
||||||
}
|
}
|
||||||
else if(!dblcmp(devparms.chanprobe[devparms.activechannel], 0.2))
|
else if(!dblcmp(devparms.chanprobe[devparms.activechannel], 0.02))
|
||||||
{
|
{
|
||||||
actionList[1]->setCheckable(true);
|
actionList[1]->setCheckable(true);
|
||||||
actionList[1]->setChecked(true);
|
actionList[1]->setChecked(true);
|
||||||
}
|
}
|
||||||
else if(!dblcmp(devparms.chanprobe[devparms.activechannel], 0.5))
|
else if(!dblcmp(devparms.chanprobe[devparms.activechannel], 0.05))
|
||||||
{
|
{
|
||||||
actionList[2]->setCheckable(true);
|
actionList[2]->setCheckable(true);
|
||||||
actionList[2]->setChecked(true);
|
actionList[2]->setChecked(true);
|
||||||
}
|
}
|
||||||
else if(!dblcmp(devparms.chanprobe[devparms.activechannel], 1))
|
else if(!dblcmp(devparms.chanprobe[devparms.activechannel], 0.1))
|
||||||
{
|
{
|
||||||
actionList[3]->setCheckable(true);
|
actionList[3]->setCheckable(true);
|
||||||
actionList[3]->setChecked(true);
|
actionList[3]->setChecked(true);
|
||||||
}
|
}
|
||||||
else if(!dblcmp(devparms.chanprobe[devparms.activechannel], 2))
|
else if(!dblcmp(devparms.chanprobe[devparms.activechannel], 0.2))
|
||||||
{
|
{
|
||||||
actionList[4]->setCheckable(true);
|
actionList[4]->setCheckable(true);
|
||||||
actionList[4]->setChecked(true);
|
actionList[4]->setChecked(true);
|
||||||
}
|
}
|
||||||
else if(!dblcmp(devparms.chanprobe[devparms.activechannel], 5))
|
else if(!dblcmp(devparms.chanprobe[devparms.activechannel], 0.5))
|
||||||
{
|
{
|
||||||
actionList[5]->setCheckable(true);
|
actionList[5]->setCheckable(true);
|
||||||
actionList[5]->setChecked(true);
|
actionList[5]->setChecked(true);
|
||||||
}
|
}
|
||||||
else if(!dblcmp(devparms.chanprobe[devparms.activechannel], 10))
|
else if(!dblcmp(devparms.chanprobe[devparms.activechannel], 1))
|
||||||
{
|
{
|
||||||
actionList[6]->setCheckable(true);
|
actionList[6]->setCheckable(true);
|
||||||
actionList[6]->setChecked(true);
|
actionList[6]->setChecked(true);
|
||||||
}
|
}
|
||||||
else if(!dblcmp(devparms.chanprobe[devparms.activechannel], 20))
|
else if(!dblcmp(devparms.chanprobe[devparms.activechannel], 2))
|
||||||
{
|
{
|
||||||
actionList[7]->setCheckable(true);
|
actionList[7]->setCheckable(true);
|
||||||
actionList[7]->setChecked(true);
|
actionList[7]->setChecked(true);
|
||||||
}
|
}
|
||||||
else if(!dblcmp(devparms.chanprobe[devparms.activechannel], 50))
|
else if(!dblcmp(devparms.chanprobe[devparms.activechannel], 5))
|
||||||
{
|
{
|
||||||
actionList[8]->setCheckable(true);
|
actionList[8]->setCheckable(true);
|
||||||
actionList[8]->setChecked(true);
|
actionList[8]->setChecked(true);
|
||||||
}
|
}
|
||||||
else if(!dblcmp(devparms.chanprobe[devparms.activechannel], 100))
|
else if(!dblcmp(devparms.chanprobe[devparms.activechannel], 10))
|
||||||
{
|
{
|
||||||
actionList[9]->setCheckable(true);
|
actionList[9]->setCheckable(true);
|
||||||
actionList[9]->setChecked(true);
|
actionList[9]->setChecked(true);
|
||||||
}
|
}
|
||||||
|
else if(!dblcmp(devparms.chanprobe[devparms.activechannel], 20))
|
||||||
|
{
|
||||||
|
actionList[10]->setCheckable(true);
|
||||||
|
actionList[10]->setChecked(true);
|
||||||
|
}
|
||||||
|
else if(!dblcmp(devparms.chanprobe[devparms.activechannel], 50))
|
||||||
|
{
|
||||||
|
actionList[11]->setCheckable(true);
|
||||||
|
actionList[11]->setChecked(true);
|
||||||
|
}
|
||||||
|
else if(!dblcmp(devparms.chanprobe[devparms.activechannel], 100))
|
||||||
|
{
|
||||||
|
actionList[12]->setCheckable(true);
|
||||||
|
actionList[12]->setChecked(true);
|
||||||
|
}
|
||||||
|
else if(!dblcmp(devparms.chanprobe[devparms.activechannel], 200))
|
||||||
|
{
|
||||||
|
actionList[13]->setCheckable(true);
|
||||||
|
actionList[13]->setChecked(true);
|
||||||
|
}
|
||||||
|
else if(!dblcmp(devparms.chanprobe[devparms.activechannel], 500))
|
||||||
|
{
|
||||||
|
actionList[14]->setCheckable(true);
|
||||||
|
actionList[14]->setChecked(true);
|
||||||
|
}
|
||||||
|
else if(!dblcmp(devparms.chanprobe[devparms.activechannel], 1000))
|
||||||
|
{
|
||||||
|
actionList[15]->setCheckable(true);
|
||||||
|
actionList[15]->setChecked(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -2791,6 +2845,66 @@ void UI_Mainwindow::chan_unit_u()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void UI_Mainwindow::chan_probe_001()
|
||||||
|
{
|
||||||
|
char str[128];
|
||||||
|
|
||||||
|
devparms.chanscale[devparms.activechannel] /= devparms.chanprobe[devparms.activechannel];
|
||||||
|
|
||||||
|
devparms.chanprobe[devparms.activechannel] = 0.01;
|
||||||
|
|
||||||
|
devparms.chanscale[devparms.activechannel] *= devparms.chanprobe[devparms.activechannel];
|
||||||
|
|
||||||
|
sprintf(str, "Channel %i probe: 0.01X", devparms.activechannel + 1);
|
||||||
|
|
||||||
|
statusLabel->setText(str);
|
||||||
|
|
||||||
|
sprintf(str, ":CHAN%i:PROB %e", devparms.activechannel + 1, devparms.chanprobe[devparms.activechannel]);
|
||||||
|
|
||||||
|
set_cue_cmd(str);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void UI_Mainwindow::chan_probe_002()
|
||||||
|
{
|
||||||
|
char str[128];
|
||||||
|
|
||||||
|
devparms.chanscale[devparms.activechannel] /= devparms.chanprobe[devparms.activechannel];
|
||||||
|
|
||||||
|
devparms.chanprobe[devparms.activechannel] = 0.02;
|
||||||
|
|
||||||
|
devparms.chanscale[devparms.activechannel] *= devparms.chanprobe[devparms.activechannel];
|
||||||
|
|
||||||
|
sprintf(str, "Channel %i probe: 0.02X", devparms.activechannel + 1);
|
||||||
|
|
||||||
|
statusLabel->setText(str);
|
||||||
|
|
||||||
|
sprintf(str, ":CHAN%i:PROB %e", devparms.activechannel + 1, devparms.chanprobe[devparms.activechannel]);
|
||||||
|
|
||||||
|
set_cue_cmd(str);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void UI_Mainwindow::chan_probe_005()
|
||||||
|
{
|
||||||
|
char str[128];
|
||||||
|
|
||||||
|
devparms.chanscale[devparms.activechannel] /= devparms.chanprobe[devparms.activechannel];
|
||||||
|
|
||||||
|
devparms.chanprobe[devparms.activechannel] = 0.05;
|
||||||
|
|
||||||
|
devparms.chanscale[devparms.activechannel] *= devparms.chanprobe[devparms.activechannel];
|
||||||
|
|
||||||
|
sprintf(str, "Channel %i probe: 0.05X", devparms.activechannel + 1);
|
||||||
|
|
||||||
|
statusLabel->setText(str);
|
||||||
|
|
||||||
|
sprintf(str, ":CHAN%i:PROB %e", devparms.activechannel + 1, devparms.chanprobe[devparms.activechannel]);
|
||||||
|
|
||||||
|
set_cue_cmd(str);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void UI_Mainwindow::chan_probe_01()
|
void UI_Mainwindow::chan_probe_01()
|
||||||
{
|
{
|
||||||
char str[128];
|
char str[128];
|
||||||
|
@ -2991,6 +3105,66 @@ void UI_Mainwindow::chan_probe_100()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void UI_Mainwindow::chan_probe_200()
|
||||||
|
{
|
||||||
|
char str[128];
|
||||||
|
|
||||||
|
devparms.chanscale[devparms.activechannel] /= devparms.chanprobe[devparms.activechannel];
|
||||||
|
|
||||||
|
devparms.chanprobe[devparms.activechannel] = 200;
|
||||||
|
|
||||||
|
devparms.chanscale[devparms.activechannel] *= devparms.chanprobe[devparms.activechannel];
|
||||||
|
|
||||||
|
sprintf(str, "Channel %i probe: 200X", devparms.activechannel + 1);
|
||||||
|
|
||||||
|
statusLabel->setText(str);
|
||||||
|
|
||||||
|
sprintf(str, ":CHAN%i:PROB %e", devparms.activechannel + 1, devparms.chanprobe[devparms.activechannel]);
|
||||||
|
|
||||||
|
set_cue_cmd(str);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void UI_Mainwindow::chan_probe_500()
|
||||||
|
{
|
||||||
|
char str[128];
|
||||||
|
|
||||||
|
devparms.chanscale[devparms.activechannel] /= devparms.chanprobe[devparms.activechannel];
|
||||||
|
|
||||||
|
devparms.chanprobe[devparms.activechannel] = 500;
|
||||||
|
|
||||||
|
devparms.chanscale[devparms.activechannel] *= devparms.chanprobe[devparms.activechannel];
|
||||||
|
|
||||||
|
sprintf(str, "Channel %i probe: 500X", devparms.activechannel + 1);
|
||||||
|
|
||||||
|
statusLabel->setText(str);
|
||||||
|
|
||||||
|
sprintf(str, ":CHAN%i:PROB %e", devparms.activechannel + 1, devparms.chanprobe[devparms.activechannel]);
|
||||||
|
|
||||||
|
set_cue_cmd(str);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void UI_Mainwindow::chan_probe_1000()
|
||||||
|
{
|
||||||
|
char str[128];
|
||||||
|
|
||||||
|
devparms.chanscale[devparms.activechannel] /= devparms.chanprobe[devparms.activechannel];
|
||||||
|
|
||||||
|
devparms.chanprobe[devparms.activechannel] = 1000;
|
||||||
|
|
||||||
|
devparms.chanscale[devparms.activechannel] *= devparms.chanprobe[devparms.activechannel];
|
||||||
|
|
||||||
|
sprintf(str, "Channel %i probe: 1000X", devparms.activechannel + 1);
|
||||||
|
|
||||||
|
statusLabel->setText(str);
|
||||||
|
|
||||||
|
sprintf(str, ":CHAN%i:PROB %e", devparms.activechannel + 1, devparms.chanprobe[devparms.activechannel]);
|
||||||
|
|
||||||
|
set_cue_cmd(str);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void UI_Mainwindow::chan_bwl_off()
|
void UI_Mainwindow::chan_bwl_off()
|
||||||
{
|
{
|
||||||
char str[128];
|
char str[128];
|
||||||
|
@ -3027,6 +3201,42 @@ void UI_Mainwindow::chan_bwl_20()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void UI_Mainwindow::chan_bwl_100()
|
||||||
|
{
|
||||||
|
char str[128];
|
||||||
|
|
||||||
|
devparms.chanbwlimit[devparms.activechannel] = 100;
|
||||||
|
|
||||||
|
sprintf(str, "Channel %i bandwidth limit: 100MHz", devparms.activechannel + 1);
|
||||||
|
|
||||||
|
statusLabel->setText(str);
|
||||||
|
|
||||||
|
sprintf(str, ":CHAN%i:BWL 100M", devparms.activechannel + 1);
|
||||||
|
|
||||||
|
set_cue_cmd(str);
|
||||||
|
|
||||||
|
updateLabels();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void UI_Mainwindow::chan_bwl_200()
|
||||||
|
{
|
||||||
|
char str[128];
|
||||||
|
|
||||||
|
devparms.chanbwlimit[devparms.activechannel] = 200;
|
||||||
|
|
||||||
|
sprintf(str, "Channel %i bandwidth limit: 200MHz", devparms.activechannel + 1);
|
||||||
|
|
||||||
|
statusLabel->setText(str);
|
||||||
|
|
||||||
|
sprintf(str, ":CHAN%i:BWL 200M", devparms.activechannel + 1);
|
||||||
|
|
||||||
|
set_cue_cmd(str);
|
||||||
|
|
||||||
|
updateLabels();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void UI_Mainwindow::chan_bwl_250()
|
void UI_Mainwindow::chan_bwl_250()
|
||||||
{
|
{
|
||||||
char str[128];
|
char str[128];
|
||||||
|
@ -3508,14 +3718,14 @@ void UI_Mainwindow::trigMenuButtonClicked()
|
||||||
{
|
{
|
||||||
submenusource.addAction("CH4", this, SLOT(trigger_source_ch4()));
|
submenusource.addAction("CH4", this, SLOT(trigger_source_ch4()));
|
||||||
}
|
}
|
||||||
if(devparms.modelserie == 6)
|
if(devparms.modelserie == 6 || devparms.modelserie == 4)
|
||||||
{
|
{
|
||||||
submenusource.addAction("EXT", this, SLOT(trigger_source_ext()));
|
submenusource.addAction("EXT", this, SLOT(trigger_source_ext()));
|
||||||
submenusource.addAction("EXT/ 5", this, SLOT(trigger_source_ext5()));
|
submenusource.addAction("EXT/ 5", this, SLOT(trigger_source_ext5()));
|
||||||
}
|
}
|
||||||
submenusource.addAction("AC Line", this, SLOT(trigger_source_acl()));
|
submenusource.addAction("AC Line", this, SLOT(trigger_source_acl()));
|
||||||
actionList = submenusource.actions();
|
actionList = submenusource.actions();
|
||||||
if(devparms.modelserie == 6)
|
if(devparms.modelserie == 6 || devparms.modelserie == 4)
|
||||||
{
|
{
|
||||||
for(i=0; i<7; i++)
|
for(i=0; i<7; i++)
|
||||||
{
|
{
|
||||||
|
@ -3661,7 +3871,7 @@ void UI_Mainwindow::trigger_source_acl()
|
||||||
|
|
||||||
statusLabel->setText("Trigger source AC powerline");
|
statusLabel->setText("Trigger source AC powerline");
|
||||||
|
|
||||||
if(devparms.modelserie == 6)
|
if(devparms.modelserie == 6 || devparms.modelserie == 4)
|
||||||
{
|
{
|
||||||
set_cue_cmd(":TRIG:EDG:SOUR ACL");
|
set_cue_cmd(":TRIG:EDG:SOUR ACL");
|
||||||
}
|
}
|
||||||
|
@ -3934,7 +4144,7 @@ void UI_Mainwindow::toggle_fft_unit()
|
||||||
|
|
||||||
void UI_Mainwindow::select_fft_ch1()
|
void UI_Mainwindow::select_fft_ch1()
|
||||||
{
|
{
|
||||||
if(devparms.modelserie != 6)
|
if(devparms.modelserie == 1)
|
||||||
{
|
{
|
||||||
set_cue_cmd(":MATH:FFT:SOUR CHAN1");
|
set_cue_cmd(":MATH:FFT:SOUR CHAN1");
|
||||||
}
|
}
|
||||||
|
@ -3947,7 +4157,7 @@ void UI_Mainwindow::select_fft_ch1()
|
||||||
|
|
||||||
void UI_Mainwindow::select_fft_ch2()
|
void UI_Mainwindow::select_fft_ch2()
|
||||||
{
|
{
|
||||||
if(devparms.modelserie != 6)
|
if(devparms.modelserie == 1)
|
||||||
{
|
{
|
||||||
set_cue_cmd(":MATH:FFT:SOUR CHAN2");
|
set_cue_cmd(":MATH:FFT:SOUR CHAN2");
|
||||||
}
|
}
|
||||||
|
@ -3960,7 +4170,7 @@ void UI_Mainwindow::select_fft_ch2()
|
||||||
|
|
||||||
void UI_Mainwindow::select_fft_ch3()
|
void UI_Mainwindow::select_fft_ch3()
|
||||||
{
|
{
|
||||||
if(devparms.modelserie != 6)
|
if(devparms.modelserie == 1)
|
||||||
{
|
{
|
||||||
set_cue_cmd(":MATH:FFT:SOUR CHAN3");
|
set_cue_cmd(":MATH:FFT:SOUR CHAN3");
|
||||||
}
|
}
|
||||||
|
@ -3973,7 +4183,7 @@ void UI_Mainwindow::select_fft_ch3()
|
||||||
|
|
||||||
void UI_Mainwindow::select_fft_ch4()
|
void UI_Mainwindow::select_fft_ch4()
|
||||||
{
|
{
|
||||||
if(devparms.modelserie != 6)
|
if(devparms.modelserie == 1)
|
||||||
{
|
{
|
||||||
set_cue_cmd(":MATH:FFT:SOUR CHAN4");
|
set_cue_cmd(":MATH:FFT:SOUR CHAN4");
|
||||||
}
|
}
|
||||||
|
|
|
@ -360,9 +360,14 @@ private slots:
|
||||||
void chan_coupling_gnd();
|
void chan_coupling_gnd();
|
||||||
void chan_bwl_off();
|
void chan_bwl_off();
|
||||||
void chan_bwl_20();
|
void chan_bwl_20();
|
||||||
|
void chan_bwl_100();
|
||||||
|
void chan_bwl_200();
|
||||||
void chan_bwl_250();
|
void chan_bwl_250();
|
||||||
void chan_invert_on();
|
void chan_invert_on();
|
||||||
void chan_invert_off();
|
void chan_invert_off();
|
||||||
|
void chan_probe_001();
|
||||||
|
void chan_probe_002();
|
||||||
|
void chan_probe_005();
|
||||||
void chan_probe_01();
|
void chan_probe_01();
|
||||||
void chan_probe_02();
|
void chan_probe_02();
|
||||||
void chan_probe_05();
|
void chan_probe_05();
|
||||||
|
@ -373,6 +378,9 @@ private slots:
|
||||||
void chan_probe_20();
|
void chan_probe_20();
|
||||||
void chan_probe_50();
|
void chan_probe_50();
|
||||||
void chan_probe_100();
|
void chan_probe_100();
|
||||||
|
void chan_probe_200();
|
||||||
|
void chan_probe_500();
|
||||||
|
void chan_probe_1000();
|
||||||
|
|
||||||
void chan_unit_v();
|
void chan_unit_v();
|
||||||
void chan_unit_w();
|
void chan_unit_w();
|
||||||
|
|
|
@ -233,7 +233,7 @@ void UI_playback_window::toggle_playback()
|
||||||
|
|
||||||
mainwindow->statusLabel->setText("Recording enabled");
|
mainwindow->statusLabel->setText("Recording enabled");
|
||||||
|
|
||||||
if(devparms->modelserie != 6)
|
if(devparms->modelserie != 6 && devparms->modelserie != 4)
|
||||||
{
|
{
|
||||||
mainwindow->set_cue_cmd(":FUNC:WREC:ENAB ON");
|
mainwindow->set_cue_cmd(":FUNC:WREC:ENAB ON");
|
||||||
}
|
}
|
||||||
|
|
|
@ -2063,6 +2063,7 @@ void read_settings_thread::run()
|
||||||
goto GDS_OUT_ERROR;
|
goto GDS_OUT_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//FIXME DEC1:UART:BAUD? can return also "USER" instead of a number!
|
||||||
devparms->math_decode_uart_baud = atoi(device->buf);
|
devparms->math_decode_uart_baud = atoi(device->buf);
|
||||||
|
|
||||||
usleep(TMC_GDS_DELAY);
|
usleep(TMC_GDS_DELAY);
|
||||||
|
|
|
@ -344,10 +344,14 @@ void SignalCurve::drawWidget(QPainter *painter, int curve_w, int curve_h)
|
||||||
{
|
{
|
||||||
v_sense = -((double)curve_h / 256.0);
|
v_sense = -((double)curve_h / 256.0);
|
||||||
}
|
}
|
||||||
else
|
else if(devparms->modelserie == 4)
|
||||||
{
|
{
|
||||||
v_sense = -((double)curve_h / (25.0 * devparms->vertdivisions));
|
v_sense = -((double)curve_h / (32.0 * devparms->vertdivisions));
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
v_sense = -((double)curve_h / (25.0 * devparms->vertdivisions));
|
||||||
|
}
|
||||||
|
|
||||||
drawTrigCenterArrow(painter, curve_w / 2, 0);
|
drawTrigCenterArrow(painter, curve_w / 2, 0);
|
||||||
|
|
||||||
|
@ -796,7 +800,7 @@ void SignalCurve::drawFFT(QPainter *painter, int curve_h_b, int curve_w_b)
|
||||||
h_step *= (100.0 / devparms->timebasescale) / devparms->math_fft_hscale;
|
h_step *= (100.0 / devparms->timebasescale) / devparms->math_fft_hscale;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(devparms->modelserie == 6)
|
if(devparms->modelserie == 6 || devparms->modelserie == 4)
|
||||||
{
|
{
|
||||||
h_step /= 28.0;
|
h_step /= 28.0;
|
||||||
}
|
}
|
||||||
|
@ -2322,7 +2326,7 @@ void SignalCurve::draw_decoder(QPainter *painter, int dw, int dh)
|
||||||
char str[256];
|
char str[256];
|
||||||
|
|
||||||
|
|
||||||
if(devparms->modelserie == 6)
|
if(devparms->modelserie == 6 || devparms->modelserie == 4)
|
||||||
{
|
{
|
||||||
base_line = (dh / 2) - (((double)dh / 400.0) * devparms->math_decode_pos);
|
base_line = (dh / 2) - (((double)dh / 400.0) * devparms->math_decode_pos);
|
||||||
}
|
}
|
||||||
|
|
|
@ -92,6 +92,12 @@ void UI_Mainwindow::adjdial_timer_handler()
|
||||||
{
|
{
|
||||||
usleep(20000);
|
usleep(20000);
|
||||||
|
|
||||||
|
set_cue_cmd(":DISP:CLE");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
usleep(20000);
|
||||||
|
|
||||||
set_cue_cmd(":CLE");
|
set_cue_cmd(":CLE");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -966,7 +966,7 @@ void WaveCurve::draw_decoder(QPainter *painter, int dw, int dh)
|
||||||
sample_end = bufsize;
|
sample_end = bufsize;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(devparms->modelserie == 6)
|
if(devparms->modelserie == 6 || devparms->modelserie == 4)
|
||||||
{
|
{
|
||||||
base_line = (dh / 2) - (((double)dh / 400.0) * devparms->math_decode_pos);
|
base_line = (dh / 2) - (((double)dh / 400.0) * devparms->math_decode_pos);
|
||||||
}
|
}
|
||||||
|
|
Ładowanie…
Reference in New Issue