tools/runonphone/trk/trkdevice.cpp
branchRCL_3
changeset 5 d3bac044e0f0
parent 4 3b1da2848fc7
--- a/tools/runonphone/trk/trkdevice.cpp	Fri Feb 19 23:40:16 2010 +0200
+++ b/tools/runonphone/trk/trkdevice.cpp	Fri Mar 12 15:46:37 2010 +0200
@@ -99,6 +99,8 @@
 
 #endif
 
+enum { verboseTrk = 0 };
+
 namespace trk {
 
 ///////////////////////////////////////////////////////////////////////
@@ -128,6 +130,12 @@
 {
 }
 
+QDebug operator<<(QDebug d, const TrkMessage &msg)
+{
+    return d << "Message: Code: " << msg.code
+        << " Token: " << msg.token << " " << msg.data.toHex();
+}
+
 } // namespace trk
 
 Q_DECLARE_METATYPE(trk::TrkMessage)
@@ -204,6 +212,8 @@
     ++m_trkWriteToken;
     if (m_trkWriteToken == 0)
         ++m_trkWriteToken;
+    if (verboseTrk)
+        qDebug() << "Write token: " << m_trkWriteToken;
     return m_trkWriteToken;
 }
 
@@ -334,7 +344,8 @@
 
 ///////////////////////////////////////////////////////////////////////
 
-class WriterThread : public QThread {
+class WriterThread : public QThread
+{
     Q_OBJECT
     Q_DISABLE_COPY(WriterThread)
 public:            
@@ -400,15 +411,18 @@
     m_waitMutex.unlock();
     if (m_terminate)
         return 1;
+
     // Send off message
     m_dataMutex.lock();
     TrkMessage message;
     const TrkWriteQueue::PendingMessageResult pr = m_queue.pendingMessage(&message);
     m_dataMutex.unlock();
+
     switch (pr) {
     case TrkWriteQueue::NoMessage:
         break;
     case TrkWriteQueue::PendingMessage: {
+            //qDebug() << "Write pending message " << message;
             // Untested: try to re-send a few times
             bool success = false;
             for (int r = 0; !success && (r < MaxAttempts); r++) {
@@ -428,6 +442,8 @@
         break;
     case TrkWriteQueue::NoopMessageDequeued:
         // Sync with thread that owns us via a blocking signal
+        if (verboseTrk)
+            qDebug() << "Noop message dequeued" << message;
         emit internalNoopMessageDequeued(message);
         break;
     } // switch
@@ -499,6 +515,8 @@
 
 bool WriterThread::write(const QByteArray &data, QString *errorMessage)
 {
+    if (verboseTrk)
+        qDebug() << "Write raw data: " << data.toHex();
     QMutexLocker locker(&m_context->mutex);
 #ifdef Q_OS_WIN
     DWORD charsWritten;
@@ -557,6 +575,7 @@
     tryWrite(); // Have messages been enqueued in-between?
 }
 
+
 ///////////////////////////////////////////////////////////////////////
 //
 // ReaderThreadBase: Base class for a thread that reads data from
@@ -566,7 +585,8 @@
 //
 ///////////////////////////////////////////////////////////////////////
 
-class ReaderThreadBase : public QThread {
+class ReaderThreadBase : public QThread
+{
     Q_OBJECT
     Q_DISABLE_COPY(ReaderThreadBase)
 public:
@@ -625,7 +645,8 @@
 //
 ///////////////////////////////////////////////////////////////////////
 
-class WinReaderThread : public ReaderThreadBase {
+class WinReaderThread : public ReaderThreadBase
+{
     Q_OBJECT
     Q_DISABLE_COPY(WinReaderThread)
 public:
@@ -835,7 +856,8 @@
 {
     // Trigger select() by writing to the pipe
     char c = 0;
-    write(m_terminatePipeFileDescriptors[1], &c, 1);
+    int written = write(m_terminatePipeFileDescriptors[1], &c, 1);
+    // FIXME: Use result.
     wait();
 }
 
@@ -1021,6 +1043,8 @@
 void TrkDevice::slotMessageReceived(const trk::TrkResult &result, const QByteArray &rawData)
 {
     d->writerThread->slotHandleResult(result);
+    if (d->verbose > 1)
+        qDebug() << "Received: " << result.toString();
     emit messageReceived(result);    
     if (!rawData.isEmpty())
         emit rawDataReceived(rawData);
@@ -1057,6 +1081,8 @@
     TrkMessage msg(0x80, token);
     msg.token = token;
     msg.data.append('\0');
+    if (verboseTrk)
+        qDebug() << "Write synchroneous message: " << msg;
     return d->writerThread->trkWriteRawMessage(msg);
     // 01 90 00 07 7e 80 01 00 7d 5e 7e
 }