Russian Qt Forum
Ноябрь 24, 2024, 20:47
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
QtSerialPort timerEvent() vs readyRead()
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: QtSerialPort timerEvent() vs readyRead() (Прочитано 5418 раз)
skandinavijos
Гость
QtSerialPort timerEvent() vs readyRead()
«
:
Ноябрь 29, 2012, 18:58 »
Общайюсь с устройством, которое шлет 18 байт 200 раз в секунду. Логика приема данных грубо:
считать все, что пришло в буфер и если в буфере больше 18 байт, то выдрать из посылки нужную информацию и в очередь, которая потом в файл сохранится.
Так вот, если вешать этот код на сигнал readyRead() (срабатывает когда в буфере что-то есть) класса SerialPort, то иногда этот сигнал не срабатывает вообще, при этом данные идут (проверял другой программой), а если этот же код засунуть в timerEvent с интервалом в 5мс родительского класса, то вроде бы такого нет, во всяком случае ни разу не повтроилось. Вопрос: почему так?
Записан
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: QtSerialPort timerEvent() vs readyRead()
«
Ответ #1 :
Ноябрь 29, 2012, 20:50 »
1. ОС?
2. Код в студию.
Записан
ArchLinux x86_64 / Win10 64 bit
skandinavijos
Гость
Re: QtSerialPort timerEvent() vs readyRead()
«
Ответ #2 :
Ноябрь 30, 2012, 07:31 »
1) windows xp, qt 4.8.3, serialport последний, компилятор от 2010 студии
2) дело не в коде. можно просто qDebug() << "bida-bida"; написать в слот, с которым соединен readyRead(); и иногда эта фраза ни разу не выводится.
Записан
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: QtSerialPort timerEvent() vs readyRead()
«
Ответ #3 :
Ноябрь 30, 2012, 10:08 »
Хм. Не замечал такого.
Попробуй для тестов эту тулзу
CpuUsabeTester
Повыводи в ней.
«
Последнее редактирование: Ноябрь 30, 2012, 15:08 от kuzulis
»
Записан
ArchLinux x86_64 / Win10 64 bit
skandinavijos
Гость
Re: QtSerialPort timerEvent() vs readyRead()
«
Ответ #4 :
Ноябрь 30, 2012, 12:34 »
по ходу что-то нашел. хотя может я чего-то не знаю. по протоколу обмена 8 бит данных, в serialport в setdatabits логично пихал Data8, но portmonitor написал, что wordlength равен 7, поставил Data7 - стал писать 8.
Записан
skandinavijos
Гость
Re: QtSerialPort timerEvent() vs readyRead()
«
Ответ #5 :
Ноябрь 30, 2012, 12:40 »
ан нет, эту восьмерку другая софтина настроила, в общем пока рабочая версия в настройках порта
Записан
skandinavijos
Гость
Re: QtSerialPort timerEvent() vs readyRead()
«
Ответ #6 :
Ноябрь 30, 2012, 13:02 »
короче сам виноват. у меня в одном месте какого-то фига порт переоткрывался и настройки скидывались. всем спасибо. только один вопрос из чистого любопытства: при неправильных настройках данные иногда шли, а иногда нет. отчего это зависит?
Записан
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: QtSerialPort timerEvent() vs readyRead()
«
Ответ #7 :
Ноябрь 30, 2012, 15:10 »
Цитировать
при неправильных настройках данные иногда шли, а иногда нет. отчего это зависит?
От передаваемых значений, от контроля четности, от фаз луны.
Записан
ArchLinux x86_64 / Win10 64 bit
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...