2016-04-15 4 views
-2

Я изучаю Qt, и я хотел создать графический интерфейс с некоторыми кнопками, которые отправляют данные для загрузки моего устройства ARM через последовательную консоль (вместо minicom). Я знаю, что есть библиотека последовательной связи, уже предоставленная Qt. Я просто хотел знать, является ли это реалистичным подходом к U-boot уровню? Или я испорчу свои данные? Просто визуализировать требования лучше:Qt Gui для последовательной связи

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. 

Эти команды могут быть в какой-то текст file.Though, я все еще должен думать о дизайне, и именно поэтому я просто хотел бы знать, если ее вообще возможно?

Спасибо заранее!

+3

Этот вопрос действительно неясен, но если вы спрашиваете, является ли QSerialPort хорошим способом поговорить с оборудованием, тогда ответ будет да. Я предпочитаю его подходам на платформе. –

+0

Если вы указали программу, которая может отправлять и получать данные через последовательный порт, спрашивая «возможно ли даже писать программу, которая отправляет и получает данные через последовательный порт», что ответить? (как ни странно, только на прошлой неделе я написал сценарий, чтобы сделать это почти так, для автоматического запуска git bisect) – Notlikethat

ответ

1

да это возможно, я сделал это в моем проекте, проблема чтения результата из последовательного порта, где-то вы получите некоторые символы нежелательных, так что трудно решить команду выданного это передать или не , и проблема замораживания окна qt, когда никакая деятельность не выполняется в течение срока.

+0

Я подозреваю то же самое. И это мой вопрос. Спасибо. – Minion

-2

В Windows есть часть WinAPI, которая может обрабатывать последовательную связь, и я думаю, что она может использоваться с Qt как любая другая библиотека C/C++.

Обратите внимание, что для этого устройство должно отображаться как COM-порт в вашем диспетчере устройств.

На linux есть C-библиотека под названием termios, но до сих пор у меня нет опыта.

WinAPI serial communication tutorial

+1

Существует подход Qt с кросс-платформой под названием [QSerialPort] (http://doc.qt.io/qt -5/qserialport.html). Существует _no reason_ для использования WinAPI, если у вас уже есть зависимость Qt. Даже если вы - простое программирование для Windows, 'QSerialPort', вероятно, превосходит, поскольку вы можете использовать его асинхронно с сигналами и слотами. –

+0

Я не очень хорошо знаком с Qt, поэтому я предложил то, с чем я работал до сих пор. Интерфейс 'QSerialPort' выглядит очень хорошо, возможно, я должен попробовать это, а не WinAPI, спасибо. – mausik

+0

Спасибо, парни за щедрые ответы. Я знал о библиотеке QSerialPort. Просто хотел спросить, можем ли мы использовать его для связи с freescale vybrid board на уровне U-Boot (для отправки команд в приглашении u-boot). Или я могу сделать это только в пространстве пользователя (когда ядро и загружается файловая система). – Minion

0

Для Qt4, используйте Qextserialport От Qt5 используйте QSerialPort

Qextserialport & QSerialPort работы на Linux и окна с тем же кодом.

Смежные вопросы