crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в QextSerialPort
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 30.7.2010, 15:10
  тему разделил: использование QSerialDevice, т.к. библиотеки разные
Litkevich Yuriy Дата 29.7.2010, 21:57
 
Цитата(kuzulis @ 29.7.2010, 22:56) *
ненене.. это QString так считает..
именно QByteArray, QString тут не причём.
Чтобы засовывать в псевдостроку (QByteArray) байты, нужно использовать:
QByteArray::fromRawData(...)

В 4.6. появился ещё перегруженный метод append, принимающий указатель на массив и кол-во данных.
kuzulis Дата 29.7.2010, 21:48
 
Цитата
я так понял, что QextSerialPort самая популярная и отработанная библиотека. Пока только начал осваивать ее. С удовольствием выслушаю комментарии по поводу других библиотек!!!


Ну как бы я так бы не стал говорить... Она была единственно возможной... До недавнего времени.. Но.. теперь все поменялось! :)

---
Попробуйте ка это: http://qt-apps.org/content/show.php?content=112039
dimay192 Дата 29.7.2010, 21:44
  я так понял, что QextSerialPort самая популярная и отработанная библиотека. Пока только начал осваивать ее. С удовольствием выслушаю комментарии по поводу других библиотек!!!
kuzulis Дата 29.7.2010, 18:56
 
Цитата
QByteArray коды 0x00 считает концом строки,

ненене.. это QString так считает..

dimay192, а тебе обязательно QextSerialPort использовать? Другие библиотеки рассматриваются7 :)
Litkevich Yuriy Дата 29.7.2010, 18:20
 
Цитата(dimay192 @ 29.7.2010, 22:12) *
QESPTA
это программа испоьлзующая QextSerialPort, а не сама библиотека.

Собственно в оригинальном виде я QextSerialPort не использую. Просто взял оттуда несколько WinIPI'шных кусков для своей поделки на Дельфях. Ну и реализовал под Qt. правда только под виндовоз.
dimay192 Дата 29.7.2010, 18:12
 
Цитата(Litkevich Yuriy @ 29.7.2010, 21:05) *
Цитата(dimay192 @ 29.7.2010, 21:55) *
пример QESPTA
это довольно кривое творение. Я в нём много косяков находил. Лучше пиши своё чётко под QextSerialPort.
и не забудь, что QByteArray коды 0x00 считает концом строки, т.е. имея шестнадцатеричную последовательность:
01 02 03 00 05 06
Помещаяя её в QByteArray
QByteArray b;
b.append("01 02 03 00 05 06");

на выхлопе получишь:
01 02 03


Дык, собственно, что так:

QByteArray b;
b.append(port->read(1));

, что так:

char byte;
port->getChar(&byte);

режит верхний диапазон числел (восмой бит обнуляет)

На счет того, что QESPTA спорить не буду - не знаю, да вот пока только ниче лучше не нашел (начинающий я)

Litkevich Yuriy Дата 29.7.2010, 18:05
 
Цитата(dimay192 @ 29.7.2010, 21:55) *
пример QESPTA
это довольно кривое творение. Я в нём много косяков находил. Лучше пиши своё чётко под QextSerialPort.
и не забудь, что QByteArray коды 0x00 считает концом строки, т.е. имея шестнадцатеричную последовательность:
01 02 03 00 05 06
Помещаяя её в QByteArray
QByteArray b;
b.append("01 02 03 00 05 06");

на выхлопе получишь:
01 02 03
dimay192 Дата 29.7.2010, 18:04
  Версия 1.2.0
Код приёма....

Для начала код отправления:

void QespTest::transmitMsg()
{
  int i = port->write((message->text()).toAscii(),
                       (message->text()).length());
}

код приема:
bool serialPort::synchronizedReading()
{
    int numBytes;
    numBytes = port->bytesAvailable();

    while(numBytes = port->bytesAvailable())
    {
        QByteArray b;
        b.append(port->read(1));

        port->getChar(&byte);
        ...

     }

}



собственно, это чуток подправленный пример QESPTA

QByteArray b отношения к делу не имеет... так, экспериментировал...
Litkevich Yuriy Дата 29.7.2010, 17:38
  приведи код приёма, и укажи версию QextSerialPort
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 10.7.2025, 6:09