From 97d1b1ccd36d94269f8a6ee25403e679e7696167 Mon Sep 17 00:00:00 2001 From: Thomas Braun Date: Tue, 28 Jan 2025 13:39:13 +0100 Subject: [PATCH 1/2] UpgradeLabNotebook: Fix upgrade of NOTE_INDEX for textualValues waves We can't search for NaN here but need to search for an empty string. This was not caught by the test as that used an empty wave and for these FindValue does not complain. The fallout from this bug is an empty row range in the labnotebook. Which should not matter. --- Packages/MIES/MIES_Constants.ipf | 2 +- Packages/MIES/MIES_WaveDataFolderGetters.ipf | 2 +- Packages/tests/Basic/UTF_Labnotebook.ipf | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Packages/MIES/MIES_Constants.ipf b/Packages/MIES/MIES_Constants.ipf index 994631d7b3..3a4df7879b 100644 --- a/Packages/MIES/MIES_Constants.ipf +++ b/Packages/MIES/MIES_Constants.ipf @@ -39,7 +39,7 @@ Constant SWEEP_EPOCH_VERSION = 9 /// - New/Changed layers of entries /// ///@{ -Constant LABNOTEBOOK_VERSION = 77 +Constant LABNOTEBOOK_VERSION = 78 Constant RESULTS_VERSION = 3 ///@} diff --git a/Packages/MIES/MIES_WaveDataFolderGetters.ipf b/Packages/MIES/MIES_WaveDataFolderGetters.ipf index 24aa398c09..a94e54182a 100644 --- a/Packages/MIES/MIES_WaveDataFolderGetters.ipf +++ b/Packages/MIES/MIES_WaveDataFolderGetters.ipf @@ -1638,7 +1638,7 @@ static Function UpgradeLabNotebook(string device) nextFreeRow = GetNumberFromWaveNote(textualValues, NOTE_INDEX) if(IsNaN(nextFreeRow)) - FindValue/FNAN/RMD=[][timeStampColumn][0]/R textualValues + FindValue/TEXT=("")/RMD=[][timeStampColumn][0]/R textualValues if(!(V_row >= 0)) V_row = DimSize(textualValues, ROWS) endif diff --git a/Packages/tests/Basic/UTF_Labnotebook.ipf b/Packages/tests/Basic/UTF_Labnotebook.ipf index 01a5178ba0..d3401c333c 100644 --- a/Packages/tests/Basic/UTF_Labnotebook.ipf +++ b/Packages/tests/Basic/UTF_Labnotebook.ipf @@ -1419,7 +1419,7 @@ Function LabnotebookUpgradeMissingNoteIndexTextual() Note/K textualKeys textualValues[][][] = "" - Redimension/N=(0, -1, -1) textualValues + Redimension/N=(1, -1, -1) textualValues MIES_WAVEGETTERS#UpgradeLabNotebook(device) From bcb8e2e6b0869db2782b783e901621337dec9ee6 Mon Sep 17 00:00:00 2001 From: Thomas Braun Date: Tue, 28 Jan 2025 13:49:47 +0100 Subject: [PATCH 2/2] CreateTiledChannelGraph: Account for very early labnotebooks in fallback path We only have 9 layers since 562439857 (Introduce a nineth layer in the labnotebooks for storing headstage independent data, 2015-10-28) so we need to index statusHS only for the first 8 layers. --- Packages/MIES/MIES_Browser_Plotter.ipf | 3 ++- .../tests/HistoricData/UTF_HistoricAnalysisBrowser.ipf | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Packages/MIES/MIES_Browser_Plotter.ipf b/Packages/MIES/MIES_Browser_Plotter.ipf index 653a5bc182..6295788e32 100644 --- a/Packages/MIES/MIES_Browser_Plotter.ipf +++ b/Packages/MIES/MIES_Browser_Plotter.ipf @@ -128,7 +128,8 @@ Function CreateTiledChannelGraph(string graph, WAVE config, variable sweepNo, WA ASSERT_TS(WaveExists(ADCsFromLBN), "Labnotebook is too old for workaround.") WAVE statusHS = LBN_GetNumericWave() - statusHS[] = IsFinite(ADCsFromLBN[p]) && IsFinite(DACsFromLBN[p]) + // 562439857 (Introduce a nineth layer in the labnotebooks for storing headstage independent data, 2015-10-28) + statusHS[0, NUM_HEADSTAGES - 1] = IsFinite(ADCsFromLBN[p]) && IsFinite(DACsFromLBN[p]) endif BSP_RemoveDisabledChannels(channelSelWave, ADCs, DACs, statusHS, numericalValues, sweepNo) diff --git a/Packages/tests/HistoricData/UTF_HistoricAnalysisBrowser.ipf b/Packages/tests/HistoricData/UTF_HistoricAnalysisBrowser.ipf index b980656195..97667e5693 100644 --- a/Packages/tests/HistoricData/UTF_HistoricAnalysisBrowser.ipf +++ b/Packages/tests/HistoricData/UTF_HistoricAnalysisBrowser.ipf @@ -139,3 +139,13 @@ static Function TestGetChannelInfo() Make/FREE/T channelInfoRef = {{"0"}, {"root:MIES:Analysis:workFolder:AB_LoadSweepsFromIgorData:Dev1:sweep:X_0:AD_0"}, {"0"}} CHECK_EQUAL_TEXTWAVES(channelInfo, channelInfoRef, mode = WAVE_DATA) End + +static Function TestLabnotebookFallbackPathsInSweepDisplay() + + string abWin, sweepBrowsers, win + + Make/FREE/T files = {"input:very_very_early_mies-data_Rbp4-Cre_KL100;Ai14-206137.04.02.pxp"} + DownloadFilesIfRequired(files) + [abWin, sweepBrowsers] = OpenAnalysisBrowser(files, loadSweeps = 1) + CHECK_NO_RTE() +End