Hello,
thank you, it's working now.
I wrote a smal Test app, and I you copied the code from one QSerialDevice Test app.
But the programm crashes everytime I start it, because theres something wrong. The debugger shows me the qmap.h file in line 813:
template <class Key, class T>
Q_OUTOFLINE_TEMPLATE QList<Key> QMap<Key, T>::keys() const
{
QList<Key> res;
res.reserve(size());
const_iterator i = begin();
while (i != end()) {
res.append(i.key());
++i;
}
return res;
}
template <class Key, class T>
Q_OUTOFLINE_TEMPLATE QList<Key> QMap<Key, T>::keys() const
{
QList<Key> res;
res.reserve(size());
const_iterator i = begin();
while (i != end()) {
res.append(i.key());
++i;
}
return res;
}
To copy to clipboard, switch view to plain text mode
Here is my code:
main.cpp
#include <QtGui/QApplication>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
MainWindow w;
w.show();
return a.exec();
}
#include <QtGui/QApplication>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
To copy to clipboard, switch view to plain text mode
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include "serialdeviceenumerator.h"
#include "abstractserial.h"
class AbstractSerial;
class SerialDeviceEnumerator;
namespace Ui {
class MainWindow;
}
{
Q_OBJECT
public:
explicit MainWindow
(QWidget *parent
= 0);
~MainWindow();
private:
Ui::MainWindow *ui;
SerialDeviceEnumerator *enumerator;
AbstractSerial *serial;
//Inits
//void initEnumerator();
//void deinitEnumerator();
//void initSerial();
public slots:
//void procSerialMessages(const QString &msg, QDateTime dt);
//void procSerialDataReceive();
};
#endif // MAINWINDOW_H
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include "serialdeviceenumerator.h"
#include "abstractserial.h"
class AbstractSerial;
class SerialDeviceEnumerator;
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
SerialDeviceEnumerator *enumerator;
AbstractSerial *serial;
//Inits
//void initEnumerator();
//void deinitEnumerator();
//void initSerial();
public slots:
void procEnumerate(const QStringList &l);
//void procSerialMessages(const QString &msg, QDateTime dt);
//void procSerialDataReceive();
};
#endif // MAINWINDOW_H
To copy to clipboard, switch view to plain text mode
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow
::MainWindow(QWidget *parent
) : ui(new Ui::MainWindow)
{
ui->setupUi(this);
//Enumerator
if(!this->enumerator)
this->enumerator = SerialDeviceEnumerator::instance();
this->procEnumerate(this->enumerator->devicesAvailable());
}
MainWindow::~MainWindow()
{
delete ui;
}
//Slots
{
// Fill ports box.
ui->comboBox_Port->clear();
ui->comboBox_Port->addItems(l);
}
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//Enumerator
if(!this->enumerator)
this->enumerator = SerialDeviceEnumerator::instance();
connect(this->enumerator,SIGNAL(hasChanged(QStringList)),this,SLOT(procEnumerate(QStringList)));
this->procEnumerate(this->enumerator->devicesAvailable());
}
MainWindow::~MainWindow()
{
delete ui;
}
//Slots
void MainWindow::procEnumerate(const QStringList &l)
{
// Fill ports box.
ui->comboBox_Port->clear();
ui->comboBox_Port->addItems(l);
}
To copy to clipboard, switch view to plain text mode
I think there is an fault with a QList, but I can't find my fault.
M
Greeting
Philipp
P.s. I forgot the .pro file:
QT += core gui
TARGET = Autorino_GUI_0_1_Beta
TEMPLATE = app
include(qserialdeviceenumerator/qserialdeviceenumerator.pri)
include(qserialdevice/qserialdevice.pri)
SOURCES += main.cpp\
mainwindow.cpp
HEADERS += mainwindow.h
FORMS += mainwindow.ui
win32 {
LIBS += -lsetupapi -luuid -ladvapi32
}
unix:!macx {
LIBS += -ludev
}
QT += core gui
TARGET = Autorino_GUI_0_1_Beta
TEMPLATE = app
include(qserialdeviceenumerator/qserialdeviceenumerator.pri)
include(qserialdevice/qserialdevice.pri)
SOURCES += main.cpp\
mainwindow.cpp
HEADERS += mainwindow.h
FORMS += mainwindow.ui
win32 {
LIBS += -lsetupapi -luuid -ladvapi32
}
unix:!macx {
LIBS += -ludev
}
To copy to clipboard, switch view to plain text mode
Added after 1 23 minutes:
Sorry for doublepost, I tryed to safe this->enumerator->serialDevicesAvailable() in a QStringList, but there is also the same error.
//connect(this->enumerator,SIGNAL(hasChanged(QStringList)),this,SLOT(procEnumerate(QStringList)));
//this->procEnumerate(this->enumerator->devicesAvailable());
QStringList qsl
= this
->enumerator
->devicesAvailable
();
//connect(this->enumerator,SIGNAL(hasChanged(QStringList)),this,SLOT(procEnumerate(QStringList)));
//this->procEnumerate(this->enumerator->devicesAvailable());
QStringList qsl = this->enumerator->devicesAvailable();
To copy to clipboard, switch view to plain text mode
Greetings
Philipp
Bookmarks