summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorShane Kearns <shane.kearns@sosco.com>2010-02-09 10:45:01 (GMT)
committerShane Kearns <shane.kearns@sosco.com>2010-02-09 19:09:39 (GMT)
commit3208a33a18d7eb666f0f47eff02ce4b21e248c10 (patch)
tree32847c2df62cec29103b073698e603cbc891ff0b /tools
parent46df42af1a25fd06247bb96d9e0bf24bf19defe8 (diff)
downloadQt-3208a33a18d7eb666f0f47eff02ce4b21e248c10.zip
Qt-3208a33a18d7eb666f0f47eff02ce4b21e248c10.tar.gz
Qt-3208a33a18d7eb666f0f47eff02ce4b21e248c10.tar.bz2
Catch up TRK library to creator f2b3e9f2dfbc580389b9b683a3e46e5a8422f55b
This is the last SHA before trk directory is renamed. Note the \\.\ is prepended to windows com ports inside the library now, so main.cpp no longer has this windows specific code. commit f2b3e9f2dfbc580389b9b683a3e46e5a8422f55b Author: Friedemann Kleint <Friedemann.Kleint@nokia.com> Date: Fri Feb 5 12:24:46 2010 +0100 S60/Trk: Change trkutils to be a library of its own. To be able to share TrkDevices between Debugger and Qt4ProjectManager. commit 61c3a260b59433abf8c3ef481ec536af88f8026c Author: Sarika Kamisetty <sarikak11@gmail.com> Date: Thu Feb 4 09:57:54 2010 +0100 Fix to App TRK connection with 'high COM port' does not work Merge-request: 111 Reviewed-by: hjk <qtc-committer@nokia.com> commit 2fd8b2d7ffa2ac032bfe3a17efe7d152c4cef14d Author: Friedemann Kleint <Friedemann.Kleint@nokia.com> Date: Mon Feb 1 12:43:56 2010 +0100 Fix some code scanning issues. QString: Use QChar where appropriate. commit 805b0a9cc165ef6cd596bd8f5e59f650cd0eebb2 Author: hjk <qtc-committer@nokia.com> Date: Mon Feb 1 11:45:44 2010 +0100 debugger: trk log output cosmetic commit 75b42f18d886b59dbf3380dd12f39f40005ef08b Merge: 4320314 a6ca348 Author: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Date: Fri Jan 29 22:49:55 2010 +0100 Merge remote branch 'origin/1.3' Trailing whitespace removal re-applied manually. commit a6ca348636dd92ab1445cff2286b3293163f5cea Author: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Date: Fri Jan 29 21:33:57 2010 +0100 remove trailing whitespace doing it in 1.3 as well to avoid possible later conflicts commit 4ec51219ed5c2150e164473b9c5326b6c68d096a Author: Friedemann Kleint <Friedemann.Kleint@nokia.com> Date: Thu Jan 28 17:04:05 2010 +0100 Trk: Fix source code scanning tool issues. showing up in Qt.
Diffstat (limited to 'tools')
-rw-r--r--tools/runonphone/main.cpp4
-rw-r--r--tools/runonphone/trk/bluetoothlistener.cpp2
-rw-r--r--tools/runonphone/trk/bluetoothlistener.h4
-rw-r--r--tools/runonphone/trk/bluetoothlistener_gui.cpp6
-rw-r--r--tools/runonphone/trk/bluetoothlistener_gui.h8
-rw-r--r--tools/runonphone/trk/callback.h2
-rw-r--r--tools/runonphone/trk/communicationstarter.h8
-rw-r--r--tools/runonphone/trk/launcher.cpp25
-rw-r--r--tools/runonphone/trk/launcher.h2
-rw-r--r--tools/runonphone/trk/symbianutils_global.h55
-rw-r--r--tools/runonphone/trk/trk.pri4
-rw-r--r--tools/runonphone/trk/trkdevice.cpp18
-rw-r--r--tools/runonphone/trk/trkdevice.h3
-rw-r--r--tools/runonphone/trk/trkutils.cpp105
-rw-r--r--tools/runonphone/trk/trkutils.h45
-rw-r--r--tools/runonphone/trk/trkutils_p.h62
16 files changed, 233 insertions, 120 deletions
diff --git a/tools/runonphone/main.cpp b/tools/runonphone/main.cpp
index a77e713..1a5cdee 100644
--- a/tools/runonphone/main.cpp
+++ b/tools/runonphone/main.cpp
@@ -174,11 +174,7 @@ int main(int argc, char *argv[])
}
if(loglevel > 0)
outstream << "Connecting to target via " << serialPortName << endl;
-#ifdef Q_OS_WIN
- launcher->setTrkServerName(QString("\\\\.\\") + serialPortName);
-#else
launcher->setTrkServerName(serialPortName);
-#endif
launcher->setFileName(QString("c:\\sys\\bin\\") + exeFile);
launcher->setCommandLineArgs(cmdLine);
diff --git a/tools/runonphone/trk/bluetoothlistener.cpp b/tools/runonphone/trk/bluetoothlistener.cpp
index 8d45fb5..df04288 100644
--- a/tools/runonphone/trk/bluetoothlistener.cpp
+++ b/tools/runonphone/trk/bluetoothlistener.cpp
@@ -184,7 +184,7 @@ bool BluetoothListener::start(const QString &device, QString *errorMessage)
return true;
}
-void BluetoothListener::slotStdOutput()
+void BluetoothListener::slotStdOutput()
{
emitMessage(QString::fromLocal8Bit(d->process.readAllStandardOutput()));
}
diff --git a/tools/runonphone/trk/bluetoothlistener.h b/tools/runonphone/trk/bluetoothlistener.h
index 027f286..36894e7 100644
--- a/tools/runonphone/trk/bluetoothlistener.h
+++ b/tools/runonphone/trk/bluetoothlistener.h
@@ -42,6 +42,8 @@
#ifndef BLUETOOTHLISTENER_H
#define BLUETOOTHLISTENER_H
+#include "symbianutils_global.h"
+
#include <QtCore/QObject>
#include <QtCore/QProcess>
@@ -53,7 +55,7 @@ struct BluetoothListenerPrivate;
* The rfcomm command is used. It process can be started in the background
* while connection attempts (TrkDevice::open()) are made in the foreground. */
-class BluetoothListener : public QObject
+class SYMBIANUTILS_EXPORT BluetoothListener : public QObject
{
Q_OBJECT
Q_DISABLE_COPY(BluetoothListener)
diff --git a/tools/runonphone/trk/bluetoothlistener_gui.cpp b/tools/runonphone/trk/bluetoothlistener_gui.cpp
index 6ffdaef..5994eb5 100644
--- a/tools/runonphone/trk/bluetoothlistener_gui.cpp
+++ b/tools/runonphone/trk/bluetoothlistener_gui.cpp
@@ -50,7 +50,7 @@
namespace trk {
-PromptStartCommunicationResult
+SYMBIANUTILS_EXPORT PromptStartCommunicationResult
promptStartCommunication(BaseCommunicationStarter &starter,
const QString &msgBoxTitle,
const QString &msgBoxText,
@@ -88,7 +88,7 @@ PromptStartCommunicationResult
return PromptStartCommunicationConnected;
}
-PromptStartCommunicationResult
+SYMBIANUTILS_EXPORT PromptStartCommunicationResult
promptStartSerial(BaseCommunicationStarter &starter,
QWidget *msgBoxParent,
QString *errorMessage)
@@ -98,7 +98,7 @@ PromptStartCommunicationResult
return promptStartCommunication(starter, title, message, msgBoxParent, errorMessage);
}
-PromptStartCommunicationResult
+SYMBIANUTILS_EXPORT PromptStartCommunicationResult
promptStartBluetooth(BaseCommunicationStarter &starter,
QWidget *msgBoxParent,
QString *errorMessage)
diff --git a/tools/runonphone/trk/bluetoothlistener_gui.h b/tools/runonphone/trk/bluetoothlistener_gui.h
index d673ffe..10e7145 100644
--- a/tools/runonphone/trk/bluetoothlistener_gui.h
+++ b/tools/runonphone/trk/bluetoothlistener_gui.h
@@ -42,6 +42,8 @@
#ifndef BLUETOOTHLISTENER_GUI_H
#define BLUETOOTHLISTENER_GUI_H
+#include "symbianutils_global.h"
+
#include <QtCore/QtGlobal>
QT_BEGIN_NAMESPACE
@@ -62,7 +64,7 @@ enum PromptStartCommunicationResult {
PromptStartCommunicationError
};
-PromptStartCommunicationResult
+SYMBIANUTILS_EXPORT PromptStartCommunicationResult
promptStartCommunication(BaseCommunicationStarter &starter,
const QString &msgBoxTitle,
const QString &msgBoxText,
@@ -71,14 +73,14 @@ PromptStartCommunicationResult
// Convenience to start a serial connection (messages prompting
// to launch Trk).
-PromptStartCommunicationResult
+SYMBIANUTILS_EXPORT PromptStartCommunicationResult
promptStartSerial(BaseCommunicationStarter &starter,
QWidget *msgBoxParent,
QString *errorMessage);
// Convenience to start blue tooth connection (messages
// prompting to connect).
-PromptStartCommunicationResult
+SYMBIANUTILS_EXPORT PromptStartCommunicationResult
promptStartBluetooth(BaseCommunicationStarter &starter,
QWidget *msgBoxParent,
QString *errorMessage);
diff --git a/tools/runonphone/trk/callback.h b/tools/runonphone/trk/callback.h
index edc2c74..3996d73 100644
--- a/tools/runonphone/trk/callback.h
+++ b/tools/runonphone/trk/callback.h
@@ -42,7 +42,7 @@
#ifndef DEBUGGER_CALLBACK_H
#define DEBUGGER_CALLBACK_H
-#include <QtCore/QtGlobal>
+#include "symbianutils_global.h"
namespace trk {
namespace Internal {
diff --git a/tools/runonphone/trk/communicationstarter.h b/tools/runonphone/trk/communicationstarter.h
index 34cf398..2d7dc50 100644
--- a/tools/runonphone/trk/communicationstarter.h
+++ b/tools/runonphone/trk/communicationstarter.h
@@ -42,6 +42,8 @@
#ifndef COMMUNICATIONSTARTER_H
#define COMMUNICATIONSTARTER_H
+#include "symbianutils_global.h"
+
#include <QtCore/QSharedPointer>
#include <QtCore/QObject>
@@ -60,7 +62,7 @@ struct BaseCommunicationStarterPrivate;
* The base class can be used as is to prompt the user to launch App TRK for a
* serial communication as this requires no further resource setup. */
-class BaseCommunicationStarter : public QObject {
+class SYMBIANUTILS_EXPORT BaseCommunicationStarter : public QObject {
Q_OBJECT
Q_DISABLE_COPY(BaseCommunicationStarter)
public:
@@ -117,7 +119,7 @@ private:
* implement as a factory function that creates and sets up the
* listener (mode, message connection, etc). */
-class AbstractBluetoothStarter : public BaseCommunicationStarter {
+class SYMBIANUTILS_EXPORT AbstractBluetoothStarter : public BaseCommunicationStarter {
Q_OBJECT
Q_DISABLE_COPY(AbstractBluetoothStarter)
public:
@@ -134,7 +136,7 @@ protected:
/* ConsoleBluetoothStarter: Convenience class for console processes. Creates a
* listener in "Listen" mode with the messages redirected to standard output. */
-class ConsoleBluetoothStarter : public AbstractBluetoothStarter {
+class SYMBIANUTILS_EXPORT ConsoleBluetoothStarter : public AbstractBluetoothStarter {
Q_OBJECT
Q_DISABLE_COPY(ConsoleBluetoothStarter)
public:
diff --git a/tools/runonphone/trk/launcher.cpp b/tools/runonphone/trk/launcher.cpp
index 1796fc5..4f91545 100644
--- a/tools/runonphone/trk/launcher.cpp
+++ b/tools/runonphone/trk/launcher.cpp
@@ -41,6 +41,7 @@
#include "launcher.h"
#include "trkutils.h"
+#include "trkutils_p.h"
#include "trkdevice.h"
#include "bluetoothlistener.h"
@@ -595,17 +596,19 @@ void Launcher::handleSupportMask(const TrkResult &result)
return;
const char *data = result.data.data() + 1;
- QByteArray str;
+ QString str = QLatin1String("SUPPORTED: ");
for (int i = 0; i < 32; ++i) {
//str.append(" [" + formatByte(data[i]) + "]: ");
- for (int j = 0; j < 8; ++j)
- if (data[i] & (1 << j))
- str.append(QByteArray::number(i * 8 + j, 16) + " ");
+ for (int j = 0; j < 8; ++j) {
+ if (data[i] & (1 << j)) {
+ str.append(QString::number(i * 8 + j, 16));
+ str.append(QLatin1Char(' '));
+ }
+ }
}
- logMessage("SUPPORTED: " + str);
+ logMessage(str);
}
-
void Launcher::cleanUp()
{
//
@@ -614,9 +617,7 @@ void Launcher::cleanUp()
// Sub Cmd: Delete Process
//ProcessID: 0x0000071F (1823)
// [41 24 00 00 00 00 07 1F]
- QByteArray ba;
- appendByte(&ba, 0x00);
- appendByte(&ba, 0x00);
+ QByteArray ba(2, char(0));
appendInt(&ba, d->m_session.pid);
d->m_device->sendTrkMessage(TrkDeleteItem, TrkCallback(), ba, "Delete process");
@@ -669,7 +670,7 @@ void Launcher::copyFileToRemote()
{
emit copyingStarted();
QByteArray ba;
- appendByte(&ba, 0x10);
+ ba.append(char(10));
appendString(&ba, d->m_copyState.destinationFileName.toLocal8Bit(), TargetByteOrder, false);
d->m_device->sendTrkMessage(TrkOpenFile, TrkCallback(this, &Launcher::handleFileCreation), ba);
}
@@ -678,7 +679,7 @@ void Launcher::installRemotePackageSilently()
{
emit installingStarted();
QByteArray ba;
- appendByte(&ba, 'C');
+ ba.append('C');
appendString(&ba, d->m_installFileName.toLocal8Bit(), TargetByteOrder, false);
d->m_device->sendTrkMessage(TrkInstallFile, TrkCallback(this, &Launcher::handleInstallPackageFinished), ba);
}
@@ -705,7 +706,7 @@ QByteArray Launcher::startProcessMessage(const QString &executable,
// It's not started yet
QByteArray ba;
appendShort(&ba, 0, TargetByteOrder); // create new process
- appendByte(&ba, 0); // options - currently unused
+ ba.append(char(0)); // options - currently unused
if(arguments.isEmpty()) {
appendString(&ba, executable.toLocal8Bit(), TargetByteOrder);
return ba;
diff --git a/tools/runonphone/trk/launcher.h b/tools/runonphone/trk/launcher.h
index 8dc6ebe..2b23fd8 100644
--- a/tools/runonphone/trk/launcher.h
+++ b/tools/runonphone/trk/launcher.h
@@ -56,7 +56,7 @@ struct LauncherPrivate;
typedef QSharedPointer<TrkDevice> TrkDevicePtr;
-class Launcher : public QObject
+class SYMBIANUTILS_EXPORT Launcher : public QObject
{
Q_OBJECT
Q_DISABLE_COPY(Launcher)
diff --git a/tools/runonphone/trk/symbianutils_global.h b/tools/runonphone/trk/symbianutils_global.h
new file mode 100644
index 0000000..a6ffbe7
--- /dev/null
+++ b/tools/runonphone/trk/symbianutils_global.h
@@ -0,0 +1,55 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the tools applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef SYMBIANUTILS_GLOBAL_H
+#define SYMBIANUTILS_GLOBAL_H
+
+#include <QtCore/qglobal.h>
+
+#if defined(SYMBIANUTILS_BUILD_LIB)
+# define SYMBIANUTILS_EXPORT Q_DECL_EXPORT
+#elif defined(SYMBIANUTILS_BUILD_STATIC_LIB) || defined(SYMBIANUTILS_INCLUDE_PRI)
+# define SYMBIANUTILS_EXPORT
+#else
+# define SYMBIANUTILS_EXPORT Q_DECL_IMPORT
+#endif
+
+#endif // SYMBIANUTILS_GLOBAL_H
diff --git a/tools/runonphone/trk/trk.pri b/tools/runonphone/trk/trk.pri
index 2ce17c0..a54df76 100644
--- a/tools/runonphone/trk/trk.pri
+++ b/tools/runonphone/trk/trk.pri
@@ -1,8 +1,10 @@
INCLUDEPATH *= $$PWD
# Input
-HEADERS += $$PWD/callback.h \
+HEADERS += $$PWD/symbianutils_global.h \
+ $$PWD/callback.h \
$$PWD/trkutils.h \
+ $$PWD/trkutils_p.h \
$$PWD/trkdevice.h \
$$PWD/launcher.h \
$$PWD/bluetoothlistener.h \
diff --git a/tools/runonphone/trk/trkdevice.cpp b/tools/runonphone/trk/trkdevice.cpp
index fe3261b..d587135 100644
--- a/tools/runonphone/trk/trkdevice.cpp
+++ b/tools/runonphone/trk/trkdevice.cpp
@@ -41,6 +41,7 @@
#include "trkdevice.h"
#include "trkutils.h"
+#include "trkutils_p.h"
#include <QtCore/QString>
#include <QtCore/QDebug>
@@ -516,7 +517,7 @@ static inline bool overlappedSyncWrite(HANDLE file,
bool WriterThread::write(const QByteArray &data, QString *errorMessage)
{
if (verboseTrk)
- qDebug() << "Write raw data: " << data.toHex();
+ qDebug() << "Write raw data: " << stringFromArray(data).toLatin1();
QMutexLocker locker(&m_context->mutex);
#ifdef Q_OS_WIN
DWORD charsWritten;
@@ -856,8 +857,8 @@ void UnixReaderThread::terminate()
{
// Trigger select() by writing to the pipe
char c = 0;
- int written = write(m_terminatePipeFileDescriptors[1], &c, 1);
- // FIXME: Use result.
+ const int written = write(m_terminatePipeFileDescriptors[1], &c, 1);
+ Q_UNUSED(written)
wait();
}
@@ -919,7 +920,7 @@ bool TrkDevice::open(const QString &port, QString *errorMessage)
qDebug() << "Opening" << port << "is open: " << isOpen() << " serialFrame=" << serialFrame();
close();
#ifdef Q_OS_WIN
- d->deviceContext->device = CreateFile(port.toStdWString().c_str(),
+ d->deviceContext->device = CreateFile(QString("\\\\.\\").append(port).toStdWString().c_str(),
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
@@ -1061,8 +1062,13 @@ void TrkDevice::sendTrkMessage(byte code, TrkCallback callback,
const QByteArray &data, const QVariant &cookie)
{
if (!d->writerThread.isNull()) {
- if (d->verbose > 1)
- qDebug() << "Sending " << code << data.toHex();
+ if (d->verbose > 1) {
+ QByteArray msg = "Sending: ";
+ msg += QByteArray::number(code, 16);
+ msg += ": ";
+ msg += stringFromArray(data).toLatin1();
+ qDebug("%s", msg.data());
+ }
d->writerThread->queueTrkMessage(code, callback, data, cookie);
}
}
diff --git a/tools/runonphone/trk/trkdevice.h b/tools/runonphone/trk/trkdevice.h
index e04f791..21a3cc1 100644
--- a/tools/runonphone/trk/trkdevice.h
+++ b/tools/runonphone/trk/trkdevice.h
@@ -42,6 +42,7 @@
#ifndef TRKDEVICE_H
#define TRKDEVICE_H
+#include "symbianutils_global.h"
#include "callback.h"
#include <QtCore/QObject>
@@ -74,7 +75,7 @@ enum { TRK_WRITE_QUEUE_NOOP_CODE = 0x7f };
typedef trk::Callback<const TrkResult &> TrkCallback;
-class TrkDevice : public QObject
+class SYMBIANUTILS_EXPORT TrkDevice : public QObject
{
Q_OBJECT
Q_PROPERTY(bool serialFrame READ serialFrame WRITE setSerialFrame)
diff --git a/tools/runonphone/trk/trkutils.cpp b/tools/runonphone/trk/trkutils.cpp
index 3a96053..5cce950 100644
--- a/tools/runonphone/trk/trkutils.cpp
+++ b/tools/runonphone/trk/trkutils.cpp
@@ -86,7 +86,7 @@ void Session::reset()
trkAppVersion.reset();
}
-QString formatCpu(int major, int minor)
+static QString formatCpu(int major, int minor)
{
//: CPU description of an S60 device
//: %1 major verison, %2 minor version
@@ -144,13 +144,44 @@ QString Session::deviceDescription(unsigned verbose) const
}
+QByteArray decode7d(const QByteArray &ba)
+{
+ QByteArray res;
+ res.reserve(ba.size());
+ for (int i = 0; i < ba.size(); ++i) {
+ byte c = byte(ba.at(i));
+ if (c == 0x7d) {
+ ++i;
+ c = 0x20 ^ byte(ba.at(i));
+ }
+ res.append(c);
+ }
+ return res;
+}
+
+QByteArray encode7d(const QByteArray &ba)
+{
+ QByteArray res;
+ res.reserve(ba.size() + 2);
+ for (int i = 0; i < ba.size(); ++i) {
+ byte c = byte(ba.at(i));
+ if (c == 0x7e || c == 0x7d) {
+ res.append(0x7d);
+ res.append(0x20 ^ c);
+ } else {
+ res.append(c);
+ }
+ }
+ return res;
+}
+
// FIXME: Use the QByteArray based version below?
-QString stringFromByte(byte c)
+static inline QString stringFromByte(byte c)
{
- return QString("%1 ").arg(c, 2, 16, QChar('0'));
+ return QString::fromLatin1("%1").arg(c, 2, 16, QChar('0'));
}
-QString stringFromArray(const QByteArray &ba, int maxLen)
+SYMBIANUTILS_EXPORT QString stringFromArray(const QByteArray &ba, int maxLen)
{
QString str;
QString ascii;
@@ -170,7 +201,7 @@ QString stringFromArray(const QByteArray &ba, int maxLen)
return str + " " + ascii;
}
-QByteArray hexNumber(uint n, int digits)
+SYMBIANUTILS_EXPORT QByteArray hexNumber(uint n, int digits)
{
QByteArray ba = QByteArray::number(n, 16);
if (digits == 0 || ba.size() == digits)
@@ -178,7 +209,7 @@ QByteArray hexNumber(uint n, int digits)
return QByteArray(digits - ba.size(), '0') + ba;
}
-QByteArray hexxNumber(uint n, int digits)
+SYMBIANUTILS_EXPORT QByteArray hexxNumber(uint n, int digits)
{
return "0x" + hexNumber(n, digits);
}
@@ -200,9 +231,13 @@ void TrkResult::clear()
QString TrkResult::toString() const
{
- QString res = stringFromByte(code) + "[" + stringFromByte(token);
- res.chop(1);
- return res + "] " + stringFromArray(data);
+ QString res = stringFromByte(code);
+ res += QLatin1String(" [");
+ res += stringFromByte(token);
+ res += QLatin1Char(']');
+ res += QLatin1Char(' ');
+ res += stringFromArray(data);
+ return res;
}
QByteArray frameMessage(byte command, byte token, const QByteArray &data, bool serialFrame)
@@ -303,12 +338,12 @@ bool extractResult(QByteArray *buffer, bool serialFrame, TrkResult *result, QByt
return true;
}
-ushort extractShort(const char *data)
+SYMBIANUTILS_EXPORT ushort extractShort(const char *data)
{
return byte(data[0]) * 256 + byte(data[1]);
}
-uint extractInt(const char *data)
+SYMBIANUTILS_EXPORT uint extractInt(const char *data)
{
uint res = byte(data[0]);
res *= 256; res += byte(data[1]);
@@ -317,7 +352,7 @@ uint extractInt(const char *data)
return res;
}
-QString quoteUnprintableLatin1(const QByteArray &ba)
+SYMBIANUTILS_EXPORT QString quoteUnprintableLatin1(const QByteArray &ba)
{
QString res;
char buf[10];
@@ -333,49 +368,7 @@ QString quoteUnprintableLatin1(const QByteArray &ba)
return res;
}
-QByteArray decode7d(const QByteArray &ba)
-{
- QByteArray res;
- res.reserve(ba.size());
- for (int i = 0; i < ba.size(); ++i) {
- byte c = byte(ba.at(i));
- if (c == 0x7d) {
- ++i;
- c = 0x20 ^ byte(ba.at(i));
- }
- res.append(c);
- }
- //if (res != ba)
- // logMessage("DECODED: " << stringFromArray(ba)
- // << " -> " << stringFromArray(res));
- return res;
-}
-
-QByteArray encode7d(const QByteArray &ba)
-{
- QByteArray res;
- res.reserve(ba.size() + 2);
- for (int i = 0; i < ba.size(); ++i) {
- byte c = byte(ba.at(i));
- if (c == 0x7e || c == 0x7d) {
- res.append(0x7d);
- res.append(0x20 ^ c);
- } else {
- res.append(c);
- }
- }
- //if (res != ba)
- // logMessage("ENCODED: " << stringFromArray(ba)
- // << " -> " << stringFromArray(res));
- return res;
-}
-
-void appendByte(QByteArray *ba, byte b)
-{
- ba->append(b);
-}
-
-void appendShort(QByteArray *ba, ushort s, Endianness endian)
+SYMBIANUTILS_EXPORT void appendShort(QByteArray *ba, ushort s, Endianness endian)
{
if (endian == BigEndian) {
ba->append(s / 256);
@@ -386,7 +379,7 @@ void appendShort(QByteArray *ba, ushort s, Endianness endian)
}
}
-void appendInt(QByteArray *ba, uint i, Endianness endian)
+SYMBIANUTILS_EXPORT void appendInt(QByteArray *ba, uint i, Endianness endian)
{
const uchar b3 = i % 256; i /= 256;
const uchar b2 = i % 256; i /= 256;
diff --git a/tools/runonphone/trk/trkutils.h b/tools/runonphone/trk/trkutils.h
index 328dd2b..3a485c7 100644
--- a/tools/runonphone/trk/trkutils.h
+++ b/tools/runonphone/trk/trkutils.h
@@ -42,19 +42,20 @@
#ifndef DEBUGGER_TRK_UTILS
#define DEBUGGER_TRK_UTILS
+#include "symbianutils_global.h"
#include <QtCore/QByteArray>
#include <QtCore/QHash>
#include <QtCore/QStringList>
#include <QtCore/QVariant>
-typedef unsigned char byte;
-
QT_BEGIN_NAMESPACE
class QDateTime;
QT_END_NAMESPACE
namespace trk {
+typedef unsigned char byte;
+
enum Command {
TrkPing = 0x00,
TrkConnect = 0x01,
@@ -85,17 +86,14 @@ enum Command {
TrkNotifyProcessorReset = 0xa7
};
-QByteArray decode7d(const QByteArray &ba);
-QByteArray encode7d(const QByteArray &ba);
-
inline byte extractByte(const char *data) { return *data; }
-ushort extractShort(const char *data);
-uint extractInt(const char *data);
+SYMBIANUTILS_EXPORT ushort extractShort(const char *data);
+SYMBIANUTILS_EXPORT uint extractInt(const char *data);
-QString quoteUnprintableLatin1(const QByteArray &ba);
+SYMBIANUTILS_EXPORT QString quoteUnprintableLatin1(const QByteArray &ba);
// produces "xx xx xx "
-QString stringFromArray(const QByteArray &ba, int maxLen = - 1);
+SYMBIANUTILS_EXPORT QString stringFromArray(const QByteArray &ba, int maxLen = - 1);
enum Endianness
{
@@ -104,13 +102,11 @@ enum Endianness
TargetByteOrder = BigEndian,
};
-void appendByte(QByteArray *ba, byte b);
-void appendShort(QByteArray *ba, ushort s, Endianness = TargetByteOrder);
-void appendInt(QByteArray *ba, uint i, Endianness = TargetByteOrder);
-void appendString(QByteArray *ba, const QByteArray &str, Endianness = TargetByteOrder, bool appendNullTerminator = true);
-void appendDateTime(QByteArray *ba, QDateTime dateTime, Endianness = TargetByteOrder);
+SYMBIANUTILS_EXPORT void appendShort(QByteArray *ba, ushort s, Endianness = TargetByteOrder);
+SYMBIANUTILS_EXPORT void appendInt(QByteArray *ba, uint i, Endianness = TargetByteOrder);
+SYMBIANUTILS_EXPORT void appendString(QByteArray *ba, const QByteArray &str, Endianness = TargetByteOrder, bool appendNullTerminator = true);
-struct Library
+struct SYMBIANUTILS_EXPORT Library
{
Library() {}
@@ -119,7 +115,7 @@ struct Library
uint dataseg;
};
-struct TrkAppVersion
+struct SYMBIANUTILS_EXPORT TrkAppVersion
{
TrkAppVersion();
void reset();
@@ -130,7 +126,7 @@ struct TrkAppVersion
int protocolMinor;
};
-struct Session
+struct SYMBIANUTILS_EXPORT Session
{
Session();
void reset();
@@ -163,7 +159,7 @@ struct Session
QStringList modules;
};
-struct TrkResult
+struct SYMBIANUTILS_EXPORT TrkResult
{
TrkResult();
void clear();
@@ -179,15 +175,10 @@ struct TrkResult
bool isDebugOutput;
};
-// returns a QByteArray containing optionally
-// the serial frame [0x01 0x90 <len>] and 0x7e encoded7d(ba) 0x7e
-QByteArray frameMessage(byte command, byte token, const QByteArray &data, bool serialFrame);
-ushort isValidTrkResult(const QByteArray &buffer, bool serialFrame);
-bool extractResult(QByteArray *buffer, bool serialFrame, TrkResult *r, QByteArray *rawData = 0);
-QByteArray errorMessage(byte code);
-QByteArray hexNumber(uint n, int digits = 0);
-QByteArray hexxNumber(uint n, int digits = 0); // prepends '0x', too
-uint swapEndian(uint in);
+SYMBIANUTILS_EXPORT QByteArray errorMessage(byte code);
+SYMBIANUTILS_EXPORT QByteArray hexNumber(uint n, int digits = 0);
+SYMBIANUTILS_EXPORT QByteArray hexxNumber(uint n, int digits = 0); // prepends '0x', too
+SYMBIANUTILS_EXPORT uint swapEndian(uint in);
} // namespace trk
diff --git a/tools/runonphone/trk/trkutils_p.h b/tools/runonphone/trk/trkutils_p.h
new file mode 100644
index 0000000..12b0109
--- /dev/null
+++ b/tools/runonphone/trk/trkutils_p.h
@@ -0,0 +1,62 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the tools applications of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef DEBUGGER_TRK_PRIVATE_UTILS
+#define DEBUGGER_TRK_PRIVATE_UTILS
+
+#include "trkutils.h"
+#include "symbianutils_global.h"
+
+QT_BEGIN_NAMESPACE
+class QDateTime;
+QT_END_NAMESPACE
+
+namespace trk {
+
+void appendDateTime(QByteArray *ba, QDateTime dateTime, Endianness = TargetByteOrder);
+// returns a QByteArray containing optionally
+// the serial frame [0x01 0x90 <len>] and 0x7e encoded7d(ba) 0x7e
+QByteArray frameMessage(byte command, byte token, const QByteArray &data, bool serialFrame);
+bool extractResult(QByteArray *buffer, bool serialFrame, TrkResult *r, QByteArray *rawData = 0);
+
+} // namespace trk
+
+#endif // DEBUGGER_TRK_PRIVATE_UTILS