From d2a558b2fff670db49929395e0403db6435e9b45 Mon Sep 17 00:00:00 2001 From: Thomas Braun Date: Tue, 6 Feb 2024 18:19:55 +0100 Subject: [PATCH 1/3] MIES_TestPulse_Single.ipf: Zero DAC after stopping acquisition We always pass zeroDAC = 1 for TP MD so there is no reason to deviate for single device from that approach. We also pass the abort on error flag as done in a lot of other call sites of HW_StopAcq. Close #1996 --- Packages/MIES/MIES_TestPulse_Single.ipf | 4 +- .../UTF_TestPulseAndTPDuringDAQ.ipf | 37 +++++++++++++++++++ 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/Packages/MIES/MIES_TestPulse_Single.ipf b/Packages/MIES/MIES_TestPulse_Single.ipf index eeab386b7b..c9afdf33ee 100644 --- a/Packages/MIES/MIES_TestPulse_Single.ipf +++ b/Packages/MIES/MIES_TestPulse_Single.ipf @@ -56,7 +56,7 @@ Function TPS_TestPulseFunc(s) // nothing while (HW_ITC_MoreData(deviceID, flags=(HARDWARE_ABORT_ON_ERROR))) - HW_StopAcq(HARDWARE_ITC_DAC, deviceID, prepareForDAQ = 1) + HW_StopAcq(HARDWARE_ITC_DAC, deviceID, prepareForDAQ = 1, zeroDAC = 1, flags = HARDWARE_ABORT_ON_ERROR) SCOPE_UpdateOscilloscopeData(device, TEST_PULSE_MODE) @@ -160,7 +160,7 @@ Function TPS_StartTestPulseForeground(device, [elapsedTime]) // nothing while (HW_ITC_MoreData(deviceID, flags=(HARDWARE_ABORT_ON_ERROR))) - HW_StopAcq(HARDWARE_ITC_DAC, deviceID, prepareForDAQ = 1) + HW_StopAcq(HARDWARE_ITC_DAC, deviceID, prepareForDAQ = 1, zeroDAC = 1, flags = HARDWARE_ABORT_ON_ERROR) SCOPE_UpdateOscilloscopeData(device, TEST_PULSE_MODE) SCOPE_UpdateGraph(device, TEST_PULSE_MODE) diff --git a/Packages/tests/HardwareBasic/UTF_TestPulseAndTPDuringDAQ.ipf b/Packages/tests/HardwareBasic/UTF_TestPulseAndTPDuringDAQ.ipf index 5253b172e3..29f90cd24b 100644 --- a/Packages/tests/HardwareBasic/UTF_TestPulseAndTPDuringDAQ.ipf +++ b/Packages/tests/HardwareBasic/UTF_TestPulseAndTPDuringDAQ.ipf @@ -1271,3 +1271,40 @@ static Function TPDuringDAQwithPS_REENTRY([str]) CHECK_EQUAL_WAVES(stimScale, {tpAmp, daGain, NaN, NaN, NaN, NaN, NaN, NaN, NaN}, mode = WAVE_DATA) End + +// UTF_TD_GENERATOR v0:SingleMultiDeviceDAQ +// UTF_TD_GENERATOR s0:DeviceNameGenerator +static Function TPZerosDAC([STRUCT IUTF_MDATA &md]) + STRUCT DAQSettings s + InitDAQSettingsFromString(s, "MD" + num2str(md.v0) + "_RA1_I0_L0_BKG1_TP1" + \ + "__HS0_DA0_AD0_CM:IC:_ST:StimulusSetA_DA_0:") + + AcquireData_NG(s, md.s0) + + CtrlNamedBackGround StopTPAfterFiveSeconds, start=(ticks + TP_DURATION_S * 60), period=1, proc=StopTPAfterFiveSeconds_IGNORE +End + +static Function TPZerosDAC_REENTRY([STRUCT IUTF_MDATA &md]) + + variable deviceID, hardwareType, sweepNo, index, ADC + string device + + device = md.s0 + + CHECK_EQUAL_VAR(ROVar(GetDataAcqRunMode(device)), DAQ_NOT_RUNNING) + CHECK_EQUAL_VAR(ROVar(GetTestpulseRunMode(device)), TEST_PULSE_NOT_RUNNING) + + sweepNo = AFH_GetLastSweepAcquired(device) + CHECK_EQUAL_VAR(sweepNo, NaN) + + WAVE numericalValues = GetLBNumericalValues(device) + + [WAVE settings, index] = GetLastSettingChannel(numericalValues, $"", sweepNo, "ADC", 0, XOP_CHANNEL_TYPE_ADC, TEST_PULSE_MODE) + CHECK_WAVE(settings, NUMERIC_WAVE) + + deviceID = ROVar(GetDAQDeviceID(device)) + hardwareType = GetHardwareType(device) + ADC = settings[index] + + CHECK_LE_VAR(HW_ReadADC(hardwareType, deviceID, ADC), 0.01) +End From b64c6fcba7155aa639291b668087f4796f24dbab Mon Sep 17 00:00:00 2001 From: Thomas Braun Date: Tue, 6 Feb 2024 19:18:52 +0100 Subject: [PATCH 2/3] Tests: Add DAQZerosDAC This verifies that we call HW_StopAcq with zeroDAC = 1. Close #1965 --- .../HardwareBasic/UTF_BasicHardwareTests.ipf | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/Packages/tests/HardwareBasic/UTF_BasicHardwareTests.ipf b/Packages/tests/HardwareBasic/UTF_BasicHardwareTests.ipf index cf4412f7d3..8e467572f4 100644 --- a/Packages/tests/HardwareBasic/UTF_BasicHardwareTests.ipf +++ b/Packages/tests/HardwareBasic/UTF_BasicHardwareTests.ipf @@ -343,6 +343,53 @@ static Function ChangeStimSetDuringDAQ_REENTRY([str]) CheckDAQStopReason(str, DQ_STOP_REASON_FINISHED, sweepNo = 2) End +// UTF_TD_GENERATOR v0:SingleMultiDeviceDAQ +// UTF_TD_GENERATOR s0:DeviceNameGenerator +static Function DAQZerosDAC([STRUCT IUTF_MDATA &md]) + STRUCT DAQSettings s + InitDAQSettingsFromString(s, "MD" + num2str(md.v0) + "_RA0_I0_L0_BKG1" + \ + "__HS0_DA0_AD0_CM:IC:_ST:StimulusSetA_DA_0:") + + AcquireData_NG(s, md.s0) +End + +static Function DAQZerosDAC_REENTRY([STRUCT IUTF_MDATA &md]) + + variable deviceID, hardwareType, sweepNo, index, ADC, DAC + string device + + device = md.s0 + + CHECK_EQUAL_VAR(ROVar(GetDataAcqRunMode(device)), DAQ_NOT_RUNNING) + CHECK_EQUAL_VAR(ROVar(GetTestpulseRunMode(device)), TEST_PULSE_NOT_RUNNING) + + sweepNo = AFH_GetLastSweepAcquired(device) + CHECK_EQUAL_VAR(sweepNo, 0) + + WAVE numericalValues = GetLBNumericalValues(device) + + [WAVE settings, index] = GetLastSettingChannel(numericalValues, $"", sweepNo, "ADC", 0, XOP_CHANNEL_TYPE_ADC, DATA_ACQUISITION_MODE) + CHECK_WAVE(settings, NUMERIC_WAVE) + ADC = settings[index] + + [WAVE settings, index] = GetLastSettingChannel(numericalValues, $"", sweepNo, "DAC", 0, XOP_CHANNEL_TYPE_DAC, DATA_ACQUISITION_MODE) + CHECK_WAVE(settings, NUMERIC_WAVE) + DAC = settings[index] + + DFREF dataDFR = GetDeviceDataPath(device) + DFREF sweepDFR = GetSingleSweepFolder(dataDFR, sweepNo) + + // we end the DAC data with high + WAVE/Z DACWave = GetDAQDataSingleColumnWave(sweepDFR, XOP_CHANNEL_TYPE_DAC, DAC) + CHECK_GE_VAR(DACWave[inf], 0.9) + + deviceID = ROVar(GetDAQDeviceID(device)) + hardwareType = GetHardwareType(device) + + // but due to zeroDAC being on we end with around zero + CHECK_LE_VAR(HW_ReadADC(hardwareType, deviceID, ADC), 0.01) +End + // Using unassociated channels works // UTF_TD_GENERATOR DeviceNameGeneratorMD1 static Function UnassociatedChannelsAndTTLs([str]) From 89c9b6d53b9dc9ee198c4b556acc47a54c82bbd0 Mon Sep 17 00:00:00 2001 From: Thomas Braun Date: Mon, 12 Feb 2024 18:23:21 +0100 Subject: [PATCH 3/3] ctags.cnf: Exclude some more igortest folders --- ctags.cnf | 1 + 1 file changed, 1 insertion(+) diff --git a/ctags.cnf b/ctags.cnf index 8aa8503894..103d95d38b 100644 --- a/ctags.cnf +++ b/ctags.cnf @@ -5,3 +5,4 @@ --exclude=tools/installer/* --exclude=Packages/igortest/internal_dev/* --exclude=Packages/igortest/docu/* +--exclude=Packages/igortest/tests/*