crossplatform.ru

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

44 страниц V  « < 31 32 33 34 35 > »   
Ответить в данную темуНачать новую тему
> QSerialDevice - Библиотека для работы с COM-портами
kuzulis
  опции профиля:
сообщение 7.4.2012, 17:48
Сообщение #321


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

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

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




Репутация:   7  


Цитата(Гость @ 7.4.2012, 15:24) *
kuzulis, а метод waitForReadyRead(int msec) фризит EventLoop? там ведь внутри select с таймаутом.


Да. Фризит.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_*
сообщение 7.4.2012, 20:39
Сообщение #322





Гости








    


kuzulis, спасибо за ответ. А чем плохим может обернуться для Event Loop'a такой фриз? Для примера. Есть однопоточное приложение, которое использует QSerialPort(QSerialDevice) в драйвере кассового аппарата. Используется waitForReadyRead() для реализации таймаутов перед приемом ответов от кассы. Вы бы не соватовали так делать, а использоваться QTimer? И если нет, то почему?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuzulis
  опции профиля:
сообщение 7.4.2012, 22:50
Сообщение #323


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

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

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




Репутация:   7  


Цитата(Гость @ 7.4.2012, 21:39) *
kuzulis, спасибо за ответ. А чем плохим может обернуться для Event Loop'a такой фриз? Для примера. Есть однопоточное приложение, которое использует QSerialPort(QSerialDevice) в драйвере кассового аппарата. Используется waitForReadyRead() для реализации таймаутов перед приемом ответов от кассы. Вы бы не соватовали так делать, а использоваться QTimer? И если нет, то почему?

Потому, что от этого фризится GUI, и использовать QSerialDevice с waitForReadyRead() нужно в другом потоке, чтобы этого не происходило.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_*
сообщение 8.4.2012, 11:19
Сообщение #324





Гости








    


kuzulis, и в очередной раз спасибо за ответ. Как раз хотел спросить про потоки, потому что у меня по протоколу работы с кассой самый большой таймаут ожидания ответа = 10 секунд, но ответ, как правило, приходит за доли секунды. Тоесть при использовании QTimer мне пришлось бы каждый раз ждать 10 секунд, либо ломать протокол, что тоже не выход. Но если в Qt на каждый поток свой EventLoop, то да, waitForReadyRead() можно без проблем использовать.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
romeodka
  опции профиля:
сообщение 15.5.2012, 4:21
Сообщение #325


Новичок


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

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




Репутация:   0  


Доброе время суток.
Подскажите пожалуйста в чем может быть дело.
Поставил себе qt-sdk-win-opensource-2010.05 и скачал отсюда QSerialDevice. Начинаю компилировать библиотеку, все идет нормально и потом вылазит окно "Не удалось найти программу, пожалуйста, укажите её" и предлагает указать какую то программу.
И что надо указать? и так и должно быть? и вообще что делать?

У меня стоит Win Xp Sp2
вот то что в консоли пишет
Раскрывающийся текст
Выполняется сборка проекта BuildLibrary...
Запускается "c:/qt/2010.05/qt/bin/qmake.exe" D:/progects/serialDevice/qserialdevice-qserialdevice/BuildLibrary.pro -r -spec win32-g++ CONFIG+=release
Reading D:/progects/serialDevice/qserialdevice-qserialdevice/src/src.pro

Процесс "c:/qt/2010.05/qt/bin/qmake.exe" завершился нормально.
Запускается "C:/Qt/2010.05/mingw/bin/mingw32-make.exe" -w
mingw32-make: Entering directory `D:/progects/serialDevice/qserialdevice-qserialdevice'

cd src\ && C:/Qt/2010.05/mingw/bin/mingw32-make -f Makefile

mingw32-make[1]: Entering directory `D:/progects/serialDevice/qserialdevice-qserialdevice/src'

C:/Qt/2010.05/mingw/bin/mingw32-make -f Makefile.Release

mingw32-make[2]: Entering directory `D:/progects/serialDevice/qserialdevice-qserialdevice/src'

C:\Qt\2010.05\qt\bin\moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"c:\Qt\2010.05\qt\include\QtCore" -I"c:\Qt\2010.05\qt\include" -I"qserialdevice" -I"qserialdeviceenumerator" -I"c:\Qt\2010.05\qt\include\ActiveQt" -I"build\moc" -I"c:\Qt\2010.05\qt\mkspecs\win32-g++" -D__GNUC__ -DWIN32 qserialdevice\abstractserial.h -o build\moc\moc_abstractserial.cpp

g++ -c -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"c:\Qt\2010.05\qt\include\QtCore" -I"c:\Qt\2010.05\qt\include" -I"qserialdevice" -I"qserialdeviceenumerator" -I"c:\Qt\2010.05\qt\include\ActiveQt" -I"build\moc" -I"c:\Qt\2010.05\qt\mkspecs\win32-g++" -o build\obj\abstractserial.o qserialdevice\abstractserial.cpp

C:\Qt\2010.05\qt\bin\moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"c:\Qt\2010.05\qt\include\QtCore" -I"c:\Qt\2010.05\qt\include" -I"qserialdevice" -I"qserialdeviceenumerator" -I"c:\Qt\2010.05\qt\include\ActiveQt" -I"build\moc" -I"c:\Qt\2010.05\qt\mkspecs\win32-g++" -D__GNUC__ -DWIN32 qserialdevice\abstractserialengine.h -o build\moc\moc_abstractserialengine.cpp

g++ -c -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"c:\Qt\2010.05\qt\include\QtCore" -I"c:\Qt\2010.05\qt\include" -I"qserialdevice" -I"qserialdeviceenumerator" -I"c:\Qt\2010.05\qt\include\ActiveQt" -I"build\moc" -I"c:\Qt\2010.05\qt\mkspecs\win32-g++" -o build\obj\abstractserialengine.o qserialdevice\abstractserialengine.cpp

C:\Qt\2010.05\qt\bin\moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"c:\Qt\2010.05\qt\include\QtCore" -I"c:\Qt\2010.05\qt\include" -I"qserialdevice" -I"qserialdeviceenumerator" -I"c:\Qt\2010.05\qt\include\ActiveQt" -I"build\moc" -I"c:\Qt\2010.05\qt\mkspecs\win32-g++" -D__GNUC__ -DWIN32 qserialdevice\nativeserialengine.h -o build\moc\moc_nativeserialengine.cpp

g++ -c -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"c:\Qt\2010.05\qt\include\QtCore" -I"c:\Qt\2010.05\qt\include" -I"qserialdevice" -I"qserialdeviceenumerator" -I"c:\Qt\2010.05\qt\include\ActiveQt" -I"build\moc" -I"c:\Qt\2010.05\qt\mkspecs\win32-g++" -o build\obj\nativeserialengine.o qserialdevice\nativeserialengine.cpp

g++ -c -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"c:\Qt\2010.05\qt\include\QtCore" -I"c:\Qt\2010.05\qt\include" -I"qserialdevice" -I"qserialdeviceenumerator" -I"c:\Qt\2010.05\qt\include\ActiveQt" -I"build\moc" -I"c:\Qt\2010.05\qt\mkspecs\win32-g++" -o build\obj\abstractserialnotifier.o qserialdevice\abstractserialnotifier.cpp

g++ -c -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"c:\Qt\2010.05\qt\include\QtCore" -I"c:\Qt\2010.05\qt\include" -I"qserialdevice" -I"qserialdeviceenumerator" -I"c:\Qt\2010.05\qt\include\ActiveQt" -I"build\moc" -I"c:\Qt\2010.05\qt\mkspecs\win32-g++" -o build\obj\nativeserialengine_win.o qserialdevice\nativeserialengine_win.cpp

g++ -c -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"c:\Qt\2010.05\qt\include\QtCore" -I"c:\Qt\2010.05\qt\include" -I"qserialdevice" -I"qserialdeviceenumerator" -I"c:\Qt\2010.05\qt\include\ActiveQt" -I"build\moc" -I"c:\Qt\2010.05\qt\mkspecs\win32-g++" -o build\obj\nativeserialnotifier_win.o qserialdevice\nativeserialnotifier_win.cpp

C:\Qt\2010.05\qt\bin\moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"c:\Qt\2010.05\qt\include\QtCore" -I"c:\Qt\2010.05\qt\include" -I"qserialdevice" -I"qserialdeviceenumerator" -I"c:\Qt\2010.05\qt\include\ActiveQt" -I"build\moc" -I"c:\Qt\2010.05\qt\mkspecs\win32-g++" -D__GNUC__ -DWIN32 qserialdeviceenumerator\serialdeviceenumerator.h -o build\moc\moc_serialdeviceenumerator.cpp

g++ -c -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"c:\Qt\2010.05\qt\include\QtCore" -I"c:\Qt\2010.05\qt\include" -I"qserialdevice" -I"qserialdeviceenumerator" -I"c:\Qt\2010.05\qt\include\ActiveQt" -I"build\moc" -I"c:\Qt\2010.05\qt\mkspecs\win32-g++" -o build\obj\serialdeviceenumerator.o qserialdeviceenumerator\serialdeviceenumerator.cpp

g++ -c -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"c:\Qt\2010.05\qt\include\QtCore" -I"c:\Qt\2010.05\qt\include" -I"qserialdevice" -I"qserialdeviceenumerator" -I"c:\Qt\2010.05\qt\include\ActiveQt" -I"build\moc" -I"c:\Qt\2010.05\qt\mkspecs\win32-g++" -o build\obj\serialdeviceenumerator_p_win.o qserialdeviceenumerator\serialdeviceenumerator_p_win.cpp

ar -ru build\release\libqserialdevice.a build/obj/abstractserial.o build/obj/abstractserialengine.o build/obj/nativeserialengine.o build/obj/abstractserialnotifier.o build/obj/nativeserialengine_win.o build/obj/nativeserialnotifier_win.o build/obj/serialdeviceenumerator.o build/obj/serialdeviceenumerator_p_win.o

mingw32-make[2]: Leaving directory `D:/progects/serialDevice/qserialdevice-qserialdevice/src'

mingw32-make[1]: Leaving directory `D:/progects/serialDevice/qserialdevice-qserialdevice/src'

mingw32-make: Leaving directory `D:/progects/serialDevice/qserialdevice-qserialdevice'

ar: creating build\release\libqserialdevice.a

Процесс "C:/Qt/2010.05/mingw/bin/mingw32-make.exe" завершился нормально.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuzulis
  опции профиля:
сообщение 15.5.2012, 10:29
Сообщение #326


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

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

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




Репутация:   7  


Цитата
И что надо указать? и так и должно быть? и вообще что делать?

С перва наперво - разобраться что ты делаешь, и жмакать по кнопочкам в QtCreator
нужно не бездумно, а сначала узнав их предназначение и внимательно читать подсказки (хинты).

Далее, QSerialDevice больше не подерживается, вместо него стартовал новый
проект QtSerialPort.
Тем более, что ты использовал очень старую версию QSerialDevice.

Используй QtSerialPort и не пугайся что там написано, что оно только для Qt5, оно
также и для Qt4 работает.



Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
gpepsi
  опции профиля:
сообщение 12.6.2012, 21:48
Сообщение #327


Студент
*

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

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




Репутация:   0  


kuzulis, попробовал собрать через командную строку - не варится

валит что-то типа
WARNING: d:\3RDPARTY\qt\qtserialport\.qmake.cache:1: Unmatched quotes are deprecated.


в debug появилась SerialPortd1.dll, но в релизе ничего нет


Сообщение отредактировал gpepsi - 13.6.2012, 11:35
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuzulis
  опции профиля:
сообщение 13.6.2012, 20:21
Сообщение #328


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

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

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




Репутация:   7  


Цитата
qmake serialport.pro CONFIG+=release
nmake


Цитата
валит что-то типа

так и должно валить
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
asket
  опции профиля:
сообщение 19.7.2012, 14:27
Сообщение #329


Студент
*

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

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




Репутация:   0  


kuzulis, я скомпилировал Вашу сборку в каталоге C:\QtSDK\Desktop\Qt\, создав две папки qtserialport и qtserialport-build, в build я вижу src\debug и src\release - там serialport1.dll и libSerialPort1.a, теперь я хочу собрать тестовое приложение, а он ругается на отсутствие <QtAddOnSerialPort/serialportinfo.h>, где он должен быть? Его не автоматом копирует?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuzulis
  опции профиля:
сообщение 19.7.2012, 17:58
Сообщение #330


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

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

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




Репутация:   7  


Цитата(asket @ 19.7.2012, 15:27) *
я скомпилировал Вашу сборку в каталоге C:\QtSDK\Desktop\Qt\

Вот не нужно так делать. Собирай где-нить в любом другом месте.

Цитата(asket @ 19.7.2012, 15:27) *
<QtAddOnSerialPort/serialportinfo.h>, где он должен быть? Его не автоматом копирует?

На ВиКи все подробно описано как надо собирать и устанавливать.

Сообщение отредактировал kuzulis - 19.7.2012, 17:59
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

44 страниц V  « < 31 32 33 34 35 > » 
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


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




RSS Текстовая версия Сейчас: 28.11.2024, 19:43