crossplatform.ru

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

44 страниц V  « < 25 26 27 28 29 > »   
Ответить в данную темуНачать новую тему
> QSerialDevice - Библиотека для работы с COM-портами
kuzulis
  опции профиля:
сообщение 7.6.2011, 19:39
Сообщение #261


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

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

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




Репутация:   7  


Спасибо! Исправил.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 7.6.2011, 19:49
Сообщение #262


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

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

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




Репутация:   34  


а так красивше :)

int guidCount = sizeof(guidArray)/sizeof(*guidArray);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
universeroot
  опции профиля:
сообщение 13.6.2011, 20:06
Сообщение #263


Новичок


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

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




Репутация:   0  


Сегодня написал с применением этой библиотеки:

http://robocraft.ru/blog/544.html
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuzulis
  опции профиля:
сообщение 13.6.2011, 22:17
Сообщение #264


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

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

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




Репутация:   7  


Цитата(universeroot @ 13.6.2011, 21:06) *
Сегодня написал с применением этой библиотеки:

http://robocraft.ru/blog/544.html


О, зачетненько! :clapping:

Только если библиотека линкуется статически (а по умолчанию она статически линкуется), то нет нужды её куда-то копировать (а также копировать заголовки).
Также можно было её подключать "напрямую" к проекту чтобы не заморачиваться с копированием (см. примеры в /test/guiapp).
:)

Сообщение отредактировал kuzulis - 13.6.2011, 22:18
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
grio
  опции профиля:
сообщение 1.7.2011, 13:40
Сообщение #265


Студент
*

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

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




Репутация:   0  


Объясните пожалуйста, как правильно инсталлировать
библиотеку QSerialDevice и прикрутить ее к проекту в Линуксе.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuzulis
  опции профиля:
сообщение 1.7.2011, 15:47
Сообщение #266


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

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

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




Репутация:   7  


Цитата(grio @ 1.7.2011, 14:40) *
Объясните пожалуйста, как правильно инсталлировать
библиотеку QSerialDevice и прикрутить ее к проекту в Линуксе.

А по умолчанию не нужно её никуда инсталлировать.
Она является статической и линкуется с приложением,
т.е. её код встраивается в код приложения.

Можете использовать её классы напрямую, как в примере /test/quiapp

Сообщение отредактировал kuzulis - 1.7.2011, 15:48
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
grio
  опции профиля:
сообщение 1.7.2011, 16:33
Сообщение #267


Студент
*

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

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




Репутация:   0  


Цитата(kuzulis @ 1.7.2011, 16:47) *
Цитата(grio @ 1.7.2011, 14:40) *
Объясните пожалуйста, как правильно инсталлировать
библиотеку QSerialDevice и прикрутить ее к проекту в Линуксе.

А по умолчанию не нужно её никуда инсталлировать.
Она является статической и линкуется с приложением,
т.е. её код встраивается в код приложения.

Можете использовать её классы напрямую, как в примере /test/quiapp


В моем случае, оказалось, что просто не хватало пакета libudev-dev.
Продолжаю эксперименты, спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
shurilnik
  опции профиля:
сообщение 12.8.2011, 11:05
Сообщение #268


Студент
*

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

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




Репутация:   0  


kuzulis, Здравствуйте. Решил попробовать использовать вашу библиотеку на embedded девайсе mini2440 под linux. Столкнулся с проблемой что serialdeviceenumenator начинает грузить проц на 100% после того как в системе появляется или исчезает (если было включено до запуска конструктора класса) ttyUSB устройство. Звук непрерывно воспроизводимый прерывается 2-3 раза в секунду, независимо уже после этого появилось еще устройство или исчезло. Т.е. какой-то метод класса в периодом условно в миллисекунд 300 что-то делает что серьезно грузит процессор, а в остальное время приоритет операции пониже, но все равно грузит. Подскажите пожалуйста куда копать.
Если подключится straceом к процессу то после подключения устройства начинают с большой скорость проскакивать вот такие операции:
readlink("/sys/devices/virtual/tty/tty42/subsystem", "../../../../class/tty"..., 1024) = 21
lstat64("/dev/.udev/db/tty:tty42", {st_mode=S_IFLNK|0777, st_size=15, ...}) = 0
readlink("/dev/.udev/db/tty:tty42", "tty42 char/4:42"..., 1024) = 15
readlink("/sys/devices/virtual/tty/tty43", 0xbed2c680, 1024) = -1 EINVAL (Invalid argument)
stat64("/sys/devices/virtual/tty/tty43/uevent", {st_mode=S_IFREG|0644, st_size=4096, ...}) = 0
open("/sys/devices/virtual/tty/tty43/uevent", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 21
fstat64(21, {st_mode=S_IFREG|0644, st_size=4096, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4001f000
read(21, "MAJOR=4\nMINOR=43\nDEVNAME=tty43\n", 4096) = 31
read(21, "", 4096) = 0
close(21) = 0
munmap(0x4001f000, 4096) = 0
readlink("/sys/devices/virtual/tty/tty43/subsystem", "../../../../class/tty"..., 1024) = 21
lstat64("/dev/.udev/db/tty:tty43", {st_mode=S_IFLNK|0777, st_size=15, ...}) = 0
readlink("/dev/.udev/db/tty:tty43", "tty43 char/4:43"..., 1024) = 15
readlink("/sys/devices/virtual/tty/tty44", 0xbed2c680, 1024)usb 1-1.2: USB disconnect, address 3
ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
ftdi_sio 1-1.2:1.0: device disconnected
= -1 EINVAL (Invalid argument)
stat64("/sys/devices/virtual/tty/tty44/uevent", {st_mode=S_IFREG|0644, st_size=4096, ...}) = 0
open("/sys/devices/virtual/tty/tty44/uevent", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 21
fstat64(21, {st_mode=S_IFREG|0644, st_size=4096, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4001f000
read(21, "MAJOR=4\nMINOR=44\nDEVNAME=tty44\n", 4096) = 31
read(21, "", 4096) = 0
close(21) = 0
munmap(0x4001f000, 4096) = 0
readlink("/sys/devices/virtual/tty/tty44/subsystem", "../../../../class/tty"..., 1024) = 21
lstat64("/dev/.udev/db/tty:tty44", {st_mode=S_IFLNK|0777, st_size=15, ...}) = 0
readlink("/dev/.udev/db/tty:tty44", "tty44 char/4:44"..., 1024) = 15
readlink("/sys/devices/virtual/tty/tty45", 0xbed2c680, 1024) = -1 EINVAL (Invalid argument)
stat64("/sys/devices/virtual/tty/tty45/uevent", {st_mode=S_IFREG|0644, st_size=4096, ...}) = 0
open("/sys/devices/virtual/tty/tty45/uevent", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 21
fstat64(21, {st_mode=S_IFREG|0644, st_size=4096, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4001f000
read(21, "MAJOR=4\nMINOR=45\nDEVNAME=tty45\n", 4096) = 31
read(21, "", 4096) = 0
close(21) = 0
munmap(0x4001f000, 4096) = 0

причем номер и тип tty постоянно меняется...
Или может это нормальное поведение ?
Заранее спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuzulis
  опции профиля:
сообщение 12.8.2011, 11:49
Сообщение #269


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

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

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




Репутация:   7  


2 shurilnik,

я даже и не знаю что посоветовать.

Что первое приходит на ум, так это - попробуйте скачать master ветку:

https://gitorious.org/qserialdevice/qserial...ce/trees/master

Цитата
Столкнулся с проблемой что serialdeviceenumenator начинает грузить проц на 100% после того как в системе появляется или исчезает (если было включено до запуска конструктора класса) ttyUSB устройство.

Это если используется только класс SerialDeviceEnumenator (и не используется AbstractSerial) такое поведение? Или как?

Иначе:
Такое может быть если Вы, используя класс AbstractSerial, открыли порт и выдернули его.
В этом случае QSocketNotifier будет вечно гнать евенты (почему-то такое поведение у функции select()).
т.е. может быть, начинает срабатывать вечно exceptionNotifier или readNotifier (см. nativeserialnotifier_unix.cpp).
Если это так - то я в курсе этой проблемы, но пока не могу найти решения,
т.к. правильным решением является принудительное закрытие дескриптора выдернутого порта при возникновении такой ситуации.
Но вот как отличить Exception/Read событие вызванную какой-либо другой причиной от Exception/Read события вызванной выдергиванием порта - я не знаю.

PS: Если используете AbstractSerial и вам не нужны уведомления о сигналах RTS/DTR/CTS и пр. то можете в
nativeserialnotifier_unix.cpp закомментировать всё что запускает поток run(), т.к. он тоже может быть причиной.

Сообщение отредактировал kuzulis - 12.8.2011, 11:50
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
shurilnik
  опции профиля:
сообщение 12.8.2011, 12:40
Сообщение #270


Студент
*

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

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




Репутация:   0  


У меня как раз мастер ветка, недельной давности правда.
Да порт сразу открывается при появлении устройства. Но проблема появляется не только при выдергивании а и при вставлении. Т.е. пока устройств нету - все тихо. Появляется устройство и начинается. На самом деле я пробовал и без открытия порта - тоже самое происходит. Я serialenumerator и использую для отслеживания что устройство выдернули, (даже с открытым портом) и соответствующий ему Abstractserial класс удаляется с закрытием порта и удалением дескриптора.
По поводу, RTS/DTR/CTS попробую поправить как вы сказали. Отпишусь потом.
Кстати ttylocker пришлось править как вы раньше советовали, иначе после выдергивания порт при повторном подключении не давало открыть порт.... Закоментировал обработки pid локфайла.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

44 страниц V  « < 25 26 27 28 29 > » 
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


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




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