Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "portreader.h"
- PortReader::PortReader(QObject *parent) : QObject(parent)
- {
- port = new QSerialPort(this);
- status = false;
- connect(port,&QSerialPort::readyRead,this,&PortReader::readData);
- qDebug() << "Wątek wystartował";
- }
- void PortReader::connectPort(int index_dostepnePorty)
- {
- qDebug() << "index_dostepnePorty: " << index_dostepnePorty;
- dostepnePorty = QSerialPortInfo::availablePorts();
- if(port->isOpen()) port->close(); //Zamknij port jeśli nie zamknięty
- port->setPort(dostepnePorty.at(index_dostepnePorty));
- port->setBaudRate(QSerialPort::Baud57600);
- port->setDataBits(QSerialPort::Data8);
- port->setParity(QSerialPort::NoParity);
- port->setStopBits(QSerialPort::OneStop);
- port->setFlowControl(QSerialPort::NoFlowControl);
- if(!port->open(QIODevice::ReadWrite)){ // Jeśli się nie powiedzie
- emit connectPortError();
- }
- else{ //Jeśli się powiedzie
- port->write("ok");
- emit connectPortOk();
- }
- }
- void PortReader::setPortArray(QVector<unsigned char> &we)
- {
- odebraneDane = &we;
- status = true;
- }
- void PortReader::setPortArrayWsk(int &wsk)
- {
- odebraneDaneWsk = &wsk;
- }
- void PortReader::start()
- {
- status = true;
- port->open(QIODevice::ReadWrite);
- }
- void PortReader::stop()
- {
- status = false;
- port->close();
- }
- void PortReader::readData()
- {
- if(status==true){
- r_data = port->readAll();
- port_buffor_size = r_data.size();
- qDebug() << "port_buffor_size: " << port_buffor_size;
- for(int j=0;port_buffor_size > j;j++){
- odebraneDane->push_back(r_data.data()[j]);
- qDebug() << "r_data.data()[j]" << r_data.data()[j];
- }
- }
- //Jeśli wielkość wektora przekroczy maksimum setSizeArry
- if(odebraneDane->size() > portArrySize){
- while(odebraneDane->size() > portArrySize){
- odebraneDane->removeFirst(); //usuń pierwszy element wektora
- }
- emit odebranoDane();
- }
- else{
- qDebug() << "Przychodzą dane, ale czekam.";
- }
- }
- void PortReader::setSizeArry(long long size){
- portArrySize = size;
- odebraneDane->resize(portArrySize);
- emit settingSizeArry(size);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement