Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
kuzulis |
9.10.2013, 17:56
Сообщение
#91
|
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7
|
Цитата(Анна @ 9.10.2013, 11:15) Link Жаль, что errorString() не перегружена для QSerialPort... по крайней мере в QT-4.8.4 . А, простите, зачем это нужно? |
|
|
|
|
Алексей1153 |
14.10.2013, 9:18
Сообщение
#92
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2946 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34
|
Анна, произведи класс от QSerialPort и перегрузи
|
|
|
|
|
Анна |
21.10.2013, 8:12
Сообщение
#93
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 276 Регистрация: 22.5.2008 Из: Зеленоград Пользователь №: 181 Спасибо сказали: 30 раз(а) Репутация: 4
|
Цитата(kuzulis @ 9.10.2013, 18:56) Link Цитата(Анна @ 9.10.2013, 11:15) Link Жаль, что errorString() не перегружена для QSerialPort... по крайней мере в QT-4.8.4 . А, простите, зачем это нужно? В смысле, зачем нужно? А зачем тогда нужна errorString()? Хотя бы для какого-то единообразия. У меня три приложения работают с компортом, а у напарника с десяток, наверное. Хотелось бы, чтобы об одной и той же ошибке все приложения сообщали одинаковую информацию. Приходится таскать за собой довесок. К тому же как раз ради удобной обёртки и взяла этот класс. До этого пользовалась доморощенными методами. Цитата(Алексей1153 @ 14.10.2013, 10:18) Link Анна, произведи класс от QSerialPort и перегрузи Кеп, ты? Но, вообще, перегружать класс ради сообщений об ошибке не смешно. Кстати, хотела узнать, под Линуксом никаких проблем с работой QSerialPort порта нету? Мне ещё предстоит линуксоида убедить перейти на этот класс. |
|
|
|
|
kuzulis |
21.10.2013, 9:59
Сообщение
#94
|
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7
|
Цитата(Анна) В смысле, зачем нужно? А зачем тогда нужна errorString()? Хотя бы для какого-то единообразия. У меня три приложения работают с компортом, а у напарника с десяток, наверное. Хотелось бы, чтобы об одной и той же ошибке все приложения сообщали одинаковую информацию. Приходится таскать за собой довесок. К тому же как раз ради удобной обёртки и взяла этот класс. До этого пользовалась доморощенными методами. Можно конкретный пример? Что не устраивает то конкретно? Любые предложения приветствуются. Цитата(Анна) Кстати, хотела узнать, под Линуксом никаких проблем с работой QSerialPort порта нету? Мне ещё предстоит линуксоида убедить перейти на этот класс. При использовании signal/slot (неблокирующего подхода) не должно быть проблем. Но при waitForXX() могут выплыть проблемки.. |
|
|
|
|
Анна |
21.10.2013, 13:44
Сообщение
#95
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 276 Регистрация: 22.5.2008 Из: Зеленоград Пользователь №: 181 Спасибо сказали: 30 раз(а) Репутация: 4
|
Цитата(kuzulis @ 21.10.2013, 10:59) Link Цитата(Анна) В смысле, зачем нужно? А зачем тогда нужна errorString()? Хотя бы для какого-то единообразия. У меня три приложения работают с компортом, а у напарника с десяток, наверное. Хотелось бы, чтобы об одной и той же ошибке все приложения сообщали одинаковую информацию. Приходится таскать за собой довесок. К тому же как раз ради удобной обёртки и взяла этот класс. До этого пользовалась доморощенными методами. Можно конкретный пример? Что не устраивает то конкретно? Любые предложения приветствуются. Цитата(Анна) Кстати, хотела узнать, под Линуксом никаких проблем с работой QSerialPort порта нету? Мне ещё предстоит линуксоида убедить перейти на этот класс. При использовании signal/slot (неблокирующего подхода) не должно быть проблем. Но при waitForXX() могут выплыть проблемки.. Конкретно, когда от порта приходит сигнал об ошибке (любой, например, у меня бывает плохой контакт между портом и железякой, тогда всё время валится ошибка 6 (очень облегчила мне жизнь в выяснении, кто виноват)), хочу расшифорвать его пользователю, а errorString() возвращает всегда "Unknown error". У меня ещё сверху добавляется свой анализ полученного из порта, так что проблему решила, просто добавив к "своим ошибкам" расшифорвку ошибок из хелпа, но у меня есть приложения, где хотелось бы использовать ваш класс в чистом виде, а не городить заплатку. Насколько я поняла, всего лишь нужно было в тех местах, где генерится сигнал error(), вызывать перед этим setErrorString() с соответствующим текстом. Про Линукс, спасибо, что предупредили. У меня есть места, где waitFor... используются. Буду переделывать. |
|
|
|
|
kuzulis |
21.10.2013, 16:18
Сообщение
#96
|
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7
|
Цитата тогда всё время валится ошибка 6 Это которая BreakConditionError ? |
|
|
|
|
DruidCat |
21.10.2013, 17:19
Сообщение
#97
|
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 15.10.2013 Пользователь №: 3958 Спасибо сказали: 0 раз(а) Репутация: 0
|
Link
Хотелось бы задать вопрос, извините, если он будет глупым, я только учусь. Мне хотелось бы проверять на занятость сом порты, в документации я нашел #include <QSerialPortInfo> с методом isBusy(), который возвращает bool. А как им пользоваться я не знаю. Я учу Qt меньше месяца, читаю учебник, и бегу вперед паровоза. Охота быстрей и быстрей написать свою программу. Я смотрел примеры по применению QSerialPortInfo, и не понял их, так как такие способы программирования я еще не знаю. Не могли бы привести небольшой наглядный кусочек кода, где понятно, как пользоваться методом isBusy(), желательно в if. Мне хотелось бы проверять определенные сом порты на занятость и если эти порты заняты, производить с ними определенные манипуляции. |
|
|
|
|
kuzulis |
21.10.2013, 17:53
Сообщение
#98
|
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7
|
Если не знаешь какой порт нужен - то просто перечисляешь и выбираешь из списка нужный и проверяешь его:
или Если знаешь какой нужен то прямо его и проверяешь: UPD: А еще смотри примеры, которые идут вместе с QtSerialPort в директории /examples: * cenumerator - консольный пример * enumerator - GUI пример Сообщение отредактировал kuzulis - 21.10.2013, 17:57 |
|
|
|
|
Litkevich Yuriy |
23.10.2013, 19:42
Сообщение
#99
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Тему разделил: Link
|
|
|
|
|
Анна |
28.10.2013, 15:25
Сообщение
#100
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 276 Регистрация: 22.5.2008 Из: Зеленоград Пользователь №: 181 Спасибо сказали: 30 раз(а) Репутация: 4
|
Цитата(kuzulis @ 21.10.2013, 16:18) Link Цитата тогда всё время валится ошибка 6 Это которая BreakConditionError ? Она. |
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 25.12.2025, 1:06 |