dio_has_classic_control_attribute_c

	status.i4.v = dio_has_classic_control_attribute_c(device_indices.i4a.r,
							  control_attr.i4.v,
							  has_attribute.i4a.r,
							  errors.i2a.r
							  [,num_devices.i4.v])

	This routine determines whether or not devices have a requested
	control attribute.

	device_indices	device index or array of device indices
	control_attr	desired control attribute
			(DIO_RESET_COMMAND -> reset attribute,
			 DIO_ON_COMMAND -> on attribute,
			 DIO_OFF_COMMAND -> off attribute,
			 DIO_POSITIVE_COMMAND -> positive attribute,
			 DIO_NEGATIVE_COMMAND -> negative attribute,
			 DIO_RAMP_COMMAND -> ramp attribute,
			 DIO_DC_COMMAND -> DC attribute)
	has_attribute	returned attribute status
			(TRUE -> has requested attribute,
			 FALSE -> doesn't have requested attribute,
			 DIO_INVALID_DATA -> error occurred in reading data)
			(A value of NULL can be passed for this argument if
			 only caching of the control attribute information is
			 desired.)
	errors		returned ACNET status value or array of status values
	[num_devices]	number of devices (default is 1)

	This function returns status values as follows:

	OK			success
	DIO_BADARG		invalid number of devices or
				control attribute passed
	DIO_MEMFAIL		memory allocation failure
	negative value		ACNET format error indicating overall failure
	positive value		number of devices in error indicating partial
				success

	This function requires the following include files:

	cnsparam_h, diolib_h, acnet_errors_h

	Related functions:

	dio_pdb_ctl, dio_has_classic_status_attribute_c, error_in_list(_c)

	C/C++ usage:

	short	errors[NUM_DEVICES];
	int	status;
	static const int	device_indices[NUM_DEVICES] = {14430, 14431};
	int	control_attr = DIO_CTL_MSK_RESET;
	int	has_attribute[NUM_DEVICES];
	int	num_devices = NUM_DEVICES;

	status = dio_has_classic_control_attribute_c(device_indices,
						     control_attr,has_attribute,
						     errors,num_devices);