QtSerialport. Проблема с приемом данных. |
Здравствуйте, гость ( Вход | Регистрация )
QtSerialport. Проблема с приемом данных. |
Гость_Иван_* |
5.4.2013, 3:54
Сообщение
#11
|
Гости |
Цитата Я бы с таким удовольствием её почитал, да где взять? http://qt-project.org/wiki/QtSerialPort_Russian здесь про документацию все зачеркнуто.... Скоро должна быть в открытом доступе на qt-project.org после того как ее допилят до того состояния чтобы не стыдно было А пока что можно сгенерить самому, вот линк: http://www.prog.org.ru/index.php?topic=953...73488#msg173488 Цитата Так по логике сначала необходимо настроить соединение, а потом открывать его, из-за этого вся и путаница. Крайне неверное утверждение. 1. Ты не можешь что-то сконфигурировать не открыв это, т.е. не получив дескриптор у-ва. Это - раз. 2. Ты можешь переконфигурировать у-во в процессе его работы не закрывая его. Это - два. Цитата И ещё такой вопрос, сегодня столкнулся со следующей проблемой, первый раз пришлось работать с переходником usb com, как раз после того как обновился=) После пересброса питания на плате, (но не всегда), такое ощущение, что не идет сигнал readyread(), и происходит это не всегда... Хотя при работе на компьютере с нормальным ком портом, такого замечено не было, поэтому не думаюь что косяк в программе. Ну, я не телепат. Дай полный HowTo как воспроизвести проблему и т.п. Запости баг в багзиллу в конце концов с детальным описанием проблемы. Вот тогда и есть смысл это обсуждать... Так по логике сначала необходимо настроить соединение, а потом открывать его, из-за этого вся и путаница. И из-за текущей последовательности все наступали и будут наступать на грабли.Ну, это единственно верная последовательность. Крайне неверное утверждение. 1. Ты не можешь что-то сконфигурировать не открыв это, т.е. не получив дескриптор у-ва. Это - раз. 2. Ты можешь переконфигурировать у-во в процессе его работы не закрывая его. Это - два. Вот как раз по второй причине хочется сделать сначала задать конфигурацию, а потом открывать устройство. И потом в QextSerialPort нужно сначала создать объект порта (получить дескриптор устройства), затем сконфигурировать его и только потом открывать. Так что по крайней мере я не вижу в действиях ALeXUI ничего конфликтующего с нормальной логикой или опытом использования QextSerialPort. |
|
|
Алексей1153 |
5.4.2013, 6:19
Сообщение
#12
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
сам порт (который в системе), конечно же, требует, чтобы сначала открыли его, потом настроили. Но оболочка вполне может позволить сначала задать настройки, а потом , когда порт открывают, эти настройки туда лепить.
так что, недоработочка в интерфейсе оболочки ИМХО |
|
|
kuzulis |
5.4.2013, 10:45
Сообщение
#13
|
Активный участник Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7 |
Парни, ну не серьезно все это. Я перестану вообще отвечать и реагировать на такого рода вопросы и хотелки.
Цитата Вот как раз по второй причине хочется сделать сначала задать конфигурацию, а потом открывать устройство. Неверно. Ты можешь для такого поведения сделать свою обертку над классом. Цитата И потом в QextSerialPort нужно сначала создать объект порта (получить дескриптор устройства), затем сконфигурировать его и только потом открывать. Неверно. Каша в голове. Цитата Так что по крайней мере я не вижу в действиях ALeXUI ничего конфликтующего с нормальной логикой или опытом использования QextSerialPort. Неверно. Я не разбираюсь в сортах г-на и логика/опыт с QextSerialPort меня не волнует. Цитата сам порт (который в системе), конечно же, требует, чтобы сначала открыли его, потом настроили. Но оболочка вполне может позволить сначала задать настройки, а потом , когда порт открывают, эти настройки туда лепить. Оболочка - это то что может пользователь сделать под себя как ему хочется, просто обернув класс своей логикой. Задача класса - обеспечить оптимальный, простой, универсальный, понятный и гибкий интерфейс для работы с у-вом. Цитата так что, недоработочка в интерфейсе оболочки ИМХО Так что, недоработочка в интерфейсе мозга ИМХО А также нежелание читать документацию, смотреть примеры, поискать решение в гугле и т.п. Проще ляпнуть перл в форум - авось кто-нибудь решит вашу проблему за Вас. UPD: Также см. QFile, QAbstractSocket, QProcess и прочие классы от QIODevice. Они не согласны с вашей логикой. Я нехочу спорить об этом. Если есть желание что-то изменить - представьте свое решение в Gerrit. Если его одобрят (но я не одобрю ) то оно появится в QtSerialPort. |
|
|
Алексей1153 |
6.4.2013, 16:22
Сообщение
#14
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
какие по весне все нервные
|
|
|
ud4fd |
27.4.2013, 0:00
Сообщение
#15
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 26.4.2013 Пользователь №: 3808 Спасибо сказали: 0 раз(а) Репутация: 0 |
Здравствуйте kuzulis,
Подскажите ка в библиотеке QtSerialPort использовать сигнал PinoutSignals для контроля за состоянием линий CTS, RI, DCD ... желательно с реальным примером. |
|
|
ud4fd |
27.4.2013, 12:00
Сообщение
#16
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 26.4.2013 Пользователь №: 3808 Спасибо сказали: 0 раз(а) Репутация: 0 |
Здравствуйте kuzulis,
при попытке использовать сигналы от состояния линий порта
в дебаг получаю следующее Цитата Object::connect: No such signal QSerialPort::DataSetReadySignal() Object::connect: (receiver name: 'MainWindow') Тестировал под Linux в QT4.8 и QT5 Как правильно работать с сигналами от линий порта? |
|
|
kuzulis |
28.4.2013, 13:35
Сообщение
#17
|
Активный участник Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7 |
А гдеты нашел эти сигналы? Таких сигналов нету, есть только эти:
Цитата Q_SIGNALS: void baudRateChanged(qint32 baudRate, QSerialPort::Directions dir); void dataBitsChanged(QSerialPort::DataBits dataBits); void parityChanged(QSerialPort::Parity parity); void stopBitsChanged(QSerialPort::StopBits stopBits); void flowControlChanged(QSerialPort::FlowControl flow); void dataErrorPolicyChanged(QSerialPort::DataErrorPolicy policy); void dataTerminalReadyChanged(bool set); void requestToSendChanged(bool set); void error(QSerialPort::SerialPortError serialPortError); void settingsRestoredOnCloseChanged(bool restore); Во вторых, отслеживание изменения сигналов DSR, CTS, RNG и пр. не поддерживается потому что невозможно это кросс-платформено реализовать для всех платформ (например в MAC OSX) без использования поллинга. |
|
|
ud4fd |
28.4.2013, 19:55
Сообщение
#18
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 26.4.2013 Пользователь №: 3808 Спасибо сказали: 0 раз(а) Репутация: 0 |
А гдеты нашел эти сигналы? Таких сигналов нету, есть только эти: А это нафига есть в файле qserialport_unix.cpp
|
|
|
kuzulis |
28.4.2013, 21:07
Сообщение
#19
|
Активный участник Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7 |
Цитата А это нафига есть в файле qserialport_unix.cpp А ты не можешь отличить Qt-шные сигналы от сигнальных линий порта (pinout signals)? Нонсенс, я и не знал, что можно делать QObject::connect к перечисляемому типу, вот это новость так новость! Ужос! |
|
|
ud4fd |
28.4.2013, 22:15
Сообщение
#20
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 26.4.2013 Пользователь №: 3808 Спасибо сказали: 0 раз(а) Репутация: 0 |
А ты не можешь отличить Qt-шные сигналы от сигнальных линий порта (pinout signals)? вот здесь Здравствуйте kuzulis, Подскажите ка в библиотеке QtSerialPort использовать сигнал PinoutSignals для контроля за состоянием линий CTS, RI, DCD ... желательно с реальным примером. Я и спрашивол есть ли возможность обрабатывать сигналя от PinoutSignals или нет. Так как в документации ни чего толком не нашел. |
|
|
Текстовая версия | Сейчас: 22.11.2024, 9:18 |