Russian Qt Forum
Ноябрь 14, 2024, 20:17 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 ... 15 16 [17] 18 19 ... 88   Вниз
  Печать  
Автор Тема: Создаю библиотеку для работы с последовательными портами. [УШЕЛ ИЗ ПРОЕКТА].  (Прочитано 782347 раз)
Aibalit
Гость
« Ответ #240 : Август 13, 2010, 20:50 »

kuzulis,


Если все-таки не передумали, то:
1. Покажите *.pro вашего проекта.
2. Приведите структуру каталогов где лежит либа и где лежит ваш проект


вот я структуру привел... так что весь во внимании как прикрутить либу?
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #241 : Август 14, 2010, 14:53 »

2 Aibalit,

я жду по библиотеке вопросов несколько иного характера нежели "как прикрутить". У меня нет никакого желания разбираться с вопросами типа "как прикрутить".. Честно.. Без обид... У вас есть примеры.. У вас есть все чтобы разобраться самому. Меняйте как вам угодно *.pri, *.pro, делайте структуру каталогов проекта так как вам хочется. Пробуйте, экспериментируйте...

Наводящий вам ответ: поиграйтесь с "../" в QMAKE_LIBDIR и INCLUDEPATH . Удачи.
Записан

ArchLinux x86_64 / Win10 64 bit
labview
Гость
« Ответ #242 : Сентябрь 06, 2010, 13:43 »

Здрасьте!

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

Для синхронного режима нужен дополнительный такт между партнёрами и скорость передачи данных задаётся этим тактом, а не устанавливается в настройках при открытии. Для этого по-моему используются (кроме обычных RX/TX и GND) дополнительные линии:
RTS, CTS, DSR и прочие.

Получается эта библиотека поддерживает такую связь, а другая нет? Я правильно понимаю?

Спасибо.
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #243 : Сентябрь 06, 2010, 14:16 »

Нет. Режим только асинхронный (на физическом уровне).  Синхронный режим м/сх UART в PC не поддерживают.
Откуда вы про синхронный вообще прочитали? о_О

Просто когда еще я создавал библиотеку QSerialDevice , то у QextSerialPort и в помине небыло асинхронного режима.
Т.е. под асинхронным в данном случае понимается неблокирующий режим с использованием для ожидания данных объектов ядра ОС.
Это потом уже они добавили режимы EvenDrive и т.п.

Т.е. у меня при чтении данных на "низком уровне" драйвер порта не ждет следующего байта, а возвращает сразу всё что есть в данный момент в приемном буфере, но на более "высоком уровне" (в моем коде) это ожидание реализуется иными способами.

В общем, читайте документацию и смотрите код. 

ЗЫ: так вот путаница в названиях и повелась с тех пор. Улыбающийся
Записан

ArchLinux x86_64 / Win10 64 bit
labview
Гость
« Ответ #244 : Сентябрь 06, 2010, 15:12 »

Просто когда еще я создавал библиотеку QSerialDevice , то у QextSerialPort и в помине небыло асинхронного режима.
Т.е. под асинхронным в данном случае понимается неблокирующий режим с использованием для ожидания данных объектов ядра ОС.

Понятно, спасибо за разьяснения.
Разница в терминологии.
Пожалуйста, не нужно путать людей синхорнным/асинхронным режимом работы порта и polling/event based программированием/использованием драйвера порта.

По-Вашему получается QExtSerialPort раньше не поддерживал асинхронный режим, значит он поддерживал синхронный? И тут же пишите, что PC UART вообще не поддерживает синхронный режим. То, что вы подразумеваете под асинхронностью в моём понимании асинхронностью не является.

Спасибо!
« Последнее редактирование: Сентябрь 06, 2010, 15:16 от labview » Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #245 : Сентябрь 06, 2010, 15:19 »

Цитировать
По-Вашему получается QExtSerialPort раньше не поддерживал асинхронный режим, значит он поддерживал синхронный? И тут же пишите, что PC UART вообще не поддерживает синхронный режим. То, что вы подразумеваете под асинхронностью в моём понимании асинхронностью не является.
Он (QExtSerialPort ) не поддерживал асинхронный I/O: http://msdn.microsoft.com/en-us/library/aa365683(v=VS.85).aspx для примера о чем я говорю.
« Последнее редактирование: Сентябрь 06, 2010, 15:22 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
labview
Гость
« Ответ #246 : Сентябрь 06, 2010, 15:30 »

Разобрался, спасибо ещё раз.
Записан
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« Ответ #247 : Сентябрь 17, 2010, 06:04 »

где используется время установленное функцией setCharIntervalTimeout? в read?
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #248 : Сентябрь 17, 2010, 07:29 »

Цитировать
где используется время установленное функцией setCharIntervalTimeout? в read?
В принципе ДА, а точнее в методах nativeSelect, которые используются при чтении.
В общем, ожидает символ с помощью select (unix) или WaitSingleObject (win).
Записан

ArchLinux x86_64 / Win10 64 bit
Aibalit
Гость
« Ответ #249 : Сентябрь 22, 2010, 16:41 »

Подскажите пожалуйста, как программным образом определить имя COM порта, на который село устройство (CP210x USB to UART Bridge Controller)?
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #250 : Сентябрь 23, 2010, 07:25 »

Посмотри тут: http://forum.vingrad.ru/forum/topic-309616.html
Записан

ArchLinux x86_64 / Win10 64 bit
alexcpp
Гость
« Ответ #251 : Сентябрь 29, 2010, 01:07 »

Здравствуйте.
Не осилил всю тему.
Не понял одного: зачем "это" ?
Есть прекрасная, мультиплатформенная, асинхронная, потокобезопасная, паттерн-ориентированная библиотека. Зовется Asio. Находится на рассмотрении во включение в стандарт С++. В ней, помимо работы с COM портами, есть все что необходимо для реализации асинхронной работы с потоками, сетью, дескрипторами ввода-вывода.
Искренне не понял смысл этого создания.

спасибо.
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #252 : Сентябрь 29, 2010, 07:30 »

2 alexcpp

Вот если бы Вы писали код только на С++ или использовали Boost - то пожалуйста, используйте то что хотите.
Использование Qt классов при этом неуместно.
Но если вы пишете на Qt - то "не очень" уместно в некоторых случаях использовать сторонние библиотеки.

QSerialDevice создан как класс, который использует не просто асинхронный IO (тут можно было и не придумывать вообще ничего) , а он использует все "фичи" Qt, т.е. он и сделан в Qt-like стиле по аналогии с QAbstractSocket.

Если следовать вашей мысли, то и QAbstractSocket в Qt нафиг не нужен!? Ведь можно использовать Boost или еще что нибудь. И если продолжить - то и вообще Qt не нужно?! Так? (по крайней мере те классы которые не есть компоненты GUI)!

Если честно, то для меня Ваш вопрос странен.. Такое впечатление что это вброс какой-то чтобы пофлеймить...

Имхо. 
Записан

ArchLinux x86_64 / Win10 64 bit
Denjs
Гость
« Ответ #253 : Сентябрь 29, 2010, 13:10 »

Есть прекрасная, мультиплатформенная, асинхронная, потокобезопасная, паттерн-ориентированная библиотека. Зовется Asio. Находится на рассмотрении во включение в стандарт С++.
Asio умеет использовать signal-slot? её объекты можно погрузить в QtScriptEngine? она знает о существовании системы метаданных QT (которая иногда таки очень полезна)? она умеет работать с QByteArray и QString?
нет?  у вас ещё есть вопросы?

Находится на рассмотрении во включение в стандарт С++.
Ну и отлично) когда её включат в C++, а значит и в gcc и mingw - (возможно) будем пользовать)))))

ну и конечно, сердечно желаем Asio обзавестись QT-оберткой)))
« Последнее редактирование: Сентябрь 29, 2010, 13:15 от Denjs » Записан
MrLink
Гость
« Ответ #254 : Декабрь 14, 2010, 11:35 »

kuzulis, прошу обратить внимание.
Под WinXP(32bit) происходит вот что:
Сделал по примеру чтение по сигналу readyRead() в "привязаном" слоте определяется количество принятых байтов, проверка на размер, и их чтение. Под WinXP(32bit) приходят сигналы, а количество равно нулю. И если не сделать чтение, сигналы больше не приходят.
p.s. linux версия работает
Записан
Страниц: 1 ... 15 16 [17] 18 19 ... 88   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.12 секунд. Запросов: 23.