crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

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.
Достаточно ли этого ?

Что еще нужно определить, чтоб работало корректно. И вообще какие методы настоятельно рекомендуется переопределить.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
PAFOS
  опции профиля:
сообщение 12.8.2011, 8:08
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 258
Регистрация: 27.12.2010
Из: Дмитров
Пользователь №: 2309

Спасибо сказали: 29 раз(а)




Репутация:   8  


kuzulis, почитал инфу по ссылке, проблему понял.

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

Теперь по поводу просьбы:

У меня было три устройства (Windows Mobile 6.0, 6.1, 6.5).
На всех успешно выполнился следующий код:

    m_hComm = CreateFile( lpszPortName,  
        GENERIC_READ | GENERIC_WRITE, 
        0, 
        0,    
        OPEN_EXISTING,
        FILE_FLAG_OVERLAPPED,
        0);


Сообщение отредактировал PAFOS - 12.8.2011, 8:09
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 10.4.2025, 1:55