Russian Qt Forum
Ноябрь 24, 2024, 08:32
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Дополнительные компоненты
>
Создаю библиотеку для работы с последовательными портами. [УШЕЛ ИЗ ПРОЕКТА].
Страниц:
1
...
59
60
[
61
]
62
63
...
88
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Создаю библиотеку для работы с последовательными портами. [УШЕЛ ИЗ ПРОЕКТА]. (Прочитано 786166 раз)
b-s-a
Гость
Re: Создаю библиотеку для работы с последовательными портами. [В ПРОЦЕССЕ].
«
Ответ #900 :
Март 26, 2012, 10:50 »
Подозреваю, что в *unix запись не всегда происходит моментально. А только до тех пор, пока есть место в буфере.
Записан
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: Создаю библиотеку для работы с последовательными портами. [В ПРОЦЕССЕ].
«
Ответ #901 :
Март 26, 2012, 11:29 »
Цитировать
Подозреваю, что в *unix запись не всегда происходит моментально. А только до тех пор, пока есть место в буфере.
Т.е., передав в функцию сразу много данных:
Код
C++ (Qt)
::
write
(
fd
,
data
,
4096
)
;
//где 4096 - это много данных
возможно, что она сразу не передаст управлеие?
Или она выделит где-то в драйвере порта место под 4096 байта, скопирует их туда, вернет сразу 4096,
а с теми данными, которые появились в буфере драйвера - драйвер уже по тихонечку будет их отсылать в UART
в контексте ядреного потока (или чего там)?
И если, к примеру, драйвер успел отправить только 96 байт (осталось в буфере драйвера 4000),
и потом мы опять вызовем write(4096) - то буфер драйвера пополнеет до 4000+4096 байт,
а функция write() снова вернет 4096 мгновенно?
Т.е. как вообще оно будет? Будет ли write() ожидать отправку?
От этого многое зависит в реализации алгоритма для QtSerialPort
«
Последнее редактирование: Март 26, 2012, 11:33 от kuzulis
»
Записан
ArchLinux x86_64 / Win10 64 bit
b-s-a
Гость
Re: Создаю библиотеку для работы с последовательными портами. [В ПРОЦЕССЕ].
«
Ответ #902 :
Март 26, 2012, 13:54 »
блокирующий вариант write будет ждать. неблокирующий не будет (запишет только то, на что есть место в буфере). Таким образом, при использовании неблокирующего режима можно писать частями. Информацию о том, что данные записаны можно получить через тот же notifier (использующий select)
Записан
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: Создаю библиотеку для работы с последовательными портами. [В ПРОЦЕССЕ].
«
Ответ #903 :
Март 26, 2012, 14:07 »
Цитировать
неблокирующий не будет (запишет только то, на что есть место в буфере).
Вот это поясни: про какой буфер речь и что за место? Я ничего не понял.
Цитировать
Информацию о том, что данные записаны можно получить через тот же notifier (использующий select)
Оно так и работает сейчас.
Записан
ArchLinux x86_64 / Win10 64 bit
b-s-a
Гость
Re: Создаю библиотеку для работы с последовательными портами. [В ПРОЦЕССЕ].
«
Ответ #904 :
Март 26, 2012, 17:32 »
Цитата: kuzulis от Март 26, 2012, 14:07
Цитировать
неблокирующий не будет (запишет только то, на что есть место в буфере).
Вот это поясни: про какой буфер речь и что за место? Я ничего не понял.
речь идет про ядерно-аппаратный буфер (читай аппаратный). допустим, размер буфера порта 128 байт. Ты отправляешь 256 байт: sz = write(fd, data, 256). В этом случае sz будет равен 128. Через некоторое время в буфере останется 20 байт, ты повторяешь операцию и результат будет sz = 108.
Записан
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: Создаю библиотеку для работы с последовательными портами. [В ПРОЦЕССЕ].
«
Ответ #905 :
Март 26, 2012, 17:39 »
А, ок. С *nix примерно ясно.
UPD:
Просто такое в впечатление, что винде этот "аппаратный" буфер просто неимоверных размеров.
За раз может отправлять до 8192 байта (больше просто не проверял).
Хотя, размер его можно задавать, но по умолчанию он 4096 байт (если не ошибаюсь).
Да и логика работы у него (драйвера) по-ходу иная нежели в никсах.
Записан
ArchLinux x86_64 / Win10 64 bit
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: Создаю библиотеку для работы с последовательными портами. [В ПРОЦЕССЕ].
«
Ответ #906 :
Март 29, 2012, 09:56 »
Кто-то выложил ролик на
ютуб
где тестирует QSerialDevice 2.0 на WinCE
Записан
ArchLinux x86_64 / Win10 64 bit
LisandreL
Птица говорун
Offline
Сообщений: 984
Надо улыбаться
Re: Создаю библиотеку для работы с последовательными портами. [В ПРОЦЕССЕ].
«
Ответ #907 :
Март 29, 2012, 10:32 »
Цитата: kuzulis от Март 29, 2012, 09:56
где тестирует QSerialDevice 2.0 на WinCE
Правда пишет qserialdewice
Записан
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: Создаю библиотеку для работы с последовательными портами. [В ПРОЦЕССЕ].
«
Ответ #908 :
Март 29, 2012, 10:54 »
И что?
Записан
ArchLinux x86_64 / Win10 64 bit
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: Создаю библиотеку для работы с последовательными портами. [В ПРОЦЕССЕ].
«
Ответ #909 :
Март 29, 2012, 11:08 »
Кстати, принимаю пожелания на examples, какие бы вы хотели видеть в аддоне.
Пока что предполагается две штуки:
1. Терминал - простое GUI приложение, аналогичное гипертерминалу (только гораздо проще).
Уже есть реализация.
2. Взять что-ли еще и тест /guiapp от предыдущей QSerialDevice 2.0 , подрихтовать и переименовать его (ХЗ во что переименовать)
и добавить в примеры.
Хватит ли этого кол-ва?
Записан
ArchLinux x86_64 / Win10 64 bit
b-s-a
Гость
Re: Создаю библиотеку для работы с последовательными портами. [В ПРОЦЕССЕ].
«
Ответ #910 :
Март 29, 2012, 15:47 »
для начала точно хватит
Записан
Bepec
Гость
Re: Создаю библиотеку для работы с последовательными портами. [В ПРОЦЕССЕ].
«
Ответ #911 :
Апрель 05, 2012, 13:22 »
Интересуюсь, библиотека уже доступна для работы? Или пока находится в "тестировании".
Если доступна, то где.
Записан
iroln
Гость
Re: Создаю библиотеку для работы с последовательными портами. [В ПРОЦЕССЕ].
«
Ответ #912 :
Апрель 05, 2012, 14:15 »
Мне тоже интересно, как там дела со стабильностью и документацией, в продакшене уже можно использовать?
Хотелось бы больше документации и простых примеров.
И ещё вопрос: Возможно сделать биндинг к Python для PySide и PyQt4? Она же у вас, как я понимаю, асинхронная, сигналы, Qt-way и т.д. Хотелось бы использовать её в своих рабочих проектах на PySide вместо PySerial (лицензия, надеюсь, совпадает с Qt-шной).
Записан
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: Создаю библиотеку для работы с последовательными портами. [В ПРОЦЕССЕ].
«
Ответ #913 :
Апрель 05, 2012, 14:35 »
Цитата: Bepec
Интересуюсь, библиотека уже доступна для работы? Или пока находится в "тестировании".
Еще только в тестировании.
Цитата: Bepec
Если доступна, то где.
Читай тут
http://qt-project.org/wiki/QtSerialPort_Russian
Цитата: iroln
Мне тоже интересно, как там дела со стабильностью и документацией, в продакшене уже можно использовать?
Пока что никаких кардинальных изменений в структуру внесено не было,
стабильность где-то на уровне QSerialDevice 2.0.
Пробуй
Цитата: iroln
Хотелось бы больше документации и простых примеров.
Пока общая документация особо не разделена по разделам и т.п.,
я не знаю что писать
.
Классы и все методы задокументированы ИМХО, в полном объеме,
желательно только проверить на ошибки в английском и т.п.
Из примеров имеется только Terminal и Enumerator.
Думаю добавить еще BlockingTerminal и всё!
Кто хочет еще примеров - пусть пишет и оформляет сам.
Цитата: iroln
И ещё вопрос: Возможно сделать биндинг к Python для PySide и PyQt4? Она же у вас, как я понимаю, асинхронная, сигналы, Qt-way и т.д. Хотелось бы использовать её в своих рабочих проектах на PySide вместо PySerial (лицензия, надеюсь, совпадает с Qt-шной).
Наверное возможно делать биндинг, но я этого делать не буду.
Лицензия совпадает с Qt-шной
UPD: сейчас идет процесс адаптации аддона для Qt4 (т.к. изначально планировался только для Qt5).
Т.е., если все получится - то можно будет использовать аддон и в Qt4 и в Qt5.
«
Последнее редактирование: Апрель 05, 2012, 14:37 от kuzulis
»
Записан
ArchLinux x86_64 / Win10 64 bit
iroln
Гость
Re: Создаю библиотеку для работы с последовательными портами. [В ПРОЦЕССЕ].
«
Ответ #914 :
Апрель 05, 2012, 14:45 »
Цитата: kuzulis от Апрель 05, 2012, 14:35
...
Пока общая документация особо не разделена по разделам и т.п.,
я не знаю что писать
.
Классы и все методы задокументированы ИМХО, в полном объеме,
желательно только проверить на ошибки в английском и т.п.
...
Так, главное, чтобы API был описан подробно. Документация в стиле Qt, созданная генератором доки вполне сгодится, если для каждого класса/метода будет подробное описание в коде.
Записан
Страниц:
1
...
59
60
[
61
]
62
63
...
88
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...