Seite 1 von 1

QSerial Port

Verfasst: 6. November 2014 19:44
von puppetClon
Guten Tag,

ich brauche mal eure Hilfe.

1. Frage
Wo finde ich die Namen für die Ports auf Mac? Also die, die bei Windows com4 usw. heißen.

2. Frage

Mit folgender Funktion möchte ich den Serial Port öffnen und testen.

Code: Alles auswählen

void Motorsteuerung::openSerialPort()
{
    serial->open(QIODevice::ReadWrite);

    serial->setPortName("com3");
    serial->setBaudRate(QSerialPort::Baud9600);
    serial->setDataBits(QSerialPort::Data8);
    serial->setParity(QSerialPort::NoParity);
    serial->setStopBits(QSerialPort::OneStop);
    serial->setFlowControl(QSerialPort::NoFlowControl);
    serial->write("OK");
}
Wenn ich nun die Funktion hier öffnen will

Code: Alles auswählen

Motorsteuerung::Motorsteuerung(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::Motorsteuerung)
{
    ui->setupUi(this);
    openSerialPort();
Stürzt Qt komplett ab...woran liegt das?

Re: QSerial Port

Verfasst: 6. November 2014 19:50
von Christian81
Für die im System vorhandenen Ports gibt es die Funktion QSerialPortInfo::availablePorts() - siehe auch http://qt-project.org/wiki/QtSerialPort ... 50906f5913

Und wenn es abstürzt hast Du was falsch gemacht - in deinem Fall sieht es nach C++ - Grundlagen aus. Wo wird die Variable 'serial' initialisiert?

Re: QSerial Port

Verfasst: 6. November 2014 19:57
von puppetClon
Hey,

danke für die schnelle Antwort.


Habe mein Problem vorerst gelöst. Für alle....

Header

Code: Alles auswählen

private:
    Ui::Motorsteuerung *ui;
    QSerialPort *RS232;
Motorsteuerung.cpp

Code: Alles auswählen

Motorsteuerung::Motorsteuerung(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::Motorsteuerung)
{
    ui->setupUi(this);
    RS232 = new QSerialPort(this);
    openSerialPort();

Die Funktion

Code: Alles auswählen

void Motorsteuerung::openSerialPort()
{
    this->RS232->open(QIODevice::ReadWrite);

    this->RS232->setPortName("com3");
    this->RS232->setBaudRate(QSerialPort::Baud9600);
    this->RS232->setDataBits(QSerialPort::Data8);
    this->RS232->setParity(QSerialPort::NoParity);
    this->RS232->setStopBits(QSerialPort::OneStop);
    this->RS232->setFlowControl(QSerialPort::NoFlowControl);
    this->RS232->write("OK");
}