QExtSerialPort funktioniert nur mit Hyper Terminal

Alles rund um die Programmierung mit Qt
Antworten
Christoph_BS
Beiträge: 11
Registriert: 6. April 2010 11:21

QExtSerialPort funktioniert nur mit Hyper Terminal

Beitrag von Christoph_BS »

Hallo Leute,

ich versuche ein GSM-Modem mit AT-Befehlen über die RS-232 Schnittstelle anzusprechen. Um die COM-Schnittstelle anzusprechen benutze ich die Klasse QExtSerialPort.
Dies funktioniert auch in der Regel. Jedoch muss ich bevor ich einen AT-Befehl sende einmal Hyper Terminal starten und wieder beenden (ich tippe nichts in die Konsole ein). Danach kann ich alle AT-Befehle über mein selbst erstelltes Programm erfolgreich an das Modem senden, bis ich den Computer neustarte. Dabei kann ich den Port beliebig oft schließen und öffnen.
Es muss also irgendetwas beim erstmaligen Port öffnen bei Hyper Terminal nach einem Windows Neustart anders laufen, da ich schon rausgefunden habe, dass der Port automatisch geöffnet wird, wenn Hyper Terminal startet. Hat jemand ein ähnliches Problem mit der Klasse.
Bisher öffne ich den Port folgendermaßen:

m_pSerialport = new QextSerialPort("COM1");

m_pSerialport->setBaudRate (BAUD2400);
m_pSerialport->setDataBits(DATA_8);
m_pSerialport->setStopBits(STOP_1);
m_pSerialport->setFlowControl(FLOW_OFF);
m_pSerialport->setParity(PAR_NONE);

if(m_pSerialport->open(QextSerialPort::ReadWrite))
{
//erfolgreich geöffnet

}
RavenIV
Beiträge: 267
Registriert: 21. Januar 2009 14:24
Wohnort: Waldshut

Beitrag von RavenIV »

Versuch mal, erst das open(...) zu machen und dann erst die Parameter (Baudrate, FlowControl, usw.) zu setzen.

So wird es nämlich in den Examples auch gemacht und in meiner Testapplikation funktioniert es so.
Linux, das längste Text-Adventure aller Zeiten
Christoph_BS
Beiträge: 11
Registriert: 6. April 2010 11:21

Beitrag von Christoph_BS »

jo funktioniert,
vielen Dank
RavenIV
Beiträge: 267
Registriert: 21. Januar 2009 14:24
Wohnort: Waldshut

Beitrag von RavenIV »

Versuch doch mal das Projekt QSerialDevice von http://fireforge.net/projects/qserialdevice
Dies tut besser als das QExtSerialPort.

Lass Dich nicht von der Version 0.2 abschrecken, das funktioniert gut.
Läuft in meiner Applikation.

Schaust Du auch hier: http://qtforum.de/forum/viewtopic.php?t ... ght=serial
Linux, das längste Text-Adventure aller Zeiten
FaS
Beiträge: 184
Registriert: 25. Mai 2006 19:48
Kontaktdaten:

Beitrag von FaS »

Bevor hier alle euphorisch werden: QSerialDevice steht unter der GPL und kann daher z.B. nicht in Closed-Source-Projekten verwendet werden. Mit QextSerialPort habe ich zwar auch ständig Probleme, aber unlösbar sind sie bisher nicht gewesen.
Antworten