diff --git a/APBUARTPLUGIN/uartpollingthread.cpp b/APBUARTPLUGIN/uartpollingthread.cpp --- a/APBUARTPLUGIN/uartpollingthread.cpp +++ b/APBUARTPLUGIN/uartpollingthread.cpp @@ -90,7 +90,7 @@ void UARTPollingThread::run() SocExplorerEngine::message(this->plugin,QString("Received one char from APBUART"),3); emit this->apbUartTextReceived(QString(ch[0])); } - msleep(1); + msleep(10); } } } diff --git a/ahbuartplugin/ahbuartplugin.cpp b/ahbuartplugin/ahbuartplugin.cpp --- a/ahbuartplugin/ahbuartplugin.cpp +++ b/ahbuartplugin/ahbuartplugin.cpp @@ -95,6 +95,7 @@ bool ahbuartplugin::checkConnection() int read = 0; timeout.start(); SocExplorerEngine::message(this,"Check connection",2); + QMutexLocker lock(portMutex); while(writen!=5) { writen+=rs232write(this->port,test+writen,5-writen); @@ -131,6 +132,7 @@ void ahbuartplugin::connectPort(QString QTime timeout; SocExplorerEngine::message(this,"Try to connect to port "+PortName,2); timeout.start(); + QMutexLocker lock(portMutex); if(this->port==(rs232port_t)NULL) { SocExplorerEngine::message(this,"Open port "+PortName,2); @@ -232,8 +234,9 @@ unsigned int ahbuartplugin::Read(unsigne SocExplorerEngine::message(this,QString("Read ")+ QString::number(count) + QString(" words @0x")+ QString::number(address,16),2); if((this->port!= badPortValue)||(this->port!=(rs232port_t)NULL)) { - if(!this->portMutex->tryLock()) - return 0; + QMutexLocker lock(portMutex); +// if(!this->portMutex->tryLock()) +// return 0; if(!this->checkConnection()) { this->Connected = false; @@ -304,7 +307,7 @@ unsigned int ahbuartplugin::Read(unsigne if(cnt>128) SocExplorerEngine::deleteProgressBar(progress); free(result); - this->portMutex->unlock(); +// this->portMutex->unlock(); } return read/4; } @@ -318,8 +321,9 @@ unsigned int ahbuartplugin::Write(unsign SocExplorerEngine::message(this,QString("Write ")+ QString::number(count) + QString(" words @0x")+ QString::number(address,16),2); if((this->port!= badPortValue)||(this->port!=(rs232port_t)NULL)) { - if(!this->portMutex->tryLock()) - return 0; + QMutexLocker lock(portMutex); +// if(!this->portMutex->tryLock()) +// return 0; if(!this->checkConnection()) { emit this->activateSig(false); @@ -384,7 +388,7 @@ unsigned int ahbuartplugin::Write(unsign SocExplorerEngine::deleteProgressBar(progress); } free(CMD); - this->portMutex->unlock(); +// this->portMutex->unlock(); return writen; } return 0;