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

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

Страниц: 1 ... 74 75 [76] 77 78 ... 88   Вниз
  Печать  
Автор Тема: Создаю библиотеку для работы с последовательными портами. [УШЕЛ ИЗ ПРОЕКТА].  (Прочитано 752900 раз)
Bepec
Гость
« Ответ #1125 : Январь 20, 2014, 11:51 »

Да заколдованная библиотека в общем. Каждый раз при сборке ошибки всякие.

Кхм. Действительно есть в стандарте. Почему то VS в упор не видит. Разберусь.

PS спасибо за быстрый ответ.

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

Сообщений: 2812


Просмотр профиля
« Ответ #1126 : Январь 20, 2014, 12:59 »

Цитировать
Каждый раз при сборке ошибки всякие.

Не может быть Улыбающийся
Записан

ArchLinux x86_64 / Win10 64 bit
Bepec
Гость
« Ответ #1127 : Январь 20, 2014, 13:19 »

Ну собираю когда систему переставляю, либо ЧП какое нить. Каждый раз нормально не собирается. Поднимается вопрос о прямоте рук, но я его игнорирую Веселый
Записан
Figaro
Гость
« Ответ #1128 : Январь 21, 2014, 13:09 »

Руки а главное мозг надо тренировать... еще десяток раз переставите - запомните:-)
Записан
Phoenix
Гость
« Ответ #1129 : Январь 21, 2014, 23:59 »

Я попробовал библиотеку (от 06.01.2014) на одноплатном компьютере Raspberry PI. Работает. Дистрибутив linux собран при помощи BuildRoot 2013.11. Порт встроенный, ttyAMA0. Согласование уровней через микросхему MAX232CPE. Загрузка процессора 4%.

Не знаю, нужна ли вам информация о тестировании на ARMe. Может кто-то уже проверил работу библиотеки на ARMe.
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #1130 : Январь 22, 2014, 10:23 »

@Phoenix,

да, спасибо за статистику.

И да, загрузка на 4% это очень много. Я уже встречал много упоминаний об большой загрузке CPU на Linux.
Вот тут https://codereview.qt-project.org/#change,75708 человек также упоминает от этом.

Пока сошлись на мнении что это баг QSocketNotifier и/или кривая реализация Qt event-loop (хотя я сомневаюсь в этом).
Но пока нет сравнительных тестов - не имеет смысла о чем-то разговаривать, возможно что нужно что-то в QtSerialPort подкрутить.
Записан

ArchLinux x86_64 / Win10 64 bit
Phoenix
Гость
« Ответ #1131 : Январь 22, 2014, 10:57 »

Пожалуйста.
Добавлю. Я не пользуюсь сигналами, а создаю отдельный поток с waitForReadyRead. Обмен с устройством идет на скорости 19200, ~122 обменов в секунду (запрос/ответ).
Записан
Phoenix
Гость
« Ответ #1132 : Январь 24, 2014, 21:54 »

На raspberry pi преобразователь usb-rs232 (FTDI FT232RL) тоже работает, но загрузка процессора 10%. На скорости 19200 - 130 обменов в секунду с устройством.
Преобразователь: http://bolid.ru/production/orion/interface-converter/usb-rs232.html
« Последнее редактирование: Январь 24, 2014, 21:59 от Phoenix » Записан
Phoenix
Гость
« Ответ #1133 : Январь 26, 2014, 23:14 »

Возможно действительно такая нагрузка из-за особенностей событий Qt. Я подключил raspberry к устройству по erhernet (не задействуя библиотеку QtSerialport), передача по UDP (QUdpSocket). При скорости 70 обменов в секунду - нагрузка на процессор 6%.
« Последнее редактирование: Январь 26, 2014, 23:16 от Phoenix » Записан
Bepec
Гость
« Ответ #1134 : Февраль 03, 2014, 18:37 »

Собственно собрал ещё раз библиотечку под VS2008.

1) алгоритмы в файле qserialportinfo_p.h не включены. 
2) не добавлена папка в additional Include ".\GeneratedFiles\$(ConfigurationName)", куда при конвертации проекта сыпятся moc_*.cpp. Потому ругается сильно.
это уже специфика VS2008 + QtAddin я думаю, но вдруг кому полезно будет.
Записан
Phoenix
Гость
« Ответ #1135 : Февраль 07, 2014, 15:44 »

Что такое "Протекает наложенное событие ввода/вывода."? Эта ошибка появляется в логе программы от QtSerilaPort, если программа запускается во время загрузки windows. Не мешает, но интересно почему появляется.
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #1136 : Февраль 08, 2014, 13:51 »

Цитировать
"Протекает наложенное событие ввода/вывода."

Это наверно ERROR_IO_PENDING. При асинхронном I/O это обычная штука.

Цитировать
Возможно действительно такая нагрузка из-за особенностей событий Qt.

Я тут набросал некоторую статистику загрузки CPU от типа ОС, скорости, типа устройства и т.п. (из того что смог найти под рукой):
https://bugreports.qt-project.org/browse/QTBUG-36684

Результаты удручающие (если не сказать фейловые). Загрузка CPU просто ошеломляет, особенно под Linux (до 90% при использовании socat). Под Windows ситуация немного лучше (там до 40% при использовании com0com без эмуляции скорости). Но это, товарищи, никуда не годится, потому что в идеале она должна быть около ~0% т.к. все операции асинхронные и неблокирующие.

Кого здесь винить - я не знаю, или I/O подсистема в Qt вообще никакая, или у нас (меня) кривые руки, или драйвера хреновенькие, или tty подсистема в Linux - это шлак или что-то еще. В любом случае надо сравнить с загрузкой чисто Си-шных решений без всякого там Qt и прочего..

Мда, вот такие дела.  Грустный
Записан

ArchLinux x86_64 / Win10 64 bit
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #1137 : Февраль 08, 2014, 16:17 »

>>при использовании com0com
надо без него пробовать, а с реальным нульмодемным шнурком. Этот com0com помнится мне чудил периодически поэтому я от него отказался.
Записан

Юра.
Bepec
Гость
« Ответ #1138 : Февраль 08, 2014, 16:31 »

com0com гадость. Пробовали, знаем. Много раз при рандомных условиях начинал "тухнуть", не пропускать кадры, отмирать до перезагрузки компа.
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #1139 : Февраль 08, 2014, 17:37 »

Цитата:  lit-uriy
надо без него пробовать, а с реальным нульмодемным шнурком. Этот com0com помнится мне чудил периодически поэтому я от него отказался.
Юр, ну бы хоть посмотрел на ссылку что я дал. Там и шнурок реальный тоже был.. И тоже загрузка CPU нехилая до ~8% на 115200 (в винде). Улыбающийся

Цитата:  Bepec
com0com гадость. Пробовали, знаем. Много раз при рандомных условиях начинал "тухнуть", не пропускать кадры, отмирать до перезагрузки компа.

Не было такого замечено ни-разу . Улыбающийся

И зря вы, парни, хаите com0com - он показывает ~0% при включенной "baud rate emulation" (даже при 1.000.000 бодах), что вполне допустимо. Но без эмуляции (когда скорость - по максимуму 38 мегабайт в секунду) - тут уже 40% набегает. Улыбающийся
« Последнее редактирование: Февраль 08, 2014, 17:41 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
Страниц: 1 ... 74 75 [76] 77 78 ... 88   Вверх
  Печать  
 
Перейти в:  


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