summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorDenis Shienkov <denis.shienkov@gmail.com>2012-12-05 15:15:26 +0400
committerDenis Shienkov <denis.shienkov@gmail.com>2012-12-13 08:41:54 +0100
commit097eb2eeb612ffcce9dfc0092f5486feeafd649c (patch)
tree1138b2bf0fab1b45c7ac073af03bc55cc910150a /examples
parent125a2bb81b15eb0c80c7e0aa8bf0d66d67489892 (diff)
downloadqtserialport-097eb2eeb612ffcce9dfc0092f5486feeafd649c.tar.gz
Added documentation for BlockingMaster example
Added documentation for BlockingMaster example and added bookmarks, used in documentation to reffer to code. Change-Id: I923d27a51d46b17eaf478c0280823c8ce9b7ea3e Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Diffstat (limited to 'examples')
-rw-r--r--examples/blockingmaster/masterthread.cpp23
-rw-r--r--examples/blockingmaster/masterthread.h2
2 files changed, 19 insertions, 6 deletions
diff --git a/examples/blockingmaster/masterthread.cpp b/examples/blockingmaster/masterthread.cpp
index 6e97060..9044fdf 100644
--- a/examples/blockingmaster/masterthread.cpp
+++ b/examples/blockingmaster/masterthread.cpp
@@ -52,6 +52,7 @@ MasterThread::MasterThread(QObject *parent)
{
}
+//! [0]
MasterThread::~MasterThread()
{
mutex.lock();
@@ -60,25 +61,31 @@ MasterThread::~MasterThread()
mutex.unlock();
wait();
}
+//! [0]
+//! [1] //! [2]
void MasterThread::transaction(const QString &portName, int waitTimeout, const QString &request)
{
+ //! [1]
QMutexLocker locker(&mutex);
this->portName = portName;
this->waitTimeout = waitTimeout;
this->request = request;
-
+ //! [3]
if (!isRunning())
start();
else
cond.wakeOne();
}
+//! [2] //! [3]
+//! [4]
void MasterThread::run()
{
bool currentPortNameChanged = false;
mutex.lock();
+ //! [4] //! [5]
QString currentPortName;
if (currentPortName != portName) {
currentPortName = portName;
@@ -88,11 +95,11 @@ void MasterThread::run()
int currentWaitTimeout = waitTimeout;
QString currentRequest = request;
mutex.unlock();
-
+ //! [5] //! [6]
SerialPort serial;
while (!quit) {
-
+ //![6] //! [7]
if (currentPortNameChanged) {
serial.close();
serial.setPort(currentPortName);
@@ -133,12 +140,12 @@ void MasterThread::run()
return;
}
}
-
+ //! [7] //! [8]
// write request
QByteArray requestData = currentRequest.toLocal8Bit();
serial.write(requestData);
if (serial.waitForBytesWritten(waitTimeout)) {
-
+ //! [8] //! [10]
// read response
if (serial.waitForReadyRead(currentWaitTimeout)) {
QByteArray responseData = serial.readAll();
@@ -146,16 +153,19 @@ void MasterThread::run()
responseData += serial.readAll();
QString response(responseData);
+ //! [12]
emit this->response(response);
+ //! [10] //! [11] //! [12]
} else {
emit timeout(tr("Wait read response timeout %1")
.arg(QTime::currentTime().toString()));
}
+ //! [9] //! [11]
} else {
emit timeout(tr("Wait write request timeout %1")
.arg(QTime::currentTime().toString()));
}
-
+ //! [9] //! [13]
mutex.lock();
cond.wait(&mutex);
if (currentPortName != portName) {
@@ -168,4 +178,5 @@ void MasterThread::run()
currentRequest = request;
mutex.unlock();
}
+ //! [13]
}
diff --git a/examples/blockingmaster/masterthread.h b/examples/blockingmaster/masterthread.h
index d4f51f2..f4f0d83 100644
--- a/examples/blockingmaster/masterthread.h
+++ b/examples/blockingmaster/masterthread.h
@@ -46,6 +46,7 @@
#include <QMutex>
#include <QWaitCondition>
+//! [0]
class MasterThread : public QThread
{
Q_OBJECT
@@ -70,5 +71,6 @@ private:
QWaitCondition cond;
bool quit;
};
+//! [0]
#endif // MASTERTHREAD_H