Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
dimay192 |
29.7.2010, 16:46
Сообщение
#1
|
|
Студент ![]() Группа: Новичок Сообщений: 10 Регистрация: 29.7.2010 Пользователь №: 1915 Спасибо сказали: 0 раз(а) Репутация: 0
|
Привет, форумчане!
Использую QextSerialPort! Вот такая проблемма! Закольцевал последовательны порт сам на себя! Отправляю числа в диапазоне 0xFF-0x00, а получаю обратно в диапазоне 0x7F-0x00, т.е. восьмой бит всегда равен нулю. И не могу понять: толи это особенность символьных устройств (работать только с символами в диапазоне 0x7F-0x00), толи преобразование типов надо какое произвести... Подскажите, как быт! |
|
|
|
|
Litkevich Yuriy |
29.7.2010, 17:38
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
приведи код приёма, и укажи версию QextSerialPort
|
|
|
|
|
dimay192 |
29.7.2010, 18:04
Сообщение
#3
|
|
Студент ![]() Группа: Новичок Сообщений: 10 Регистрация: 29.7.2010 Пользователь №: 1915 Спасибо сказали: 0 раз(а) Репутация: 0
|
Версия 1.2.0
Код приёма.... Для начала код отправления: код приема: собственно, это чуток подправленный пример QESPTA QByteArray b отношения к делу не имеет... так, экспериментировал... |
|
|
|
|
Litkevich Yuriy |
29.7.2010, 18:05
Сообщение
#4
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Цитата(dimay192 @ 29.7.2010, 21:55) Link пример QESPTA это довольно кривое творение. Я в нём много косяков находил. Лучше пиши своё чётко под QextSerialPort.и не забудь, что QByteArray коды 0x00 считает концом строки, т.е. имея шестнадцатеричную последовательность: 01 02 03 00 05 06 Помещаяя её в QByteArray на выхлопе получишь: 01 02 03 |
|
|
|
|
dimay192 |
29.7.2010, 18:12
Сообщение
#5
|
|
Студент ![]() Группа: Новичок Сообщений: 10 Регистрация: 29.7.2010 Пользователь №: 1915 Спасибо сказали: 0 раз(а) Репутация: 0
|
Цитата(Litkevich Yuriy @ 29.7.2010, 21:05) Link Цитата(dimay192 @ 29.7.2010, 21:55) Link пример QESPTA это довольно кривое творение. Я в нём много косяков находил. Лучше пиши своё чётко под QextSerialPort.и не забудь, что QByteArray коды 0x00 считает концом строки, т.е. имея шестнадцатеричную последовательность: 01 02 03 00 05 06 Помещаяя её в QByteArray на выхлопе получишь: 01 02 03 Дык, собственно, что так: QByteArray b; b.append(port->read(1)); , что так: char byte; port->getChar(&byte); режит верхний диапазон числел (восмой бит обнуляет) На счет того, что QESPTA спорить не буду - не знаю, да вот пока только ниче лучше не нашел (начинающий я) |
|
|
|
|
Litkevich Yuriy |
29.7.2010, 18:20
Сообщение
#6
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Цитата(dimay192 @ 29.7.2010, 22:12) Link QESPTA это программа испоьлзующая QextSerialPort, а не сама библиотека.Собственно в оригинальном виде я QextSerialPort не использую. Просто взял оттуда несколько WinIPI'шных кусков для своей поделки на Дельфях. Ну и реализовал под Qt. правда только под виндовоз. |
|
|
|
|
kuzulis |
29.7.2010, 18:56
Сообщение
#7
|
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7
|
Цитата QByteArray коды 0x00 считает концом строки, ненене.. это QString так считает.. dimay192, а тебе обязательно QextSerialPort использовать? Другие библиотеки рассматриваются7 |
|
|
|
|
dimay192 |
29.7.2010, 21:44
Сообщение
#8
|
|
Студент ![]() Группа: Новичок Сообщений: 10 Регистрация: 29.7.2010 Пользователь №: 1915 Спасибо сказали: 0 раз(а) Репутация: 0
|
я так понял, что QextSerialPort самая популярная и отработанная библиотека. Пока только начал осваивать ее. С удовольствием выслушаю комментарии по поводу других библиотек!!!
|
|
|
|
|
kuzulis |
29.7.2010, 21:48
Сообщение
#9
|
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7
|
Цитата я так понял, что QextSerialPort самая популярная и отработанная библиотека. Пока только начал осваивать ее. С удовольствием выслушаю комментарии по поводу других библиотек!!! Ну как бы я так бы не стал говорить... Она была единственно возможной... До недавнего времени.. Но.. теперь все поменялось! --- Попробуйте ка это: Link |
|
|
|
|
Litkevich Yuriy |
29.7.2010, 21:57
Сообщение
#10
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Цитата(kuzulis @ 29.7.2010, 22:56) Link ненене.. это QString так считает.. именно QByteArray, QString тут не причём.Чтобы засовывать в псевдостроку (QByteArray) байты, нужно использовать: В 4.6. появился ещё перегруженный метод append, принимающий указатель на массив и кол-во данных. |
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 23.12.2025, 0:54 |