02-28-2015 07:43 AM
Hi All,
Im trying to acquire Pre & post trigger data but getting error 200281. When I sample for 8 sec and pre-trigger time of 300ms with 1000Hz speed it works fine. But when I sample for 20 sec and pre-trigger time of 800ms with 1000Hz speed, it generates the error. I'm starting the read 2 seconds before giving forced trigger. Below is my code:
m_tskAnalogIP1 = new Task("AnalogIP1");
m_tskAnalogIP1.AIChannels.CreateVoltageChannel("dev6/ai0", "", AITerminalConfiguration.Rse, AI_MIN_RANGE, AI_MAX_RANGE, AIVoltageUnits.Volts);
m_tskAnalogIP1.Timing.ConfigureSampleClock("", 1000.0, SampleClockActiveEdge.Rising, SampleQuantityMode.FiniteSamples, 20000);
m_tskAnalogIP1.Triggers.ReferenceTrigger.ConfigureDigitalEdgeTrigger("/Dev6/PFI0",DigitalEdgeReferenceTriggerEdge.Rising, 800);
m_tskAnalogIP1.Control(TaskAction.Verify);
m_tskRunningAnalogIP1 = m_tskAnalogIP1;
m_tskRunningAnalogIP1.Start();
m_rdrAnalog1 = new AnalogMultiChannelReader(m_tskAnalogIP1.Stream);
m_tskAnalogIP1.SynchronizeCallbacks = true;
m_callbkAnalogIP1 = new AsyncCallback(AnalogRead);
m_rdrAnalog1.BeginReadMultiSample(v_iNoOfSamples, m_callbkAnalogIP1, m_tskAnalogIP1);
Delay(2000);
m_wrtrDigital1.BeginWriteWaveform(true, m_waveformDO, m_callbkDigitalOP1, m_tskDigitalOP1); // forced trigger
.
.
.
private void AnalogRead(IAsyncResult ar)
{
try
{
if (m_tskRunningAnalogIP1 != null && m_tskRunningAnalogIP1 == ar.AsyncState)
{
// Read the data
m_arrdAnalog = m_rdrAnalog1.EndReadMultiSample(ar);
}
m_boolAnalogSamplingFinished = true;
}
catch (Exception ex)
{
}
}
Regards,
Shrinivas
Solved! Go to Solution.
03-02-2015 01:35 AM
Got the solution by adding timeout.
m_tskAnalogIP1 = new Task("AnalogIP1");
m_tskAnalogIP1.AIChannels.CreateVoltageChannel("de
m_tskAnalogIP1.Timing.ConfigureSampleClock("", 1000.0, SampleClockActiveEdge.Rising, SampleQuantityMode.FiniteSamples, 20000);
m_tskAnalogIP1.Triggers.ReferenceTrigger.Configure
m_tskAnalogIP1.Control(TaskAction.Verify);
m_tskRunningAnalogIP1 = m_tskAnalogIP1;
m_tskRunningAnalogIP1.Start();
m_rdrAnalog1 = new AnalogMultiChannelReader(m_tskAnalogIP1.Stream);
m_tskAnalogIP1.Stream.Timeout = 30000;
m_tskAnalogIP1.SynchronizeCallbacks = true;
m_callbkAnalogIP1 = new AsyncCallback(AnalogRead);
m_rdrAnalog1.BeginReadMultiSample(v_iNoOfSamples, m_callbkAnalogIP1, m_tskAnalogIP1);
Delay(2000);
m_wrtrDigital1.BeginWriteWaveform(true, m_waveformDO, m_callbkDigitalOP1, m_tskDigitalOP1); // forced trigger
.
.
.
private void AnalogRead(IAsyncResult ar)
{
try
{
if (m_tskRunningAnalogIP1 != null && m_tskRunningAnalogIP1 == ar.AsyncState)
{
// Read the data
m_arrdAnalog = m_rdrAnalog1.EndReadMultiSample(ar);
}
m_boolAnalogSamplingFinished = true;
}
catch (Exception ex)
{
}
}
Regards,
Shrinivas