/** * QThread::run() * * Open the serial port and set it up, then starts polling. * */ void MonarkConnection::run() { // Open and configure serial port m_serial = new QSerialPort(); m_serial->setPortName(m_serialPortName); m_timer = new QTimer(); QTimer *startupTimer = new QTimer(); if (!m_serial->open(QSerialPort::ReadWrite)) { qDebug() << "Error opening serial"; this->exit(-1); } else { configurePort(m_serial); // Discard any existing data QByteArray data = m_serial->readAll(); // Set up polling connect(m_timer, SIGNAL(timeout()), this, SLOT(requestAll()),Qt::DirectConnection); // Set up initial model detection connect(startupTimer, SIGNAL(timeout()), this, SLOT(identifyModel()),Qt::DirectConnection); } m_timer->setInterval(1000); m_timer->start(); startupTimer->setSingleShot(true); startupTimer->setInterval(0); startupTimer->start(); exec(); }
ModelItemProperties ModelsScriptingInterface::getModelProperties(ModelItemID modelID) { ModelItemProperties results; ModelItemID identity = identifyModel(modelID); if (!identity.isKnownID) { results.setIsUnknownID(); return results; } if (_modelTree) { _modelTree->lockForRead(); const ModelItem* model = _modelTree->findModelByID(identity.id, true); if (model) { results.copyFromModelItem(*model); } else { results.setIsUnknownID(); } _modelTree->unlock(); } return results; }