status.i4.v = logger_read_array_device_status_c(device_index.i4.v,
							node.u2.v, time.u4.v,

	This routine returns logged status values for an array device.
	A value of NULL can be passed for any return parameters whose
	values are not needed.

	device_index	device index
	array_index	first element to return (starts at 0)
	num_elements	number of array elements to return
	node		Lumberjack source node
			(LOGGER_ANY_NODE -> routine picks a node logging this
					    device and property,
			 LOGGER_FASTEST_NODE -> routine picks node which is
						logging this device and
						property at the fastest rate,
			 LOGGER_COLLIDER_SDA_NODE -> Collider SDA node,
			 LOGGER_PBAR_SDA_NODE -> Pbar SDA node,
			 otherwise -> Lumberjack node value
				      (constants are in 'nodedefs'))
	time		data acquisition time
			(seconds since January 1, 1970 UTC)
	time_nanos	data acquisition time offset in nanoseconds
	first_time	returned first timestamp value
	first_nanos	returned first nanosecond value
	delta_timestamp	returned range of timestamp values for the requested
			array elements
	timestamps	returned array of individual timestamp values
			(A value of NULL can be passed for this argument.)
	nanoseconds	returned array of timestamp fractions of a second in
			(A value of NULL can be passed for this argument.)
	on_states	returned on/off status values
			(TRUE -> device was on,
			 FALSE -> device was off,
			 DIO_NOATT -> on/off attribute not defined)
	ready_states	returned ready/tripped status values
			(TRUE -> device was ready,
			 FALSE -> device was tripped,
			 DIO_NOATT -> ready/tripped attribute not defined)
	remote_states	returned remote/local status values
			(TRUE -> device was in remote,
			 FALSE -> device was in local,
			 DIO_NOATT -> remote/local attribute not defined)
	positive_states	returned polarity status values
			(TRUE -> device was in positive polarity,
			 FALSE -> device was in negative polarity,
			 DIO_NOATT -> polarity attribute not defined)
	ramp_states	returned ramp/DC status values
			(TRUE -> device was ramping,
			 FALSE -> device was DC,
			 DIO_NOATT -> ramp/DC attribute not defined)
	[status_text]	returned DIO_NUM_STATUS_TYPES + 1 characters of XCHAR
			format color coded status text
			(array of XCHAR structures)
			(default is NULL)
	[sample_spec]	data sample specifier whose type depends on the
			value of the "sample_type" argument  (Pass a value
			of NULL if no special sampling is being requested.)
			(LOGGER_SAMPLE_TYPE_DATA_EVENT -> string describing
							  data event,
			 LOGGER_SAMPLE_TYPE_LIST_ID -> integer containing
						       list ID number)
			(default is NULL)
	[sample_type]	type of sample specifier
			(LOGGER_SAMPLE_TYPE_NONE -> don't use the sample
						    specifier (default),
			 LOGGER_SAMPLE_TYPE_DATA_EVENT -> return data sampled
							  on a particular
							  data event,
			 LOGGER_SAMPLE_TYPE_LIST_ID -> return data from a
						       particular list)
	[sda_case]	SDA case to return data for (A value of
			LOGGER_ALL_SDA_CASES indicates that all cases
			should be returned.)
			(default is LOGGER_ALL_SDA_CASES)
	[sda_set]	SDA set to return data for (A value of
			LOGGER_ALL_SDA_SETS indicates that all sets
			should be returned.)
			(default is LOGGER_ALL_SDA_SETS)
	[sda_final_data]indicates whether or not to return only the
			final data samples
			(LOGGER_ANY_SDA_DATA -> return all SDA data values,
			 LOGGER_FINAL_SDA_DATA -> only return the final data
						  values (default))
	[options]	read options
			(LOGGER_OPT_NONE -> no options selected (default),
			 LOGGER_OPT_SDA_DATA -> read SDA data)
	[actual_node]	returned node actually used for data acquisition
			(default is NULL)

	This function returns ACNET status values as follows:

	OK			success
	DBM_NOREC		invalid device index
	LJ_INVARG		invalid property or array index
	LJ_NO_SUCH		requested Lumberjack does not have the
				requested device and property or there
				is no data point at the requested time)
	LJ_MEMFAIL		dynamic memory allocation failure

	This function requires the following include files:

	dbprops_h, nodedefs_h, clib_h, acnet_errors_h

	Related functions:

	logger_read_array_device_c, logger_get_array_device_c,
	logger_get_device_c, logger_get_device_list_c,
	logger_get_device_by_name_c, logger_return_data,
	logger_read_device_c, logger_read_device_by_name_c,
	logger_setnode, logger_return_names, logger_check_alive,
	logger_restart_lists, logger_shutdown, logger_find_device_c,
	logger_name_to_node, logger_available_device_dates_c,
	logger_available_device_data_entries_c, logger_get_list_data_events_c,
	logger_find_lists_by_data_event_c, logger_find_devices_by_data_event_c

	C/C++ usage:

	unsigned short	node = LOGGER_FASTEST_NODE;
	unsigned short	actual_node;
	int	status;
	int	device_index = 149526;
	int	array_index = 0;
	int	num_elements = NUM_ELEMENTS;
	int	on_states[NUM_ELEMENTS];
	int	ready_states[NUM_ELEMENTS];
	int	remote_states[NUM_ELEMENTS];
	int	positive_states[NUM_ELEMENTS];
	int	ramp_states[NUM_ELEMENTS];
	int	sample_type = LOGGER_SAMPLE_TYPE_NONE;
	int	sda_case = LOGGER_ALL_SDA_CASES;
	int	sda_set = LOGGER_ALL_SDA_SETS;
	int	sda_final_data = LOGGER_ANY_SDA_DATA;
	unsigned int	TIME;
	unsigned int	time_nanos = 0;
	unsigned int	first_time;
	unsigned int	first_nanos;
	unsigned int	delta_timestamp;
	unsigned int	timestamps[NUM_ELEMENTS];
	unsigned int	nanoseconds[NUM_ELEMENTS];
	unsigned int	options = LOGGER_OPT_NONE;
	double	values[NUM_ELEMENTS];
	void	*sample_spec = (void *) NULL;

	TIME = date_to_clinks("01-JAN-2006 12:00",&status);
	TIME = convert_seconds_c(TIME,DATE_CLINKS_TO_GMT);

	status = logger_read_array_device_status_c(device_index,array_index,