blm_get_frame_data_c

	status.i4.v = blm_get_frame_data_c(detector.ch.d, type.i4.v,
					   start_frame.i4.v, max_frames.i4.v,
					   readout_spec.s.r, losses.r4a.r,
					   loss_status.i1a.r, num_frames.i4.r,
					   timestamp.u4.r, nanoseconds.u4.r,
					   metadata.g.v)

	This routine retrieves BLM frame by frame data for a detector
	for the machine last requested by a call to bpm_machine_c.

	detector	ASCII detector name (DEVICE_NAME_LEN characters)
	type		type of BLM frame
			(BPM_SNAPSHOT -> snapshot frame)
	start_frame	starting frame number (starts at 1)
	max_frames	maximum number of frames to return
	readout_spec	readout specification
			(BPM_TEVATRON -> structure of type
					 BLM_TEVATRON_READOUT_SPEC,
			 BPM_TEV_DEVL -> structure of type
					 BLM_TEVATRON_READOUT_SPEC,
			 BPM_MAIN_INJECTOR -> structure of type
					      BLM_MI_READOUT_SPEC,
			 BPM_MI_DEVL -> structure of type BLM_MI_READOUT_SPEC,
			 BPM_RECYCLER -> structure of type
					 BLM_RECYCLER_READOUT_SPEC,
			 BPM_CDF -> structure of type BLM_CDF_READOUT_SPEC)
	losses		returned frame by frame loss values in rads per second
			(or simply rads in the case of integrated data)
	loss_status	returned frame by frame loss status values
			(BPM_OK -> successful read,
			 BPM_INVALID -> invalid data,
			 BPM_ERROR -> error reading data)
	num_frames	returned number of valid frames
	timestamp	returned timestamp in clinks when the data was taken
			(A value of NULL may be passed if this value is
			 not desired.)
	nanoseconds	returned fractional second in nanoseconds
			when the data was taken
			(A value of NULL may be passed if this value is
			 not desired.)
	metadata	returned metadata structure
			(BPM_TEVATRON -> structure of type
					 BLM_TEVATRON_METADATA,
			 BPM_TEV_DEVL -> structure of type
					 BLM_TEVATRON_METADATA,
			 BPM_MAIN_INJECTOR -> structure of type
					      BLM_MI_METADATA,
			 BPM_MI_DEVL -> structure of type BLM_MI_METADATA,
			 BPM_RECYCLER -> structure of type
					 BLM_RECYCLER_METADATA,
			 BPM_CDF -> structure of type BLM_CDF_METADATA)

	This function returns ACNET status values as follows:

	OK			success
	CBS_NOTYET		not supported for the currently selected
				machine
	CBS_INVARG		invalid detector requested
	CBS_NODAT		no frames are available
	CBS_CORRUPT		raw data from BLM is corrupt
	otherwise		DIO error

	This function requires the following include files:

	ul_cbsaux/bpmuti.h, acnet_errors_h

	Related functions:

	blm_get_file_frame_data_c, bpm_machine_c, blm_get_frame_list_data_c,
	blm_get_names, blm_query, blm_name_to_index_c, blm_get_data_c,
	blm_get_locations, blm_get_tbt_data_c, blm_get_tbt_list_data_c,
	bpm_get_frame_data_c, bpm_get_file_frame_data_c

	C/C++ usage:

	static const char	detector[DEVICE_NAME_LEN+1] = "I:LM100";
	char	loss_status[MAX_FRAMES];
	int	status;
	int	type;
	int	start_frame = 1;
	int	max_frames = MAX_FRAMES;
	int	num_frames;
	unsigned int	timestamp;
	unsigned int	nanoseconds;
	float	losses[MAX_FRAMES];
	void	*readout_spec = (void *) NULL;
	void	*metadata = (void *) NULL;

	status = blm_get_frame_data_c(detector,type,start_frame,max_frames,
				      readout_spec,losses,loss_status,
				      &num_frames,&timestamp,&nanoseconds,
				      metadata);