Russian Qt Forum

Qt => Общие вопросы => Тема начата: kolyan38 от Сентябрь 25, 2013, 09:52



Название: проблема с qtserialport
Отправлено: kolyan38 от Сентябрь 25, 2013, 09:52
всем привет, помогите кто может!
Под ОС Линукс с помощью либы qt 4.8 пишу прогу, работающую с ком-портами. Использую библиотеку http://qt-project.org/doc/qt-5.1/qtserialport/qserialport.html#details.
хочу написать простое приложение, чтобы открылся порт, отправить и принять данные.
привожу куски кода:
Код:
#ifndef COM_PORT_THREAD_H
#define COM_PORT_THREAD_H
#include <QtSerialPort/QSerialPort>
#include <QThread>
class com_port_thread : public QThread
{
    Q_OBJECT
public:
    explicit com_port_thread(QObject *parent = 0);
    QSerialPort port;
    void run();
signals:
   
public slots:
    void open_port();
    void send3();

   
};

#endif // COM_PORT_THREAD_H


Код:
#include "com_port_thread.h"
com_port_thread::com_port_thread(QObject *parent) :
    QThread(parent)
{

}
void com_port_thread::run(){
    open_port();
}

void com_port_thread::open_port(){

    port.setPortName(tr("/dev/ttyUSB0"));
    if(port.open(QIODevice::ReadWrite)){
    port.setBaudRate(QSerialPort::Baud19200);
    port.setDataBits(QSerialPort::Data8);
    port.setParity(QSerialPort::NoParity);
    port.setStopBits(QSerialPort::OneStop);
    }
    else{
        int stop=1;
    }

}

void com_port_thread::send3(){

}


функция port.open(QIODevice::ReadWrite) возвращает false.
в чем дело?


Название: Re: проблема с qtserialport
Отправлено: kuzulis от Сентябрь 25, 2013, 12:11
Смотри код ошибки.

Вполне возможно у тебя нет прав на открытие.
Ты должен добавить пользователя в группу dialout, или tty и т.п. - это зависит от типа твоего Linux дистрибутива.
Гугл в помощь.


Название: Re: проблема с qtserialport
Отправлено: kolyan38 от Сентябрь 25, 2013, 13:28
Смотри код ошибки.

Вполне возможно у тебя нет прав на открытие.
Ты должен добавить пользователя в группу dialout, или tty и т.п. - это зависит от типа твоего Linux дистрибутива.
Гугл в помощь.
блин точно, рут прав не хватало. спасибо!