From 2d0bc5100a86622d201fb55828b4c6db0a80d156 Mon Sep 17 00:00:00 2001 From: jlitewski Date: Sat, 20 Apr 2024 22:47:42 -0400 Subject: [PATCH] Forgot about resetting the grid offsets --- client/src/cmddata.c | 2 ++ client/src/cmdlf.c | 4 ++++ client/src/cmdlft55xx.c | 2 ++ client/src/cmdlfti.c | 5 ++++- client/src/cmdlfvisa2000.c | 5 +++++ client/src/cmdlfzx8211.c | 3 +++ client/src/graph.h | 2 ++ client/src/proxgui.h | 5 +---- 8 files changed, 23 insertions(+), 5 deletions(-) diff --git a/client/src/cmddata.c b/client/src/cmddata.c index 7689fb26c..19f217c50 100644 --- a/client/src/cmddata.c +++ b/client/src/cmddata.c @@ -2711,6 +2711,7 @@ static int try_detect_modulation(void) { if (clk > 0) { // allow undo buffer_savestate_t saveState = save_bufferS32(g_GraphBuffer, g_GraphTraceLen); + saveState.offset = g_GridOffset; // skip first 160 samples to allow antenna to settle in (psk gets inverted occasionally otherwise) CmdLtrim("-i 160"); if ((PSKDemod(0, 0, 6, false) == PM3_SUCCESS)) { @@ -2723,6 +2724,7 @@ static int try_detect_modulation(void) { } //undo trim samples restore_bufferS32(saveState, g_GraphBuffer); + g_GridOffset = saveState.offset; } } diff --git a/client/src/cmdlf.c b/client/src/cmdlf.c index efbf23a39..bf4fa1cb1 100644 --- a/client/src/cmdlf.c +++ b/client/src/cmdlf.c @@ -1537,6 +1537,7 @@ static bool check_chiptype(bool getDeviceData) { //Save the state of the Graph and Demod Buffers buffer_savestate_t saveState_gb = save_bufferS32(g_GraphBuffer, g_GraphTraceLen); + saveState_gb.offset = g_GridOffset; buffer_savestate_t saveState_db = save_buffer8(g_DemodBuffer, g_DemodBufferLen); saveState_db.clock = g_DemodClock; saveState_db.offset = g_DemodStartIdx; @@ -1581,7 +1582,10 @@ out: restore_buffer8(saveState_db, g_DemodBuffer); g_DemodClock = saveState_db.clock; g_DemodStartIdx = saveState_db.offset; + restore_bufferS32(saveState_gb, g_GraphBuffer); + g_GridOffset = saveState_gb.offset; + return retval; } diff --git a/client/src/cmdlft55xx.c b/client/src/cmdlft55xx.c index dd91c4dd9..76cec033c 100644 --- a/client/src/cmdlft55xx.c +++ b/client/src/cmdlft55xx.c @@ -1152,6 +1152,7 @@ bool t55xxTryDetectModulationEx(uint8_t downlink_mode, bool print_config, uint32 if (clk > 0) { // allow undo buffer_savestate_t saveState = save_bufferS32(g_GraphBuffer, g_GraphTraceLen); + saveState.offset = g_GridOffset; // skip first 160 samples to allow antenna to settle in (psk gets inverted occasionally otherwise) CmdLtrim("-i 160"); if ((PSKDemod(0, 0, 6, false) == PM3_SUCCESS) && test(DEMOD_PSK1, &tests[hits].offset, &bitRate, clk, &tests[hits].Q5)) { @@ -1201,6 +1202,7 @@ bool t55xxTryDetectModulationEx(uint8_t downlink_mode, bool print_config, uint32 } // inverse waves does not affect this demod //undo trim samples restore_bufferS32(saveState, g_GraphBuffer); + g_GridOffset = saveState.offset; } } if (hits == 1) { diff --git a/client/src/cmdlfti.c b/client/src/cmdlfti.c index 8cdc315d2..4a5dcc18a 100644 --- a/client/src/cmdlfti.c +++ b/client/src/cmdlfti.c @@ -90,6 +90,7 @@ int demodTI(bool verbose) { }; buffer_savestate_t saveState = save_bufferS32(g_GraphBuffer, g_GraphTraceLen); + saveState.offset = g_GridOffset; int lowLen = ARRAYLEN(LowTone); int highLen = ARRAYLEN(HighTone); @@ -276,8 +277,10 @@ int demodTI(bool verbose) { } out: - if (retval != PM3_SUCCESS) + if (retval != PM3_SUCCESS) { restore_bufferS32(saveState, g_GraphBuffer); + g_GridOffset = saveState.offset; + } return retval; } diff --git a/client/src/cmdlfvisa2000.c b/client/src/cmdlfvisa2000.c index 4b981ecfe..5e473fcf3 100644 --- a/client/src/cmdlfvisa2000.c +++ b/client/src/cmdlfvisa2000.c @@ -85,6 +85,7 @@ static uint8_t visa_parity(uint32_t id) { int demodVisa2k(bool verbose) { (void) verbose; // unused so far buffer_savestate_t saveState = save_bufferS32(g_GraphBuffer, g_GraphTraceLen); + saveState.offset = g_GridOffset; //CmdAskEdgeDetect(""); @@ -93,6 +94,7 @@ int demodVisa2k(bool verbose) { if (ASKDemod_ext(64, 0, 0, 0, false, false, false, 1, &st) != PM3_SUCCESS) { PrintAndLogEx(DEBUG, "DEBUG: Error - Visa2k: ASK/Manchester Demod failed"); restore_bufferS32(saveState, g_GraphBuffer); + g_GridOffset = saveState.offset; return PM3_ESOFT; } size_t size = g_DemodBufferLen; @@ -108,6 +110,7 @@ int demodVisa2k(bool verbose) { PrintAndLogEx(DEBUG, "DEBUG: Error - Visa2k: ans: %d", ans); restore_bufferS32(saveState, g_GraphBuffer); + g_GridOffset = saveState.offset; return PM3_ESOFT; } setDemodBuff(g_DemodBuffer, 96, ans); @@ -126,6 +129,7 @@ int demodVisa2k(bool verbose) { if (chk != calc) { PrintAndLogEx(DEBUG, "DEBUG: error: Visa2000 checksum (%s) %x - %x\n", _RED_("fail"), chk, calc); restore_bufferS32(saveState, g_GraphBuffer); + g_GridOffset = saveState.offset; return PM3_ESOFT; } // parity @@ -134,6 +138,7 @@ int demodVisa2k(bool verbose) { if (calc_par != chk_par) { PrintAndLogEx(DEBUG, "DEBUG: error: Visa2000 parity (%s) %x - %x\n", _RED_("fail"), chk_par, calc_par); restore_bufferS32(saveState, g_GraphBuffer); + g_GridOffset = saveState.offset; return PM3_ESOFT; } PrintAndLogEx(SUCCESS, "Visa2000 - Card " _GREEN_("%u") ", Raw: %08X%08X%08X", raw2, raw1, raw2, raw3); diff --git a/client/src/cmdlfzx8211.c b/client/src/cmdlfzx8211.c index 72f0ab2d9..03fcd6053 100644 --- a/client/src/cmdlfzx8211.c +++ b/client/src/cmdlfzx8211.c @@ -42,6 +42,7 @@ static int CmdHelp(const char *Cmd); int demodzx(bool verbose) { (void) verbose; // unused so far buffer_savestate_t saveState = save_bufferS32(g_GraphBuffer, g_GraphTraceLen); + saveState.offset = g_GridOffset; // CmdAskEdgeDetect(""); @@ -50,6 +51,7 @@ int demodzx(bool verbose) { if (ASKDemod_ext(64, 0, 0, 0, false, false, false, 1, &st) != PM3_SUCCESS) { PrintAndLogEx(DEBUG, "DEBUG: Error - ZX: ASK/Manchester Demod failed"); restore_bufferS32(saveState, g_GraphBuffer); + g_GridOffset = saveState.offset; return PM3_ESOFT; } size_t size = g_DemodBufferLen; @@ -65,6 +67,7 @@ int demodzx(bool verbose) { PrintAndLogEx(DEBUG, "DEBUG: Error - ZX: ans: %d", ans); restore_bufferS32(saveState, g_GraphBuffer); + g_GridOffset = saveState.offset; return PM3_ESOFT; } setDemodBuff(g_DemodBuffer, 96, ans); diff --git a/client/src/graph.h b/client/src/graph.h index 4db94064d..5c51481f2 100644 --- a/client/src/graph.h +++ b/client/src/graph.h @@ -68,6 +68,8 @@ extern int32_t g_OverlayBuffer[MAX_GRAPH_TRACE_LEN]; extern bool g_useOverlays; extern size_t g_GraphTraceLen; +extern double g_GridOffset; + extern buffer_savestate_t g_saveState_gb; #ifdef __cplusplus diff --git a/client/src/proxgui.h b/client/src/proxgui.h index 4190eea4e..daeed30b6 100644 --- a/client/src/proxgui.h +++ b/client/src/proxgui.h @@ -52,7 +52,7 @@ extern void remove_temporary_markers(void); extern double g_CursorScaleFactor; extern char g_CursorScaleFactorUnit[11]; -extern double g_PlotGridX, g_PlotGridY, g_DefaultGridX, g_DefaultGridY, g_GridOffset; +extern double g_PlotGridX, g_PlotGridY, g_DefaultGridX, g_DefaultGridY; extern marker_t g_MarkerA, g_MarkerB, g_MarkerC, g_MarkerD; extern marker_t *g_TempMarkers; extern uint8_t g_TempMarkerSize; @@ -61,9 +61,6 @@ extern int CommandFinished; extern int offline; extern bool g_GridLocked; -#define GRAPH_SAVE 1 -#define GRAPH_RESTORE 0 - #ifndef FILE_PATH_SIZE #define FILE_PATH_SIZE 1000 #endif