status.i4.v = blm_get_crates_and_channels_c(crates.i4a.r,

	This routine retrieves BLM detector crate and channel values for
	the machine last requested by a call to bpm_machine_c.  A value
	of NULL can be passed for any of the returned arguments that are
	not needed.  The names for the crates can be retrieved using a
	call to bpm_crate_info_c.

	crates		array of crate values
			(0 -> number of crates - 1)
	channels	array of channel values
			(0 -> number of channels - 1)
	[data_view]	data view requested which may result in data being
			returned for multiple machines
			(BPM_VIEW_DEFAULT -> single machine view (default),
			 BPM_VIEW_P1_ONLY -> P1 Line only (P1 Line),
			 BPM_VIEW_P1_P2 -> P1 and P2 lines (P1 Line),
			 BPM_VIEW_P1_P2_M1 -> P1, P2, and M1 lines (P1 Line),
			 BPM_VIEW_P1_P2_M1_M3 -> P1, P2, M1, amd M3 lines
						 (P1 Line),
			 BPM_VIEW_P1_P2_P3 -> P1, P2, and P3 lines (P1 Line),
			 BPM_VIEW_M1_ONLY -> M1 Line only (M1 Line),
			 BPM_VIEW_M1_M3 -> M1 and M3 lines (M1 Line))
	[machines]	returned array of BLM machine values
			(default is NULL)

	This function returns ACNET status values as follows:

	OK			success
	CBS_NOTYET		not yet supported for the active machine
	SQL_xxx			database access error

	This function requires the following include files:

	ul_cbsaux/bpmuti.h, acnet_errors_h

	Related functions:

	blm_to_crate_and_channel_c, bpm_get_crates_and_channels,
	bpm_crate_info_c, bpm_machine_c, blm_get_names, blm_query,
	blm_name_to_index_c, bpm_get_offsets, bpm_get_locations,
	blm_get_locations, bpm_get_data_c, bpm_get_detector_status

	C/C++ usage:

	int	status;
	int	num_losses;
	int	*crates;
	int	*channels;
	int	*machines;
	unsigned int	data_view = BPM_VIEW_DEFAULT;


	crates = (int *) malloc(num_losses*(sizeof(int)));
	channels = (int *) malloc(num_losses*(sizeof(int)));
	machines = (int *) malloc(num_blms*(sizeof(int)));

	status = blm_get_crates_and_channels_c(crates,channels,data_view,