Здравствуйте, гость ( Вход | Регистрация )
человек | Дата 5.12.2014, 0:06 |
Не использовать QSerialDevice, а использовать QtSerialPort. у меня есть ограницения по использованию Qt 4.6. QtSerialPort использует 4.8 или 5 версию |
|
kuzulis | Дата 4.12.2014, 18:51 |
Iron Bug, Цитата простите, что вмешиваюсь. а что должно тут напрягать? это единственное правильное отображение слэшей в путях, которое понимают все системы (по крайней мере, в С++). обратный слэш - чисто вендозная шняга, поэтому его использование в кроссплатформенном программировании должно быть исключено. Эмм.. да, пути к у-вам типа "//./" допустимы и в Windows. НО! Внутри виндовых API они преобразуются в "\\\\.\\" (по крайней мере об этом упоминается маленькими буковками в MSDN). НО, в WinCE при задании ком-портов необходимо писать COM1: ... COMn:. Поэтому ну никак нельзя принять "//./" как кросс-платформенное решение. Кстати, в Qt 5.4.1 баг с путями (для QtSerialPort) типа "//./" пофикшен. человек, Цитата Класс называется QSerialDevice, тогда логично использовать с помощью него для символьных устройсв. Но когда используешь open, класса AbstractSerial, реузльтат false. Это из-за того что символьные устройства не используют настройки типа baud и т.д... Это решаемо... Вопрос в другом, если все же поправить исходники что бы символьное устройство можно было открыть, то что делать с сигналами readyRead() они постоянно валят.... есть данных или нет. Или что нужно учесть в символьном стройстве для этого? Не использовать QSerialDevice, а использовать QtSerialPort. |
|
человек | Дата 4.12.2014, 15:26 |
Класс называется QSerialDevice, тогда логично использовать с помощью него для символьных устройсв. Но когда используешь open, класса AbstractSerial, реузльтат false. Это из-за того что символьные устройства не используют настройки типа baud и т.д... Это решаемо... Вопрос в другом, если все же поправить исходники что бы символьное устройство можно было открыть, то что делать с сигналами readyRead() они постоянно валят.... есть данных или нет. Или что нужно учесть в символьном стройстве для этого? |
|
Гость | Дата 4.12.2014, 15:23 |
Класс называется QSerialDevice, тогда логично использовать с помощью него для символьных устройсв. Но когда используешь open, класса AbstractSerial, реузльтат false. Это из-за того что символьные устройства не используют настройки типа baud и т.д... Это решаемо... Вопрос в другом, если все же поправить исходники что бы символьное устройство можно было открыть, то что делать с сигналами readyRead() они постоянно валят.... есть данных или нет. Или что нужно учесть в символьном стройстве для этого? |
|
Iron Bug | Дата 30.4.2014, 7:02 |
Это не напрягает?
Может так правильнее тогда:
если вздумал использовать "\\.\" ?? простите, что вмешиваюсь. а что должно тут напрягать? это единственное правильное отображение слэшей в путях, которое понимают все системы (по крайней мере, в С++). обратный слэш - чисто вендозная шняга, поэтому его использование в кроссплатформенном программировании должно быть исключено. |
|
Алексей1153 | Дата 29.4.2014, 23:00 |
kuzulis, 1) "не не не" - а вот и да , я же пробовал 2) установил, иначе бы не слинковалось и не открылся бы порт вообще. А он открылся 3) "//./com5" - не напрягает, библиотека (да и винда) понимает и так, и так. Опять же - я пробовал и так, и так 4) целый день смотрел примеры, читал и искал, консультировался по скайпу с народом - удивляются, что там ещё могло быть такое ) В общем, под Qt4 не завелось. Обновил библиотеку на Qt5 - всё теперь работает (код не менял даже) Вот такие загадки |
|
kuzulis | Дата 29.4.2014, 17:40 |
1) Цитата должно быть LIBS += -lqtserialport не не не .. ни в коем случае. для Qt4 надо: Цитата CONFIG += serialport скорее всего ты просто не установил QtSerialPort в свою Qt4. В Wiki исчерпывающая инфа. 2) Цитата сел читать из реального порта - и не читаются данные. Порт открывается, а сигнал readyRead() не вызывается, да и принудительный вызов readAll() возвращает 0. Хотя данные в порт с прибора точно идут - я темриналом проверял это что может быть такое ? Это не напрягает?
Может так правильнее тогда:
если вздумал использовать "\\.\" ?? Но это можно опустить, достаточно писать просто COM5, там внутри оно само подставит что надо и куда надо. ПЫСЫ: Может сначала нужно почитать документацию и посмотреть примеры? Или мы "нахрапом" берем? |
|
Алексей1153 | Дата 28.4.2014, 21:35 |
перешёл на Qt 5 , там QSerialPort уже встроен, прописываем QT += serialport |
|
Алексей1153 | Дата 28.4.2014, 14:39 |
какие там другие классы для работы с ком-портом упоминались ? Желательно без наворотов - мне всё равно нужно будет простая вычитка в отдельном потоке | |
Алексей1153 | Дата 28.4.2014, 14:02 |
сел читать из реального порта - и не читаются данные. Порт открывается, а сигнал readyRead() не вызывается, да и принудительный вызов readAll() возвращает 0. Хотя данные в порт с прибора точно идут - я темриналом проверял это что может быть такое ?
верси Qt 4.8.2 - может, в этом проблема ? |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 11.12.2024, 22:58 |