QSerial Port

Alles rund um die Programmierung mit Qt
Antworten
puppetClon
Beiträge: 16
Registriert: 30. Oktober 2014 18:53

QSerial Port

Beitrag 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?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: QSerial Port

Beitrag 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?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
puppetClon
Beiträge: 16
Registriert: 30. Oktober 2014 18:53

Re: QSerial Port

Beitrag 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");
}
Antworten