void MainWindow::initForm() { readSettings(); connect(&process, SIGNAL(readyReadStandardError()), this, SLOT(processErrors())); connect(&process, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(processFinished(int, QProcess::ExitStatus))); connect(&process, SIGNAL(error(QProcess::ProcessError)), this, SLOT(processError(QProcess::ProcessError))); }
/* * Processes an event from the CanHandler. * * In case a CAN message was received which pass the masking and id filtering, * this method is called. Depending on the ID of the CAN message, the data of * the incoming message is processed. */ void BrusaMotorController::handleCanFrame( CAN_FRAME *frame) { switch (frame->id) { case CAN_ID_STATUS: processStatus(frame->data.bytes); break; case CAN_ID_ACTUAL_VALUES: processActualValues(frame->data.bytes); break; case CAN_ID_ERRORS: processErrors(frame->data.bytes); break; case CAN_ID_TORQUE_LIMIT: processTorqueLimit(frame->data.bytes); break; case CAN_ID_TEMP: processTemperature(frame->data.bytes); break; default: Logger::warn(BRUSA_DMC5, "received unknown frame id %X", frame->id); } }
void LSThread::run()/*{{{*/ { m_process = new QProcess(); connect(m_process, SIGNAL(readyReadStandardOutput()), this, SLOT(processMessages())); connect(m_process, SIGNAL(readyReadStandardError()), this, SLOT(processErrors())); qRegisterMetaType<QProcess::ExitStatus>("QProcess::ExitStatus"); connect(m_process, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(relayExit(int, QProcess::ExitStatus))); if(config.lsClientStartLS) { bool rv = pingLinuxsampler(); if(debugMsg) qDebug("LSThread::run: Launching linuxsampler "); if(!rv && !m_versionError) { QString lscmd("linuxsampler"); if(!config.lsClientLSPath.isEmpty()) lscmd = config.lsClientLSPath; QStringList lsargs = lscmd.split(" "); lscmd = lsargs.takeFirst(); if(lsargs.isEmpty() || !lsargs.contains("--lscp-addr")) lsargs << "--lscp-addr" << "127.0.0.1"; if(lsargs.isEmpty()) { m_process->start(lscmd); } else { m_process->start(lscmd, lsargs); } if(!m_process->waitForStarted()) { qDebug("LSThread::run: FATAL: LinuxSampler startup FAILED"); m_state = ProcessError; gSamplerStarted = false; emit startupFailed(); return; } sleep(1); int retry = 0; rv = pingLinuxsampler(); while(!rv && !m_versionError && retry < 5) { sleep(1); rv = pingLinuxsampler(); ++retry; } } else if(m_versionError) {//We have a qDebug("LSThread::run: FATAL: Found running linuxsampler but version is unsupported"); gSamplerStarted = false; emit startupFailed(); return; } m_versionError = false; if(rv && debugMsg) qDebug("LSThread::run: LinuxSampler startup complete"); else if(!rv) qDebug("LSThread::run: FATAL: LinuxSampler startup FAILED"); if(rv) { m_state = ProcessRunning; emit startupSuccess(); gSamplerStarted = true; exec(); if(m_process->state() == QProcess::Running) { m_process->terminate(); m_process->waitForFinished(); } m_state = ProcessNotRunning; } else { m_process->terminate(); m_process->waitForFinished(); m_state = ProcessError; gSamplerStarted = false; emit startupFailed(); } } else { m_state = ProcessNotRequested; gSamplerStarted = false; emit startupSuccess(); } }/*}}}*/