QIODevice и WinAPI |
Здравствуйте, гость ( Вход | Регистрация )
QIODevice и WinAPI |
xbarmaglot |
18.6.2014, 19:18
Сообщение
#1
|
Студент Группа: Новичок Сообщений: 14 Регистрация: 29.8.2012 Пользователь №: 3502 Спасибо сказали: 0 раз(а) Репутация: 0 |
В системе есть устройство, с которым я работаю через WinAPI (CreateFile, ReadFile, WriteFile,...).
Я могу работать с ним как в синхронном режиме, так и в асинхронном. Но захотелось работать с этим устройством как с QIIODevice. Для синхронной работы достаточно переопределить виртуальные методы readBytes и writeBytes. А как реализовать работу в асинхронном режиме. В идеале хотелось бы разрешить работать в обоих режимах. З.Ы. И не совсем понятно как быть с сигналами readReady и всякими там wait-методами (waitForByteWrite, ...) |
|
|
lanz |
18.6.2014, 19:42
Сообщение
#2
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Read/WriteFile тоже можно делать асинхронно:
http://msdn.microsoft.com/en-us/library/wi...3(v=vs.85).aspx |
|
|
xbarmaglot |
19.6.2014, 7:08
Сообщение
#3
|
Студент Группа: Новичок Сообщений: 14 Регистрация: 29.8.2012 Пользователь №: 3502 Спасибо сказали: 0 раз(а) Репутация: 0 |
Read/WriteFile тоже можно делать асинхронно: http://msdn.microsoft.com/en-us/library/wi...3(v=vs.85).aspx Я могу работать с ним как в синхронном режиме, так и в асинхронном. Я это и сказал. Меня интересует вопрос как это реализовать в наследнике QIODevice |
|
|
lanz |
19.6.2014, 21:45
Сообщение
#4
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Можно сделать рабочий тред, который будет опрашивать устройство и обмениватся сигналами с наследником QIODevice.
В Qt5 есть http://qt-project.org/doc/qt-5/qwineventnotifier.html Можно посмотреть исходники QtSerialPort. |
|
|
ahalaj |
20.6.2014, 10:10
Сообщение
#5
|
Студент Группа: Участник Сообщений: 47 Регистрация: 14.6.2014 Пользователь №: 4166 Спасибо сказали: 13 раз(а) Репутация: 1 |
xbarmaglot, посмотри исходники QTcpSocket и QProcess. Они имеют родителем как раз QIODevice и при этом вполне себе асинхронные.
|
|
|
Текстовая версия | Сейчас: 11.5.2024, 17:27 |