Commit f15aa50d authored by DreamSourceLab's avatar DreamSourceLab

Improve usb transfer and othre minor issues

parent 4cc02c8d
......@@ -93,6 +93,7 @@ find_package(Threads)
find_package(Boost 1.42 COMPONENTS filesystem system thread REQUIRED)
find_package(libusb-1.0 REQUIRED)
find_package(FFTW REQUIRED)
#===============================================================================
#= Config Header
......@@ -118,107 +119,147 @@ configure_file (
#-------------------------------------------------------------------------------
set(DSView_SOURCES
main.cpp
pv/devicemanager.cpp
pv/mainwindow.cpp
pv/sigsession.cpp
pv/storesession.cpp
pv/data/analog.cpp
pv/data/analogsnapshot.cpp
pv/data/dso.cpp
pv/data/dsosnapshot.cpp
pv/data/group.cpp
pv/data/groupsnapshot.cpp
pv/data/logic.cpp
pv/data/logicsnapshot.cpp
pv/data/signaldata.cpp
pv/data/snapshot.cpp
pv/device/devinst.cpp
pv/device/device.cpp
pv/device/file.cpp
pv/device/inputfile.cpp
pv/device/sessionfile.cpp
pv/dialogs/about.cpp
pv/dialogs/deviceoptions.cpp
pv/dialogs/search.cpp
pv/dialogs/storeprogress.cpp
pv/dialogs/streamoptions.cpp
pv/dialogs/waitingdialog.cpp
pv/dialogs/dsomeasure.cpp
pv/dock/dsotriggerdock.cpp
pv/dock/measuredock.cpp
pv/dock/searchdock.cpp
pv/dock/triggerdock.cpp
pv/prop/bool.cpp
pv/prop/double.cpp
pv/prop/enum.cpp
pv/prop/int.cpp
pv/prop/property.cpp
pv/prop/string.cpp
pv/prop/binding/binding.cpp
pv/prop/binding/binding_deviceoptions.cpp
pv/toolbars/filebar.cpp
pv/toolbars/logobar.cpp
pv/toolbars/samplingbar.cpp
pv/toolbars/trigbar.cpp
pv/view/analogsignal.cpp
pv/view/cursor.cpp
pv/view/devmode.cpp
pv/view/dsldial.cpp
pv/view/dsosignal.cpp
pv/view/groupsignal.cpp
pv/view/header.cpp
pv/view/logicsignal.cpp
pv/view/ruler.cpp
pv/view/selectableitem.cpp
pv/view/signal.cpp
pv/view/timemarker.cpp
pv/view/trace.cpp
pv/view/view.cpp
pv/view/viewport.cpp
pv/widgets/fakelineedit.cpp
main.cpp
pv/sigsession.cpp
pv/mainwindow.cpp
pv/devicemanager.cpp
pv/data/snapshot.cpp
pv/data/signaldata.cpp
pv/data/logicsnapshot.cpp
pv/data/logic.cpp
pv/data/analogsnapshot.cpp
pv/data/analog.cpp
pv/dialogs/deviceoptions.cpp
pv/prop/property.cpp
pv/prop/int.cpp
pv/prop/enum.cpp
pv/prop/double.cpp
pv/prop/bool.cpp
pv/prop/binding/binding.cpp
pv/toolbars/samplingbar.cpp
pv/view/viewport.cpp
pv/view/view.cpp
pv/view/timemarker.cpp
pv/view/signal.cpp
pv/view/ruler.cpp
pv/view/logicsignal.cpp
pv/view/header.cpp
pv/view/cursor.cpp
pv/view/analogsignal.cpp
pv/prop/binding/binding_deviceoptions.cpp
pv/toolbars/trigbar.cpp
pv/toolbars/filebar.cpp
pv/dock/protocoldock.cpp
pv/dock/triggerdock.cpp
pv/dock/measuredock.cpp
pv/dock/searchdock.cpp
pv/toolbars/logobar.cpp
pv/data/groupsnapshot.cpp
pv/view/groupsignal.cpp
pv/data/group.cpp
pv/dialogs/about.cpp
pv/dialogs/search.cpp
pv/data/dsosnapshot.cpp
pv/data/dso.cpp
pv/view/dsosignal.cpp
pv/view/dsldial.cpp
pv/dock/dsotriggerdock.cpp
pv/view/trace.cpp
pv/view/selectableitem.cpp
pv/data/decoderstack.cpp
pv/data/decode/rowdata.cpp
pv/data/decode/row.cpp
pv/data/decode/decoder.cpp
pv/data/decode/annotation.cpp
pv/view/decodetrace.cpp
pv/prop/binding/decoderoptions.cpp
pv/widgets/fakelineedit.cpp
pv/widgets/decodermenu.cpp
pv/widgets/decodergroupbox.cpp
pv/prop/string.cpp
pv/device/sessionfile.cpp
pv/device/inputfile.cpp
pv/device/file.cpp
pv/device/devinst.cpp
pv/dialogs/storeprogress.cpp
pv/storesession.cpp
pv/view/devmode.cpp
pv/device/device.cpp
pv/dialogs/waitingdialog.cpp
pv/dialogs/dsomeasure.cpp
pv/dialogs/calibration.cpp
pv/data/decodermodel.cpp
pv/dialogs/protocollist.cpp
pv/dialogs/protocolexp.cpp
pv/dialogs/fftoptions.cpp
pv/data/mathstack.cpp
pv/view/mathtrace.cpp
dsapplication.cpp
pv/widgets/viewstatus.cpp
pv/toolbars/titlebar.cpp
pv/mainframe.cpp
pv/widgets/border.cpp
pv/dialogs/dsmessagebox.cpp
pv/dialogs/shadow.cpp
pv/dialogs/dsdialog.cpp
)
set(DSView_HEADERS
pv/mainwindow.h
pv/sigsession.h
pv/storesession.h
pv/device/devinst.h
pv/dialogs/about.h
pv/dialogs/deviceoptions.h
pv/dialogs/search.h
pv/dialogs/storeprogress.h
pv/dialogs/streamoptions.h
pv/dialogs/waitingdialog.h
pv/dialogs/dsomeasure.h
pv/dock/dsotriggerdock.h
pv/dock/measuredock.h
pv/dock/searchdock.h
pv/dock/triggerdock.h
pv/prop/bool.h
pv/prop/double.h
pv/prop/enum.h
pv/prop/int.h
pv/prop/property.h
pv/prop/string.h
pv/toolbars/filebar.h
pv/toolbars/logobar.h
pv/toolbars/samplingbar.h
pv/toolbars/trigbar.h
pv/view/cursor.h
pv/view/devmode.h
pv/view/header.h
pv/view/ruler.h
pv/view/selectableitem.h
pv/view/timemarker.h
pv/view/trace.h
pv/view/view.h
pv/view/viewport.h
pv/widgets/fakelineedit.h
pv/sigsession.h
pv/mainwindow.h
pv/dialogs/deviceoptions.h
pv/prop/property.h
pv/prop/int.h
pv/prop/enum.h
pv/prop/double.h
pv/prop/bool.h
pv/toolbars/samplingbar.h
pv/view/viewport.h
pv/view/view.h
pv/view/timemarker.h
pv/view/ruler.h
pv/view/header.h
pv/view/cursor.h
pv/toolbars/trigbar.h
pv/toolbars/filebar.h
pv/dock/protocoldock.h
pv/dock/triggerdock.h
pv/dock/measuredock.h
pv/dock/searchdock.h
pv/toolbars/logobar.h
pv/dialogs/about.h
pv/dialogs/search.h
pv/dock/dsotriggerdock.h
pv/view/trace.h
pv/view/selectableitem.h
pv/data/decoderstack.h
pv/view/decodetrace.h
pv/widgets/fakelineedit.h
pv/widgets/decodermenu.h
pv/widgets/decodergroupbox.h
pv/prop/string.h
pv/device/devinst.h
pv/dialogs/storeprogress.h
pv/storesession.h
pv/view/devmode.h
pv/dialogs/waitingdialog.h
pv/dialogs/dsomeasure.h
pv/dialogs/calibration.h
pv/dialogs/protocollist.h
pv/dialogs/protocolexp.h
pv/dialogs/fftoptions.h
pv/data/mathstack.h
pv/view/mathtrace.h
pv/widgets/viewstatus.h
pv/toolbars/titlebar.h
pv/mainframe.h
pv/widgets/border.h
pv/dialogs/dsmessagebox.h
pv/dialogs/shadow.h
pv/dialogs/dsdialog.h
)
set(DSView_FORMS
pv/dialogs/about.ui
)
set(DSView_RESOURCES
......@@ -310,6 +351,7 @@ set(DSVIEW_LINK_LIBS
${CMAKE_THREAD_LIBS_INIT}
${QT_LIBRARIES}
${LIBUSB_1_LIBRARIES}
${FFTW_LIBRARIES}
)
if(STATIC_PKGDEPS_LIBS)
......
......@@ -662,7 +662,7 @@ QAbstractSpinBox {
background-color: #201F1F;
color: silver;
border-radius: 2px;
min-width: 50px;
min-width: 60px;
}
QAbstractSpinBox:up-button
......
......@@ -137,7 +137,7 @@ int main(int argc, char *argv[])
// Initialise the main frame
pv::MainFrame w(device_manager, open_file);
//QFile qss(":/stylesheet.qss");
QFile qss(":qdarkstyle/style.qss");
QFile qss(":darkstyle/style.qss");
qss.open(QFile::ReadOnly);
a.setStyleSheet(qss.readAll());
qss.close();
......
......@@ -117,7 +117,7 @@ void DecoderStack::remove(boost::shared_ptr<Decoder> &decoder)
{
// Find the decoder in the stack
list< shared_ptr<Decoder> >::iterator iter = _stack.begin();
for(int i = 0; i < _stack.size(); i++, iter++)
for(unsigned int i = 0; i < _stack.size(); i++, iter++)
if ((*iter) == decoder)
break;
......@@ -285,7 +285,6 @@ uint64_t DecoderStack::list_annotation_size() const
{
lock_guard<boost::recursive_mutex> lock(_output_mutex);
uint64_t max_annotation_size = 0;
int row = 0;
for (map<const Row, RowData>::const_iterator i = _rows.begin();
i != _rows.end(); i++) {
map<const Row, bool>::const_iterator iter = _rows_lshow.find((*i).first);
......@@ -316,7 +315,6 @@ bool DecoderStack::list_annotation(pv::data::decode::Annotation &ann,
uint16_t row_index, uint64_t col_index) const
{
//lock_guard<mutex> lock(_output_mutex);
int row = 0;
for (map<const Row, RowData>::const_iterator i = _rows.begin();
i != _rows.end(); i++) {
map<const Row, bool>::const_iterator iter = _rows_lshow.find((*i).first);
......@@ -334,7 +332,6 @@ bool DecoderStack::list_annotation(pv::data::decode::Annotation &ann,
bool DecoderStack::list_row_title(int row, QString &title) const
{
//lock_guard<mutex> lock(_output_mutex);
int index = 0;
for (map<const Row, RowData>::const_iterator i = _rows.begin();
i != _rows.end(); i++) {
map<const Row, bool>::const_iterator iter = _rows_lshow.find((*i).first);
......@@ -574,8 +571,8 @@ void DecoderStack::decode_proc()
optional<uint64_t> sample_count;
srd_session *session;
srd_decoder_inst *prev_di = NULL;
uint64_t decode_start;
uint64_t decode_end;
uint64_t decode_start = 0;
uint64_t decode_end = 0;
assert(_snapshot);
......@@ -726,7 +723,6 @@ int DecoderStack::list_rows_size()
{
//lock_guard<mutex> lock(_output_mutex);
int rows_size = 0;
int row = 0;
for (map<const Row, RowData>::const_iterator i = _rows.begin();
i != _rows.end(); i++) {
map<const Row, bool>::const_iterator iter = _rows_lshow.find((*i).first);
......
......@@ -32,9 +32,9 @@
#include <QObject>
#include <QString>
#include <../data/decode/row.h>
#include <../data/decode/rowdata.h>
#include <../data/signaldata.h>
#include "../data/decode/row.h"
#include "../data/decode/rowdata.h"
#include "../data/signaldata.h"
namespace DecoderStackTest {
class TwoDecoderStack;
......
......@@ -166,7 +166,7 @@ void DsoSnapshot::enable_envelope(bool enable)
const uint8_t *DsoSnapshot::get_samples(
int64_t start_sample, int64_t end_sample, uint16_t index) const
{
(void)end_sample;
(void)end_sample;
assert(start_sample >= 0);
assert(start_sample < (int64_t)get_sample_count());
......@@ -202,9 +202,9 @@ void DsoSnapshot::get_envelope_section(EnvelopeSection &s,
s.start = start << scale_power;
s.scale = 1 << scale_power;
//if (_envelope_levels[probe_index][min_level].length < get_sample_count() / EnvelopeScaleFactor)
// s.length = 0;
//else
if (_envelope_levels[probe_index][min_level].length == 0)
s.length = 0;
else
s.length = end - start;
// s.samples = new EnvelopeSample[s.length];
// memcpy(s.samples, _envelope_levels[min_level].samples + start,
......
......@@ -205,7 +205,7 @@ void MathStack::calc_fft()
const uint16_t step = _snapshot->get_channel_num() * _sample_interval;
const uint8_t *const samples = _snapshot->get_samples(0, _sample_num*_sample_interval-1, _index);
double wsum = 0;
for (int i = 0; i < _sample_num; i++) {
for (unsigned int i = 0; i < _sample_num; i++) {
double w = window(i, _windows_index);
_xn[i] = ((double)samples[i*step] - offset) * vscale * w;
wsum += w;
......@@ -216,7 +216,7 @@ void MathStack::calc_fft()
// calculate power spectrum
_power_spectrum[0] = abs(_xk[0])/wsum; /* DC component */
for (int k = 1; k < (_sample_num + 1) / 2; ++k) /* (k < N/2 rounded up) */
for (unsigned int k = 1; k < (_sample_num + 1) / 2; ++k) /* (k < N/2 rounded up) */
_power_spectrum[k] = sqrt((_xk[k]*_xk[k] + _xk[_sample_num-k]*_xk[_sample_num-k]) * 2) / wsum;
if (_sample_num % 2 == 0) /* N is even */
_power_spectrum[_sample_num/2] = abs(_xk[_sample_num/2])/wsum; /* Nyquist freq. */
......
......@@ -44,14 +44,14 @@ sr_dev_inst* Device::dev_inst() const
void Device::use(SigSession *owner) throw(QString)
{
DevInst::use(owner);
DevInst::use(owner);
sr_session_new();
sr_session_new();
assert(_sdi);
sr_dev_open(_sdi);
if (sr_session_dev_add(_sdi) != SR_OK)
throw QString(tr("Failed to use device."));
assert(_sdi);
sr_dev_open(_sdi);
if (sr_session_dev_add(_sdi) != SR_OK)
throw QString(tr("Failed to use device."));
}
void Device::release()
......
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>About</class>
<widget class="QDialog" name="About">
<property name="windowModality">
<enum>Qt::WindowModal</enum>
</property>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>600</width>
<height>320</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>600</width>
<height>320</height>
</size>
</property>
<property name="windowTitle">
<string>About</string>
</property>
<property name="whatsThis">
<string/>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QLabel" name="icon">
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="../../DSView.qrc">:/icons/dsl_logo.png</pixmap>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="versionInfo">
<property name="text">
<string/>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="standardButtons">
<set>QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources>
<include location="../../DSView.qrc"/>
</resources>
<connections/>
</ui>
......@@ -98,8 +98,8 @@ void Calibration::set_device(boost::shared_ptr<device::DevInst> dev_inst)
sr_channel *const probe = (sr_channel*)l->data;
assert(probe);
uint64_t vgain, vgain_default;
uint16_t vgain_range;
uint64_t vgain = 0, vgain_default = 0;
uint16_t vgain_range = 0;
GVariant* gvar = _dev_inst->get_config(probe, NULL, SR_CONF_VGAIN);
if (gvar != NULL) {
vgain = g_variant_get_uint64(gvar);
......@@ -126,18 +126,13 @@ void Calibration::set_device(boost::shared_ptr<device::DevInst> dev_inst)
_slider_list.push_back(gain_slider);
_label_list.push_back(gain_label);
uint64_t voff, voff_default;
uint16_t voff_range;
uint64_t voff = 0;
uint16_t voff_range = 0;
gvar = _dev_inst->get_config(probe, NULL, SR_CONF_VOFF);
if (gvar != NULL) {
voff = g_variant_get_uint16(gvar);
g_variant_unref(gvar);
}
gvar = _dev_inst->get_config(probe, NULL, SR_CONF_VOFF_DEFAULT);
if (gvar != NULL) {
voff_default = g_variant_get_uint16(gvar);
g_variant_unref(gvar);
}
gvar = _dev_inst->get_config(probe, NULL, SR_CONF_VOFF_RANGE);
if (gvar != NULL) {
voff_range = g_variant_get_uint16(gvar);
......@@ -204,10 +199,10 @@ void Calibration::on_save()
this->hide();
QFuture<void> future;
future = QtConcurrent::run([&]{
QTime dieTime = QTime::currentTime().addSecs(1);
//QTime dieTime = QTime::currentTime().addSecs(1);
_dev_inst->set_config(NULL, NULL, SR_CONF_ZERO_SET,
g_variant_new_boolean(true));
while( QTime::currentTime() < dieTime );
//while( QTime::currentTime() < dieTime );
});
Qt::WindowFlags flags = Qt::CustomizeWindowHint;
QProgressDialog dlg(tr("Save Calibration Result... It can take a while."),
......@@ -229,11 +224,11 @@ void Calibration::on_reset()
this->hide();
QFuture<void> future;
future = QtConcurrent::run([&]{
QTime dieTime = QTime::currentTime().addSecs(1);
//QTime dieTime = QTime::currentTime().addSecs(1);
_dev_inst->set_config(NULL, NULL, SR_CONF_ZERO_LOAD,
g_variant_new_boolean(true));
reload_value();
while( QTime::currentTime() < dieTime );
//while( QTime::currentTime() < dieTime );
});
Qt::WindowFlags flags = Qt::CustomizeWindowHint;
QProgressDialog dlg(tr("Reset Calibration Result... It can take a while."),
......@@ -256,8 +251,8 @@ void Calibration::reload_value()
sr_channel *const probe = (sr_channel*)l->data;
assert(probe);
uint64_t vgain, vgain_default;
uint16_t vgain_range;
uint64_t vgain = 0, vgain_default = 0;
uint16_t vgain_range = 0;
GVariant* gvar = _dev_inst->get_config(probe, NULL, SR_CONF_VGAIN);
if (gvar != NULL) {
vgain = g_variant_get_uint64(gvar);
......@@ -274,8 +269,8 @@ void Calibration::reload_value()
g_variant_unref(gvar);
}
uint64_t voff;
uint16_t voff_range;
uint64_t voff = 0;
uint16_t voff_range = 0;
gvar = _dev_inst->get_config(probe, NULL, SR_CONF_VOFF);
if (gvar != NULL) {
voff = g_variant_get_uint16(gvar);
......
......@@ -62,6 +62,7 @@ void DSDialog::reject()
bool DSDialog::eventFilter(QObject *object, QEvent *event)
{
(void)object;
const QEvent::Type type = event->type();
const QMouseEvent *const mouse_event = (QMouseEvent*)event;
if (type == QEvent::MouseMove) {
......
......@@ -83,6 +83,7 @@ void DSMessageBox::reject()
bool DSMessageBox::eventFilter(QObject *object, QEvent *event)
{
(void)object;
const QEvent::Type type = event->type();
const QMouseEvent *const mouse_event = (QMouseEvent*)event;
if (type == QEvent::MouseMove) {
......
......@@ -43,7 +43,7 @@ DsoMeasure::DsoMeasure(QWidget *parent, boost::shared_ptr<DsoSignal> dsoSig) :
{
setMinimumWidth(300);
for (int i=DsoSignal::DSO_MS_BEGIN+1; i<DsoSignal::DSO_MS_END; i++) {
for (int i=DSO_MS_BEGIN+1; i<DSO_MS_END; i++) {
QCheckBox *checkBox = new QCheckBox(_dsoSig->get_ms_string(i), this);
checkBox->setProperty("id", QVariant(i));
checkBox->setChecked(dsoSig->get_ms_en(i));
......
......@@ -90,12 +90,12 @@ FftOptions::FftOptions(QWidget *parent, SigSession &session) :
assert(length.size() > 0);
assert(view_modes.size() > 0);
assert(dbv_ranges.size() > 0);
for (int i = 0; i < windows.size(); i++)
for (unsigned int i = 0; i < windows.size(); i++)
{
_window_combobox->addItem(windows[i],
qVariantFromValue(i));
}
for (int i = 0; i < length.size(); i++)
for (unsigned int i = 0; i < length.size(); i++)
{
if (length[i] < _sample_limit)
_len_combobox->addItem(QString::number(length[i]),
......@@ -112,14 +112,14 @@ FftOptions::FftOptions(QWidget *parent, SigSession &session) :
_interval_combobox->addItem(QString::number(i),
qVariantFromValue(i));
}
for (int i = 0; i < view_modes.size(); i++)
for (unsigned int i = 0; i < view_modes.size(); i++)
{
_view_combobox->addItem(view_modes[i],
qVariantFromValue(i));
}