crossplatform.ru

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

14 страниц V  « < 7 8 9 10 11 > »   
Ответить в данную темуНачать новую тему
> QtSerialPort, Проблема сборки QtSerialPort под Windows
kuzulis
  опции профиля:
сообщение 30.8.2013, 10:30
Сообщение #81


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

Группа: Участник
Сообщений: 393
Регистрация: 29.6.2009
Пользователь №: 862

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




Репутация:   7  


Цитата(Евген)
При работе с виртуальным COM-портом (по USB) вызывает регулярный БСОД.


Случайно чип не от Prolific, не PL2303? :)

Потому что при работе с PL2303 в разных терминалках мы тоже иногда получали BSOD, но это не относилось вообще к Qt.

Попробуй обновить дрова к своему виртуальному COM-порту.

Цитата(Евген)
В описании QtSerialPort не заявлена поддержка Windows 8.
Посему вопрос - Как обстоят дела с совместимостью проекта с Вынь8 и какие там могут быть грабли?


Все поддерживается и работает хорошо. Грабель не наблюдаем.. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Евген_*
сообщение 3.9.2013, 6:54
Сообщение #82





Гости








    


Цитата(kuzulis @ 30.8.2013, 10:30) *
Цитата(Евген)
При работе с виртуальным COM-портом (по USB) вызывает регулярный БСОД.


Случайно чип не от Prolific, не PL2303? :)

Потому что при работе с PL2303 в разных терминалках мы тоже иногда получали BSOD, но это не относилось вообще к Qt.

Попробуй обновить дрова к своему виртуальному COM-порту.

Цитата(Евген)
В описании QtSerialPort не заявлена поддержка Windows 8.
Посему вопрос - Как обстоят дела с совместимостью проекта с Вынь8 и какие там могут быть грабли?


Все поддерживается и работает хорошо. Грабель не наблюдаем.. :)


Выяснились некоторые подробности.
Чип Profilic PL2303.
БСОД видел, из описания понятно только, что ругалась винда на файл ser2pl64.sys.

После обновления драйверов вроде бы пока в норме, но тестовый период небольшой.
А в чем проблема была при этом чипе?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuzulis
  опции профиля:
сообщение 3.9.2013, 11:53
Сообщение #83


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

Группа: Участник
Сообщений: 393
Регистрация: 29.6.2009
Пользователь №: 862

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




Репутация:   7  


Цитата(Евген @ 3.9.2013, 7:54) *
А в чем проблема была при этом чипе?


В BSOD! Там то-ли дрова кривые, толи еще что-то. Но это было под Win7 раньше.
После обновления на последние дрова (типа WDF), проблема вроде исчезла.

PS: Также есть еще одна фишка в том, что этот чип имеет разные модификации, и часто встречается модификация (самая дешёвая и древняя),
для которой нет дров для Win8 (т.е. эта модификация не поддерживается больше Пролификом). Там на сайте Prolific про это написано.
Поэтому помогает откат на старые драйвера (не старые, а самые последние) от Win7, т.е. они работают тоже в Win8. Но для этого нужно немного пошаманить. :)

Так что мой совет - используйте чип FTDIxxx (предпочтительнее) или CPxxx.

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Евген_*
сообщение 4.9.2013, 6:40
Сообщение #84





Гости








    


Цитата(kuzulis @ 3.9.2013, 11:53) *
Цитата(Евген @ 3.9.2013, 7:54) *
А в чем проблема была при этом чипе?


В BSOD! Там то-ли дрова кривые, толи еще что-то. Но это было под Win7 раньше.
После обновления на последние дрова (типа WDF), проблема вроде исчезла.

PS: Также есть еще одна фишка в том, что этот чип имеет разные модификации, и часто встречается модификация (самая дешёвая и древняя),
для которой нет дров для Win8 (т.е. эта модификация не поддерживается больше Пролификом). Там на сайте Prolific про это написано.
Поэтому помогает откат на старые драйвера (не старые, а самые последние) от Win7, т.е. они работают тоже в Win8. Но для этого нужно немного пошаманить. :)

Так что мой совет - используйте чип FTDIxxx (предпочтительнее) или CPxxx.


Увы, выбор виртуальников заказчиками не в нашей власти .. там вообще - как повезет и что попадется.
Про дрова понятно, включили в поставку.
Спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
marsel
  опции профиля:
сообщение 4.9.2013, 15:38
Сообщение #85


Студент
*

Группа: Новичок
Сообщений: 15
Регистрация: 29.1.2013
Пользователь №: 3693

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




Репутация:   0  


Здравствуйте kuzulis.

Подскажите пожалуйста возможно ли в QSerialPort из под Windows получить дескриптор (handle) com порта, который возвращает CreateFile.

Просто необходимо изменить время ожидания у микросхемы FTDI(Виртуальный com порт). У неё есть библиотека, с помощью которой можно изменить это время ожидания. Но необходим дескриптор (handle) com порта.

http://www.ftdichip.com/Support/Knowledgeb...atencytimer.htm

#include "ftd2xx.h"

FT_HANDLE ftHandle;
UCHAR LatencyTimer;//***Время ожидания

FT_SetLatencyTimer(ftHandle, LatencyTimer);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 4.9.2013, 18:58
Сообщение #86


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


marsel, уточни вопрос, при чём тут хендл порта ?

для изменения задержки нужен хендл устройства конвертера, установленного в системе
http://www.ftdichip.com/Support/Knowledgeb...atencytimer.htm

нужные функции можно вызвать, импортировав их из dll динамически



offtop
и как показала практика, напрямую библиотеку юзать нет необходимости. Устройство при подключении появляет в системе виртуальный ком-порт, его открываешь как обычно и как обычно с ним работаешь

кстати, в диспетчере устройств можно полазить по свойствам самого устройства (где-то в списке USB устройств). Сейчас под рукой нет, не могу точно сказать

Сообщение отредактировал Алексей1153 - 4.9.2013, 18:59
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
marsel
  опции профиля:
сообщение 5.9.2013, 9:35
Сообщение #87


Студент
*

Группа: Новичок
Сообщений: 15
Регистрация: 29.1.2013
Пользователь №: 3693

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




Репутация:   0  


Цитата(Алексей1153 @ 4.9.2013, 19:58) *
marsel, уточни вопрос, при чём тут хендл порта ?

для изменения задержки нужен хендл устройства конвертера, установленного в системе
http://www.ftdichip.com/Support/Knowledgeb...atencytimer.htm

нужные функции можно вызвать, импортировав их из dll динамически



offtop
и как показала практика, напрямую библиотеку юзать нет необходимости. Устройство при подключении появляет в системе виртуальный ком-порт, его открываешь как обычно и как обычно с ним работаешь

кстати, в диспетчере устройств можно полазить по свойствам самого устройства (где-то в списке USB устройств). Сейчас под рукой нет, не могу точно сказать


Да handle устройства , наверно неправильно выразился.

Как вручную выставлять я знаю. Хотелось бы программно.

Если использовать WinAPI тогда всё понятно, но как это сделать используя QSerialPort

HANDLE descriptor; нужен из class QSerialPortPrivate.

Возможно ли его каким нибудь образом получить?

Кратко вопрос такой.
Как получить дескриптор устройства в QSerialPort (Windows)?
или
Как изменить время ожидания(FTDI) из QSerialPort ?



Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 5.9.2013, 10:00
Сообщение #88


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


marsel, Qt к ОС в общем случае не привязан. Драйвер относится к системе, а класс работает с абстракцией - интерфейсом ком порта

так что, сомневаюсь, что класс умеет менять настройки драйвера
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuzulis
  опции профиля:
сообщение 5.9.2013, 10:24
Сообщение #89


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

Группа: Участник
Сообщений: 393
Регистрация: 29.6.2009
Пользователь №: 862

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




Репутация:   7  


Непонятен вопрос какое HANDLE необходимо.

1) Если необходим HANDLE последовательного порта, который получается при CreateFile("COMxx",...), то эта фича выйдет в Qt5.2 (если не ошибаюсь).

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

Вот принятый патч: https://codereview.qt-project.org/#change,51862

Исходники качаешь через Git и потом переключаешься в dev бранч, т.к. эта фича находится именно в dev бранче и еще не вышла. И наслаждаешься. :)

2) Если необходим HANDLE, который предоставляется вендор-специфичной либой от FTDI, то тут увы, QtSerialPort не имеет к этому никакого отношения. Делай все сам.


UPD: Но тебе нужен п.2., я так понимаю, поэтому я тут ничего не сделаю, т.к. это совершенно другое API от FTDI.

UPD2: Кроме того, ты можешь установить этот таймаут раз и навсегда, просто перепрошив EEPROM у чипа, и не нужно мучаться (вроде оно возможно, погугли).

Сообщение отредактировал kuzulis - 5.9.2013, 10:28
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Анна
  опции профиля:
сообщение 9.10.2013, 10:15
Сообщение #90


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

Группа: Участник
Сообщений: 276
Регистрация: 22.5.2008
Из: Зеленоград
Пользователь №: 181

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




Репутация:   4  


Жаль, что errorString() не перегружена для QSerialPort... по крайней мере в QT-4.8.4 .
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

14 страниц V  « < 7 8 9 10 11 > » 
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


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




RSS Текстовая версия Сейчас: 25.11.2024, 2:39