Frequently Asked Questions
General Questions
Q. I want to trigger and capture a complete data set but only need to transfer 50 data points, which lie many points away from the trigger point. Do I have to transfer the whole card's memory, or do I have random access to the CompuScope card's buffer to transfer only the 50 points I need?
A. You have complete random access to the CompuScope buffer. If you know your event lies, for example, 1000 points away from the trigger point, you can start transfer of the required number of points (in this case, 50 points).
Below is one way to do it using our function call to the gage_trigger_view_transfer routine from our C drivers library. (There are also other routines which can be used to randomly access the data as well.)
(Note: Even using our GageScope stand-alone software, you can get a feel for this in action. Use Triggerview mode to capture a sine wave signal. Triggerview will trigger, capture and display 256 points as fast as 15-30 times per second. While in Triggerview, press the right arrow key and watch as the sine wave scrolls to the left . What we are doing here is using the gage_trigger_view_transfer function and changing the offset parameter. We are displaying 256 points from the offset value.)
The following are the basic Gage function calls needed to set up the board, acquire and transfer data. Note that gage_trigger_view_transfer will transfer up to 4 Ksamples at a time (8K for the CS2125).
boards_in_system = init_driver_hardware();
/* init_driver_hardware is support routine we supply
that finds and initializes the hardware */
prepare_for_capture (boards_in_system, &board);
/* prepare_for_capture is a support routine we supply
that sets up the board parameters */
/* board is a structure that you fill with the desired
settings for sample rate, gain, depth, etc. */
gage_start_capture (0);
while (!gage_triggered ()); /* wait until a trigger has occurred */
while (gage_busy()); /* wait until capture is complete. */
gage_set_trigger_view_offset (1000);
/* gage_set_trigger_view_offset will set an offset
from the trigger address that trigger_view_transfer
will use to start the transfer. It only has to be set
once and the value will remain until it is reset. */
/* transfer 50 samples from channel A and 50 samples
from channel B, starting 1000 points from
where the trigger event occurred. */
gage_trigger_view_transfer (GAGE_CHAN_A, a_buffer, 50);
gage_trigger_view_transfer (GAGE_CHAN_B, b_buffer, 50);
/* data is now in the buffers, so you can display it,
write to a file, etc.
|
back