Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

QSerialPort не считывает данные

311
24 сентября 2015 года
plastictown
309 / / 08.01.2006
Доброго времени суток! Пытаюсь подключиться к девайсу по протоколу DCON:
Код:
#include <QtSerialPort>
#include <QIODevice>
#include <QCoreApplication>
#include <stdio.h>
#include <stdlib.h>

#include <VLCSTR.H>
#include <VLCDSTR.H>

int main(int argc, char *argv[])
{

    QCoreApplication a(argc, argv);

    QSerialPort qp("COM4");

    if(qp.open(QIODevice::ReadWrite))
    {
        printf("-> QSerialPort.open()\t-\t[OK]\n\r");
    }
    else
    {
        printf("-> QSerialPort.open()\t-\t[FAILED]\n\r");
        printf("-> Error: %s\n\r", qp.errorString());
    }


    if(qp.setBaudRate(QSerialPort::Baud57600) &&
    qp.setDataBits(QSerialPort::Data8) &&
    qp.setStopBits(QSerialPort::OneStop) &&
    qp.setParity(QSerialPort::NoParity) &&
    qp.setFlowControl(QSerialPort::NoFlowControl))
    {
        printf("-> port set up\t-\t[OK]\n\r");
    }

    //CDconString ds;
    //ds.CreateDINQuery(16);

    char buf[] ="$10M\r";

    if(qp.write(buf, 5))
    {
        printf("-> write()\t-\t[OK]\n\r");
    }
    else
    {
        printf("-> write()\t-\t[ERROR]\n\r");
    }

    qp.flush();

    if(!qp.waitForBytesWritten(100))
    {
        printf("-> WaitForBytesWritten()\t-\t[ERROR]\n\r");
    }

    qint64 nRdSz=qp.bytesAvailable();

    if(nRdSz<1)
    {
        printf("NoDataToRead\n\r");
    }
    else
    {
    QByteArray qa;
    qa=qp.readAll();
    }

    if(qp.isOpen())
        qp.close();
    return a.exec();
}
Примеров по QSerialPort не много, поэтому писал, как думал.-) В результате порт открывается, настраивается, записывается, а ответ не приходит, то есть qp.bytesAvailable() всегда 0; Думал, что с железом что-то не так, проверил - работает и настройки правильные. Значит, где-то собака порылась:)
Буду рад, если подскажете где именно.

З.Ы.:
Такая же ерунда была под Убунтой на Java, поэтому взял винду и QTCreator. Но с родной утилиты запросы доходят и возвращаются.
252
02 октября 2015 года
koderAlex
1.4K / / 07.09.2005
что значит "немного" ?
 
Код:
c:\Qt\Qt5.5.0\Examples\Qt-5.5\serialport\
там одиннадцать примеров .
бери за основу пример терминала и приводи к тому что тебе нужно .
311
02 октября 2015 года
plastictown
309 / / 08.01.2006
Цитата: koderAlex
что значит "немного" ?
 
Код:
c:QtQt5.5.0ExamplesQt-5.5serialport
там одиннадцать примеров .
бери за основу пример терминала и приводи к тому что тебе нужно .

Спасибо, но они тоже посылают, но не принимают. Сделал на Java. Работает отлично, жалко не так шустро, как хотелось бы.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог