crossplatform.ru

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

44 страниц V  « < 12 13 14 15 16 > »   
Ответить в данную темуНачать новую тему
> QSerialDevice - Библиотека для работы с COM-портами
good835
  опции профиля:
сообщение 19.8.2010, 10:34
Сообщение #131


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 5.8.2010
Пользователь №: 1933

Спасибо сказали: 0 раз(а)




Репутация:   0  


2 kuzulis,
Цитата
Т.е. вообще никакие ошибки не отлавливаются или только при установке скорости?

Похоже что да, никакие, ни открытие, ни установка скорости, ни ошибка записи в порт
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuzulis
  опции профиля:
сообщение 19.8.2010, 10:40
Сообщение #132


Активный участник
***

Группа: Участник
Сообщений: 393
Регистрация: 29.6.2009
Пользователь №: 862

Спасибо сказали: 36 раз(а)




Репутация:   7  


Значит что-то не так делаете
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
good835
  опции профиля:
сообщение 19.8.2010, 12:00
Сообщение #133


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 5.8.2010
Пользователь №: 1933

Спасибо сказали: 0 раз(а)




Репутация:   0  


2 kuzulis,
небольшое уточнение, попробовал поймать сигнал bytesWritten и вывести окошко, все получилось
connect(MyDevice, SIGNAL(bytesWritten(qint64)), this, SLOT(DisplayError3(qint64)));

а с
connect(MyDevice, SIGNAL(signalStatus(const QString,QDateTime)), this, SLOT(DisplayError(QString,QDateTime)));

по прежнему глухо, может что посоветуете?
MyDevice->enableEmitStatus(true);

нужно делать до коннекта или после?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
good835
  опции профиля:
сообщение 19.8.2010, 12:41
Сообщение #134


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 5.8.2010
Пользователь №: 1933

Спасибо сказали: 0 раз(а)




Репутация:   0  


2 kuzulis,
sorry, с signalStatus разобрался, естественно это был мой косяк
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rcdimon
  опции профиля:
сообщение 11.10.2010, 19:23
Сообщение #135


Студент
*

Группа: Участник
Сообщений: 69
Регистрация: 27.10.2009
Пользователь №: 1183

Спасибо сказали: 1 раз(а)




Репутация:   0  


Простите за ламерский вопрос, но как собрать и подключить библиотеку?

Открыл BuildLibrary.pro файл QTcreator'ом. Нажал собрать все. Получил какие-то файлы .o и .a... А где всякие .dll .lib? Или они не нужны?
И как теперь подключить их к своей программе?


Сообщение отредактировал rcdimon - 11.10.2010, 22:03
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Vatto
  опции профиля:
сообщение 18.10.2010, 18:38
Сообщение #136


Новичок


Группа: Новичок
Сообщений: 2
Регистрация: 18.10.2010
Пользователь №: 2124

Спасибо сказали: 0 раз(а)




Репутация:   0  


Здравствуйте. Во время использования библиотеки наткнулся на проблему : при открытии порта через библиотеку QSerialDevice порт открывается, но ничего принимать не хочет. Если открыть порт сначало в CommTest или в терминале, потом закрыть, и снова запустить приложение , то все работает отлично.
В чем может быть загвоздка. Версия из гита. Открываю порт как в примерах.
UsartTransmitter::UsartTransmitter(QObject *parent) 
UsartTransmitter::openPort()
UsartTransmitter::initPort()
Serial device  "COM4"  open in  OpenMode( "ReadWrite" )
= Defaults parameters =
Device name            :  "COM4"
Baud rate              :  "57600 baud"
Data bits              :  "8 bit"
Parity                 :  "None"
Stop bits              :  "1"
Flow                   :  "Disable"
Char timeout, msec     :  190
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuzulis
  опции профиля:
сообщение 18.10.2010, 20:21
Сообщение #137


Активный участник
***

Группа: Участник
Сообщений: 393
Регистрация: 29.6.2009
Пользователь №: 862

Спасибо сказали: 36 раз(а)




Репутация:   7  


Цитата
Здравствуйте. Во время использования библиотеки наткнулся на проблему : при открытии порта через библиотеку QSerialDevice порт открывается, но ничего принимать не хочет.

Не имею ни малейшего понятия. У меня все работает как часы. Проверяйте сами.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Vatto
  опции профиля:
сообщение 19.10.2010, 12:20
Сообщение #138


Новичок


Группа: Новичок
Сообщений: 2
Регистрация: 18.10.2010
Пользователь №: 2124

Спасибо сказали: 0 раз(а)




Репутация:   0  


Прошу прощения. Ошибка видимо была моя. Сделал reset перед иницаилизацией праметров, и каждый задал жестко, без дефалтов и все заработало.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuzulis
  опции профиля:
сообщение 19.10.2010, 19:07
Сообщение #139


Активный участник
***

Группа: Участник
Сообщений: 393
Регистрация: 29.6.2009
Пользователь №: 862

Спасибо сказали: 36 раз(а)




Репутация:   7  


Цитата(Vatto @ 19.10.2010, 13:20) *
Прошу прощения. Ошибка видимо была моя. Сделал reset перед иницаилизацией праметров, и каждый задал жестко, без дефалтов и все заработало.

Все верно. QSerialDevive в отличии от других библиотек, при открытии порта не устанавливает параметры по умолчанию! Она только пытается определить текущие параметры! Пользователь должен сам конфигурировать порт после его открытия!
Читайте все-таки документацию!

Сообщение отредактировал kuzulis - 19.10.2010, 19:09
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
lpn74
  опции профиля:
сообщение 21.10.2010, 9:39
Сообщение #140


Новичок


Группа: Новичок
Сообщений: 3
Регистрация: 21.10.2010
Пользователь №: 2132

Спасибо сказали: 0 раз(а)




Репутация:   0  


Добрый день!
Спасибо за библиотеку.
Существует ли такая проблемма:
При переоткрытии порта (методами OPEN и CLOSE соответственно) не вырабатывается сигнал ReadyRead?
Вернее, происходит следующее:
Переоткрыл - сигнал вырабатывается, ещё раз переоткрыл - НЕ вырабатывается, ещё раз переоткрыл - вырабатывается и т.д.
Заранее спасибо за ответы

В comport.h файле
private:
    AbstractSerial *port;

В comport.cpp

#include "comport.h"

ComPort::ComPort(QObject *parent) :
    QObject(parent)
{
    port = new AbstractSerial(this);
    port->setDeviceName("COM3");
    connect(port, SIGNAL(readyRead()), this, SLOT(slotReadyRead()));
}

void ComPort::sendData(const QByteArray &array)
{        

    port->close();
    qDebug()<< "Open port " << port->open(AbstractSerial::ReadWrite);
    qDebug() << "Write data" << port->write(array);        
}

void ComPort::slotReadyRead()
{
    qDebug() << "slotReadyRead()";
    QByteArray array = port->readAll();
    qDebug() << "array.size()=" << array.size();        
}
Причина редактирования: пользуйтесь тегами!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

44 страниц V  « < 12 13 14 15 16 > » 
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.12.2024, 10:43