Adding ACK debug logging

This commit is contained in:
Rodrigo Alfonso
2024-01-14 01:26:24 -03:00
parent 84d53229be
commit f7e5e681cf
3 changed files with 22 additions and 4 deletions

View File

@@ -128,6 +128,9 @@ void DebugScene::processButtons(u16 keys) {
selectHandler->setIsPressed(keys & KEY_SELECT);
startHandler->setIsPressed(keys & KEY_START);
if (aHandler->hasBeenPressedNow())
showCommandSendMenu();
if (bHandler->hasBeenPressedNow())
toggleLogLevel();
@@ -160,9 +163,14 @@ void DebugScene::toggleLogLevel() {
}
log("");
}
void DebugScene::resetAdapter() {
log("> resetting adapter...");
bool success = linkRawWireless->activate();
log(success ? "< it worked :)" : "< it failed :(");
log("");
}
void DebugScene::showCommandSendMenu() {
// TODO: IMPLEMENT
}

View File

@@ -22,6 +22,7 @@ class DebugScene : public Scene {
void processButtons(u16 keys);
void toggleLogLevel();
void resetAdapter();
void showCommandSendMenu();
};
#endif // DEBUG_SCENE_H

View File

@@ -39,6 +39,7 @@
(1 + LINK_RAW_WIRELESS_BROADCAST_LENGTH)
#define LINK_RAW_WIRELESS_MAX_COMMAND_TRANSFER_LENGTH 22
#define LINK_RAW_WIRELESS_COMMAND_HELLO 0x10
#define LINK_RAW_WIRELESS_COMMAND_VERSION 0x11
#define LINK_RAW_WIRELESS_COMMAND_SETUP 0x17
#define LINK_RAW_WIRELESS_COMMAND_BROADCAST 0x16
#define LINK_RAW_WIRELESS_COMMAND_START_HOST 0x19
@@ -608,13 +609,21 @@ class LinkRawWireless {
u32 vCount = REG_VCOUNT;
linkSPI->_setSOLow();
while (!linkSPI->_isSIHigh())
if (cmdTimeout(lines, vCount))
while (!linkSPI->_isSIHigh()) {
if (cmdTimeout(lines, vCount)) {
debug("! ACK 1 failed. I put SO=LOW,");
debug("! but SI didn't become HIGH.");
return false;
}
}
linkSPI->_setSOHigh();
while (linkSPI->_isSIHigh())
if (cmdTimeout(lines, vCount))
while (linkSPI->_isSIHigh()) {
if (cmdTimeout(lines, vCount)) {
debug("! ACK 2 failed. I put SO=HIGH,");
debug("! but SI didn't become LOW.");
return false;
}
}
linkSPI->_setSOLow();
return true;