QIODevice |
Здравствуйте, гость ( Вход | Регистрация )
QIODevice |
gpepsi |
9.8.2011, 19:57
Сообщение
#1
|
Студент Группа: Участник Сообщений: 73 Регистрация: 31.3.2010 Пользователь №: 1582 Спасибо сказали: 0 раз(а) Репутация: 0 |
Создавал ли кто свои потоковые устройства ?
Есть несколько вопросов. 1. Есть методы read и write, которые возвращают число байт, которые удалось получить. Но если это, например, сокет, то данные будут фрагментированные и read может вернуть количество байт, огранниченное буфером. Поэтому нужно будет читать пока не вычитали все - или кидать исключение, если что-то не получилось. Есть ли в QT обертки, которые читают пока читается, в зависимости от размера запрошенных данных ? 2. Пытаюсь создать серийный порт на основе QIODevice. Определил readData и writeData. в open открыл порт и выставил нужные параметры. Задал OpenMode == ReadWrite. Достаточно ли этого ? Что еще нужно определить, чтоб работало корректно. И вообще какие методы настоятельно рекомендуется переопределить. |
|
|
kuzulis |
18.8.2011, 10:44
Сообщение
#2
|
Активный участник Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7 |
Ага, понятно. Огромное спасибо!
И вот теперь, еще просьба: собрать и протестить версию библиотеки 2.0: https://gitorious.org/qserialdevice/qserial...ive-tarball/2.0 Там я добавил поддержку WinCE, но собирать пробовал в обычной винде, вроде собиралось. Но там, исходя из твоей последней информации, не исправлено еще: Цитата З.Ы. Если один момент - на WIN CE при открытии файла имя надо давать не \\.\COM1, а COM1: Знаю что первый вариант в обычной винде предпочтительнее, тем не менее если его использовать на WIN CE, то файл не открывается вообще З.Ы.Ы функция CancelIO на WINCE вроде как отсутствует, во всяком случае у меня ругался компилятор на ее отсутствие Проверь, плз. и исправь что надо (там, дефайны поставь где надо и т.п.), и отпишись обязательно о том что ты сделал, что получилось и т.п, даже можешь запостить diff или измененные файлы сюда в ветку. |
|
|
Текстовая версия | Сейчас: 28.11.2024, 19:50 |