Skip to content

Commit 5d111c6

Browse files
authored
Merge pull request #1184 from AllenInstitute/bugfix/1119-analysis-functions
Various Analysis Functions Dashboard fixes
2 parents ebb014f + 2f7e5f9 commit 5d111c6

16 files changed

+72
-40
lines changed

Packages/MIES/MIES_AnalysisFunctions_Dashboard.ipf

Lines changed: 43 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -68,20 +68,19 @@ Function AD_Update(win)
6868
selWave[][][%foreColors] = AD_GetColorForResultMessage(listWave[p][%Result])
6969

7070
helpWave[] = "Result:\r" + listWave[p][%Result]
71-
72-
EnableControls(mainPanel, "check_BrowserSettings_DB_Failed;check_BrowserSettings_DB_Passed")
7371
else
7472
SetNumberInWaveNote(listWave, NOTE_INDEX, 0)
75-
DisableControls(mainPanel, "check_BrowserSettings_DB_Failed;check_BrowserSettings_DB_Passed")
7673
endif
7774

7875
DEBUGPRINT_ELAPSED(refTime)
7976
End
8077

81-
static Function/S AD_GetResultMessage(variable anaFuncType, variable passed, WAVE numericalValues, WAVE/T textualValues, variable sweepNo, variable headstage)
78+
static Function/S AD_GetResultMessage(variable anaFuncType, variable passed, WAVE numericalValues, WAVE/T textualValues, variable sweepNo, variable headstage, variable ongoingDAQ)
8279

8380
if(passed)
8481
return "Pass"
82+
elseif(ongoingDAQ)
83+
return "Sweep not yet finished"
8584
endif
8685

8786
// MSQ_DA
@@ -149,7 +148,7 @@ static Function AD_FillWaves(win, list, info)
149148
string win
150149
WAVE/T list, info
151150

152-
variable i, j, headstage, passed, sweepNo, numEntries
151+
variable i, j, headstage, passed, sweepNo, numEntries, ongoingDAQ
153152
variable index, anaFuncType, stimsetCycleID, firstValid, lastValid
154153
string key, anaFunc, stimset, msg
155154

@@ -209,26 +208,32 @@ static Function AD_FillWaves(win, list, info)
209208
stimsetCycleID = stimsetCycleIDs[headstage]
210209

211210
FindValue/RMD=[][0]/TXOP=4/TEXT=AD_FormatListKey(stimsetCycleID, headstage) info
212-
if(V_Value >= 0) // already included
213-
continue
211+
if(V_Value >= 0)
212+
if(!cmpstr(info[V_Value][%$"Ongoing DAQ"], "1"))
213+
// if DAQ was ongoing we want to overwrite this entry and all later entries
214+
index = V_Value
215+
info[index, inf][] = ""
216+
else
217+
// otherwise we want to keep it
218+
continue
219+
endif
214220
endif
215221

216222
WAVE/Z/T stimsets = GetLastSetting(textualValues, sweepNo, STIM_WAVE_NAME_KEY, DATA_ACQUISITION_MODE)
217223
ASSERT(WaveExists(stimsets), "No stimsets found")
218224

219225
stimset = stimsets[headstage]
220226

221-
if(anaFuncType != INVALID_ANALYSIS_FUNCTION)
227+
if(anaFuncType == INVALID_ANALYSIS_FUNCTION)
228+
passed = NaN
229+
ongoingDAQ = 0
230+
else
222231
key = CreateAnaFuncLBNKey(anaFuncType, PSQ_FMT_LBN_SET_PASS, query = 1)
223232
passed = GetLastSettingIndepSCI(numericalValues, sweepNo, key, headstage, UNKNOWN_MODE)
224-
225-
if(isNaN(passed))
226-
// the set is not yet finished
227-
continue
228-
endif
233+
ongoingDAQ = IsNaN(passed)
229234
endif
230235

231-
msg = AD_GetResultMessage(anaFuncType, passed, numericalValues, textualValues, sweepNo, headstage)
236+
msg = AD_GetResultMessage(anaFuncType, passed, numericalValues, textualValues, sweepNo, headstage, ongoingDAQ)
232237

233238
EnsureLargeEnoughWave(list, dimension = ROWS, minimumSize = index)
234239
EnsureLargeEnoughWave(info, dimension = ROWS, minimumSize = index)
@@ -254,8 +259,14 @@ static Function AD_FillWaves(win, list, info)
254259
case MSQ_FAST_RHEO_EST:
255260
case SC_SPIKE_CONTROL:
256261
key = CreateAnaFuncLBNKey(anaFuncType, PSQ_FMT_LBN_SWEEP_PASS, query = 1)
257-
WAVE sweepPass = GetLastSettingIndepEachSCI(numericalValues, sweepNo, key, headstage, UNKNOWN_MODE)
258-
ASSERT(DimSize(sweeps, ROWS) == DimSize(sweepPass, ROWS), "Unexpected wave sizes")
262+
WAVE/Z sweepPass = GetLastSettingIndepEachSCI(numericalValues, sweepNo, key, headstage, UNKNOWN_MODE, defValue = 0)
263+
264+
if(!WaveExists(sweepPass))
265+
Duplicate/FREE sweeps, sweepPass
266+
sweepPass = 0
267+
else
268+
ASSERT(DimSize(sweeps, ROWS) == DimSize(sweepPass, ROWS), "Unexpected wave sizes")
269+
endif
259270

260271
Duplicate/FREE sweeps, passingSweepsAll, failingSweepsAll
261272
passingSweepsAll[] = sweepPass[p] ? sweeps[p] : NaN
@@ -294,6 +305,7 @@ static Function AD_FillWaves(win, list, info)
294305
info[index][%$STIMSET_ACQ_CYCLE_ID_KEY] = AD_FormatListKey(stimsetCycleID, headstage)
295306
info[index][%$"Passing Sweeps"] = NumericWaveToList(passingSweeps, ";")
296307
info[index][%$"Failing Sweeps"] = NumericWaveToList(failingSweeps, ";")
308+
info[index][%$"Ongoing DAQ"] = num2str(ongoingDAQ)
297309

298310
SetNumberInWaveNote(list, NOTE_INDEX, ++index)
299311
endfor
@@ -543,7 +555,10 @@ static Function/S AD_GetBaselineFailMsg(anaFuncType, numericalValues, sweepNo, h
543555
return ""
544556
endif
545557

546-
ASSERT(WaveExists(baselineQC), "Missing baseline QC LBN entry")
558+
if(!WaveExists(baselineQC))
559+
BUG("Missing baseline QC LBN entry")
560+
return ""
561+
endif
547562

548563
if(!baselineQC[headstage])
549564
for(i = 0; ;i += 1)
@@ -839,9 +854,19 @@ End
839854
Function AD_CheckProc_Toggle(cba) : CheckBoxControl
840855
STRUCT WMCheckboxAction &cba
841856

857+
string win
858+
842859
switch(cba.eventCode)
843860
case 2: // mouse up
844-
AD_Update(cba.win)
861+
win = cba.win
862+
AD_Update(win)
863+
864+
if(cba.checked)
865+
EnableControls(win, "check_BrowserSettings_DB_Failed;check_BrowserSettings_DB_Passed")
866+
else
867+
DisableControls(win, "check_BrowserSettings_DB_Failed;check_BrowserSettings_DB_Passed")
868+
endif
869+
845870
break
846871
endswitch
847872

Packages/MIES/MIES_AnalysisFunctions_PatchSeq.ipf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -732,7 +732,7 @@ Function PSQ_NumPassesInSet(numericalValues, type, sweepNo, headstage)
732732

733733
Make/FREE/N=(DimSize(sweeps, ROWS)) passes
734734
key = CreateAnaFuncLBNKey(type, PSQ_FMT_LBN_SWEEP_PASS, query = 1)
735-
passes[] = GetLastSettingIndep(numericalValues, sweeps[p], key, UNKNOWN_MODE)
735+
passes[] = GetLastSettingIndep(numericalValues, sweeps[p], key, UNKNOWN_MODE, defValue = 0)
736736

737737
return sum(passes)
738738
End
@@ -3071,7 +3071,7 @@ Function [variable result, variable maxOccurences] PSQ_CR_SetHasPassed(WAVE nume
30713071
return [0, maxValue]
30723072
End
30733073

3074-
/// @brief Returns the two letter states "AA", "AB" and "BA" for the value and
3074+
/// @brief Returns the two letter states "AA", "BB" and "BA" for the value and
30753075
/// the scaling factors to reach min/center/max
30763076
///
30773077
/// We need the real baseline value (measured), whereas

Packages/MIES/MIES_Constants.ipf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -627,7 +627,7 @@ Constant HARDWARE_DAC_EXTERNAL_TRIGGER = 0x1
627627

628628
/// Used to upgrade the GuiStateWave as well as the DA Ephys panel
629629
Constant DA_EPHYS_PANEL_VERSION = 55
630-
Constant DATA_SWEEP_BROWSER_PANEL_VERSION = 33
630+
Constant DATA_SWEEP_BROWSER_PANEL_VERSION = 34
631631
Constant WAVEBUILDER_PANEL_VERSION = 11
632632
Constant ANALYSISBROWSER_PANEL_VERSION = 1
633633

Packages/MIES/MIES_DataBrowser.ipf

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -212,8 +212,9 @@ Function DB_ResetAndStoreCurrentDBPanel()
212212
SetVariable setvar_Display_EqualYlevel WIN = $bsPanel, value= _NUM:0
213213
Slider slider_BrowserSettings_dDAQ WIN = $bsPanel, value= -1,disable=DISABLE_CONTROL_BIT
214214
CheckBox check_SweepControl_HideSweep WIN = $bsPanel, value= 0
215-
CheckBox check_BrowserSettings_DB_Passed WIN = $bsPanel, value= 0
216-
CheckBox check_BrowserSettings_DB_Failed WIN = $bsPanel, value= 0
215+
CheckBox check_BrowserSettings_DS WIN = $bsPanel, value= 0
216+
CheckBox check_BrowserSettings_DB_Passed WIN = $bsPanel, value= 0,disable=DISABLE_CONTROL_BIT | HIDDEN_CONTROL_BIT
217+
CheckBox check_BrowserSettings_DB_Failed WIN = $bsPanel, value= 0,disable=DISABLE_CONTROL_BIT | HIDDEN_CONTROL_BIT
217218
CheckBox check_BrowserSettings_SF WIN = $bsPanel, value= 0
218219

219220
CheckBox check_BrowserSettings_VisEpochs WIN = $bsPanel, value=0, disable=0

Packages/MIES/MIES_DataBrowser_Macro.ipf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
Window DataBrowser() : Graph
1313
PauseUpdate; Silent 1 // building window...
14-
Display /W=(1256.25,302,1688.25,738.5)/K=1 as "DataBrowser"
14+
Display /W=(402.75,313.25,822.75,640.25)/K=1 as "DataBrowser"
1515
Button button_BSP_open,pos={3.00,3.00},size={24.00,24.00},disable=1,proc=DB_ButtonProc_Panel
1616
Button button_BSP_open,title="<<",help={"Open Side Panel"}
1717
Button button_BSP_open,userdata(ResizeControlsInfo)=A"!!,>M!!#8L!!#=#!!#=#z!!#](Aon\"Qzzzzzzzzzzzzzz!!#](Aon\"Qzz"

Packages/MIES/MIES_WaveDataFolderGetters.ipf

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6282,7 +6282,7 @@ End
62826282
Function/WAVE GetAnaFuncDashboardInfoWave(dfr)
62836283
DFREF dfr
62846284

6285-
variable versionOfNewWave = 2
6285+
variable versionOfNewWave = 3
62866286

62876287
ASSERT(DataFolderExistsDFR(dfr), "Invalid dfr")
62886288
WAVE/T/Z/SDFR=dfr wv = dashboardInfoWave
@@ -6291,13 +6291,15 @@ Function/WAVE GetAnaFuncDashboardInfoWave(dfr)
62916291
return wv
62926292
elseif(WaveExists(wv))
62936293
// handle upgrade
6294+
Redimension/N=(-1, 4) wv
62946295
else
6295-
Make/T/N=(MINIMUM_WAVE_SIZE, 3) dfr:dashboardInfoWave/Wave=wv
6296+
Make/T/N=(MINIMUM_WAVE_SIZE, 4) dfr:dashboardInfoWave/Wave=wv
62966297
endif
62976298

62986299
SetDimLabel COLS, 0, $STIMSET_ACQ_CYCLE_ID_KEY, wv
62996300
SetDimLabel COLS, 1, $"Passing Sweeps", wv
63006301
SetDimLabel COLS, 2, $"Failing Sweeps", wv
6302+
SetDimLabel COLS, 3, $"Ongoing DAQ", wv
63016303

63026304
SetWaveVersion(wv, versionOfNewWave)
63036305

Packages/Testing-MIES/UTF_BasicHardwareTests.ipf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4072,7 +4072,7 @@ Function DataBrowserCreatesBackupsByDefault_REENTRY([str])
40724072
sweepNo = AFH_GetLastSweepAcquired(str)
40734073
CHECK_EQUAL_VAR(sweepNo, 0)
40744074

4075-
DB_OpenDataBrowser()
4075+
OpenDatabrowser()
40764076

40774077
WAVE sweepWave = GetSweepWave(str, 0)
40784078
DFREF sweepFolder = GetWavesDataFolderDFR(sweepWave)

Packages/Testing-MIES/UTF_HardwareMain.ipf

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -993,18 +993,14 @@ End
993993

994994
static Function CheckDashboard(string device, WAVE headstageQC)
995995

996-
string databrowser, bsPanel
996+
string databrowser
997997
variable numEntries, i, state
998998

999999
databrowser = DB_FindDataBrowser(device)
10001000
DFREF dfr = BSP_GetFolder(databrowser, MIES_BSP_PANEL_FOLDER)
10011001
WAVE/T/Z listWave = GetAnaFuncDashboardListWave(dfr)
10021002
CHECK_WAVE(listWave, TEXT_WAVE)
10031003

1004-
// enable the dashboard
1005-
bsPanel = BSP_GetPanel(databrowser)
1006-
PGC_SetAndActivateControl(bsPanel, "check_BrowserSettings_DS", val = 1)
1007-
10081004
// Check that we have acquired some sweeps
10091005
WAVE numericalValues = GetLBNumericalValues(device)
10101006
WAVE/Z sweeps = GetSweepsWithSetting(numericalValues, "SweepNum")
@@ -1316,3 +1312,11 @@ Function StopTPWhenFinished(STRUCT WMBackgroundStruct &s)
13161312

13171313
return 0
13181314
End
1315+
1316+
Function OpenDatabrowser()
1317+
string win, bsPanel
1318+
1319+
win = DB_OpenDatabrowser()
1320+
bsPanel = BSP_GetPanel(win)
1321+
PGC_SetAndActivateControl(bsPanel, "check_BrowserSettings_DS", val = 1)
1322+
End

Packages/Testing-MIES/UTF_MultiPatchSeqDaScale.ipf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ static Function AcquireData(s, device, [postInitializeFunc, preAcquireFunc])
6565
MSQ_CreateOverrideResults(device, 0, MSQ_DA_SCALE)
6666

6767
PGC_SetAndActivateControl(device, "DataAcquireButton")
68-
DB_OpenDatabrowser()
68+
OpenDatabrowser()
6969
End
7070

7171
static Constant INDEP_EACH_SCI = 0x01

Packages/Testing-MIES/UTF_MultiPatchSeqFastRheoEstimate.ipf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ static Function AcquireData(s, device, [postInitializeFunc, preAcquireFunc])
7171
endif
7272

7373
PGC_SetAndActivateControl(device, "DataAcquireButton")
74-
DB_OpenDatabrowser()
74+
OpenDatabrowser()
7575
End
7676

7777
static Constant INDEP_EACH_SCI = 0x01

0 commit comments

Comments
 (0)