MCPcopy Create free account
hub / github.com/KDE/labplot / initDevice

Method initDevice

src/backend/datasources/LiveDataSource.cpp:478–552  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

476}
477
478void LiveDataSource::initDevice() {
479 switch (m_sourceType) {
480 case SourceType::FileOrPipe:
481 delete m_device;
482 m_device = new QFile(m_fileName);
483 break;
484 case SourceType::NetworkTCPSocket:
485 if (!m_tcpSocket)
486 m_tcpSocket = new QTcpSocket(this);
487 m_device = m_tcpSocket;
488 m_tcpSocket->abort();
489 m_tcpSocket->connectToHost(m_host, m_port, QIODevice::ReadOnly);
490
491 connect(m_tcpSocket, &QTcpSocket::readyRead, this, &LiveDataSource::readyRead);
492 connect(m_tcpSocket,
493 static_cast<void (QTcpSocket::*)(QAbstractSocket::SocketError)>(&QTcpSocket::errorOccurred),
494 this,
495 &LiveDataSource::tcpSocketError);
496 break;
497 case SourceType::NetworkUDPSocket: {
498 if (!m_udpSocket)
499 m_udpSocket = new QUdpSocket(this);
500 m_device = m_udpSocket;
501 m_udpSocket->abort();
502 if (m_udpSocket->bind(QHostAddress(m_host), m_port)) {
503 if (m_updateType == UpdateType::NewData)
504 connect(m_udpSocket, &QUdpSocket::readyRead, this, &LiveDataSource::readyRead);
505 m_udpSocket->connectToHost(m_host, 0, QUdpSocket::ReadOnly);
506
507 if (m_udpSocket->waitForConnected()) {
508 // only connect to readyRead when update is on new data
509 connect(m_udpSocket,
510 static_cast<void (QUdpSocket::*)(QAbstractSocket::SocketError)>(&QUdpSocket::errorOccurred),
511 this,
512 &LiveDataSource::tcpSocketError);
513 } else
514 DEBUG("failed to connect to UDP socket - " << STDSTRING(m_udpSocket->errorString()));
515 } else
516 DEBUG("Unable to bind - " << m_udpSocket->errorString().toStdString());
517
518 break;
519 }
520 case SourceType::LocalSocket:
521 if (!m_localSocket)
522 m_localSocket = new QLocalSocket(this);
523 m_device = m_localSocket;
524 m_localSocket->abort();
525 m_localSocket->connectToServer(m_localSocketName, QLocalSocket::ReadOnly);
526
527 connect(m_localSocket, &QLocalSocket::readyRead, this, &LiveDataSource::readyRead);
528 connect(m_localSocket,
529 static_cast<void (QLocalSocket::*)(QLocalSocket::LocalSocketError)>(&QLocalSocket::errorOccurred),
530 this,
531 &LiveDataSource::localSocketError);
532 break;
533 case SourceType::SerialPort:
534#ifdef HAVE_QTSERIALPORT
535 if (!m_serialPort)

Callers

nothing calls this directly

Calls 3

toStdStringMethod · 0.80
setBaudRateMethod · 0.80
abortMethod · 0.45

Tested by

no test coverage detected