![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
kuzulis |
![]()
Сообщение
#91
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Алексей1153 |
![]()
Сообщение
#92
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
Анна, произведи класс от QSerialPort и перегрузи
![]() |
|
|
Анна |
![]()
Сообщение
#93
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 276 Регистрация: 22.5.2008 Из: Зеленоград Пользователь №: 181 Спасибо сказали: 30 раз(а) Репутация: ![]() ![]() ![]() |
Жаль, что errorString() не перегружена для QSerialPort... по крайней мере в QT-4.8.4 . А, простите, зачем это нужно? В смысле, зачем нужно? А зачем тогда нужна errorString()? Хотя бы для какого-то единообразия. У меня три приложения работают с компортом, а у напарника с десяток, наверное. Хотелось бы, чтобы об одной и той же ошибке все приложения сообщали одинаковую информацию. Приходится таскать за собой довесок. К тому же как раз ради удобной обёртки и взяла этот класс. До этого пользовалась доморощенными методами. Анна, произведи класс от QSerialPort и перегрузи ![]() Кеп, ты? ![]() Но, вообще, перегружать класс ради сообщений об ошибке не смешно. Кстати, хотела узнать, под Линуксом никаких проблем с работой QSerialPort порта нету? Мне ещё предстоит линуксоида убедить перейти на этот класс. |
|
|
kuzulis |
![]()
Сообщение
#94
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(Анна) В смысле, зачем нужно? А зачем тогда нужна errorString()? Хотя бы для какого-то единообразия. У меня три приложения работают с компортом, а у напарника с десяток, наверное. Хотелось бы, чтобы об одной и той же ошибке все приложения сообщали одинаковую информацию. Приходится таскать за собой довесок. К тому же как раз ради удобной обёртки и взяла этот класс. До этого пользовалась доморощенными методами. Можно конкретный пример? Что не устраивает то конкретно? Любые предложения приветствуются. ![]() Цитата(Анна) Кстати, хотела узнать, под Линуксом никаких проблем с работой QSerialPort порта нету? Мне ещё предстоит линуксоида убедить перейти на этот класс. При использовании signal/slot (неблокирующего подхода) не должно быть проблем. Но при waitForXX() могут выплыть проблемки.. ![]() |
|
|
Анна |
![]()
Сообщение
#95
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 276 Регистрация: 22.5.2008 Из: Зеленоград Пользователь №: 181 Спасибо сказали: 30 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(Анна) В смысле, зачем нужно? А зачем тогда нужна errorString()? Хотя бы для какого-то единообразия. У меня три приложения работают с компортом, а у напарника с десяток, наверное. Хотелось бы, чтобы об одной и той же ошибке все приложения сообщали одинаковую информацию. Приходится таскать за собой довесок. К тому же как раз ради удобной обёртки и взяла этот класс. До этого пользовалась доморощенными методами. Можно конкретный пример? Что не устраивает то конкретно? Любые предложения приветствуются. ![]() Цитата(Анна) Кстати, хотела узнать, под Линуксом никаких проблем с работой QSerialPort порта нету? Мне ещё предстоит линуксоида убедить перейти на этот класс. При использовании signal/slot (неблокирующего подхода) не должно быть проблем. Но при waitForXX() могут выплыть проблемки.. ![]() Конкретно, когда от порта приходит сигнал об ошибке (любой, например, у меня бывает плохой контакт между портом и железякой, тогда всё время валится ошибка 6 (очень облегчила мне жизнь в выяснении, кто виноват)), хочу расшифорвать его пользователю, а errorString() возвращает всегда "Unknown error". У меня ещё сверху добавляется свой анализ полученного из порта, так что проблему решила, просто добавив к "своим ошибкам" расшифорвку ошибок из хелпа, но у меня есть приложения, где хотелось бы использовать ваш класс в чистом виде, а не городить заплатку. Насколько я поняла, всего лишь нужно было в тех местах, где генерится сигнал error(), вызывать перед этим setErrorString() с соответствующим текстом. Про Линукс, спасибо, что предупредили. У меня есть места, где waitFor... используются. Буду переделывать. |
|
|
kuzulis |
![]()
Сообщение
#96
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
Цитата тогда всё время валится ошибка 6 Это которая BreakConditionError ? |
|
|
DruidCat |
![]()
Сообщение
#97
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 15.10.2013 Пользователь №: 3958 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
http://qt-project.org/doc/qt-5.1/qtserialp...alportinfo.html
Хотелось бы задать вопрос, извините, если он будет глупым, я только учусь. Мне хотелось бы проверять на занятость сом порты, в документации я нашел #include <QSerialPortInfo> с методом isBusy(), который возвращает bool. А как им пользоваться я не знаю. Я учу Qt меньше месяца, читаю учебник, и бегу вперед паровоза. Охота быстрей и быстрей написать свою программу. Я смотрел примеры по применению QSerialPortInfo, и не понял их, так как такие способы программирования я еще не знаю. Не могли бы привести небольшой наглядный кусочек кода, где понятно, как пользоваться методом isBusy(), желательно в if. Мне хотелось бы проверять определенные сом порты на занятость и если эти порты заняты, производить с ними определенные манипуляции. |
|
|
kuzulis |
![]()
Сообщение
#98
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
Если не знаешь какой порт нужен - то просто перечисляешь и выбираешь из списка нужный и проверяешь его:
или Если знаешь какой нужен то прямо его и проверяешь:
UPD: А еще смотри примеры, которые идут вместе с QtSerialPort в директории /examples: * cenumerator - консольный пример * enumerator - GUI пример Сообщение отредактировал kuzulis - 21.10.2013, 17:57 |
|
|
Litkevich Yuriy |
![]()
Сообщение
#99
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Тему разделил: DCTerminal - Моя первая Qt-программа
|
|
|
Анна |
![]()
Сообщение
#100
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 276 Регистрация: 22.5.2008 Из: Зеленоград Пользователь №: 181 Спасибо сказали: 30 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 18.2.2025, 2:47 |