Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
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 тоже можно делать асинхронно:
Link |
|
|
|
|
xbarmaglot |
19.6.2014, 7:08
Сообщение
#3
|
|
Студент ![]() Группа: Новичок Сообщений: 14 Регистрация: 29.8.2012 Пользователь №: 3502 Спасибо сказали: 0 раз(а) Репутация: 0
|
Цитата(lanz @ 18.6.2014, 20:42) Link Read/WriteFile тоже можно делать асинхронно: Link Цитата(xbarmaglot @ 18.6.2014, 20:18) Link Я могу работать с ним как в синхронном режиме, так и в асинхронном. Я это и сказал. Меня интересует вопрос как это реализовать в наследнике QIODevice |
|
|
|
|
lanz |
19.6.2014, 21:45
Сообщение
#4
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8
|
Можно сделать рабочий тред, который будет опрашивать устройство и обмениватся сигналами с наследником QIODevice.
В Qt5 есть Link Можно посмотреть исходники QtSerialPort. |
|
|
|
|
ahalaj |
20.6.2014, 10:10
Сообщение
#5
|
![]() Студент ![]() Группа: Участник Сообщений: 47 Регистрация: 14.6.2014 Пользователь №: 4166 Спасибо сказали: 13 раз(а) Репутация: 1
|
xbarmaglot, посмотри исходники QTcpSocket и QProcess. Они имеют родителем как раз QIODevice и при этом вполне себе асинхронные.
|
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 7.1.2026, 0:38 |