Work in progress.

merge-requests/1/head
Teuniz 2015-06-02 09:54:41 +02:00
rodzic 08d99c7f31
commit 2bf709b09f
4 zmienionych plików z 57 dodań i 4 usunięć

Wyświetl plik

@ -25,6 +25,7 @@ HEADERS += tmc_dev.h
HEADERS += tled.h
HEADERS += edflib.h
HEADERS += signalcurve.h
HEADERS += select_device_dialog.h
SOURCES += main.cpp
SOURCES += mainwindow.cpp
@ -37,6 +38,7 @@ SOURCES += tmc_dev.c
SOURCES += tled.cpp
SOURCES += edflib.c
SOURCES += signalcurve.cpp
SOURCES += select_device_dialog.cpp
RESOURCES = images.qrc

Wyświetl plik

@ -75,6 +75,9 @@ struct device_settings
{
int connected;
char modelname[128];
char serialnr[128];
char softwvers[128];
double samplerate; // Samplefrequency
int memdepth; // Number of waveform points that the oscilloscope can store in a single trigger sample
int channel_cnt; // Device has 2 or 4 channels

Wyświetl plik

@ -55,6 +55,10 @@ UI_Mainwindow::UI_Mainwindow()
setlocale(LC_NUMERIC, "C");
QCoreApplication::setOrganizationName("TvB");
QCoreApplication::setOrganizationDomain("teuniz.net");
QCoreApplication::setApplicationName(PROGRAM_NAME);
memset(&devparms, 0, sizeof(struct device_settings));
devparms.screenshot_buf = (char *)malloc(1024 * 1024 * 2);
@ -70,8 +74,7 @@ UI_Mainwindow::UI_Mainwindow()
devicemenu->setTitle("Device");
devicemenu->addAction("Connect", this, SLOT(open_connection()));
devicemenu->addAction("Disconnect", this, SLOT(close_connection()));
// devicemenu->addAction("Save waveform", this, SLOT(save_waveform()));
// devicemenu->addAction("Save screenshot", this, SLOT(save_screenshot()));
devicemenu->addAction("Select", this, SLOT(select_device()));
devicemenu->addAction("Exit", this, SLOT(close()), QKeySequence::Quit);
menubar->addMenu(devicemenu);
@ -396,20 +399,37 @@ UI_Mainwindow::~UI_Mainwindow()
}
void UI_Mainwindow::select_device()
{
UI_select_device_window sel_device;
}
void UI_Mainwindow::open_connection()
{
int n;
char str[1024],
dev_str[128] = {"/dev/usbtmc0"},
dev_str[128] = {""},
resp_str[1024],
*ptr;
QSettings settings;
if(device != NULL)
{
return;
}
strcpy(dev_str, settings.value("connection/device").toString().toLocal8Bit().data());
if(!strcmp(dev_str, ""))
{
strcpy(dev_str, "/dev/usbtmc0");
settings.setValue("connection/device", dev_str);
}
device = tmcdev_open(dev_str);
if(device == NULL)
{
@ -473,6 +493,26 @@ void UI_Mainwindow::open_connection()
goto OUT_ERROR;
}
ptr = strtok(NULL, ",");
if(ptr == NULL)
{
snprintf(str, 1024, "Received an unknown identification string from device:\n\n%s\n ", device->buf);
str[1023] = 0;
goto OUT_ERROR;
}
strcpy(devparms.serialnr, ptr);
ptr = strtok(NULL, ",");
if(ptr == NULL)
{
snprintf(str, 1024, "Received an unknown identification string from device:\n\n%s\n ", device->buf);
str[1023] = 0;
goto OUT_ERROR;
}
strcpy(devparms.softwvers, ptr);
if(strncmp(devparms.modelname, "DS6", 3))
{
QMessageBox msgBox;
@ -553,6 +593,10 @@ void UI_Mainwindow::open_connection()
connect(trigAdjustDial, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(trigAdjustDialClicked(QPoint)));
connect(adjDial, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(adjustDialClicked(QPoint)));
sprintf(str, PROGRAM_NAME " " PROGRAM_VERSION " %s %s", devparms.serialnr, devparms.softwvers);
setWindowTitle(str);
statusLabel->setText("Connected");
devparms.connected = 1;
@ -594,6 +638,8 @@ void UI_Mainwindow::close_connection()
adjdial_timer->stop();
setWindowTitle(PROGRAM_NAME " " PROGRAM_VERSION);
disconnect(adjDial, SIGNAL(valueChanged(int)), this, SLOT(adjDialChanged(int)));
disconnect(trigAdjustDial, SIGNAL(valueChanged(int)), this, SLOT(trigAdjustDialChanged(int)));
disconnect(horScaleDial, SIGNAL(valueChanged(int)), this, SLOT(horScaleDialChanged(int)));
@ -1896,4 +1942,3 @@ void UI_Mainwindow::get_device_model(const char *str)

Wyświetl plik

@ -59,6 +59,7 @@
#include <QMessageBox>
#include <QPoint>
#include <QDial>
#include <QSettings>
#include <stdio.h>
#include <stdlib.h>
@ -75,6 +76,7 @@
#include "tled.h"
#include "edflib.h"
#include "signalcurve.h"
#include "select_device_dialog.h"
@ -202,6 +204,7 @@ private slots:
void show_about_dialog();
void open_connection();
void close_connection();
void select_device();
int get_device_settings();
void save_waveform();
void save_screenshot();