Здравствуйте, гость ( Вход | Регистрация )
Дата поста: | В теме: | За сообщение: | Спасибо сказали: | ||
---|---|---|---|---|---|
18.11.2013, 17:06 | QtSerialPort | Подскажите куда рыть? http://qt-project.org/forums/viewthread/33142/ Пока никак исправить это нельзя. В общем - используй объект QSerialPort в другом треде. |
bsn, | ||
1.11.2013, 17:09 | Сигнал QIODevice::bytesWritten() | 1. Пихать можно сколько угодно путем write() 2. Данные передаются автоматически кусками по 512 байт. 3. После реальной отправки каждого куска (ну, или остатка меньшего чем 512), излучается bytesWritten() Пример:
|
Анна, | ||
24.10.2013, 11:04 | DCTerminal - Моя первая Qt-программа | Цитата Это Терминал. А терминал из примеров QtSerialPort чем-то не угодил? Цитата это бага (или фича) QSerialPort. Это фича. Пример из жизни: если хочется покушать - то мы сначала открываем холодильник, а уже потом берем оттуда колбасу.. Хотя может быть в Qt6 это поменяем, т.к. сейчас нет смысла. Да и запарно это... |
DruidCat, | ||
21.10.2013, 17:53 | QtSerialPort | Если не знаешь какой порт нужен - то просто перечисляешь и выбираешь из списка нужный и проверяешь его:
или Если знаешь какой нужен то прямо его и проверяешь:
UPD: А еще смотри примеры, которые идут вместе с QtSerialPort в директории /examples: * cenumerator - консольный пример * enumerator - GUI пример |
DruidCat, | ||
5.9.2013, 10:24 | QtSerialPort | Непонятен вопрос какое 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 у чипа, и не нужно мучаться (вроде оно возможно, погугли). |
marsel, | ||
19.2.2013, 14:46 | проблема с QExtSerialPort | И сразу проблема. При сборке ошибка Цитата cannot find -lQtSerialPort Скорее всего ты скомпилил и установил только отладочную версию библиотеки, а текущий проект компилиш в релизе. Поэтому он и не находит QtSerialPort, потому что его нету (есть только QtSerialPortd). Собирай свой проект в дебаге или скомпиль и доустанови релизную версию QtSerialPort до кучи. |
chu, | ||
19.2.2013, 12:54 | проблема с QExtSerialPort | Блин, ну ты ж примеры посмотри, Вики не успевает обновляться. Попробуй:
|
chu, | ||
25.12.2012, 14:12 | Обращение к виджету из другого потока | Цитата А вот мой конкретный случай. С кнопкой (и другими виджетами на форме) нужно что-либо делать по факту прихода данных с COM-порта (приём данных организован в отдельном потоке. Ну там WaitForMultipleObjects и все дела...). http://qt-project.org/wiki/QtSerialPort_Russian |
Valter, | ||
24.9.2012, 10:07 | Не работает отладчик | ТС, установи Debugging Tools и не парь мосги. Это элементарно и в гугле находится на раз, и нечего форум мусорить. |
qt_user, | ||
11.9.2012, 20:56 | Подключение библиотеки ftdi к qt | Цитата LIBS += -L$$PWD/drv/i386 -lftd2xx Спасет отца русской демократии |
qt_user, | ||
24.7.2012, 20:49 | QSerialDevice - Библиотека для работы с COM-портами | kuzulis, каким образом можно остлеживать изменение списка портов? В предыдущей Вашей версии QserialDevice я делал с помощью сигнала hasChanged(QStringList) класса SerialDeviceEnumerator, а в этой - как? Впечатление складывается, сильно урезали QSerialDevice, к которому я так привык.. Урезали т.к. нет возможности реализовать эту функцию для всех ОС. Если нужно отслеживать изменение - то можно периодически по таймеру получать список. Если же это не устраивает, то бери код из предыдущей версии библиотеки и реализуй у себя дополнительный класс для отслеживания. UPD: Или можешь взять код отслеживания из QextSerialPort - там он попроще. |
asket, | ||
17.2.2012, 10:50 | проблемы с интеграцией Qt в Microsoft Visual Studio .NET 2003 | У тебя в голове каша. SDK - это когда ничего не нужно пересобирать и делать configure - это когда нужно просто работать. Ты скачал SDK, уже откомпиленое при помощи компилятора MinGW, зачем ты запускаешь configure.exe? Чтобы использовать студийный компилятор - то нужно поставить галочку в SDK менеджере и выкачать SDK, откомпиленное при помощи MSVS 2008. Но при этом, у тебя в системе должна быть установлена сама MSVS 2008! Чтобы использовать твой конпелятор от Visual Studio .NET 2003 - тебе нужно выкачать исходники Qt а не SDK (т.е. можешь также в SDK менеджере установить галочку для скачивания исходников Qt, а можешь скачать их сам с сайта QtNokia). Далее, тебе необходимо перекомпилировать исходники Qt своим компилятором и уже потом пользоваться. Как собирать Qt из исходников - ищи в гугле или на самом сайте Qt. |
raus, | ||
21.1.2012, 17:58 | QT&ZigBee | Все равно все от него пляшут LOL Кто эти все? Сейчас идет процесс интеграции QSerialDevice 2.0 в Qt (как аддон). Nokia дала добро и в скором времени начнется интеграция репозитория и т.п. Так что про QextSerialPort можно забыть, тем более, он по многим параметрам уступает как в кривом архитектурном плане, возможностях, также оно уже "мертво" и не развивается вообще. Так что вывод делайте сами. Цитата(Stoptyssin) Он принимает данные с устройств и какает в порт сообщениями типа "Такой-то девайс послал то-то" - именно так Я не распарсил, что имеется ввиду? |
Stoptyssin, | ||
7.12.2011, 20:05 | QSerialDevice - Библиотека для работы с COM-портами | Цитата После вставки (или доставания, если сабжевый класс был инициализирован при воткнутом устройстве) начинаются бесконечные ивенты от этого QSocketNotifier (который udev_socket). Да, есть такое дело. Если открыть порт и выдернуть шнурок то будут евенты сыпаться и будет загрузка. Тут эта тема поднималась уже. Решения нет и не будет в принципе, т.к. эта ветка библиотеки заморожена и больше не поддерживается. Вместо этой ветки используй 2.0. : https://gitorious.org/qserialdevice/qserial...ive-tarball/2.0 которую (тьфу-тьфу чтобы не сглазить), нокиевцы обещали добавить в Qt как аддон. Здесь вместо SerialDeviceEnumerator использовать можно SerialPortInfo с проверкой портов по таймеру. |
blinvip, | ||
16.10.2011, 12:22 | Release, Debug и QSerialDevice | Цитата(RazrFalcon) У меня arch. У меня сейчас на арче юзер в группах: tty и uucp и все работает. Только нужно машинку перегрузить после изменений вроде. Цитата(RazrFalcon) Бага! Ребутнулся обратно на винду, нажал собрать - и все заработало. До этого 3-и часа промучался... Мистика. бывает |
RazrFalcon, | ||
7.4.2011, 19:35 | QSerialDevice - Библиотека для работы с COM-портами | А как узнать, подключено ли к порту какое-либо устройство? Никак. Это необходимо будет по таймеру пытаться считывать данные с порта? Или есть другой способ? Открыть порт и приконектиться к сигналу readyRead(). И когда от устройства (если оно есть) придут данные - то прочитать их. Никаких таймеров не нужно (за исключением, если необходимо просигнализировать о таймауте ожидания от устройства данных). Как то так. |
d2r, | ||
8.2.2011, 19:17 | QSerialDevice - Библиотека для работы с COM-портами | Порт виртуальный - ELTIMA Virtual Serial Port. Самый хороший из всех эмуляторов! Имхо. Порты, созданные другими программами (например, Virtual Serial Ports Emulator) не определяются этой библиотекой. Как понял, определяются только те порты, которые есть в диспетчере устройств в ветке "Порты LPT и COM". А где те, которые создаются Virtual Serial Ports Emulator не знаю. Так и должно быть. Программа, написанная другим человеком, на делфне читает всё полностью. Может можно как-то последовательно прочитать? В ELTIMA Virtual Serial Port Driver включите эмуляцию baudrate и будет счастье. |
silver47, | ||
9.1.2011, 13:21 | QSerialDevice - Библиотека для работы с COM-портами | Цитата Строки коммутатор воспринимает, а вот управляющие символы в String отправить не получается, коммутатор воспринимает их как строку и все. Ну так смекнуть нужно и формировать данные в виде QByteArray и слать их устройству.
Это же элементарно, Ватсон (с) |
Sasha07, | ||
26.12.2010, 15:38 | QSerialDevice - Библиотека для работы с COM-портами | Цитата C:\Qt\2010.05\BuildExamples-build-desktop\examples\anymaster/../../../qserialdevice-qserialdevice/examples/anymaster/anymaster.cpp:30: undefined reference to `operator<<(QDebug, AbstractSerial::BaudRate)' Возьмите сегодняшний master. Я там это исправил. Цитата так сказать, большую зеленую кнопку. не надо нажимать кнопок. запускать надо через Qt Command Promt или заранее прописав в PATH пути к либам Qt и MinGW. Цитата .a помещает в Qt\2010.05\BuildExamples-build-desktop\src\build\debug - это так и должно быть, или должно в Qt\2010.05\qserialdevice-qserialdevice\src ? Должно быть, всегда библиотеку помещает в \BuildExamples-build-desktop\src\build\debug(release). Цитата С полученной .dll моя прога работать не хочет, опять 139 ошибка (там только создание экземпляра класса, больше совсем ничего, и #include <abstractserial.h>, как в примере, и dll лежит рядом с ехе), а примеры проверить не могу. Разбираться что у Вас не работает в Вашем приложении я не буду. Для Вас специально созданы примеры /examples , они работают так как задумано. Сделайте у себя по аналогии. В чем проблема? Цитата .dll помещает опять в Qt\2010.05\BuildExamples-build-desktop\src\build\debug. А куда ей помещать? Если хотите использовать shared (*.dll) библиотеку - то напишите сами себе *.pro файл так как Вам нужно чтобы оно помещало туда куда Вам надо. В общем, почитайте assistent и что нить про разделяемые библиотеки. |
Alexk, | ||
14.12.2010, 16:15 | Как правильно создать 3-х уровневую модель дерева? | kuzulis, все, идею понял, супер!... Только не мог бы ты подсказать насчет кода функций index/parent/rowCount плиз?) Вот, думаю разберешься:
Как то так |
Rocky, | ||
14.12.2010, 15:36 | Как правильно создать 3-х уровневую модель дерева? | Я тож долго соображал (до сих пор соображаю еще). Вот, может пригодится это обсуждение: http://www.prog.org.ru/topic_15908_0.html Самым простым решением (что я надумал), является создание базового класса Итем, от которого будут наследоваться уже реальные итемы источника данных, которые идентифицируются по типу. т.е. мысленно делим итемы нашей структуры данных на типы, например: корневой итем rootItem, итем 1-го уровня вложенности oneLevelItem, итем 2-го уровня вложенности twoLevelItem, .... итем n-го уровня вложенности nLevelItem, т.е. базовый класс имеет вид:
т.е. всё аналогично тому, что в примерах с TreeItem, но! с одним условием, что добавили enum NodeType (тип итема/узла), плюс сделали методы:
чисто абстрактными (т.е. реализовывать их будем в других классах-наследниках от базового), плюс убрали список QList<QVariant> с данными итема, т.к. каждый тип итема будет содержать разные типы/кол-во данных (столбцов). Теперь реализуем те классы-итемы, типы которых у нас будут в нашей структуре данных, пример: корневой узел.
Видим, что корневой узел имеет данные типа RootData, которые содержат всего два столбца title и summary, т.е. это то что будет отображено в TreeView как заголовки (header). При этом, знаем, что сам корневой узел не отображается в TreeView !!! Далее, реализуем другой итем 1-го уровня:
Как видим, этот класс содержит данные OneLevelData из трёх полей. Далее, реализуем все остальные классы-итемы, которые у нас будут в дереве. Теперь, в модели делаем так:
При этом, считаем, что дерево данных rootNode полученное в модель уже существует (создано и заполнено данными/итемами заранее). (Считаем так для простоты). Теперь, нужно переопределить виртуальные методы модели так, чтобы она "рисовала" нам итемы данных так как мы хотим:
т.е. вся фишка в
т.е. мы для рисования данных сначала определяем : "а что, собственно, щас у нас за текущий тип итема?" и в зависимости от типа итема мы можем выбирать, какие данные (столбцы) этого итема нам отображать, а какие нафик не нужны для отображения (но они есть)!!! И по аналогии переопределяем другие методы модели! Надеюсь, суть ясна? ЗЫ: старался донести как мог идею (один из вариантов решения проблем похожего рода). |
Rocky, | ||
14.12.2010, 13:58 | Как правильно создать 3-х уровневую модель дерева? | Цитата Т.е. что, получается что не нужно наследоваться от QAbstractItemModel а тупо заполнять дерево вручную? Нужно наследоваться. Просто суть такова, что источником данных для модели выступает класс TreeItem. Т.е. каждый TreeItem содержит список столбцов(собственно - данных), а также список строк(список указателей на дочерние итемы). т.е. источник данных типа TreeItem специально имеет древовидную структуру для того чтобы легко его можно было адаптировать к QAbstractItemModel-ли. Так вот, переопределяя в модели виртуальные методы, мы тем самым, можем для любого итема источника данных показать любые его данные какие хотим. К примеру, итем TreeItem имеет список данных из 3-х столбцов, но мы хотим показать только два из них, поэтому, переопределяя виртуальный метод в модели, мы можем подсовывать в него нужные нам столбцы TreeItem . Вместо списка данных TreeItem типа QList<QVariant>, можно испоотзовать любые структуры данных. QList<QVariant> в примере (ИМХО) приведен чисто чтобы показать как оно работает, т.е. общий случай. Тем более, что в QList<QVariant> можно впихнуть любые данные, поэтому такое решение универсально. Цитата Так а если нужно обрабатывать нажатие мыши то как тогда с таким подходом? Нажатие мыши обрабатываются в TreeView, при этом, ты получаешь готовый текущий QModelIndex, и можеш, зная его, изменить в нем данные с помощью методов модели типа setData() и т.п. т.е. в данном случае, подразумеваем, что данные в источнике ты меняешь сверху вниз, т.е: TreeView->Model->DataSource. А вот если у тебя данные в TreeItem кто-то меняет извне (например какой-то алгоритм), то тут нужно придумать какой-то механизм чтобы уведомить модель о том, что данные в данном итеме TreeItem изменились. т.е. этим механизмом будет являться твоё собственное API. Как-то так... В общем, весь этот подход MVC какой-то не особо универсальный. ИМХО. ЗЫ: Я сам долго анализировал и втыкал что есть что. Вот, довтыкался . |
Rocky, | ||
21.10.2010, 12:28 | QSerialDevice - Библиотека для работы с COM-портами | Только что пересмотрел тот код где вы переоткрываете и не увидел где вы конфигурируете порт! Может все-таки БУДЕМ ЧИТАТЬ ДОКУМЕНТАЦИЮ? ИЛИ КАК? -- Упс, прощу прощения.. Действительно, данный косяк наблюдаю... Пробую исправить.. --- Вроде исправил, проверьте. |
lpn74, | ||
8.10.2010, 9:34 | CMake. Локализация программ используя *.po файлы. | Все, в принципе разобрался и даже написал тут шаблон ВиКи по этой теме http://www.wiki.crossplatform.ru/index.php...B8%D1%86%D0%B02 Но не получается: 1. Отформатировать и облагородить в некоторых местах. 2. Сделать эту страницу независимой. Почему-то она находится в Kuzulis/песочница, хотя, я ее переименовал в Kuzulis/песочница2 Или я чего-то недопонимаю . Не мог бы кто-нибудь мне помочь в этом? А также дать советы и покритиковать и, может быть, добавить чего нибудь нового и самому подправить. --- |
ViGOur, | ||
30.7.2010, 16:53 | использование QSerialDevice | Цитата ах, вот как! гы...гы..., самого то его и нет!... а где его в собранном виде для винды можно скачать? http://www.stack.nl/~dimitri/doxygen/download.html#latestsrc doxygen-1.7.1-setup.exe |
dimay192, | ||
Текстовая версия | Сейчас: 24.11.2024, 22:10 |