Start on using enum for commands.

This commit is contained in:
con
2009-07-28 15:46:46 +02:00
parent 2816c415d2
commit 86366ada9a
2 changed files with 39 additions and 18 deletions

View File

@@ -175,10 +175,10 @@ bool Adapter::startServer()
} }
sendTrkInitialPing(); sendTrkInitialPing();
sendTrkMessage(0x01); // Connect sendTrkMessage(TrkConnect); // Connect
sendTrkMessage(0x05, CB(handleSupportMask)); sendTrkMessage(TrkSupported, CB(handleSupportMask));
sendTrkMessage(0x06, CB(handleCpuType)); sendTrkMessage(TrkCpuType, CB(handleCpuType));
sendTrkMessage(0x04); // Versions sendTrkMessage(TrkVersions); // Versions
// sendTrkMessage(0x09); // Unrecognized command // sendTrkMessage(0x09); // Unrecognized command
startInferiorIfNeeded(); startInferiorIfNeeded();
return true; return true;
@@ -380,7 +380,7 @@ void Adapter::handleResult(const TrkResult &result)
QByteArray prefix = "READ BUF: "; QByteArray prefix = "READ BUF: ";
QByteArray str = result.toString().toUtf8(); QByteArray str = result.toString().toUtf8();
switch (result.code) { switch (result.code) {
case 0x80: { // ACK case TrkNotifyAck: { // ACK
//logMessage(prefix + "ACK: " + str); //logMessage(prefix + "ACK: " + str);
if (!result.data.isEmpty() && result.data.at(0)) if (!result.data.isEmpty() && result.data.at(0))
logMessage(prefix + "ERR: " +QByteArray::number(result.data.at(0))); logMessage(prefix + "ERR: " +QByteArray::number(result.data.at(0)));
@@ -402,13 +402,13 @@ void Adapter::handleResult(const TrkResult &result)
} }
break; break;
} }
case 0xff: { // NAK case TrkNotifyNak: { // NAK
logMessage(prefix + "NAK: " + str); logMessage(prefix + "NAK: " + str);
//logMessage(prefix << "TOKEN: " << result.token); //logMessage(prefix << "TOKEN: " << result.token);
logMessage(prefix + "ERROR: " + errorMessage(result.data.at(0))); logMessage(prefix + "ERROR: " + errorMessage(result.data.at(0)));
break; break;
} }
case 0x90: { // Notified Stopped case TrkNotifyStopped: { // Notified Stopped
logMessage(prefix + "NOTE: STOPPED " + str); logMessage(prefix + "NOTE: STOPPED " + str);
// 90 01 78 6a 40 40 00 00 07 23 00 00 07 24 00 00 // 90 01 78 6a 40 40 00 00 07 23 00 00 07 24 00 00
//const char *data = result.data.data(); //const char *data = result.data.data();
@@ -419,19 +419,19 @@ void Adapter::handleResult(const TrkResult &result)
sendTrkAck(result.token); sendTrkAck(result.token);
break; break;
} }
case 0x91: { // Notify Exception (obsolete) case TrkNotifyException: { // Notify Exception (obsolete)
logMessage(prefix + "NOTE: EXCEPTION " + str); logMessage(prefix + "NOTE: EXCEPTION " + str);
sendTrkAck(result.token); sendTrkAck(result.token);
break; break;
} }
case 0x92: { // case TrkNotifyInternalError: { //
logMessage(prefix + "NOTE: INTERNAL ERROR: " + str); logMessage(prefix + "NOTE: INTERNAL ERROR: " + str);
sendTrkAck(result.token); sendTrkAck(result.token);
break; break;
} }
// target->host OS notification // target->host OS notification
case 0xa0: { // Notify Created case TrkNotifyCreated: { // Notify Created
/* /*
const char *data = result.data.data(); const char *data = result.data.data();
byte error = result.data.at(0); byte error = result.data.at(0);
@@ -458,26 +458,26 @@ void Adapter::handleResult(const TrkResult &result)
QByteArray ba; QByteArray ba;
appendInt(&ba, m_session.pid); appendInt(&ba, m_session.pid);
appendInt(&ba, m_session.tid); appendInt(&ba, m_session.tid);
sendTrkMessage(0x18, 0, ba, "CONTINUE"); sendTrkMessage(TrkContinue, 0, ba, "CONTINUE");
//sendTrkAck(result.token) //sendTrkAck(result.token)
break; break;
} }
case 0xa1: { // NotifyDeleted case TrkNotifyDeleted: { // NotifyDeleted
logMessage(prefix + "NOTE: LIBRARY UNLOAD: " + str); logMessage(prefix + "NOTE: LIBRARY UNLOAD: " + str);
sendTrkAck(result.token); sendTrkAck(result.token);
break; break;
} }
case 0xa2: { // NotifyProcessorStarted case TrkNotifyProcessorStarted: { // NotifyProcessorStarted
logMessage(prefix + "NOTE: PROCESSOR STARTED: " + str); logMessage(prefix + "NOTE: PROCESSOR STARTED: " + str);
sendTrkAck(result.token); sendTrkAck(result.token);
break; break;
} }
case 0xa6: { // NotifyProcessorStandby case TrkNotifyProcessorStandBy: { // NotifyProcessorStandby
logMessage(prefix + "NOTE: PROCESSOR STANDBY: " + str); logMessage(prefix + "NOTE: PROCESSOR STANDBY: " + str);
sendTrkAck(result.token); sendTrkAck(result.token);
break; break;
} }
case 0xa7: { // NotifyProcessorReset case TrkNotifyProcessorReset: { // NotifyProcessorReset
logMessage(prefix + "NOTE: PROCESSOR RESET: " + str); logMessage(prefix + "NOTE: PROCESSOR RESET: " + str);
sendTrkAck(result.token); sendTrkAck(result.token);
break; break;
@@ -522,7 +522,7 @@ void Adapter::handleCreateProcess(const TrkResult &result)
QByteArray ba; QByteArray ba;
appendInt(&ba, m_session.pid); appendInt(&ba, m_session.pid);
appendInt(&ba, m_session.tid); appendInt(&ba, m_session.tid);
sendTrkMessage(0x18, 0, ba, "CONTINUE"); sendTrkMessage(TrkContinue, 0, ba, "CONTINUE");
} }
void Adapter::handleWaitForFinished(const TrkResult &result) void Adapter::handleWaitForFinished(const TrkResult &result)
@@ -557,7 +557,7 @@ void Adapter::cleanUp()
appendByte(&ba, 0x00); appendByte(&ba, 0x00);
appendByte(&ba, 0x00); appendByte(&ba, 0x00);
appendInt(&ba, m_session.pid); appendInt(&ba, m_session.pid);
sendTrkMessage(0x41, 0, ba, "Delete process"); sendTrkMessage(TrkDeleteItem, 0, ba, "Delete process");
//---TRK------------------------------------------------------ //---TRK------------------------------------------------------
// Command: 0x80 Acknowledge // Command: 0x80 Acknowledge
@@ -614,7 +614,7 @@ void Adapter::startInferiorIfNeeded()
file.append('\0'); file.append('\0');
file.append('\0'); file.append('\0');
appendString(&ba, file, TargetByteOrder); appendString(&ba, file, TargetByteOrder);
sendTrkMessage(0x40, CB(handleCreateProcess), ba); // Create Item sendTrkMessage(TrkCreateItem, CB(handleCreateProcess), ba); // Create Item
} }
int main(int argc, char *argv[]) int main(int argc, char *argv[])

View File

@@ -39,6 +39,27 @@ typedef unsigned char byte;
namespace trk { namespace trk {
enum Command {
TrkConnect = 0x01,
TrkVersions = 0x04,
TrkSupported = 0x05,
TrkCpuType = 0x06,
TrkContinue = 0x18,
TrkCreateItem = 0x40,
TrkDeleteItem = 0x41,
TrkNotifyAck = 0x80,
TrkNotifyNak = 0xff,
TrkNotifyStopped = 0x90,
TrkNotifyException = 0x91,
TrkNotifyInternalError = 0x92,
TrkNotifyCreated = 0xa0,
TrkNotifyDeleted = 0xa1,
TrkNotifyProcessorStarted = 0xa2,
TrkNotifyProcessorStandBy = 0xa6,
TrkNotifyProcessorReset = 0xa7
};
QByteArray decode7d(const QByteArray &ba); QByteArray decode7d(const QByteArray &ba);
QByteArray encode7d(const QByteArray &ba); QByteArray encode7d(const QByteArray &ba);