Russian Qt Forum
Ноябрь 25, 2024, 04:25 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: проблема с qtserialport  (Прочитано 3672 раз)
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.
в чем дело?
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #1 : Сентябрь 25, 2013, 12:11 »

Смотри код ошибки.

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

ArchLinux x86_64 / Win10 64 bit
kolyan38
Гость
« Ответ #2 : Сентябрь 25, 2013, 13:28 »

Смотри код ошибки.

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


Страница сгенерирована за 0.098 секунд. Запросов: 22.