void DataLoader::on_timeout() { if (canceling) { deleteLater(); return; // we leave with guiUpdateTimer not active } parsing = true; // process could exit while we are processing so save the flag now bool lastBuffer = isProcExited; loadedBytes += readNewData(lastBuffer); emit newDataReady(fh); // inserting in list view is about 3% of total time if (lastBuffer) { emit loaded(fh, loadedBytes, loadTime.elapsed(), true, "", ""); deleteLater(); } else if (isProcExited) { // exited while parsing dbs("Exited while parsing!!!!"); guiUpdateTimer.start(1); } else guiUpdateTimer.start(GUI_UPDATE_INTERVAL); parsing = false; }
void DevicesConfigsLoader::continueLoading() { if (component->isError()) { qWarning() << component->errors(); } else { object = component->create(); // TODO: driversList: // FIXME: driverName to moduleName if (object->property("driverName")==_udpDriver->getModuleName()) { QObject::connect(_udpDriver,SIGNAL(newDataReady(QVariant)),object,SIGNAL(newDataPacketReceived(QVariant))); QObject::connect(this,SIGNAL(newRequestReceived(QVariant)),object,SIGNAL(newRequestReceived(QVariant))); QObject::connect(object,SIGNAL(newDataReady(QString,QString)),this,SIGNAL(newDataReady(QString,QString))); QObject::connect(object,SIGNAL(addDriverDataSource(QVariant)),_udpDriver,SLOT(addDriverDataSource(QVariant))); QObject::connect(object,SIGNAL(actuate(QVariant)),_udpDriver,SLOT(actuate(QVariant))); DeviceConfig* device_object = dynamic_cast<DeviceConfig*>(object); if (true) {// TODO: if connect success emit device_object->driverConnected(); } } // TODO: connect DataServer here } }
SerialLogging::SerialLogging(MainWindow *mainWindow, QSerialPortInfo serialPortDevice, int baudRate, QSerialPort::DataBits dataBits, QSerialPort::Parity parity, QSerialPort::StopBits stopBits) { serialPort = new QSerialPort(serialPortDevice); // Open int ret = serialPort->open(QIODevice::ReadWrite); if (!ret) { qDebug() << "Serial port failed to open"; delete serialPort; Q_ASSERT(0); } else { // Open file fileName = mainWindow->getFileName(); if (fileName != "") { file.setFileName(fileName); ret = file.open(QIODevice::WriteOnly); if (!ret) { qDebug() << "File failed to open"; delete serialPort; Q_ASSERT(0); } } // Set start time startTime = QDateTime::currentDateTimeUtc(); // Configure serial port serialPort->setBaudRate(baudRate); serialPort->setDataBits(dataBits); serialPort->setParity(parity); serialPort->setStopBits(stopBits); connect(this, SIGNAL(serialPortOpened()), mainWindow, SLOT(serialPortConnected())); connect(this, SIGNAL(newDataReady(QByteArray, quint64)), mainWindow, SLOT(receivedData(QByteArray, quint64))); connect(this, SIGNAL(newTimeStamp(qint64)), mainWindow, SLOT(updateTimer(qint64))); emit serialPortOpened(); } // Connect signals connect(serialPort, SIGNAL(readyRead()), this, SLOT(readData())); connect(mainWindow, SIGNAL(baudRateChanged(int)), this, SLOT(on_baudRateUpdated(int))); connect(mainWindow, SIGNAL(dataBitsChanged(QSerialPort::DataBits)), this, SLOT(on_dataBitsUpdated(QSerialPort::DataBits))); connect(mainWindow, SIGNAL(parityChanged(QSerialPort::Parity)), this, SLOT(on_parityUpdated(QSerialPort::Parity))); connect(mainWindow, SIGNAL(stopBitsChanged(QSerialPort::StopBits)), this, SLOT(on_stopBitsUpdated(QSerialPort::StopBits))); }
void SerialLogging::readData() { // Get timestamp immediately quint64 timeStamp = startTime.msecsTo(QDateTime::currentDateTimeUtc()); // Read data from serial port QByteArray data = serialPort->readAll(); // Save the data to file saveToDisk(data); // Send the data to any connected listeners emit newDataReady(data, timeStamp); // Send out the elapsed time to any connected listeners emit newTimeStamp(timeStamp); }
SerialPlayback::SerialPlayback(MainWindow *mainWindow) : logPlaybackPeriod(10), fsmStatus(FSM_SYNC0) { fileName = mainWindow->getFileName(); fileName = "/Users/kenz/Desktop/1212.ser"; if (fileName != "") { loadFile(fileName); if (file.isOpen()) { // Set start time logTime = 0; logHeartbeat.start(logPlaybackPeriod); // Connect signals connect(&logHeartbeat, SIGNAL(timeout()), this, SLOT(on_timerTimeout())); connect(mainWindow, SIGNAL(playbackSpeedChanged(int)), this, SLOT(on_playbackSpeedChanged(int))); connect(this, SIGNAL(newDataReady(QByteArray, quint64)), mainWindow, SLOT(receivedData(QByteArray, quint64))); }