bpm_get_names

	status.i4.v = bpm_get_names(horz_names.i1a.r [,vert_names.i1a.r]
				    [ortho_plane.i4.v] [,data_view.u4.v])
				    [,horz_machines.i4a.r]
				    [,vert_machines.i4a.r])

	This routine returns the names of BPMs in the order that their
	values are returned by bpm_get_data_c.  These are the names for
	the currently selected machine.  See bpm_machine_c.

	horz_names	returned horizontal detector names
			(DEVICE_NAME_LEN * num_horz_detectors)
			(A value of NULL can be passed for this argument
			 if these names are not needed.)
	[vert_names]	returned vertical detector names
			(DEVICE_NAME_LEN * num_vert_detectors)
			(A value of NULL can be passed for this argument
			 if these names are not needed.) (default is NULL)
	[ortho_plane]	plane selection (only used for BPM_MAIN_INJECTOR)
			(BPM_MODE_NORMAL -> return names for the normal plane
					    (default),
			 BPM_MODE_ORTHOGONAL -> return names for the
						orthogonal plane,
			 BPM_MODE_CURRENT -> return names for the currently
					     selected plane)
	[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))
	[horz_machines]	returned array of horizontal detector machine values
			(default is NULL)
	[vert_machines]	returned array of vertical detector machine values
			(default is NULL)

	This function returns status values as follows:

	OK			success
	CBS_INVARG		invalid plane mode passed
	CBS_NOTYET		not yet supported for the active machine

	This function requires the following include files:

	cnsparam_h, ul_cbsaux/bpmuti.h

	Related functions:

	bpm_machine_c, bpm_query, bpm_name_to_index_c, bpm_data_source_c,
	bpm_get_data_c, bpm_get_intensity_c, bpm_get_detector_status,
	bpm_get_crates_and_channels

	C/C++ usage:

	char	*horz_names;
	char	*vert_names;
	int	status;
	int	num_horizontal;
	int	num_vertical;
	int	ortho_plane = BPM_MODE_NORMAL;
	int	*horz_machines;
	int	*vert_machines;
	unsigned int	data_view = BPM_VIEW_DEFAULT;

	bpm_query(&num_horizontal,&num_vertical);

	horz_names = (char *) malloc(num_horizontal*DEVICE_NAME_LEN);
	vert_names = (char *) malloc(num_vertical*DEVICE_NAME_LEN);
	horz_machines = (int *) malloc(num_horizontal*(sizeof(int)));
	vert_machines = (int *) malloc(num_vertical*(sizeof(int)));

	status = bpm_get_names(horz_names,vert_names,ortho_plane,data_view,
			       horz_machines,vert_machines);