2016-04-15 9 views
-2

Ich lerne Qt und ich wollte eine GUI mit einigen Tasten erstellen, die Daten sendet, um mein ARM-Gerät über serielle Konsole (anstelle von Minicom) zu booten. Ich weiß, dass es bereits eine serielle Kommunikationsbibliothek von Qt gibt. Ich wollte nur wissen, ob dies ein realistischer Ansatz auf U-Boot-Ebene ist? Oder werde ich meine Daten durcheinander bringen? einfach die Anforderung visualisieren besser:Qt Gui für serielle Kommunikation

button---->clicked()--->It should send 1st command to serial console as 
"setenv bootargs blablabla" and then application should read back if 
we are getting back the prompt "U-boot#". If yes,then send the next command 
"tftp 0x82000000 uImage" and so on. 

Diese Befehle in einem Text file.Though sein kann, muss ich noch von der Gestaltung denken und das ist, warum ich wollte nur, wenn seine sogar möglich, wissen?

Vielen Dank im Voraus!

+3

Diese Frage ist wirklich unklar, aber wenn Sie fragen, ob 'QSerialPort' ist eine gute Möglichkeit, mit Hardware zu sprechen, dann ist die Antwort ja. Ich bevorzuge plattformspezifische Ansätze. –

+0

Wenn Sie ein Programm angeben, das Daten über eine serielle Schnittstelle senden und empfangen kann, während Sie fragen: "Ist es sogar möglich, ein Programm zu schreiben, das Daten über eine serielle Schnittstelle sendet und empfängt?" (Lustigerweise habe ich erst letzte Woche ein Skript geschrieben, um genau das zu tun, für einen automatisierten Git-Halbierungslauf.) – Notlikethat

Antwort

1

ja es möglich ist, das habe ich in meinem Projekt getan, Problem resultiert aus der seriellen Schnittstelle liest, irgendwann werden Sie einige Junk-Zeichen bekommen, so dass es schwierig ist, Befehl, zu entscheiden, ausgegeben wird passieren oder nicht und qt window freezing Problem, wenn keine Aktivität innerhalb der Frist ausgeführt wird.

+0

Ich vermute das gleiche. Und das war meine Frage. Danke. – Minion

-2

Unter Windows gibt es einen Teil von WinAPI, der mit der seriellen Kommunikation umgehen kann und ich denke, er kann mit Qt wie jede andere C/C++ - Bibliothek verwendet werden.

Beachten Sie, dass Ihr Gerät dafür als COM-Port in Ihrem Gerätemanager angezeigt werden muss.

Unter Linux gibt es eine C-Bibliothek namens termios, aber ich habe noch keine Erfahrung damit.

WinAPI serial communication tutorial

+1

Es gibt einen Qt, plattformübergreifenden Ansatz namens [QSerialPort] (http://doc.qt.io/qt -5/qserialport.html). Es gibt keinen Grund, die WinAPI zu verwenden, wenn Sie bereits eine Qt-Abhängigkeit haben. Selbst wenn Sie _only_ für Windows programmieren, ist 'QSerialPort' vermutlich besser, da Sie es asynchron mit Signalen und Slots verwenden können. –

+0

Ich bin nicht wirklich vertraut mit Qt, also habe ich angeboten, was ich bis jetzt gearbeitet habe. Die 'QSerialPort'-Schnittstelle sieht wirklich gut aus, vielleicht sollte ich das auch anstelle von WinAPI versuchen, danke. – mausik

+0

Danke Jungs für großzügige Antworten. Ich wusste von der QSerialPort-Bibliothek. Ich wollte nur fragen, ob wir es verwenden können, um mit freescale vybrid board auf U-Boot-Ebene zu kommunizieren (um Befehle an der U-Boot-Eingabeaufforderung zu senden) ODER ich kann es nur auf Benutzerplatz (wenn Kernel und Dateisystem ist geladen). – Minion

0

Um Qt4, verwenden Qextserialport Von QT5 verwenden QSerialPort

Qextserialport & QSerialPort Arbeit auf Linux und Windows mit dem gleichen Code.

Verwandte Themen