![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
lkslks |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 18.10.2012 Пользователь №: 3566 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
При сборке получаю такое сообщение:
.... g++ -Wl,-s -o release\libSerialPort.a release/serialport.o release/serialportinfo.o release/serialport_win.o release/serialportinfo_win.o -L".\lib" -L"c:\Qt\4.8.3\lib" -lsetupapi -ladvapi32 -lQtCore4 c:/qt/qtcreator-2.5.2/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../libmingw32.a(main.o):main.c:(.text+0x104): undefined reference to `WinMain@16' collect2: ld returned 1 exit status ------------------- Qt 4.8.3 MinGW 4.4.0 Кто может прояснить ситуацию ? |
|
|
kuzulis |
![]()
Сообщение
#2
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
Все отлично собирается. Смотри проблему у себя со своей Qt и MinGw.
|
|
|
iReset |
![]()
Сообщение
#3
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 178 Регистрация: 6.6.2012 Пользователь №: 3414 Спасибо сказали: 23 раз(а) Репутация: ![]() ![]() ![]() |
Виноват, ерунду написал. Сообщение отредактировал iReset - 18.10.2012, 12:48 |
|
|
RazrFalcon |
![]()
Сообщение
#4
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Аналогичная проблема.
Лог сборки: Раскрывающийся текст
|
|
|
kuzulis |
![]()
Сообщение
#5
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
Цитата Аналогичная проблема. Во 1: Это не QtSerialPort а QSerialDevice. Во 2: Не аналогичная проблема: Цитата ..\..\qserialdevice-qserialdevice\src\/serialportengine_p_win.h:17:50: error: QtCore/private/qwineventnotifier_p.h: No such file or directory Эта проблема уже стопитсотраз обсуждалась: нжно взять qwineventnotifier_p.h из сорцов Qt. Гугл в помощь. В 3: QSerialDevice больше не поддерживается, поэтому исправляйте баги сами. Сообщение отредактировал kuzulis - 18.10.2012, 15:57 |
|
|
RazrFalcon |
![]()
Сообщение
#6
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Так кого лучше использовать?
QtSerialPort или QSerialDevice? |
|
|
kuzulis |
![]()
Сообщение
#7
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
lkslks |
![]()
Сообщение
#8
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 18.10.2012 Пользователь №: 3566 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
QSerialDevice уже не поддерживается, вместо него QtSerialPort.
Подробности и исходники здесь: http://qt-project.org/wiki/QtSerialPort Вот рекомендуемый процесс сборки с этого сайта: для Qt4: mkdir serialport-build-release cd serialport-build-release qmake ../serialport-src/serialport.pro CONFIG+=release make (or nmake) cd .. mkdir serialport-build-debug cd serialport-build-debug qmake ../serialport-src/serialport.pro //or can add CONFIG+=debug make (or nmake) cd .. cd serialport-build-release // install release build make install (or nmake install) cd .. cd serialport-build-debug // install debug build make install (or nmake install) При выполнении nmake появлялась ошибка с отсутствием WinMain@16, описанная в начале темы. После изменения строки qmake ........... на qmake ../serialport-src/serialport.pro CONFIG+=release CONFIG+=DLL ошибка исчезла. Правда, осталась проблемка с отсутствием одного файла при компиляции примера Terminal, с этим разберусь чуть позже. Да, библиотека собралась и нормально вызывается. Буду тестировать дальше. |
|
|
RazrFalcon |
![]()
Сообщение
#9
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Почитал. Понял.
|
|
|
lkslks |
![]()
Сообщение
#10
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 18.10.2012 Пользователь №: 3566 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
1. Проект QtSeriallPort скомпилировался после добавления CONFIG += DLL. Подозреваю, что виноваты настройки версии Qt4.8.3 (у меня).
2. Не скомпилировался пример Terminal. Выяснил, что причина в том, что не собирается файл ресурсов из terminal.qrc в файл qrc_terminal.cpp. Пробовал подключать ресурсы в QtCreator 2.5.2. Не получается, тот же результат, даже с тестовым проектом. Решил, что у меня QtCreator неверно настроен. Создал файл вручную командой "rcc -o qrc_terminal.cpp terminal.qrc" и подсунул куда надо, пример скомпилировался и заработал. Есть ли у кого какие идеи по неработающим ресурсам ? Подозреваю настройки Qt4.8.3, но опыта не хватает найти причину. PS: Ресурсы, конечно не главное в данном проекте. |
|
|
kuzulis |
![]()
Сообщение
#11
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
lkslks |
![]()
Сообщение
#12
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 18.10.2012 Пользователь №: 3566 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Да, качал готовые. |
|
|
lkslks |
![]()
Сообщение
#13
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 18.10.2012 Пользователь №: 3566 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
У кого есть идеи по неработающим ресурсам в Qt Creator 2.5.2 и Qt4.8.3 ?
Просто в проекте создаю ресурс с картинкой и программа не компилируется. Может работа rcc.exe где-то не прописана ? |
|
|
Гость_Гость_* |
![]()
Сообщение
#14
|
Гости ![]() |
У кого есть идеи по неработающим ресурсам в Qt Creator 2.5.2 и Qt4.8.3 ? Просто в проекте создаю ресурс с картинкой и программа не компилируется. Может работа rcc.exe где-то не прописана ? У кого есть идеи по неработающим ресурсам в Qt Creator 2.5.2 и Qt4.8.3 ? Просто в проекте создаю ресурс с картинкой и программа не компилируется. Может работа rcc.exe где-то не прописана ? это бага 4.8.3 нужно добавить в pro-файл строчку QMAKE_RCC = $$[QT_INSTALL_BINS]/rcc.exe |
|
|
lkslks |
![]()
Сообщение
#15
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 18.10.2012 Пользователь №: 3566 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Да, решение верное, проверил, работает.
Но в моём случае всё оказалось проще. Нужно в системной переменной PATH или в настройках проекта прописать путь c:\Qt\4.8.3. Именно к верхнему уровню, а не только к папке bin. Потому что Qt пытается запустить RCC.EXE из подкаталога bin. Это прописано в файлах Makefile/Debug и Makefile/Release, которые создаются при открытии проекта в QtCreator. В файле c:\Qt\4.8.3\configure.exe нашёл следующее QMAKE_RCC = $$QT_BUILD_TREE...bin/rcc.exe. А сюда это попало, возможно, из файла c:\Qt\4.8.3\configure (QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin"), и, возможно, при установке. В общем, можно, конечно, и дальше копать, но решение найдено, смысл понятен. Удачи всем, спасибо за помощь. |
|
|
asket |
![]()
Сообщение
#16
|
Студент ![]() Группа: Новичок Сообщений: 15 Регистрация: 18.1.2012 Пользователь №: 3139 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
kuzulis, У меня к Вам вот такой вопрос, я использую в своем проекте библиотеку QtSerialPort под Windows, все работает и все замечательно, если бы не одно НО. Оно заключается в следующем, при первом запуске своего приложения, функция open открывает порт, однако поступаемые данные почему-то Ваша библиотека не видит (используется write и waitForReadyRed(), read), чтобы привести в нормальное состояние, мне приходится принудительно закрывать порт с помошью close, запускать любую терминалку (terraterm или hyperterminal), а после можно будет открывать порт и работать. Хотелось бы понять как решить эту проблему? QtLib 4.8, QtSDK 1.2, кстати со старой библиотекой QserialDevice аналогичных проблем не было.
|
|
|
lkslks |
![]()
Сообщение
#17
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 18.10.2012 Пользователь №: 3566 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Рекомендую посмотреть пример Terminal в исходниках QtSerialPort.
|
|
|
Алексей1153 |
![]()
Сообщение
#18
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
asket, сильно смахивает на то, что ты не задаёшь какие-то настройки порта. Толт же терминал их задаёт, поэтому после него у тебя волшебным образом начинает всё работать )
|
|
|
asket |
![]()
Сообщение
#19
|
Студент ![]() Группа: Новичок Сообщений: 15 Регистрация: 18.1.2012 Пользователь №: 3139 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Алексей1153, в том то и дело что порт настроен соответствующим образом, скопировал кусок кода из примера terminal,
какие еще настройки влияют на работу приложения?
|
|
|
Алексей1153 |
![]()
Сообщение
#20
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
там ещё по меньшей мере 5 таймаутов точно нужно настроить. Описание параметров можно найти, к примеру, здесь
http://msdn.microsoft.com/en-us/library/aa...v=VS.85%29.aspx http://msdn.microsoft.com/en-us/library/aa...0(v=vs.85).aspx http://msdn.microsoft.com/en-us/library/aa...0(v=vs.85).aspx |
|
|
kuzulis |
![]()
Сообщение
#21
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
Алексей1153, в том то и дело что порт настроен соответствующим образом, скопировал кусок кода из примера terminal, какие еще настройки влияют на работу приложения? Да неужели правильно скопировал?
Едрить-колотить! Да сколько же можно? Доколе все ВЫ будете повторять эти ошибки? Ты делаешь все неправильно! Читай документацию! Или, для начала, хотя-бы проверяй возвращаемые значения методов setXXX()! PS: Блин, задолбали с такими вопросами |
|
|
Litkevich Yuriy |
![]()
Сообщение
#22
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Едрить-колотить! Да сколько же можно? Доколе все ВЫ будете повторять эти ошибки?Ты делаешь все неправильно! Читай документацию! Или, для начала, хотя-бы проверяй возвращаемые значения методов setXXX()!PS: Блин, задолбали с такими вопросами Денис, а это всё от неестественности, я тебе ещё на прогорге про это говрил.Гораздо естественнее: создать объект, настроить, а потом использовать. Поэтому люди так и делают. |
|
|
NAUGREEM |
![]()
Сообщение
#23
|
Студент ![]() Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Здравствуйте!
Проблема тоже в винде (в линуксе всё работает)... порт открываю так:
далее пишу в порт строку байтов 'write()', а из порта 'read()' приходит в бесконечном цикле первый байт строки... winXP|win7|win8 - одна беда(( на старой версии QtSerialPort такой проблемы в винде небыло |
|
|
kuzulis |
![]()
Сообщение
#24
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
далее пишу в порт строку байтов 'write()', а из порта 'read()' приходит в бесконечном цикле первый байт строки... winXP|win7|win8 - одна беда(( на старой версии QtSerialPort такой проблемы в винде небыло Ну чтож, приведи минимальный компилябельный пример, который воспроизводит проблему. Из приведенного тобой описания ничего не понятно. |
|
|
NAUGREEM |
![]()
Сообщение
#25
|
Студент ![]() Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
вот простой пример:
запущен на winXP SP3, qt-4.8.4, MinGW-w64 - for 32 bit Windows (gcc-4.7.1) |
|
|
kuzulis |
![]()
Сообщение
#26
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
вот простой пример: ... ... ... запущен на winXP SP3, qt-4.8.4, MinGW-w64 - for 32 bit Windows (gcc-4.7.1) И опять же, ты тоже неправильно используешь библиотеку. В твоем случае см. в сторону примера BlockingMaster и внимательно читай комментарии в нем (точнее в qtserialport\doc\src\examples\). Сообщение отредактировал kuzulis - 16.1.2013, 20:08 |
|
|
NAUGREEM |
![]()
Сообщение
#27
|
Студент ![]() Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Экспериментируя с кодом заметил забавную вещь:
если строку
заменить на
то всё отлично работает отсюда вопрос: почему в виндовсе при пустом буфере чтения функция bytesAvailable() возвращает 512? |
|
|
kuzulis |
![]()
Сообщение
#28
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
NAUGREEM |
![]()
Сообщение
#29
|
Студент ![]() Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
что-то не собирается((
Раскрывающийся текст g++ -c -pipe -fno-keep-inline-dllexport -g -frtti -fexceptions -mthreads -Wall -Wextra -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -I'../../Qt/4.8.4/include/QtCore' -I'../../Qt/4.8.4/include' -I'../qtserialport/src/serialport' -I'../../Qt/4.8.4/inc ../qtserialport/src/serialport/serialport.cpp:382:1: warning: 'QtAddOn::SerialPort::SerialPort::SerialPort(QObject*)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:393:1: warning: 'QtAddOn::SerialPort::SerialPort::SerialPort(const QString&, QObject*)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:405:1: warning: 'QtAddOn::SerialPort::SerialPort::SerialPort(const QtAddOn::SerialPort::SerialPortInfo&, QObject*)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:415:1: warning: 'virtual QtAddOn::SerialPort::SerialPort::~SerialPort()' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:430:6: warning: 'void QtAddOn::SerialPort::SerialPort::setPort(const QString&)' redeclared without dllimport attribute after being referenced with dll linkage [enabled by default]. ../qtserialport/src/serialport/serialport.cpp:441:6: warning: 'void QtAddOn::SerialPort::SerialPort::setPort(const QtAddOn::SerialPort::SerialPortInfo&)' redeclared without dllimport attribute after being referenced with dll linkage [enabled by default]. ../qtserialport/src/serialport/serialport.cpp:483:9: warning: 'QString QtAddOn::SerialPort::SerialPort::portName() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:500:6: warning: 'virtual bool QtAddOn::SerialPort::SerialPort::open(QIODevice::OpenMode)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:530:6: warning: 'virtual void QtAddOn::SerialPort::SerialPort::close()' redeclared without dllimport attribute after being referenced with dll linkage [enabled by default]. ../qtserialport/src/serialport/serialport.cpp:553:6: warning: 'void QtAddOn::SerialPort::SerialPort::setRestoreSettingsOnClose(bool)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:568:6: warning: 'bool QtAddOn::SerialPort::SerialPort::restoreSettingsOnClose() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:599:6: warning: 'bool QtAddOn::SerialPort::SerialPort::setRate(qint32, QtAddOn::SerialPort::SerialPort::Directions)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:613:8: warning: 'qint32 QtAddOn::SerialPort::SerialPort::rate(QtAddOn::SerialPort::SerialPort::Direction s) const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:638:6: warning: 'bool QtAddOn::SerialPort::SerialPort::setDataBits(QtAddOn::SerialPort::SerialPort::Da taBits)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:649:22: warning: 'QtAddOn::SerialPort::SerialPort::DataBits QtAddOn::SerialPort::SerialPort::dataBits() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:672:6: warning: 'bool QtAddOn::SerialPort::SerialPort::setParity(QtAddOn::SerialPort::SerialPort::Pari ty)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:683:20: warning: 'QtAddOn::SerialPort::SerialPort::Parity QtAddOn::SerialPort::SerialPort::parity() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:705:6: warning: 'bool QtAddOn::SerialPort::SerialPort::setStopBits(QtAddOn::SerialPort::SerialPort::St opBits)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:716:22: warning: 'QtAddOn::SerialPort::SerialPort::StopBits QtAddOn::SerialPort::SerialPort::stopBits() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:738:6: warning: 'bool QtAddOn::SerialPort::SerialPort::setFlowControl(QtAddOn::SerialPort::SerialPort: :FlowControl)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:749:25: warning: 'QtAddOn::SerialPort::SerialPort::FlowControl QtAddOn::SerialPort::SerialPort::flowControl() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:773:6: warning: 'bool QtAddOn::SerialPort::SerialPort::setDtr(bool)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:784:6: warning: 'bool QtAddOn::SerialPort::SerialPort::dtr() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:809:6: warning: 'bool QtAddOn::SerialPort::SerialPort::setRts(bool)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:820:6: warning: 'bool QtAddOn::SerialPort::SerialPort::rts() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:844:19: warning: 'QtAddOn::SerialPort::SerialPort::Lines QtAddOn::SerialPort::SerialPort::lines() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:864:6: warning: 'bool QtAddOn::SerialPort::SerialPort::flush()' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:876:6: warning: 'bool QtAddOn::SerialPort::SerialPort::clear(QtAddOn::SerialPort::SerialPort::Directio ns)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:907:6: warning: 'virtual bool QtAddOn::SerialPort::SerialPort::atEnd() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:921:6: warning: 'bool QtAddOn::SerialPort::SerialPort::setDataErrorPolicy(QtAddOn::SerialPort::SerialP ort::DataErrorPolicy)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:934:29: warning: 'QtAddOn::SerialPort::SerialPort::DataErrorPolicy QtAddOn::SerialPort::SerialPort::dataErrorPolicy() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:962:23: warning: 'QtAddOn::SerialPort::SerialPort::PortError QtAddOn::SerialPort::SerialPort::error() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:968:6: warning: 'void QtAddOn::SerialPort::SerialPort::clearError()' redeclared without dllimport attribute after being referenced with dll linkage [enabled by default]. ../qtserialport/src/serialport/serialport.cpp:993:8: warning: 'qint64 QtAddOn::SerialPort::SerialPort::readBufferSize() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:1015:6: warning: 'void QtAddOn::SerialPort::SerialPort::setReadBufferSize(qint64)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:1027:6: warning: 'virtual bool QtAddOn::SerialPort::SerialPort::isSequential() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:1037:8: warning: 'virtual qint64 QtAddOn::SerialPort::SerialPort::bytesAvailable() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:1050:8: warning: 'virtual qint64 QtAddOn::SerialPort::SerialPort::bytesToWrite() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:1062:6: warning: 'virtual bool QtAddOn::SerialPort::SerialPort::canReadLine() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:1080:6: warning: 'virtual bool QtAddOn::SerialPort::SerialPort::waitForReadyRead(int)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:1088:6: warning: 'virtual bool QtAddOn::SerialPort::SerialPort::waitForBytesWritten(int)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:1107:6: warning: 'bool QtAddOn::SerialPort::SerialPort::sendBreak(int)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:1121:6: warning: 'bool QtAddOn::SerialPort::SerialPort::setBreak(bool)' redeclared without dllimport attribute after being referenced with dll linkage [enabled by default]. ../qtserialport/src/serialport/serialport.cpp:1129:8: warning: 'virtual qint64 QtAddOn::SerialPort::SerialPort::readData(char*, qint64)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:1137:8: warning: 'virtual qint64 QtAddOn::SerialPort::SerialPort::readLineData(char*, qint64)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. ../qtserialport/src/serialport/serialport.cpp:1144:8: warning: 'virtual qint64 QtAddOn::SerialPort::SerialPort::writeData(const char*, qint64)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. In file included from ../qtserialport/src/serialport/serialport.cpp:1161:0:. debug/moc_serialport.cpp:191:6: warning: 'static void QtAddOn::SerialPort::SerialPort::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. debug/moc_serialport.cpp:228:40: warning: 'QtAddOn::SerialPort::SerialPort::staticMetaObjectExtraData' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. debug/moc_serialport.cpp:232:31: warning: 'QtAddOn::SerialPort::SerialPort::staticMetaObject' redeclared without dllimport attribute after being referenced with dll linkage [enabled by default]. debug/moc_serialport.cpp:241:20: warning: 'virtual const QMetaObject* QtAddOn::SerialPort::SerialPort::metaObject() const' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. debug/moc_serialport.cpp:246:7: warning: 'virtual void* QtAddOn::SerialPort::SerialPort::qt_metacast(const char*)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. debug/moc_serialport.cpp:254:5: warning: 'virtual int QtAddOn::SerialPort::SerialPort::qt_metacall(QMetaObject::Call, int, void**)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. debug/moc_serialport.cpp:315:6: warning: 'void QtAddOn::SerialPort::SerialPort::rateChanged(qint32, QtAddOn::SerialPort::SerialPort::Directions)' redeclared without dllimport attribute after being referenced with dll linkage [enabled by default]. In file included from ../qtserialport/src/serialport/serialport.cpp:1161:0:. debug/moc_serialport.cpp:322:6: warning: 'void QtAddOn::SerialPort::SerialPort::dataBitsChanged(QtAddOn::SerialPort::SerialPort ::DataBits)' redeclared without dllimport attribute after being referenced with dll linkage [enabled by default]. debug/moc_serialport.cpp:329:6: warning: 'void QtAddOn::SerialPort::SerialPort::parityChanged(QtAddOn::SerialPort::SerialPort:: Parity)' redeclared without dllimport attribute after being referenced with dll linkage [enabled by default]. debug/moc_serialport.cpp:336:6: warning: 'void QtAddOn::SerialPort::SerialPort::stopBitsChanged(QtAddOn::SerialPort::SerialPort ::StopBits)' redeclared without dllimport attribute after being referenced with dll linkage [enabled by default]. debug/moc_serialport.cpp:343:6: warning: 'void QtAddOn::SerialPort::SerialPort::flowControlChanged(QtAddOn::SerialPort::SerialP ort::FlowControl)' redeclared without dllimport attribute after being referenced with dll linkage [enabled by default]. debug/moc_serialport.cpp:350:6: warning: 'void QtAddOn::SerialPort::SerialPort::dataErrorPolicyChanged(QtAddOn::SerialPort::Ser ialPort::DataErrorPolicy)' redeclared without dllimport attribute after being referenced with dll linkage [enabled by default]. debug/moc_serialport.cpp:357:6: warning: 'void QtAddOn::SerialPort::SerialPort::dtrChanged(bool)' redeclared without dllimport attribute after being referenced with dll linkage [enabled by default]. debug/moc_serialport.cpp:364:6: warning: 'void QtAddOn::SerialPort::SerialPort::rtsChanged(bool)' redeclared without dllimport attribute after being referenced with dll linkage [enabled by default]. debug/moc_serialport.cpp:371:6: warning: 'void QtAddOn::SerialPort::SerialPort::errorChanged(QtAddOn::SerialPort::SerialPort::P ortError)' redeclared without dllimport attribute after being referenced with dll linkage [enabled by default]. debug/moc_serialport.cpp:378:6: warning: 'void QtAddOn::SerialPort::SerialPort::restoreSettingsOnCloseChanged(bool)' redeclared without dllimport attribute after being referenced with dll linkage [enabled by default]. In file included from ../qtserialport/src/serialport/serialport.cpp:1161:0:. debug/moc_serialport.cpp:228:28: error: definition of static data member 'QtAddOn::SerialPort::SerialPort::staticMetaObjectExtraData' of dllimport'd class. mingw32-make[1]: Leaving directory `C:/projects/TestSerialPort-build-Debug'. mingw32-make[1]: *** [debug/serialport.o] Error 1. mingw32-make: *** [debug] Error 2 .pro
|
|
|
kuzulis |
![]()
Сообщение
#30
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
Там в "serialport-global.h" надо закомментировать Q_DECL_XXX дефайны:
|
|
|
NAUGREEM |
![]()
Сообщение
#31
|
Студент ![]() Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
спасибо, собрал...
заметил такой момент: в unix варианте после чтения из порта есть такая строка:
в win варианте ничего похожего нету... в связи с этим рамер буфера чтения (который выводится командой bytesAvailable(), про которую я ранее писал) так и остаётся 512 - то есть той величины, на которую он быз зарезервирован перед чтением... складывается впечатление, что кто-то что-то для венды недоделал, или я взял исходник не и того места... |
|
|
kuzulis |
![]()
Сообщение
#32
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
складывается впечатление, что кто-то что-то для венды недоделал, или я взял исходник не и того места... Да, есть касячок в реализации bytesAvailable() для винды. Нужно чтобы он возвращал не размер буфера, а переменную actualReadBufferSize. Сообщение отредактировал kuzulis - 18.1.2013, 15:15 |
|
|
kuzulis |
![]()
Сообщение
#33
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
Вроде исправил, обновись.
|
|
|
NAUGREEM |
![]()
Сообщение
#34
|
Студент ![]() Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
kuzulis |
![]()
Сообщение
#35
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
обновись еще раз, сегодня был коммит на исправление clear():
https://codereview.qt-project.org/#change,45274 |
|
|
NAUGREEM |
![]()
Сообщение
#36
|
Студент ![]() Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Доброго всем!
Заметил такую штуку: когда
то
а когда
то
qt4.8.4 Linux всё делается в отдельном потоке... вопрос: куда деваются прочитанные данные во время сна? |
|
|
NAUGREEM |
![]()
Сообщение
#37
|
Студент ![]() Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Хотя возможно у меня был глюк - после переподключения девайса больше такого не замечал...
|
|
|
NAUGREEM |
![]()
Сообщение
#38
|
Студент ![]() Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Доброго всем!
Заметил недавно проблему - на USB-UART Com порте связь без проблем, а на Bluetooth Com порте порт отрывается не всегда, и в ErrorString пишет "отказано в доступе"... Пробовал терминалкой - никаких проблем... открывает порт всегда с первого раза и не теряет связь, а если с помошью QtSerialPort - то через некоторое время (в пределах минуты) оказывается, что открытый порт уже свободен... Кто-нибудь сталкивался с такой проблемой? Может с блютузом надо как-то по особенному работать? библиотеку брал из Git 10-го марта... Qt 4.8.4, mingw32 (gcc-4.7) |
|
|
Алексей1153 |
![]()
Сообщение
#39
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
NAUGREEM, может, его периодически надо дрюкать - к примеру раз в полминуты, если не было активности, принудительно пишем или читаем 0 байтов
|
|
|
NAUGREEM |
![]()
Сообщение
#40
|
Студент ![]() Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
kuzulis |
![]()
Сообщение
#41
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
NAUGREEM,
А ты установи сниффер (например Free Serial Port Monitor) и проверь. |
|
|
Алексей1153 |
![]()
Сообщение
#42
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
NAUGREEM |
![]()
Сообщение
#43
|
Студент ![]() Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
NAUGREEM, А ты установи сниффер (например Free Serial Port Monitor) и проверь. посмотрел: в терминалке:
у меня:
во первых - порт открылся только с 7-го раза, до этого возвращал ошибку 2 (отказано в доступе) во вторых - во время дальнейшей работы почему-то постоянно открывался (в программе команды на открытие у меня в это время небыло...) |
|
|
kuzulis |
![]()
Сообщение
#44
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
Мож у тебя вирус какой или троян?
![]() Чудес не бывает (с). Цитата Порт открыт процессом "cms.exe" Это чей процесс? |
|
|
NAUGREEM |
![]()
Сообщение
#45
|
Студент ![]() Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Мож у тебя вирус какой или троян? ![]() Чудес не бывает (с). голая винда в виртуалке - везде с этого диска ставил и антивирусы ниразу не ругались... Цитата Цитата Порт открыт процессом "cms.exe" Это чей процесс? это моя прога с этой либой) на разных компах с блютузом такая-же шняга( по USB нормально... и почему на терминалку вирус не влияет? может глюк из-за того, что у меня работа с портом в отдельном потоке? таблицы системных вызовов: в терминалке: Раскрывающийся текст ,IRP_MJ_CREATE,DOWN,TRUE,0x0,74 00 63 00 6F 00 6D 00 75 00 31 00 32 00 2E 00 65 00 78 00 65 00 00 00 ,t.c.o.m.u.1.2...e.x.e..., 1,IRP_MJ_CREATE,UP,FALSE,0x0,,, 2,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_BAUD_RATE: Retrieve Baud Rate),DOWN,FALSE,0x0,,, 3,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_BAUD_RATE: Retrieve Baud Rate),UP,TRUE,0x0,00 C2 01 00 ,.A.., 4,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_LINE_CONTROL: Retrieve line control),DOWN,FALSE,0x0,,, 5,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_LINE_CONTROL: Retrieve line control),UP,TRUE,0x0,00 00 08 ,..., 6,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_CHARS: Retrieve special characters),DOWN,FALSE,0x0,,, 7,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_CHARS: Retrieve special characters),UP,TRUE,0x0,00 00 00 00 00 00 ,......, 8,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_HANDFLOW: Retrieve handshake information),DOWN,FALSE,0x0,,, 9,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_HANDFLOW: Retrieve handshake information),UP,TRUE,0x0,09 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 ,....?..........., 10,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_BAUD_RATE: Set baud rate),DOWN,TRUE,0x0,80 25 00 00 ,?%.., 11,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_BAUD_RATE: Set baud rate),UP,FALSE,0x0,,, 12,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_CLR_RTS: Clear RTS),DOWN,FALSE,0x0,,, 13,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_CLR_RTS: Clear RTS),UP,FALSE,0x0,,, 14,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_DTR: Set DTR),DOWN,FALSE,0x0,,, 15,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_DTR: Set DTR),UP,FALSE,0x0,,, 16,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_LINE_CONTROL: Set line control),DOWN,TRUE,0x0,00 00 08 ,..., 17,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_LINE_CONTROL: Set line control),UP,FALSE,0x0,,, 18,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_CHARS: Set special characters),DOWN,TRUE,0x0,00 00 00 00 11 13 ,......, 19,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_CHARS: Set special characters),UP,FALSE,0x0,,, 20,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_HANDFLOW: Set handshake information),DOWN,TRUE,0x0,01 00 00 00 00 00 00 00 00 02 00 00 00 02 00 00 ,................, 21,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_HANDFLOW: Set handshake information),UP,FALSE,0x0,,, 22,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_PURGE: Purge requests),DOWN,TRUE,0x0,0F 00 00 00 ,...., 23,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_PURGE: Purge requests),UP,FALSE,0x0,,, 24,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_QUEUE_SIZE: Set queue size),DOWN,TRUE,0x0,00 08 00 00 00 08 00 00 ,........, 25,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_QUEUE_SIZE: Set queue size),UP,FALSE,0x0,,, 26,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_TIMEOUTS: Set timeouts),DOWN,TRUE,0x0,01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 0A 00 00 00 ,...................., 27,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_TIMEOUTS: Set timeouts),UP,FALSE,0x0,,, 28,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_COMMSTATUS: Retrieve COM status),DOWN,FALSE,0x0,,, 29,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_COMMSTATUS: Retrieve COM status),UP,TRUE,0x0,00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ,...................., 30,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_COMMSTATUS: Retrieve COM status),DOWN,FALSE,0x0,,, 31,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_COMMSTATUS: Retrieve COM status),UP,TRUE,0x0,00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ,...................., 32,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_COMMSTATUS: Retrieve COM status),DOWN,FALSE,0x0,,, 33,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_COMMSTATUS: Retrieve COM status),UP,TRUE,0x0,00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ,...................., .... 1182,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_COMMSTATUS: Retrieve COM status),DOWN,FALSE,0x0,,, 1183,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_COMMSTATUS: Retrieve COM status),UP,TRUE,0x0,00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ,...................., 1184,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_COMMSTATUS: Retrieve COM status),DOWN,FALSE,0x0,,, 1185,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_COMMSTATUS: Retrieve COM status),UP,TRUE,0x0,00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ,...................., 1186,IRP_MJ_WRITE,DOWN,TRUE,0x0,FF ,y, 1187,IRP_MJ_WRITE,UP,TRUE,0x0,FF ,y, 1188,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_COMMSTATUS: Retrieve COM status),DOWN,FALSE,0x0,,, 1189,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_COMMSTATUS: Retrieve COM status),UP,TRUE,0x0,00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 ,...................., 1190,IRP_MJ_READ,DOWN,FALSE,0x0,,, 1191,IRP_MJ_READ,UP,TRUE,0x0,FF FF FF ,yyy, 1192,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_COMMSTATUS: Retrieve COM status),DOWN,FALSE,0x0,,, 1193,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_COMMSTATUS: Retrieve COM status),UP,TRUE,0x0,00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ,...................., 1194,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_COMMSTATUS: Retrieve COM status),DOWN,FALSE,0x0,,, 1195,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_COMMSTATUS: Retrieve COM status),UP,TRUE,0x0,00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ,...................., 1196,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_COMMSTATUS: Retrieve COM status),DOWN,FALSE,0x0,,, 1197,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_COMMSTATUS: Retrieve COM status),UP,TRUE,0x0,00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ,...................., 1198,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_COMMSTATUS: Retrieve COM status),DOWN,FALSE,0x0,,, 1199,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_COMMSTATUS: Retrieve COM status),UP,TRUE,0x0,00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ,...................., .... 1292,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_COMMSTATUS: Retrieve COM status),DOWN,FALSE,0x0,,, 1293,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_COMMSTATUS: Retrieve COM status),UP,TRUE,0x0,00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ,...................., 1294,IRP_MJ_CLOSE,DOWN,FALSE,0x0,,, 1295,IRP_MJ_CLOSE,UP,FALSE,0x0,,, у меня: Раскрывающийся текст 0,IRP_MJ_CREATE,DOWN,TRUE,0x0,63 00 6D 00 73 00 2E 00 65 00 78 00 65 00 00 00 ,c.m.s...e.x.e..., 1,IRP_MJ_CREATE,UP,FALSE,0x0,,, 2,IRP_MJ_CLOSE,DOWN,FALSE,0x0,,, 3,IRP_MJ_CLOSE,UP,FALSE,0x0,,, 4,IRP_MJ_CREATE,DOWN,TRUE,0x0,63 00 6D 00 73 00 2E 00 65 00 78 00 65 00 00 00 ,c.m.s...e.x.e..., 5,IRP_MJ_CREATE,UP,FALSE,0x0,,, 6,IRP_MJ_CLOSE,DOWN,FALSE,0x0,,, 7,IRP_MJ_CLOSE,UP,FALSE,0x0,,, 8,IRP_MJ_CREATE,DOWN,TRUE,0x0,63 00 6D 00 73 00 2E 00 65 00 78 00 65 00 00 00 ,c.m.s...e.x.e..., 9,IRP_MJ_CREATE,UP,FALSE,0x0,,, 10,IRP_MJ_CLOSE,DOWN,FALSE,0x0,,, 11,IRP_MJ_CLOSE,UP,FALSE,0x0,,, 12,IRP_MJ_CREATE,DOWN,TRUE,0x0,63 00 6D 00 73 00 2E 00 65 00 78 00 65 00 00 00 ,c.m.s...e.x.e..., 13,IRP_MJ_CREATE,UP,FALSE,0x0,,, 14,IRP_MJ_CLOSE,DOWN,FALSE,0x0,,, 15,IRP_MJ_CLOSE,UP,FALSE,0x0,,, 16,IRP_MJ_CREATE,DOWN,TRUE,0x0,63 00 6D 00 73 00 2E 00 65 00 78 00 65 00 00 00 ,c.m.s...e.x.e..., 17,IRP_MJ_CREATE,UP,FALSE,0x0,,, 18,IRP_MJ_CLOSE,DOWN,FALSE,0x0,,, 19,IRP_MJ_CLOSE,UP,FALSE,0x0,,, 20,IRP_MJ_CREATE,DOWN,TRUE,0x0,63 00 6D 00 73 00 2E 00 65 00 78 00 65 00 00 00 ,c.m.s...e.x.e..., 21,IRP_MJ_CREATE,UP,FALSE,0x0,,, 22,IRP_MJ_CLOSE,DOWN,FALSE,0x0,,, 23,IRP_MJ_CLOSE,UP,FALSE,0x0,,, 24,IRP_MJ_CREATE,DOWN,TRUE,0x0,63 00 6D 00 73 00 2E 00 65 00 78 00 65 00 00 00 ,c.m.s...e.x.e..., 25, IRP_MJ_CREATE,DOWN,TRUE,0x0,63 00 6D 00 73 00 2E 00 65 00 78 00 65 00 00 00 ,c.m.s...e.x.e..., 26, IRP_MJ_CREATE,UP,FALSE,0xc0000022,,, 27,IRP_MJ_CREATE,UP,FALSE,0x0,,, 28,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_BAUD_RATE: Retrieve Baud Rate),DOWN,FALSE,0x0,,, 29,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_BAUD_RATE: Retrieve Baud Rate),UP,TRUE,0x0,00 C2 01 00 ,.A.., 30,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_LINE_CONTROL: Retrieve line control),DOWN,FALSE,0x0,,, 31,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_LINE_CONTROL: Retrieve line control),UP,TRUE,0x0,00 00 08 ,..., 32,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_CHARS: Retrieve special characters),DOWN,FALSE,0x0,,, 33,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_CHARS: Retrieve special characters),UP,TRUE,0x0,00 00 00 00 00 00 ,......, 34,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_HANDFLOW: Retrieve handshake information),DOWN,FALSE,0x0,,, 35,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_HANDFLOW: Retrieve handshake information),UP,TRUE,0x0,09 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 ,....?..........., 36,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_BAUD_RATE: Retrieve Baud Rate),DOWN,FALSE,0x0,,, 37,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_BAUD_RATE: Retrieve Baud Rate),UP,TRUE,0x0,00 C2 01 00 ,.A.., 38,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_LINE_CONTROL: Retrieve line control),DOWN,FALSE,0x0,,, 39,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_LINE_CONTROL: Retrieve line control),UP,TRUE,0x0,00 00 08 ,..., 40,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_CHARS: Retrieve special characters),DOWN,FALSE,0x0,,, 41,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_CHARS: Retrieve special characters),UP,TRUE,0x0,00 00 00 00 00 00 ,......, 42,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_HANDFLOW: Retrieve handshake information),DOWN,FALSE,0x0,,, 43,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_HANDFLOW: Retrieve handshake information),UP,TRUE,0x0,09 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 ,....?..........., 44,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_BAUD_RATE: Set baud rate),DOWN,TRUE,0x0,00 C2 01 00 ,.A.., 45,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_BAUD_RATE: Set baud rate),UP,FALSE,0x0,,, 46,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_DTR: Set DTR),DOWN,FALSE,0x0,,, 47,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_DTR: Set DTR),UP,FALSE,0x0,,, 48,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_LINE_CONTROL: Set line control),DOWN,TRUE,0x0,00 00 08 ,..., 49,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_LINE_CONTROL: Set line control),UP,FALSE,0x0,,, 50,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_CHARS: Set special characters),DOWN,TRUE,0x0,00 00 00 00 00 00 ,......, 51,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_CHARS: Set special characters),UP,FALSE,0x0,,, 52,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_HANDFLOW: Set handshake information),DOWN,TRUE,0x0,09 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 ,....?..........., 53,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_HANDFLOW: Set handshake information),UP,FALSE,0x0,,, 54,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_TIMEOUTS: Retrieve timeouts),DOWN,FALSE,0x0,,, 55,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_TIMEOUTS: Retrieve timeouts),UP,TRUE,0x0,00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ,...................., 56,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_TIMEOUTS: Set timeouts),DOWN,TRUE,0x0,FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ,yyyy................, 57,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_TIMEOUTS: Set timeouts),UP,FALSE,0x0,,, 58,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_WAIT_MASK: Set current event mask),DOWN,TRUE,0x0,81 00 00 00 ,?..., 59,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_WAIT_MASK: Set current event mask),UP,FALSE,0x0,,, 60,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_WAIT_ON_MASK: Wait for event),DOWN,FALSE,0x0,,, 61, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_MODEMSTATUS: Retrieve modem status),DOWN,FALSE,0x0,,, 62, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_MODEMSTATUS: Retrieve modem status),UP,TRUE,0x0,00 00 00 00 ,...., 63, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_DTRRTS: Retrieve DTR and RTS),DOWN,FALSE,0x0,,, 64, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_DTRRTS: Retrieve DTR and RTS),UP,TRUE,0x0,03 00 00 00 ,...., 65, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_MODEMSTATUS: Retrieve modem status),DOWN,FALSE,0x0,,, 66, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_MODEMSTATUS: Retrieve modem status),UP,TRUE,0x0,00 00 00 00 ,...., 67, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_DTRRTS: Retrieve DTR and RTS),DOWN,FALSE,0x0,,, 68, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_DTRRTS: Retrieve DTR and RTS),UP,TRUE,0x0,03 00 00 00 ,...., 69, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_BAUD_RATE: Retrieve Baud Rate),DOWN,FALSE,0x0,,, 70, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_BAUD_RATE: Retrieve Baud Rate),UP,TRUE,0x0,00 C2 01 00 ,.A.., 71, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_LINE_CONTROL: Retrieve line control),DOWN,FALSE,0x0,,, 72, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_LINE_CONTROL: Retrieve line control),UP,TRUE,0x0,00 00 08 ,..., 73, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_CHARS: Retrieve special characters),DOWN,FALSE,0x0,,, 74, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_CHARS: Retrieve special characters),UP,TRUE,0x0,00 00 00 00 00 00 ,......, 75, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_HANDFLOW: Retrieve handshake information),DOWN,FALSE,0x0,,, 76, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_HANDFLOW: Retrieve handshake information),UP,TRUE,0x0,09 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 ,....?..........., 77, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_BAUD_RATE: Set baud rate),DOWN,TRUE,0x0,80 25 00 00 ,?%.., 78, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_BAUD_RATE: Set baud rate),UP,FALSE,0x0,,, 79, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_DTR: Set DTR),DOWN,FALSE,0x0,,, 80, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_DTR: Set DTR),UP,FALSE,0x0,,, 81, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_LINE_CONTROL: Set line control),DOWN,TRUE,0x0,00 00 08 ,..., 82, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_LINE_CONTROL: Set line control),UP,FALSE,0x0,,, 83, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_CHARS: Set special characters),DOWN,TRUE,0x0,00 00 00 00 00 00 ,......, 84, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_CHARS: Set special characters),UP,FALSE,0x0,,, 85, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_HANDFLOW: Set handshake information),DOWN,TRUE,0x0,09 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 ,....?..........., 86, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_HANDFLOW: Set handshake information),UP,FALSE,0x0,,, 87, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_BAUD_RATE: Retrieve Baud Rate),DOWN,FALSE,0x0,,, 88, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_BAUD_RATE: Retrieve Baud Rate),UP,TRUE,0x0,80 25 00 00 ,?%.., 89, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_LINE_CONTROL: Retrieve line control),DOWN,FALSE,0x0,,, 90, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_LINE_CONTROL: Retrieve line control),UP,TRUE,0x0,00 00 08 ,..., 91, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_CHARS: Retrieve special characters),DOWN,FALSE,0x0,,, 92, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_CHARS: Retrieve special characters),UP,TRUE,0x0,00 00 00 00 00 00 ,......, 93, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_HANDFLOW: Retrieve handshake information),DOWN,FALSE,0x0,,, 94, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_HANDFLOW: Retrieve handshake information),UP,TRUE,0x0,09 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 ,....?..........., 95, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_BAUD_RATE: Set baud rate),DOWN,TRUE,0x0,80 25 00 00 ,?%.., 96, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_BAUD_RATE: Set baud rate),UP,FALSE,0x0,,, 97, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_DTR: Set DTR),DOWN,FALSE,0x0,,, 98, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_DTR: Set DTR),UP,FALSE,0x0,,, 99, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_LINE_CONTROL: Set line control),DOWN,TRUE,0x0,00 00 08 ,..., 100, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_LINE_CONTROL: Set line control),UP,FALSE,0x0,,, 101, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_CHARS: Set special characters),DOWN,TRUE,0x0,00 00 00 00 00 00 ,......, 102, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_CHARS: Set special characters),UP,FALSE,0x0,,, 103, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_HANDFLOW: Set handshake information),DOWN,TRUE,0x0,09 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 ,....?..........., 104, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_HANDFLOW: Set handshake information),UP,FALSE,0x0,,, 105, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_BAUD_RATE: Retrieve Baud Rate),DOWN,FALSE,0x0,,, 106, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_BAUD_RATE: Retrieve Baud Rate),UP,TRUE,0x0,80 25 00 00 ,?%.., 107, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_LINE_CONTROL: Retrieve line control),DOWN,FALSE,0x0,,, 108, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_LINE_CONTROL: Retrieve line control),UP,TRUE,0x0,00 00 08 ,..., 109, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_CHARS: Retrieve special characters),DOWN,FALSE,0x0,,, 110, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_CHARS: Retrieve special characters),UP,TRUE,0x0,00 00 00 00 00 00 ,......, 111, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_HANDFLOW: Retrieve handshake information),DOWN,FALSE,0x0,,, 112, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_HANDFLOW: Retrieve handshake information),UP,TRUE,0x0,09 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 ,....?..........., 113, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_BAUD_RATE: Set baud rate),DOWN,TRUE,0x0,80 25 00 00 ,?%.., 114, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_BAUD_RATE: Set baud rate),UP,FALSE,0x0,,, 115, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_DTR: Set DTR),DOWN,FALSE,0x0,,, 116, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_DTR: Set DTR),UP,FALSE,0x0,,, 117, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_LINE_CONTROL: Set line control),DOWN,TRUE,0x0,00 00 08 ,..., 118, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_LINE_CONTROL: Set line control),UP,FALSE,0x0,,, 119, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_CHARS: Set special characters),DOWN,TRUE,0x0,00 00 00 00 00 00 ,......, 120, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_CHARS: Set special characters),UP,FALSE,0x0,,, 121, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_HANDFLOW: Set handshake information),DOWN,TRUE,0x0,09 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 ,....?..........., 122, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_HANDFLOW: Set handshake information),UP,FALSE,0x0,,, 123, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_BAUD_RATE: Retrieve Baud Rate),DOWN,FALSE,0x0,,, 124, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_BAUD_RATE: Retrieve Baud Rate),UP,TRUE,0x0,80 25 00 00 ,?%.., 125, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_LINE_CONTROL: Retrieve line control),DOWN,FALSE,0x0,,, 126, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_LINE_CONTROL: Retrieve line control),UP,TRUE,0x0,00 00 08 ,..., 127, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_CHARS: Retrieve special characters),DOWN,FALSE,0x0,,, 128, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_CHARS: Retrieve special characters),UP,TRUE,0x0,00 00 00 00 00 00 ,......, 129, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_HANDFLOW: Retrieve handshake information),DOWN,FALSE,0x0,,, 130, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_HANDFLOW: Retrieve handshake information),UP,TRUE,0x0,09 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 ,....?..........., 131, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_BAUD_RATE: Set baud rate),DOWN,TRUE,0x0,80 25 00 00 ,?%.., 132, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_BAUD_RATE: Set baud rate),UP,FALSE,0x0,,, 133, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_DTR: Set DTR),DOWN,FALSE,0x0,,, 134, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_DTR: Set DTR),UP,FALSE,0x0,,, 135, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_LINE_CONTROL: Set line control),DOWN,TRUE,0x0,00 00 08 ,..., 136, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_LINE_CONTROL: Set line control),UP,FALSE,0x0,,, 137, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_CHARS: Set special characters),DOWN,TRUE,0x0,00 00 00 00 00 00 ,......, 138, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_CHARS: Set special characters),UP,FALSE,0x0,,, 139, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_HANDFLOW: Set handshake information),DOWN,TRUE,0x0,09 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 ,....?..........., 140, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_HANDFLOW: Set handshake information),UP,FALSE,0x0,,, 141, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_BAUD_RATE: Retrieve Baud Rate),DOWN,FALSE,0x0,,, 142, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_BAUD_RATE: Retrieve Baud Rate),UP,TRUE,0x0,80 25 00 00 ,?%.., 143, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_LINE_CONTROL: Retrieve line control),DOWN,FALSE,0x0,,, 144, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_LINE_CONTROL: Retrieve line control),UP,TRUE,0x0,00 00 08 ,..., 145, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_CHARS: Retrieve special characters),DOWN,FALSE,0x0,,, 146, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_CHARS: Retrieve special characters),UP,TRUE,0x0,00 00 00 00 00 00 ,......, 147, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_HANDFLOW: Retrieve handshake information),DOWN,FALSE,0x0,,, 148, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_GET_HANDFLOW: Retrieve handshake information),UP,TRUE,0x0,09 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 ,....?..........., 149, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_BAUD_RATE: Set baud rate),DOWN,TRUE,0x0,80 25 00 00 ,?%.., 150, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_BAUD_RATE: Set baud rate),UP,FALSE,0x0,,, 151, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_CLR_RTS: Clear RTS),DOWN,FALSE,0x0,,, 152, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_CLR_RTS: Clear RTS),UP,FALSE,0x0,,, 153, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_DTR: Set DTR),DOWN,FALSE,0x0,,, 154, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_DTR: Set DTR),UP,FALSE,0x0,,, 155, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_LINE_CONTROL: Set line control),DOWN,TRUE,0x0,00 00 08 ,..., 156, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_LINE_CONTROL: Set line control),UP,FALSE,0x0,,, 157, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_CHARS: Set special characters),DOWN,TRUE,0x0,00 00 00 00 00 00 ,......, 158, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_CHARS: Set special characters),UP,FALSE,0x0,,, 159, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_HANDFLOW: Set handshake information),DOWN,TRUE,0x0,01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ,................, 160, IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_SET_HANDFLOW: Set handshake information),UP,FALSE,0x0,,, 161, IRP_MJ_WRITE,DOWN,TRUE,0x0,FF ,y, 162, IRP_MJ_WRITE,UP,TRUE,0x0,FF ,y, 163, IRP_MJ_CREATE,DOWN,TRUE,0x0,63 00 6D 00 73 00 2E 00 65 00 78 00 65 00 00 00 ,c.m.s...e.x.e..., 164, IRP_MJ_CREATE,UP,FALSE,0xc0000022,,, 165, IRP_MJ_CREATE,DOWN,TRUE,0x0,63 00 6D 00 73 00 2E 00 65 00 78 00 65 00 00 00 ,c.m.s...e.x.e..., 166, IRP_MJ_CREATE,UP,FALSE,0xc0000022,,, 167, IRP_MJ_WRITE,DOWN,TRUE,0x0,FF ,y, 168, IRP_MJ_WRITE,UP,TRUE,0x0,FF ,y, 169, IRP_MJ_WRITE,DOWN,TRUE,0x0,FF ,y, 170, IRP_MJ_WRITE,UP,TRUE,0x0,FF ,y, 171,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_WAIT_ON_MASK: Wait for event),UP,TRUE,0x0,01 00 00 00 ,...., 172,IRP_MJ_READ,DOWN,FALSE,0x0,,, 173,IRP_MJ_READ,UP,TRUE,0x0,FF ,y, 174,IRP_MJ_READ,DOWN,FALSE,0x0,,, 175,IRP_MJ_READ,UP,FALSE,0x0,,, 176,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_WAIT_ON_MASK: Wait for event),DOWN,FALSE,0x0,,, 177,IRP_MJ_DEVICE_CONTROL (IOCTL_SERIAL_WAIT_ON_MASK: Wait for event),UP,TRUE,0x0,01 00 00 00 ,...., 178,IRP_MJ_READ,DOWN,FALSE,0x0,,, 179,IRP_MJ_READ,UP,TRUE,0x0,FF FF ,yy, 180,IRP_MJ_READ,DOWN,FALSE,0x0,,, 181,IRP_MJ_READ,UP,FALSE,0x0,,, и собственно мой код, который эти вызовы плодит:
|
|
|
NAUGREEM |
![]()
Сообщение
#46
|
Студент ![]() Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Мож у тебя вирус какой или троян? ![]() Чудес не бывает (с). На всякий случай проверил всё свежим каспером - всё чисто... Интересно - создатели терминалки так же делали? а про какую именно речь ? http://logic-bratsk.ru/radio/util/tstcomu/tstcomu.htm |
|
|
kuzulis |
![]()
Сообщение
#47
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
Такое впечатление что у тебя несколько потоков пытаются открыть одно и то-же устройство.
Что это вообще за хренота? Цитата ... 24,IRP_MJ_CREATE,DOWN,TRUE,0x0,63 00 6D 00 73 00 2E 00 65 00 78 00 65 00 00 00 ,c.m.s...e.x.e..., 25, IRP_MJ_CREATE,DOWN,TRUE,0x0,63 00 6D 00 73 00 2E 00 65 00 78 00 65 00 00 00 ,c.m.s...e.x.e..., 26, IRP_MJ_CREATE,UP,FALSE,0xc0000022,,, 27,IRP_MJ_CREATE,UP,FALSE,0x0,,, ... Разбирайся со своим кодом. |
|
|
NAUGREEM |
![]()
Сообщение
#48
|
Студент ![]() Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Такое впечатление что у тебя несколько потоков пытаются открыть одно и то-же устройство. хм... действительно... я не подозревал, что QSerialPortInfo::availablePorts() пытается открыть все порты... а как мне тогда посмотреть, какие порты есть в системе, не открывая их? мне нужен вотчдог на отвалившиеся и появившиеся порты... |
|
|
kuzulis |
![]()
Сообщение
#49
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(NAUGREEM) хм... действительно... я не подозревал, что QSerialPortInfo::availablePorts() пытается открыть все порты... Он ничего не открывает сам. Ты скорее всего вызываешь isBusy() или isValid(). Вот эти методы и открывают. Просто не вызывай их. Цитата(NAUGREEM) а как мне тогда посмотреть, какие порты есть в системе, не открывая их? см. выше. Цитата(NAUGREEM) мне нужен вотчдог на отвалившиеся и появившиеся порты... Сам напиши. Можешь взять код из QSerialDevice (master ветку) - класс SerialDeviceEnumerator: http://gitorious.org/qserialdevice/qserial...eviceenumerator Или из QExtSerialPort: http://code.google.com/p/qextserialport/so...owse/#git%2Fsrc А если по-простому - то просто по таймеру делай QSerialPortInfo::availablePorts() и все. UPD: Если тебе нужен вачдог на выдергивание ранее открытого порта - то можешь просто приконнектиться к сигналу ResourceErorr. Сообщение отредактировал kuzulis - 15.3.2013, 16:56 |
|
|
NAUGREEM |
![]()
Сообщение
#50
|
Студент ![]() Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
NAUGREEM |
![]()
Сообщение
#51
|
Студент ![]() Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
kuzulis |
![]()
Сообщение
#52
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
NAUGREEM |
![]()
Сообщение
#53
|
Студент ![]() Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
что-то я не нашёл - кто этот сигнал посылает? Класс QSerialPort посылает сигнал QSerialPort::error(SerialPortError err) со значением ResourceError если ты выдернул из системы уже открытый USB/Serial порт. но если ты вырубил блютузовый девайс - то никакой ошибки не возникает, пока ты не пошлёшь в порт какой-нибудь байт... а при отправке данных в порт - возникает ошибка 11 (неизвестная ошибка) но у девайса нету команды ping, чтобы пинать его... и в некоторых режимах вообще нельзя в него ничего посылать... засада получается... |
|
|
kuzulis |
![]()
Сообщение
#54
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(NAUGREEM) но если ты вырубил блютузовый девайс - то никакой ошибки не возникает, пока ты не пошлёшь в порт какой-нибудь байт... А ты поставь брекпойнт в CommOverlappedEventNotifier на processCompletionRoutine(), выдерни шнурок и посмотри какое значение будет у triggeredEventMask, и сработает ли он вообще? Цитата(NAUGREEM) а при отправке данных в порт - возникает ошибка 11 (неизвестная ошибка) Ну а ты там где вызывается GetLastError() (в свиче) замени на типа:
И приведи значение кода этой системной ошибки в переменной r. UPD: И да, какая у тебя ОС? Сообщение отредактировал kuzulis - 19.3.2013, 17:10 |
|
|
kuzulis |
![]()
Сообщение
#55
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
NAUGREEM
Упс, у себя проверил - оказывается - ДА, профукивался код Цитата ERROR_DEVICE_REMOVED 1617 (0x651) The device has been removed. И что самое интересное, что этот код ошибки появляется только если устройство было открыто и был произведен I/O в у-во. Проверь с этим патчем: https://codereview.qt-project.org/#change,51468 И обязательно отпишись о том: * на какой ОС, сколько бит, * какой Bluetooth адаптер (по крайней мере VID/PID) * какой Bluetooth стек использовал: Стандартный микрософтовский, IVTBlueSoleil, Toschiba и т.п. !!! Сообщение отредактировал kuzulis - 19.3.2013, 21:33 |
|
|
NAUGREEM |
![]()
Сообщение
#56
|
Студент ![]() Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
А ты поставь брекпойнт в CommOverlappedEventNotifier на processCompletionRoutine(), выдерни шнурок и посмотри какое значение будет у triggeredEventMask, и сработает ли он вообще? не срабатывает Ну а ты там где вызывается GetLastError() (в свиче) замени на типа:
И приведи значение кода этой системной ошибки в переменной r. ::GetLastError() возвращает 0 UPD: И да, какая у тебя ОС? WinXP 32 BT адаптер HAMA Vid:0a12 Pid:0001 BT стек стандартный микросовтовский |
|
|
kuzulis |
![]()
Сообщение
#57
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
Как не срабатывает? Не может быть.. Ты пробовал перед этим писать/читать из у-ва?
Я проверял на двух адаптерах в Win8 - все работает. Хотя, может быть, дело в том, что у тебя WinXP... Можешь дать мне удаленный доступ к своему компу через TeamViewer? Сообщение отредактировал kuzulis - 21.3.2013, 17:17 |
|
|
NAUGREEM |
![]()
Сообщение
#58
|
Студент ![]() Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Как не срабатывает? Не может быть.. Ты пробовал перед этим писать/читать из у-ва? Я проверял на двух адаптерах в Win8 - все работает. Хотя, может быть, дело в том, что у тебя WinXP... Можешь дать мне удаленный доступ к своему компу через TeamViewer? могу Ammyadmin, но только завтра... примерно такой лог у меня получается: last serial error выводится по сигналу error (десятичное значение) triggeredEventMask выводится в processCompletionRoutine() после GetOverlappedResult() (это в классе ComOverlappedEventNotifier) Раскрывающийся текст last serial error 997 last serial error 997 dump... To block-0: FF FF FF triggeredEventMask = 1 dump... From block-0: FF triggeredEventMask = 1 dump... From block-0: FF FF last serial error 997 last serial error 997 last serial error 997 last serial error 997 last serial error 997 last serial error 997 last serial error 997 last serial error 997 last serial error 997 last serial error 997 last serial error 997 last serial error 997 last serial error 997 last serial error 997 last serial error 997 last serial error 997 last serial error 997 last serial error 997 last serial error 997 dump... To block-0: FF FF FF last serial error 0 error = 11 last serial error 0 error = 11 last serial error 0 error = 11 last serial error 0 error = 11 last serial error 0 error = 11 last serial error 0 error = 11 last serial error 0 error = 11 last serial error 0 error = 11 last serial error 0 error = 11 last serial error 0 error = 11 last serial error 0 error = 11 last serial error 0 error = 11 last serial error 0 error = 11 Сообщение отредактировал NAUGREEM - 21.3.2013, 18:09 |
|
|
kuzulis |
![]()
Сообщение
#59
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
Что-то ты мне не так все рассказываешь.
Цитата last serial error выводится по сигналу error (десятичное значение) Выведи результат от GetLastError не по сигналу, а внутри decodeSystemError(). Странно все это, т.к. я даже проверил на WinXP на примере Terminal - у меня все работает: * если просто открываю порт и выдергиваю блютуз - то срабатывает triggeredEventMask = 0 * если открываю порт, пробую в него что-то принять извне, а потом выдергиваю блютуз - то срабатывает triggeredEventMask = 1, далее, пытается прочитать что-то в startAsyncRead(), читает с ошибкой ERROR_DEVICE_REMOVED == 1617 (0x651) Цитата могу Ammyadmin, но только завтра... Я не знаю что это - но лучше скачай TeamViewer. |
|
|
NAUGREEM |
![]()
Сообщение
#60
|
Студент ![]() Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
kuzulis |
![]()
Сообщение
#61
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
NAUGREEM |
![]()
Сообщение
#62
|
Студент ![]() Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Выдергиваю свисток с этим-то проблем нету... там и порт пропадает из списка... а вот у меня задача - второй случай победить... единственный выход - делать пинг, когда взаимодействия нету... а при выдёргивании свиська на WinXP твой патч работает - ошибка 9 вылазит так, что пусть его смело принимают) и да: спасибо тебе за библиотеку и помошь) Сообщение отредактировал NAUGREEM - 22.3.2013, 10:26 |
|
|
kuzulis |
![]()
Сообщение
#63
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
Выдергиваю свисток с этим-то проблем нету... там и порт пропадает из списка... а вот у меня задача - второй случай победить... единственный выход - делать пинг, когда взаимодействия нету... а при выдёргивании свиська на WinXP твой патч работает - ошибка 9 вылазит так, что пусть его смело принимают) и да: спасибо тебе за библиотеку и помошь) А, вот, теперь порядок. А по твоей проблеме отследить никак не получится, только если пинговать постоянно. ![]() Спасибо за помощь. |
|
|
NAUGREEM |
![]()
Сообщение
#64
|
Студент ![]() Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Доброго всем!
эпопея продолжается...) с блютузом всё классно - вочдог отрабатывает по наличию ошибки (serial->error() > 0) но по USB теперь глюк появился - в какой-то момент неизвестная ошибка 11, и по ней порт закрываестя, и вё повторяется заново... посмотрел номер ошибки в GetLastError() - 997 гугл сказал: Error 997: Overlapped I/O operation is in progress может кто знает - из-за чего она может быть? и может её вообще можно игнорировать? UPD: поглядел внимательнее - ERROR_IO_PENDING там уже есть, а вот ERROR_SUCCESS стоит добавить как QSerialPort::NoError UPD2: когда вернулся в линукс - заметил странную вещь: постоянно висела ошибка 11 с текстом "Неприменимый к данному устройству ioctl" содержимое errno = 25 (ENOTTY) стоит ли игнорировать эту ошибку? или это реальный баг? Сообщение отредактировал NAUGREEM - 26.3.2013, 2:02 |
|
|
kuzulis |
![]()
Сообщение
#65
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
NAUGREEM,
напомни плз., о каком типе чипа идет речь? Цитата(NAUGREEM) с блютузом всё классно - вочдог отрабатывает по наличию ошибки (serial->error() > 0) Если ты хочешь отследить именно выдергивание - то проверяй код ошибки только на ResourceError, а не на > 0. Цитата(NAUGREEM) но по USB теперь глюк появился - в какой-то момент неизвестная ошибка 11, и по ней порт закрываестя, и вё повторяется заново... Так ты выведи GetLastError в консоль (именно из метода decodeSystemError())и посмотри какой реальный номер имеет системная ошибка и при каких обстоятельствах: возвращается ли ReadFile с ошибкой или нет, возвращаются ли иные системные вызовы с ошибками? Цитата(NAUGREEM) посмотрел номер ошибки в GetLastError() - 997 гугл сказал: Error 997: Overlapped I/O operation is in progress может кто знает - из-за чего она может быть? и может её вообще можно игнорировать? Это не ошибка, это нормальное поведение, не обращай на эту "ошибку" внимания. Цитата(NAUGREEM) UPD: поглядел внимательнее - ERROR_IO_PENDING там уже есть, а вот ERROR_SUCCESS стоит добавить как QSerialPort::NoError А ERROR_SUCCESS у тебя реально появляется? Если ДА - то при каких обстоятельствах. Цитата(NAUGREEM) UPD2: когда вернулся в линукс - заметил странную вещь: постоянно висела ошибка 11 с текстом "Неприменимый к данному устройству ioctl" содержимое errno = 25 (ENOTTY) стоит ли игнорировать эту ошибку? или это реальный баг? Так посмотри, после чего она появляется в Linux, при каких обчтоятельствах, после какого системного вызова? В общем, поподробнее поисследуй поведение со своим чипом, т.к. мне трудно что-либо советовать и фиксить без сопутствующей информации. Т.к. нужно понять все обстоятельства при которых появляются ошибки! ![]() И приведи лог всей цепочки вызовов, т.е. напихай qDebug() с именами методов и интересующими значениями переменных, для того, чтобы у меня сложилась кое-какая картина. Сообщение отредактировал kuzulis - 26.3.2013, 10:28 |
|
|
NAUGREEM |
![]()
Сообщение
#66
|
Студент ![]() Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
напомни плз., о каком типе чипа идет речь? BT хост: HAMA Vid:0a12 Pid:0001 BT стек: стандартный микросовтовский WinXP BT девайс: Bluegiga WT11 USB-UART: CP2103 Если ты хочешь отследить именно выдергивание - то проверяй код ошибки только на ResourceError, а не на > 0. просто выдёргиванием ситуация не обходится - надо отслеживать пропадание WT11 Так ты выведи GetLastError в консоль (именно из метода decodeSystemError())и посмотри какой реальный номер имеет системная ошибка и при каких обстоятельствах: возвращается ли ReadFile с ошибкой или нет, возвращаются ли иные системные вызовы с ошибками? как писал выше: Цитата посмотрел номер ошибки в GetLastError() - 997 гугл сказал: Error 997: Overlapped I/O operation is in progress и ещё GetLastError() == 0 было, при котором serial->error() возвращал 11, так как ERROR_SUCCESS у тебя не обрабатывается... А ERROR_SUCCESS у тебя реально появляется? Если ДА - то при каких обстоятельствах. реально, где-то на waitForReadyRead(), который не дожидался данных, и только на USB Так посмотри, после чего она появляется в Linux, при каких обчтоятельствах, после какого системного вызова? да кажется после каждого может, правда, у меня какой глючёк был - сей девайс виртуалка на время перехватывала я пока просто ENOTTY в игнор поставил) В общем, поподробнее поисследуй поведение со своим чипом, т.к. мне трудно что-либо советовать и фиксить без сопутствующей информации. Т.к. нужно понять все обстоятельства при которых появляются ошибки! ![]() И приведи лог всей цепочки вызовов, т.е. напихай qDebug() с именами методов и интересующими значениями переменных, для того, чтобы у меня сложилась кое-какая картина. попробую, но не обещаю скоро... |
|
|
Гость_Некий_* |
![]()
Сообщение
#67
|
Гости ![]() |
Я скачал новую версию Qt 5.1, для неё библиотека qtserialport как устанавливается?
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#68
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Я скачал новую версию Qt 5.1, для неё библиотека qtserialport как устанавливается? никак, она уже входит в состав Qt 5:в pro-файле просто пишешь: QT += serialport и всё Тыц |
|
|
NAUGREEM |
![]()
Сообщение
#69
|
Студент ![]() Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Здравствуйте, Все!
Набросал тут патчик для поддержки соединения через Bluetooth RFCOMM на Андроиде в QtSerialPort... Проверял на Qt 4.8.2 (Necessitas), но на Qt 5.1 теоретически тоже должен работать... Работает через JNI к Android API. Устройство должно быть предварительно сопряжено. Может быть автор QtSerialPort'а возьмётся привести эту поделку в правильную форму, и включить в библиотеку... ![]() Сообщение отредактировал NAUGREEM - 14.7.2013, 22:28 |
|
|
kuzulis |
![]()
Сообщение
#70
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
Ох. Отлично, спасибо. Но я не разбираюсь в кишках Android...
![]() Кажется, что все-таки патчи необходимо слать в Necessitas проект (или как там его).. Я не нашел в сорцах Qt5.1 никаких упоминаний об Android (за исключением одной почти пустой директории). По большому счему, кажется, что именно в Necessitas сделаны обертки для всех Qt-шных классов.. Если я не прав, то поправьте.. |
|
|
NAUGREEM |
![]()
Сообщение
#71
|
Студент ![]() Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Necessitas, на сколько я помню, плавно влился в Qt 5
На Qt 5.1 beta, да и на RC1 и RC2 я собирал свою прогу для андроида - и худо-бедно там работал и QML, и почти весь QtCore... может там отдельная ветка под андроид? В Necessitas для последовательных портов ничего нету - там есть обёртка для блютуза (на QtMobility 1.2), но и та не работает... а QtSerialPort всё-таки включен в Qt 5.1, который уже смотрит в сторону андроида... Может есть ещё какие, нибудь мантейнеры у QtSerialPort, которые за андроид взяться смогут? (выражая скромную надежду) |
|
|
kuzulis |
![]()
Сообщение
#72
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
kuzulis |
![]()
Сообщение
#73
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
NAUGREEM,
а скажи-ка: а использовать JNI (т.е. то, что ты сделал в своем патче) можно только на рутованых девайсах или на любых? UPD: Если есть желание поучаствовать, то в рассылке началось обсуждение возможности портирования для Android... Я там и про тебя упомянул, не забыл ![]() Сообщение отредактировал kuzulis - 1.8.2013, 16:41 |
|
|
NAUGREEM |
![]()
Сообщение
#74
|
Студент ![]() Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
NAUGREEM, а скажи-ка: а использовать JNI (т.е. то, что ты сделал в своем патче) можно только на рутованых девайсах или на любых? UPD: Если есть желание поучаствовать, то в рассылке началось обсуждение возможности портирования для Android... Я там и про тебя упомянул, не забыл ![]() я запускал на неломанных (планшет SONY и смартфон Phillips) мне тут железку подогнали на андроиде 2.3 (API-10) - буду пробовать на ней по USB работать... по поводу поучавствовать - готов отдать весь код, который имею, но если подочто-то подвязываться - то не могу гарантировать своевременной реакции... как и тебе когда-то обещал что-то по тестировать, но так и не добрался... |
|
|
kuzulis |
![]()
Сообщение
#75
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
NAUGREEM,
вот ссылка на баг-трекер где обсуждается добавление поддержки Андройда. https://bugreports.qt-project.org/browse/QTBUG-32672 если можешь, пожалуйста, отпишись там, напиши свое видение проблемы и как там можно Андройд поддержать, т.к. ты, я смотрю, в теме. ![]() Мы пока сошлись (неофициально) на мнении, что использовать JNI не нужно. Можно просто "тупо" дергать Linux-овые вызовы. Хотя я не уверен, что это будет работать без прав суперпользователя. Кстати, а почему нельзя было использовать /dev/rfcomm напрямую, не используя вызовы JNI и т.п. в твоем патче? Может быть потому, что через JNI можно узнать производителя, описание и т.п расширенную инфу? Цитата мне тут железку подогнали на андроиде 2.3 (API-10) - буду пробовать на ней по USB работать... Да, это очень интересно. Т.к. я сам имею смартфон на 2.3. И недавно пробовал сбилдить QtSerialPort без примеров и тестов для Neccesitas (Qt4.8.2). В принципе, оно собралось с некоторыми исправлениями. Но другой парень (Laszlo) пробовал собирать в Qt5 - и у него совершенно другие ошибки вылезли. В общем, если интересно и есть свободное время, то плз., ответь туда в трекер что-нибудь.. Ок? ![]() |
|
|
NAUGREEM |
![]()
Сообщение
#76
|
Студент ![]() Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Запостил комент про причину использования JNI в трэкер...
и да - на 2.3 я соединился по USB, но на поиске блютузных устройств у меня прога вылетала... есть аддон для апи для поддержки блютуза, но я его ещё не пробовал... Сообщение отредактировал NAUGREEM - 5.8.2013, 0:20 |
|
|
kuzulis |
![]()
Сообщение
#77
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(NAUGREEM) Запостил комент про причину использования JNI в трэкер... Ага, видел, спс. Цитата(NAUGREEM) и да - на 2.3 я соединился по USB, подробнее можешь расскзать? а то я не понял ![]() Цитата(NAUGREEM) но на поиске блютузных устройств у меня прога вылетала... в смысле? тоже подробнее расскажи что делал и как. Цитата(NAUGREEM) есть аддон для апи для поддержки блютуза, но я его ещё не пробовал... Ты про QtBluetooth или QtConnectivity? Если да - то там вроде бы андроид не поддерживается.. |
|
|
NAUGREEM |
![]()
Сообщение
#78
|
Студент ![]() Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
подробнее можешь расскзать? а то я не понял ![]() человек, который дал железку, собрал на ней ядро с поддержкой USB-Serial конвертора, и в системе видится /dev/ttyUSB0, и я к нему подключаюсть... только права пришлось выставить... на железке Android 2.3 (API Level 10) в смысле? тоже подробнее расскажи что делал и как. на API-10 нету поддержки блютуза (она с 14-го только(Android 4)), если не ошибаюсь, и при обращении через JNI к этим функциям прога вываливалась... проишлось закоментировать блок с JNI в qserialportinfo_android.cpp Ты про QtBluetooth или QtConnectivity? Если да - то там вроде бы андроид не поддерживается.. я про этот: http://code.google.com/p/backport-android-bluetooth/ |
|
|
Гость_Евген_* |
![]()
Сообщение
#79
|
Гости ![]() |
Доброго дня, есть проблема.
Большое асинхронное приложение, использующее QtSerialPort .. Qt 4.8.3. Запущено под Win8. При работе с виртуальным COM-портом (по USB) вызывает регулярный БСОД. Проблему только заявили, пока подробностей нет. В описании QtSerialPort не заявлена поддержка Windows 8. Посему вопрос - Как обстоят дела с совместимостью проекта с Вынь8 и какие там могут быть грабли? |
|
|
Iron Bug |
![]()
Сообщение
#80
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
извините, что вмешиваюсь. просто есть большой опыт работы с разными девайсами.
софт такого уровня, как эта библиотека, вряд ли может вызвать BSOD. но под вендами, начиная с vista и выше, есть множество проблем с USB драйверами. бывает, что венда впадает в BSOD во время выхода из слип-мода. соответственно, помогает отключение засыпания венды в настройках. также проверьте, что у вас банально хватает блока питания. USB может жрать до 0.5A и иногда этого достаточно для вырубания системы. проверьте, что ваше устройство находится в списке поддерживаемых вендой (многие старые устройства просто не работают под новыми версиями венды). попробуйте обновить драйвер. ну и фото BSOD'а (или хотя бы возвращаемый там код ошибки) лучше прикладывать. может, вообще визуализация падает (под вендой это тоже частенько бывает). |
|
|
kuzulis |
![]()
Сообщение
#81
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(Евген) При работе с виртуальным COM-портом (по USB) вызывает регулярный БСОД. Случайно чип не от Prolific, не PL2303? ![]() Потому что при работе с PL2303 в разных терминалках мы тоже иногда получали BSOD, но это не относилось вообще к Qt. Попробуй обновить дрова к своему виртуальному COM-порту. Цитата(Евген) В описании QtSerialPort не заявлена поддержка Windows 8. Посему вопрос - Как обстоят дела с совместимостью проекта с Вынь8 и какие там могут быть грабли? Все поддерживается и работает хорошо. Грабель не наблюдаем.. ![]() |
|
|
Гость_Евген_* |
![]()
Сообщение
#82
|
Гости ![]() |
Цитата(Евген) При работе с виртуальным COM-портом (по USB) вызывает регулярный БСОД. Случайно чип не от Prolific, не PL2303? ![]() Потому что при работе с PL2303 в разных терминалках мы тоже иногда получали BSOD, но это не относилось вообще к Qt. Попробуй обновить дрова к своему виртуальному COM-порту. Цитата(Евген) В описании QtSerialPort не заявлена поддержка Windows 8. Посему вопрос - Как обстоят дела с совместимостью проекта с Вынь8 и какие там могут быть грабли? Все поддерживается и работает хорошо. Грабель не наблюдаем.. ![]() Выяснились некоторые подробности. Чип Profilic PL2303. БСОД видел, из описания понятно только, что ругалась винда на файл ser2pl64.sys. После обновления драйверов вроде бы пока в норме, но тестовый период небольшой. А в чем проблема была при этом чипе? |
|
|
kuzulis |
![]()
Сообщение
#83
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
А в чем проблема была при этом чипе? В BSOD! Там то-ли дрова кривые, толи еще что-то. Но это было под Win7 раньше. После обновления на последние дрова (типа WDF), проблема вроде исчезла. PS: Также есть еще одна фишка в том, что этот чип имеет разные модификации, и часто встречается модификация (самая дешёвая и древняя), для которой нет дров для Win8 (т.е. эта модификация не поддерживается больше Пролификом). Там на сайте Prolific про это написано. Поэтому помогает откат на старые драйвера (не старые, а самые последние) от Win7, т.е. они работают тоже в Win8. Но для этого нужно немного пошаманить. ![]() Так что мой совет - используйте чип FTDIxxx (предпочтительнее) или CPxxx. |
|
|
Гость_Евген_* |
![]()
Сообщение
#84
|
Гости ![]() |
А в чем проблема была при этом чипе? В BSOD! Там то-ли дрова кривые, толи еще что-то. Но это было под Win7 раньше. После обновления на последние дрова (типа WDF), проблема вроде исчезла. PS: Также есть еще одна фишка в том, что этот чип имеет разные модификации, и часто встречается модификация (самая дешёвая и древняя), для которой нет дров для Win8 (т.е. эта модификация не поддерживается больше Пролификом). Там на сайте Prolific про это написано. Поэтому помогает откат на старые драйвера (не старые, а самые последние) от Win7, т.е. они работают тоже в Win8. Но для этого нужно немного пошаманить. ![]() Так что мой совет - используйте чип FTDIxxx (предпочтительнее) или CPxxx. Увы, выбор виртуальников заказчиками не в нашей власти .. там вообще - как повезет и что попадется. Про дрова понятно, включили в поставку. Спасибо. |
|
|
marsel |
![]()
Сообщение
#85
|
Студент ![]() Группа: Новичок Сообщений: 15 Регистрация: 29.1.2013 Пользователь №: 3693 Спасибо сказали: 3 раз(а) Репутация: ![]() ![]() ![]() |
Здравствуйте 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 |
![]()
Сообщение
#86
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
marsel, уточни вопрос, при чём тут хендл порта ?
для изменения задержки нужен хендл устройства конвертера, установленного в системе http://www.ftdichip.com/Support/Knowledgeb...atencytimer.htm нужные функции можно вызвать, импортировав их из dll динамически offtop и как показала практика, напрямую библиотеку юзать нет необходимости. Устройство при подключении появляет в системе виртуальный ком-порт, его открываешь как обычно и как обычно с ним работаешь кстати, в диспетчере устройств можно полазить по свойствам самого устройства (где-то в списке USB устройств). Сейчас под рукой нет, не могу точно сказать Сообщение отредактировал Алексей1153 - 4.9.2013, 18:59 |
|
|
marsel |
![]()
Сообщение
#87
|
Студент ![]() Группа: Новичок Сообщений: 15 Регистрация: 29.1.2013 Пользователь №: 3693 Спасибо сказали: 3 раз(а) Репутация: ![]() ![]() ![]() |
marsel, уточни вопрос, при чём тут хендл порта ? для изменения задержки нужен хендл устройства конвертера, установленного в системе http://www.ftdichip.com/Support/Knowledgeb...atencytimer.htm нужные функции можно вызвать, импортировав их из dll динамически offtop и как показала практика, напрямую библиотеку юзать нет необходимости. Устройство при подключении появляет в системе виртуальный ком-порт, его открываешь как обычно и как обычно с ним работаешь кстати, в диспетчере устройств можно полазить по свойствам самого устройства (где-то в списке USB устройств). Сейчас под рукой нет, не могу точно сказать Да handle устройства , наверно неправильно выразился. Как вручную выставлять я знаю. Хотелось бы программно. Если использовать WinAPI тогда всё понятно, но как это сделать используя QSerialPort HANDLE descriptor; нужен из class QSerialPortPrivate. Возможно ли его каким нибудь образом получить? Кратко вопрос такой. Как получить дескриптор устройства в QSerialPort (Windows)? или Как изменить время ожидания(FTDI) из QSerialPort ? |
|
|
Алексей1153 |
![]()
Сообщение
#88
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
marsel, Qt к ОС в общем случае не привязан. Драйвер относится к системе, а класс работает с абстракцией - интерфейсом ком порта
так что, сомневаюсь, что класс умеет менять настройки драйвера |
|
|
kuzulis |
![]()
Сообщение
#89
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
Непонятен вопрос какое 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 |
|
|
Анна |
![]()
Сообщение
#90
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 276 Регистрация: 22.5.2008 Из: Зеленоград Пользователь №: 181 Спасибо сказали: 30 раз(а) Репутация: ![]() ![]() ![]() |
Жаль, что errorString() не перегружена для QSerialPort... по крайней мере в QT-4.8.4 .
|
|
|
kuzulis |
![]()
Сообщение
#91
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Алексей1153 |
![]()
Сообщение
#92
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
Анна, произведи класс от QSerialPort и перегрузи
![]() |
|
|
Анна |
![]()
Сообщение
#93
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 276 Регистрация: 22.5.2008 Из: Зеленоград Пользователь №: 181 Спасибо сказали: 30 раз(а) Репутация: ![]() ![]() ![]() |
Жаль, что errorString() не перегружена для QSerialPort... по крайней мере в QT-4.8.4 . А, простите, зачем это нужно? В смысле, зачем нужно? А зачем тогда нужна errorString()? Хотя бы для какого-то единообразия. У меня три приложения работают с компортом, а у напарника с десяток, наверное. Хотелось бы, чтобы об одной и той же ошибке все приложения сообщали одинаковую информацию. Приходится таскать за собой довесок. К тому же как раз ради удобной обёртки и взяла этот класс. До этого пользовалась доморощенными методами. Анна, произведи класс от QSerialPort и перегрузи ![]() Кеп, ты? ![]() Но, вообще, перегружать класс ради сообщений об ошибке не смешно. Кстати, хотела узнать, под Линуксом никаких проблем с работой QSerialPort порта нету? Мне ещё предстоит линуксоида убедить перейти на этот класс. |
|
|
kuzulis |
![]()
Сообщение
#94
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(Анна) В смысле, зачем нужно? А зачем тогда нужна errorString()? Хотя бы для какого-то единообразия. У меня три приложения работают с компортом, а у напарника с десяток, наверное. Хотелось бы, чтобы об одной и той же ошибке все приложения сообщали одинаковую информацию. Приходится таскать за собой довесок. К тому же как раз ради удобной обёртки и взяла этот класс. До этого пользовалась доморощенными методами. Можно конкретный пример? Что не устраивает то конкретно? Любые предложения приветствуются. ![]() Цитата(Анна) Кстати, хотела узнать, под Линуксом никаких проблем с работой QSerialPort порта нету? Мне ещё предстоит линуксоида убедить перейти на этот класс. При использовании signal/slot (неблокирующего подхода) не должно быть проблем. Но при waitForXX() могут выплыть проблемки.. ![]() |
|
|
Анна |
![]()
Сообщение
#95
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 276 Регистрация: 22.5.2008 Из: Зеленоград Пользователь №: 181 Спасибо сказали: 30 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(Анна) В смысле, зачем нужно? А зачем тогда нужна errorString()? Хотя бы для какого-то единообразия. У меня три приложения работают с компортом, а у напарника с десяток, наверное. Хотелось бы, чтобы об одной и той же ошибке все приложения сообщали одинаковую информацию. Приходится таскать за собой довесок. К тому же как раз ради удобной обёртки и взяла этот класс. До этого пользовалась доморощенными методами. Можно конкретный пример? Что не устраивает то конкретно? Любые предложения приветствуются. ![]() Цитата(Анна) Кстати, хотела узнать, под Линуксом никаких проблем с работой QSerialPort порта нету? Мне ещё предстоит линуксоида убедить перейти на этот класс. При использовании signal/slot (неблокирующего подхода) не должно быть проблем. Но при waitForXX() могут выплыть проблемки.. ![]() Конкретно, когда от порта приходит сигнал об ошибке (любой, например, у меня бывает плохой контакт между портом и железякой, тогда всё время валится ошибка 6 (очень облегчила мне жизнь в выяснении, кто виноват)), хочу расшифорвать его пользователю, а errorString() возвращает всегда "Unknown error". У меня ещё сверху добавляется свой анализ полученного из порта, так что проблему решила, просто добавив к "своим ошибкам" расшифорвку ошибок из хелпа, но у меня есть приложения, где хотелось бы использовать ваш класс в чистом виде, а не городить заплатку. Насколько я поняла, всего лишь нужно было в тех местах, где генерится сигнал error(), вызывать перед этим setErrorString() с соответствующим текстом. Про Линукс, спасибо, что предупредили. У меня есть места, где waitFor... используются. Буду переделывать. |
|
|
kuzulis |
![]()
Сообщение
#96
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
Цитата тогда всё время валится ошибка 6 Это которая BreakConditionError ? |
|
|
DruidCat |
![]()
Сообщение
#97
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 15.10.2013 Пользователь №: 3958 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
http://qt-project.org/doc/qt-5.1/qtserialp...alportinfo.html
Хотелось бы задать вопрос, извините, если он будет глупым, я только учусь. Мне хотелось бы проверять на занятость сом порты, в документации я нашел #include <QSerialPortInfo> с методом isBusy(), который возвращает bool. А как им пользоваться я не знаю. Я учу Qt меньше месяца, читаю учебник, и бегу вперед паровоза. Охота быстрей и быстрей написать свою программу. Я смотрел примеры по применению QSerialPortInfo, и не понял их, так как такие способы программирования я еще не знаю. Не могли бы привести небольшой наглядный кусочек кода, где понятно, как пользоваться методом isBusy(), желательно в if. Мне хотелось бы проверять определенные сом порты на занятость и если эти порты заняты, производить с ними определенные манипуляции. |
|
|
kuzulis |
![]()
Сообщение
#98
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
Если не знаешь какой порт нужен - то просто перечисляешь и выбираешь из списка нужный и проверяешь его:
или Если знаешь какой нужен то прямо его и проверяешь:
UPD: А еще смотри примеры, которые идут вместе с QtSerialPort в директории /examples: * cenumerator - консольный пример * enumerator - GUI пример Сообщение отредактировал kuzulis - 21.10.2013, 17:57 |
|
|
Litkevich Yuriy |
![]()
Сообщение
#99
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Тему разделил: DCTerminal - Моя первая Qt-программа
|
|
|
Анна |
![]()
Сообщение
#100
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 276 Регистрация: 22.5.2008 Из: Зеленоград Пользователь №: 181 Спасибо сказали: 30 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 10.6.2025, 4:47 |