Exemplo n.º 1
0
void BTReaderThread::run()
{
    qDebug()<<"Reader Thread running"<<endl;
    if (serial!=NULL){
        //Conexión a las notificaciones del objeto QSerialPort
        connect(serial, SIGNAL(error(QSerialPort::SerialPortError)),
                this,SLOT(handleError(QSerialPort::SerialPortError)));
        connect(serial, SIGNAL(readyRead()), this, SLOT(readData()));

        //Recepcion de señal de apertura de puerto. Conexión sin uso necesario.
        //connect(this->parent(),SIGNAL(openSignal()),this,SLOT(openSerialPort()));
        //connect(this->parent(),SIGNAL(closeSignal()),this,SLOT(closeSerialPort()));

        //Señal de recepcion de muestra, para estudio de retardo
        //connect(this,SIGNAL(FinishSignal()),this->parent(),SLOT(saveData()));
    }
    else {
        emit ShowErrorSignal("Error al iniciar el puerto serie");
    }

    /*Sistema de simulación de recepción de datos.
     * Los datos se leen de un fichero como si se recibiesen y
     * se introduce un retardo artificial que simula el que
     * existe entre muestras.
*/
    QFile file("DataSample_2_T100.txt");
    for (int i = 0; i<1;i++){
    if ( file.open(QIODevice::ReadOnly|QIODevice::Text) )
    {
        QTextStream stream(&file);
        QString line = stream.readLine();

        while (line.length()>0){
        //for (int i=0; i<100 ; i++){
                line.append("\n\r");
                list<<line;
                line = stream.readLine();
        }
    }
    file.close();
    }

    for (int i=0; i<list.size();i++){
        QByteArray data;
        data.append(list.at(i));
        emit DataBytesSignal(data);
        this->usleep(sleeptime);
    }
    emit FinishSignal();

}
Exemplo n.º 2
0
void Pack::Stop()
{
	if (mpprocess != NULL){
		QProcess killer;
		killer.start("taskkill", QStringList() << "/f" << "/im" << "java.exe");
		if (!killer.waitForStarted())
			return;
		if (!killer.waitForFinished())
			return;
		mpprocess->terminate();
		mpprocess->deleteLater();
		mpprocess = NULL;
	}
	this->terminate();
	this->wait();
	if (!PathManager::RemoveDir(mtmpPath)){
		emit GenerateError(QStringLiteral("error:清除缓存出错!渠道ID:%1,渠道名:%2\n").arg(mchannelId).arg(mchannelName));
	}
	emit FinishSignal(2, mtaskId);
}