Skip to content

Commit b2acfd6

Browse files
committed
changes
1 parent e8dc698 commit b2acfd6

11 files changed

+143
-100
lines changed

Packages/MIES/MIES_AmplifierInteraction.ipf

+44-1
Original file line numberDiff line numberDiff line change
@@ -1335,6 +1335,49 @@ static Function/S AI_AmpStorageControlToRowLabel(string ctrl)
13351335
endswitch
13361336
End
13371337

1338+
Function AI_WriteToAmplifier(string device, variable headStage, variable mode, variable func, variable value, [variable checkBeforeWrite, variable selectAmp])
1339+
ASSERT(AI_IsSetterFunc(func), "Can only query amplifier values, use AI_WriteToAmplifier instead.")
1340+
1341+
if(ParamIsDefault(checkBeforeWrite))
1342+
checkBeforeWrite = 0
1343+
else
1344+
checkBeforeWrite = !!checkBeforeWrite
1345+
endif
1346+
1347+
if(ParamIsDefault(selectAmp))
1348+
selectAmp = 1
1349+
else
1350+
selectAmp = !!selectAmp
1351+
endif
1352+
1353+
return AI_UpdateAmpModel(device, headStage, clampMode = mode, func = func, value = value, checkBeforeWrite = checkBeforeWrite, selectAmp = selectAmp)
1354+
End
1355+
1356+
Function AI_ReadFromAmplifier(string device, variable headStage, variable mode, variable func, variable value, [variable checkBeforeWrite, variable usePrefixes, variable selectAmp])
1357+
1358+
ASSERT(!AI_IsSetterFunc(func), "Can only query amplifier values, use AI_WriteToAmplifier instead.")
1359+
1360+
if(ParamIsDefault(checkBeforeWrite))
1361+
checkBeforeWrite = 0
1362+
else
1363+
checkBeforeWrite = !!checkBeforeWrite
1364+
endif
1365+
1366+
if(ParamIsDefault(usePrefixes))
1367+
usePrefixes = 0
1368+
else
1369+
usePrefixes = !!usePrefixes
1370+
endif
1371+
1372+
if(ParamIsDefault(selectAmp))
1373+
selectAmp = 1
1374+
else
1375+
selectAmp = !!selectAmp
1376+
endif
1377+
1378+
return AI_SendToAmp(device, headStage, mode, func, value, checkBeforeWrite = checkBeforeWrite, usePrefixes = usePrefixes, selectAmp = selectAmp)
1379+
End
1380+
13381381
/// @brief Generic interface to call MCC amplifier functions
13391382
///
13401383
/// @param device locked panel name to work on
@@ -1350,7 +1393,7 @@ End
13501393
/// before use, some callers might save time in doing that once themselves.
13511394
///
13521395
/// @returns return value (for getters, respects `usePrefixes`), success (`0`) or error (`NaN`).
1353-
Function AI_SendToAmp(string device, variable headStage, variable mode, variable func, variable value, [variable checkBeforeWrite, variable usePrefixes, variable selectAmp])
1396+
static Function AI_SendToAmp(string device, variable headStage, variable mode, variable func, variable value, [variable checkBeforeWrite, variable usePrefixes, variable selectAmp])
13541397

13551398
variable ret, headstageMode, scale
13561399
string str, name

Packages/MIES/MIES_AnalysisFunctions_PatchSeq.ipf

+3-3
Original file line numberDiff line numberDiff line change
@@ -6276,15 +6276,15 @@ Function PSQ_Chirp(string device, STRUCT AnalysisFunction_V3 &s)
62766276
endif
62776277

62786278
WAVE result = LBN_GetNumericWave()
6279-
initLPF = AI_SendToAmp(device, s.headstage, I_CLAMP_MODE, MCC_GETPRIMARYSIGNALLPF_FUNC, NaN)
6279+
initLPF = AI_ReadFromAmplifier(device, s.headstage, I_CLAMP_MODE, MCC_GETPRIMARYSIGNALLPF_FUNC, NaN)
62806280
ASSERT(IsFinite(initLPF), "Queried LPF value from MCC amp is non-finite")
62816281
result[INDEP_HEADSTAGE] = initLPF
62826282
key = CreateAnaFuncLBNKey(PSQ_CHIRP, PSQ_FMT_LBN_CR_INIT_LPF)
62836283
ED_AddEntryToLabnotebook(device, key, result, overrideSweepNo = s.sweepNo, unit = "Hz")
62846284

62856285
ampBesselFilter = AFH_GetAnalysisParamNumerical("AmpBesselFilter", s.params, defValue = PSQ_CR_DEFAULT_LPF)
62866286

6287-
ret = AI_SendToAmp(device, s.headstage, I_CLAMP_MODE, MCC_SETPRIMARYSIGNALLPF_FUNC, ampBesselFilter, selectAmp = 0)
6287+
ret = AI_WriteToAmplifier(device, s.headstage, I_CLAMP_MODE, MCC_SETPRIMARYSIGNALLPF_FUNC, ampBesselFilter, selectAmp = 0)
62886288
ASSERT(!ret, "Could not set LPF in MCC")
62896289
endif
62906290
break
@@ -6410,7 +6410,7 @@ Function PSQ_Chirp(string device, STRUCT AnalysisFunction_V3 &s)
64106410
key = CreateAnaFuncLBNKey(PSQ_CHIRP, PSQ_FMT_LBN_CR_INIT_LPF, query = 1)
64116411
ampBesselFilter = GetLastSettingIndepSCI(numericalValues, s.sweepNo, key, s.headstage, UNKNOWN_MODE)
64126412
ASSERT(IsFinite(ampBesselFilter), "Expected finite value for the amplifier bessel filter")
6413-
ret = AI_SendToAmp(device, s.headstage, I_CLAMP_MODE, MCC_SETPRIMARYSIGNALLPF_FUNC, ampBesselFilter)
6413+
ret = AI_WriteToAmplifier(device, s.headstage, I_CLAMP_MODE, MCC_SETPRIMARYSIGNALLPF_FUNC, ampBesselFilter)
64146414
ASSERT(IsFinite(ret), "Can not set LPF value in MCC amp")
64156415
endif
64166416

Packages/MIES/MIES_Configuration.ipf

+18-18
Original file line numberDiff line numberDiff line change
@@ -2211,8 +2211,8 @@ static Function CONF_GetAmplifierSettings(string device)
22112211
JSON_AddBoolean(jsonID, jsonPath + EXPCONFIG_JSON_AMP_COMP_CHAIN, DAG_GetNumericalValue(device, "check_DataAcq_Amp_Chain"))
22122212

22132213
// MCC settings without GUI control
2214-
JSON_AddVariable(jsonID, jsonPath + EXPCONFIG_JSON_AMP_LPF, AI_SendToAmp(device, i, V_CLAMP_MODE, MCC_GETPRIMARYSIGNALLPF_FUNC, NaN))
2215-
JSON_AddVariable(jsonID, jsonPath + EXPCONFIG_JSON_AMP_GAIN, AI_SendToAmp(device, i, V_CLAMP_MODE, MCC_GETPRIMARYSIGNALGAIN_FUNC, NaN))
2214+
JSON_AddVariable(jsonID, jsonPath + EXPCONFIG_JSON_AMP_LPF, AI_ReadFromAmplifier(device, i, V_CLAMP_MODE, MCC_GETPRIMARYSIGNALLPF_FUNC, NaN))
2215+
JSON_AddVariable(jsonID, jsonPath + EXPCONFIG_JSON_AMP_GAIN, AI_ReadFromAmplifier(device, i, V_CLAMP_MODE, MCC_GETPRIMARYSIGNALGAIN_FUNC, NaN))
22162216

22172217
jsonPath = basePath + "/" + EXPCONFIG_JSON_AMPBLOCK + "/" + EXPCONFIG_JSON_ICBLOCK + "/"
22182218

@@ -2236,8 +2236,8 @@ static Function CONF_GetAmplifierSettings(string device)
22362236
JSON_AddVariable(jsonID, jsonPath + EXPCONFIG_JSON_AMP_PIPETTE_OFFSET_IC, DAG_GetNumericalValue(device, "setvar_DataAcq_PipetteOffset_IC"))
22372237

22382238
// MCC settings without GUI control
2239-
JSON_AddVariable(jsonID, jsonPath + EXPCONFIG_JSON_AMP_LPF, AI_SendToAmp(device, i, I_CLAMP_MODE, MCC_GETPRIMARYSIGNALLPF_FUNC, NaN))
2240-
JSON_AddVariable(jsonID, jsonPath + EXPCONFIG_JSON_AMP_GAIN, AI_SendToAmp(device, i, I_CLAMP_MODE, MCC_GETPRIMARYSIGNALGAIN_FUNC, NaN))
2239+
JSON_AddVariable(jsonID, jsonPath + EXPCONFIG_JSON_AMP_LPF, AI_ReadFromAmplifier(device, i, I_CLAMP_MODE, MCC_GETPRIMARYSIGNALLPF_FUNC, NaN))
2240+
JSON_AddVariable(jsonID, jsonPath + EXPCONFIG_JSON_AMP_GAIN, AI_ReadFromAmplifier(device, i, I_CLAMP_MODE, MCC_GETPRIMARYSIGNALGAIN_FUNC, NaN))
22412241

22422242
if(clampMode != I_CLAMP_MODE)
22432243
DAP_ChangeHeadStageMode(device, clampMode, i, DO_MCC_MIES_SYNCING)
@@ -2310,13 +2310,13 @@ static Function CONF_RestoreAmplifierSettings(string device, variable headStage,
23102310
// MCC settings without GUI control
23112311
val = JSON_GetVariable(jsonID, path + EXPCONFIG_JSON_AMP_LPF, ignoreErr = 1)
23122312
if(!IsNaN(val))
2313-
ret = AI_SendToAmp(device, headstage, V_CLAMP_MODE, MCC_SETPRIMARYSIGNALLPF_FUNC, val)
2313+
ret = AI_WriteToAmplifier(device, headstage, V_CLAMP_MODE, MCC_SETPRIMARYSIGNALLPF_FUNC, val)
23142314
ASSERT(ret == 0, "Could not set LPF primary output")
23152315
endif
23162316

23172317
val = JSON_GetVariable(jsonID, path + EXPCONFIG_JSON_AMP_GAIN, ignoreErr = 1)
23182318
if(!IsNaN(val))
2319-
ret = AI_SendToAmp(device, headstage, V_CLAMP_MODE, MCC_SETPRIMARYSIGNALGAIN_FUNC, val)
2319+
ret = AI_WriteToAmplifier(device, headstage, V_CLAMP_MODE, MCC_SETPRIMARYSIGNALGAIN_FUNC, val)
23202320
ASSERT(ret == 0, "Could not set primary output gain")
23212321
endif
23222322

@@ -2344,13 +2344,13 @@ static Function CONF_RestoreAmplifierSettings(string device, variable headStage,
23442344
// MCC settings without GUI control
23452345
val = JSON_GetVariable(jsonID, path + EXPCONFIG_JSON_AMP_LPF, ignoreErr = 1)
23462346
if(!IsNaN(val))
2347-
ret = AI_SendToAmp(device, headstage, I_CLAMP_MODE, MCC_SETPRIMARYSIGNALLPF_FUNC, val)
2347+
ret = AI_WriteToAmplifier(device, headstage, I_CLAMP_MODE, MCC_SETPRIMARYSIGNALLPF_FUNC, val)
23482348
ASSERT(ret == 0, "Could not set LPF primary output")
23492349
endif
23502350

23512351
val = JSON_GetVariable(jsonID, path + EXPCONFIG_JSON_AMP_GAIN, ignoreErr = 1)
23522352
if(!IsNaN(val))
2353-
ret = AI_SendToAmp(device, headstage, I_CLAMP_MODE, MCC_SETPRIMARYSIGNALGAIN_FUNC, val)
2353+
ret = AI_WriteToAmplifier(device, headstage, I_CLAMP_MODE, MCC_SETPRIMARYSIGNALGAIN_FUNC, val)
23542354
ASSERT(ret == 0, "Could not set LPF primary output")
23552355
endif
23562356

@@ -2392,30 +2392,30 @@ static Function CONF_MCC_MidExp(string device, variable headStage, variable json
23922392

23932393
if(clampMode == V_CLAMP_MODE)
23942394

2395-
settingValue = AI_SendToAmp(device, headStage, V_CLAMP_MODE, MCC_GETPIPETTEOFFSET_FUNC, NaN, checkBeforeWrite = 1)
2395+
settingValue = AI_ReadFromAmplifier(device, headStage, V_CLAMP_MODE, MCC_GETPIPETTEOFFSET_FUNC, NaN, checkBeforeWrite = 1)
23962396
PGC_SetAndActivateControl(device, "setvar_DataAcq_PipetteOffset_VC", val = settingValue)
23972397
PGC_SetAndActivateControl(device, "setvar_DataAcq_PipetteOffset_IC", val = settingValue)
2398-
settingValue = AI_SendToAmp(device, headStage, V_CLAMP_MODE, MCC_GETHOLDING_FUNC, NaN, checkBeforeWrite = 1)
2398+
settingValue = AI_ReadFromAmplifier(device, headStage, V_CLAMP_MODE, MCC_GETHOLDING_FUNC, NaN, checkBeforeWrite = 1)
23992399
PGC_SetAndActivateControl(device, "setvar_DataAcq_Hold_VC", val = settingValue)
2400-
settingValue = AI_SendToAmp(device, headStage, V_CLAMP_MODE, MCC_GETHOLDINGENABLE_FUNC, NaN, checkBeforeWrite = 1)
2400+
settingValue = AI_ReadFromAmplifier(device, headStage, V_CLAMP_MODE, MCC_GETHOLDINGENABLE_FUNC, NaN, checkBeforeWrite = 1)
24012401
PGC_SetAndActivateControl(device, "check_DatAcq_HoldEnableVC", val = settingValue)
24022402
PGC_SetAndActivateControl(device, "check_DataAcq_AutoBias", val = CHECKBOX_SELECTED)
24032403
printf "HeadStage %d is in V-Clamp mode and has been configured from the MCC. I-Clamp settings were reset to initial values, check before switching!\r", headStage
24042404
elseif(clampMode == I_CLAMP_MODE)
2405-
settingValue = AI_SendToAmp(device, headStage, I_CLAMP_MODE, MCC_GETPIPETTEOFFSET_FUNC, NaN, checkBeforeWrite = 1)
2405+
settingValue = AI_ReadFromAmplifier(device, headStage, I_CLAMP_MODE, MCC_GETPIPETTEOFFSET_FUNC, NaN, checkBeforeWrite = 1)
24062406
PGC_SetAndActivateControl(device, "setvar_DataAcq_PipetteOffset_VC", val = settingValue)
24072407
PGC_SetAndActivateControl(device, "setvar_DataAcq_PipetteOffset_IC", val = settingValue)
2408-
settingValue = AI_SendToAmp(device, headStage, I_CLAMP_MODE, MCC_GETHOLDING_FUNC, NaN, checkBeforeWrite = 1)
2408+
settingValue = AI_ReadFromAmplifier(device, headStage, I_CLAMP_MODE, MCC_GETHOLDING_FUNC, NaN, checkBeforeWrite = 1)
24092409
PGC_SetAndActivateControl(device, "setvar_DataAcq_Hold_IC", val = settingValue)
2410-
settingValue = AI_SendToAmp(device, headStage, I_CLAMP_MODE, MCC_GETHOLDINGENABLE_FUNC, NaN, checkBeforeWrite = 1)
2410+
settingValue = AI_ReadFromAmplifier(device, headStage, I_CLAMP_MODE, MCC_GETHOLDINGENABLE_FUNC, NaN, checkBeforeWrite = 1)
24112411
PGC_SetAndActivateControl(device, "check_DatAcq_HoldEnable", val = settingValue)
2412-
settingValue = AI_SendToAmp(device, headStage, I_CLAMP_MODE, MCC_GETBRIDGEBALRESIST_FUNC, NaN, checkBeforeWrite = 1)
2412+
settingValue = AI_ReadFromAmplifier(device, headStage, I_CLAMP_MODE, MCC_GETBRIDGEBALRESIST_FUNC, NaN, checkBeforeWrite = 1)
24132413
PGC_SetAndActivateControl(device, "setvar_DataAcq_BB", val = settingValue)
2414-
settingValue = AI_SendToAmp(device, headStage, I_CLAMP_MODE, MCC_GETBRIDGEBALENABLE_FUNC, NaN, checkBeforeWrite = 1)
2414+
settingValue = AI_ReadFromAmplifier(device, headStage, I_CLAMP_MODE, MCC_GETBRIDGEBALENABLE_FUNC, NaN, checkBeforeWrite = 1)
24152415
PGC_SetAndActivateControl(device, "check_DatAcq_BBEnable", val = settingValue)
2416-
settingValue = AI_SendToAmp(device, headStage, I_CLAMP_MODE, MCC_GETNEUTRALIZATIONCAP_FUNC, NaN, checkBeforeWrite = 1)
2416+
settingValue = AI_ReadFromAmplifier(device, headStage, I_CLAMP_MODE, MCC_GETNEUTRALIZATIONCAP_FUNC, NaN, checkBeforeWrite = 1)
24172417
PGC_SetAndActivateControl(device, "setvar_DataAcq_CN", val = settingValue)
2418-
settingValue = AI_SendToAmp(device, headStage, I_CLAMP_MODE, MCC_GETNEUTRALIZATIONENABL_FUNC, NaN, checkBeforeWrite = 1)
2418+
settingValue = AI_ReadFromAmplifier(device, headStage, I_CLAMP_MODE, MCC_GETNEUTRALIZATIONENABL_FUNC, NaN, checkBeforeWrite = 1)
24192419
PGC_SetAndActivateControl(device, "check_DatAcq_CNEnable", val = settingValue)
24202420
PGC_SetAndActivateControl(device, "check_DataAcq_AutoBias", val = CHECKBOX_UNSELECTED)
24212421
PGC_SetAndActivateControl(device, "check_DatAcq_HoldEnableVC", val = CHECKBOX_UNSELECTED)

Packages/MIES/MIES_DataAcquisition.ipf

+2-2
Original file line numberDiff line numberDiff line change
@@ -294,8 +294,8 @@ Function DQ_ApplyAutoBias(string device, WAVE TPResults)
294294
current *= DAG_GetNumericalValue(device, "setvar_Settings_AutoBiasPerc") * PERCENT_TO_ONE
295295

296296
// check if holding is enabled. If it is not, ignore holding current value.
297-
if(AI_SendToAmp(device, headStage, I_CLAMP_MODE, MCC_GETHOLDINGENABLE_FUNC, NaN))
298-
actualCurrent = AI_SendToAmp(device, headStage, I_CLAMP_MODE, MCC_GETHOLDING_FUNC, NaN, usePrefixes = 0)
297+
if(AI_ReadFromAmplifier(device, headStage, I_CLAMP_MODE, MCC_GETHOLDINGENABLE_FUNC, NaN))
298+
actualCurrent = AI_ReadFromAmplifier(device, headStage, I_CLAMP_MODE, MCC_GETHOLDING_FUNC, NaN, usePrefixes = 0)
299299
else
300300
actualCurrent = 0
301301
endif

Packages/MIES/MIES_ExperimentDocumentation.ipf

+4-4
Original file line numberDiff line numberDiff line change
@@ -868,10 +868,10 @@ Function ED_TPDocumentation(string device)
868868
continue
869869
endif
870870

871-
TPSettingsWave[0][4][i] = AI_SendToAmp(device, i, V_CLAMP_MODE, MCC_GETFASTCOMPCAP_FUNC, NaN, selectAmp = 0)
872-
TPSettingsWave[0][5][i] = AI_SendToAmp(device, i, V_CLAMP_MODE, MCC_GETSLOWCOMPCAP_FUNC, NaN, selectAmp = 0)
873-
TPSettingsWave[0][6][i] = AI_SendToAmp(device, i, V_CLAMP_MODE, MCC_GETFASTCOMPTAU_FUNC, NaN, selectAmp = 0)
874-
TPSettingsWave[0][7][i] = AI_SendToAmp(device, i, V_CLAMP_MODE, MCC_GETSLOWCOMPTAU_FUNC, NaN, selectAmp = 0)
871+
TPSettingsWave[0][4][i] = AI_ReadFromAmplifier(device, i, V_CLAMP_MODE, MCC_GETFASTCOMPCAP_FUNC, NaN, selectAmp = 0)
872+
TPSettingsWave[0][5][i] = AI_ReadFromAmplifier(device, i, V_CLAMP_MODE, MCC_GETSLOWCOMPCAP_FUNC, NaN, selectAmp = 0)
873+
TPSettingsWave[0][6][i] = AI_ReadFromAmplifier(device, i, V_CLAMP_MODE, MCC_GETFASTCOMPTAU_FUNC, NaN, selectAmp = 0)
874+
TPSettingsWave[0][7][i] = AI_ReadFromAmplifier(device, i, V_CLAMP_MODE, MCC_GETSLOWCOMPTAU_FUNC, NaN, selectAmp = 0)
875875
endfor
876876

877877
TPSettingsWave[0][1][0, NUM_HEADSTAGES - 1] = (hsProp[r][%ClampMode] == V_CLAMP_MODE) ? TPResults[%BaselineSteadyState][r] : NaN

0 commit comments

Comments
 (0)