![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
dimay192 |
![]()
Сообщение
#1
|
Студент ![]() Группа: Новичок Сообщений: 10 Регистрация: 29.7.2010 Пользователь №: 1915 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Привет, форумчане!
Использую QextSerialPort! Вот такая проблемма! Закольцевал последовательны порт сам на себя! Отправляю числа в диапазоне 0xFF-0x00, а получаю обратно в диапазоне 0x7F-0x00, т.е. восьмой бит всегда равен нулю. И не могу понять: толи это особенность символьных устройств (работать только с символами в диапазоне 0x7F-0x00), толи преобразование типов надо какое произвести... Подскажите, как быт! |
|
|
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
приведи код приёма, и укажи версию QextSerialPort
|
|
|
dimay192 |
![]()
Сообщение
#3
|
Студент ![]() Группа: Новичок Сообщений: 10 Регистрация: 29.7.2010 Пользователь №: 1915 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Версия 1.2.0
Код приёма.... Для начала код отправления:
код приема:
собственно, это чуток подправленный пример QESPTA QByteArray b отношения к делу не имеет... так, экспериментировал... |
|
|
Litkevich Yuriy |
![]()
Сообщение
#4
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
пример QESPTA это довольно кривое творение. Я в нём много косяков находил. Лучше пиши своё чётко под QextSerialPort.и не забудь, что QByteArray коды 0x00 считает концом строки, т.е. имея шестнадцатеричную последовательность: 01 02 03 00 05 06 Помещаяя её в QByteArray
на выхлопе получишь: 01 02 03 |
|
|
dimay192 |
![]()
Сообщение
#5
|
Студент ![]() Группа: Новичок Сообщений: 10 Регистрация: 29.7.2010 Пользователь №: 1915 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
пример 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 |
![]()
Сообщение
#6
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
kuzulis |
![]()
Сообщение
#7
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
Цитата QByteArray коды 0x00 считает концом строки, ненене.. это QString так считает.. dimay192, а тебе обязательно QextSerialPort использовать? Другие библиотеки рассматриваются7 ![]() |
|
|
dimay192 |
![]()
Сообщение
#8
|
Студент ![]() Группа: Новичок Сообщений: 10 Регистрация: 29.7.2010 Пользователь №: 1915 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
я так понял, что QextSerialPort самая популярная и отработанная библиотека. Пока только начал осваивать ее. С удовольствием выслушаю комментарии по поводу других библиотек!!!
|
|
|
kuzulis |
![]()
Сообщение
#9
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
Цитата я так понял, что QextSerialPort самая популярная и отработанная библиотека. Пока только начал осваивать ее. С удовольствием выслушаю комментарии по поводу других библиотек!!! Ну как бы я так бы не стал говорить... Она была единственно возможной... До недавнего времени.. Но.. теперь все поменялось! ![]() --- Попробуйте ка это: http://qt-apps.org/content/show.php?content=112039 |
|
|
Litkevich Yuriy |
![]()
Сообщение
#10
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
ненене.. это QString так считает.. именно QByteArray, QString тут не причём.Чтобы засовывать в псевдостроку (QByteArray) байты, нужно использовать:
В 4.6. появился ещё перегруженный метод append, принимающий указатель на массив и кол-во данных. |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 26.2.2025, 16:58 |