dio_raw_to_value_text_custom_c

	status.i4.v = dio_raw_to_value_text_custom_c(raw_data.g.v,
						     value_strings.i1a.r,
						     errors.i2a.r,
						     num_devices.i4.v,
						     convert_type.i4.v,
						     format.i4.v,
						     value_length.i4.v,
						     lengths.i4a.r,
						     scaling_lengths.i4a.r,
						     primary_indices.i4a.r,
						     common_indices.i4a.r,
						     display_lengths.i4a.r,
						     display_types.i4a.r,
						     constants.r8a.r,
						     num_constants.i4a.r,
						     same_values.u4.v
						     [,options.u4.v])

	Ths routine converts raw reading or setting data to null terminated
	scaled value text strings using user supplied scaling.

	raw_data	raw reading or setting data returned by a previous
			call to dio_get_raw(_c) or dio_get_lst_raw(_c)
	value_strings	returned null terminated value string or array
			of strings
			("value_length" + 1 characters per device)
	errors		returned ACNET status value or array of returned
			status values
	num_devices	number of devices in list
	convert_type	type of scaling conversion desired
			(DIO_COMMON -> scale to common engineering units,
			 DIO_PRIMARY -> scale to primary units,
			 DIO_RAW -> scale to hex characters)
	format		desired format of output string
			(DIO_FORMAT_NO_SPACES -> no leading or trailing blanks,
			 DIO_FORMAT_SPACE_PADDED -> blank padded to the default
						    length for that device,
			 DIO_FORMAT_UNIFORM_LENGTH -> blank padded to a length
						      of DIO_LONG_DISPLAY_LEN)
	value_length	number of characters for each value
			(Passing a value of CLIB_DEFAULT_ARG will result
			 in using a value of DIO_LONG_DISPLAY_LEN.)
	lengths		device length or array of lengths to be scaled (*)
	scaling_lengths	length or array of lengths indicating atomic size
			of scaling  (The number of values returned per device
			is "lengths"/"scaling_lengths".) (*)
	primary_indices	primary scaling index or array of indices (*)
	common_indices	common (engineering) scaling index or array
			of indices (*)
	display_lengths	display length or array of display lengths
	display_types	display type or array of display types
	constants	constants to be used in the common transform
			scaling (*)
	num_constants	number of constants per device or array of numbers
			(maximum is DIO_PDB_MAX_CONSTANTS per device) (*)
	same_values	argument interpretation flag
			(TRUE -> use the same scaling information for every
				 device (all arguments marked by "(*)"),
			 FALSE -> use individual scaling information for
				  each device)
	[options]	scaling options
			(DIO_DISPLAY_OPT_NONE -> no options selected,
			 DIO_DISPLAY_OPT_ALLOW_TRUNCATED -> allow truncated
							    display strings,
			 DIO_DISPLAY_OPT_NULL_TERMINATE -> null terminate after
							   last nonblank
							   character)

	This function returns status values as follows:

	OK			success
	DIO_BADARG		invalid property index, conversion type,
				or format type passed
	DIO_MEMFAIL		memory allocation failure
	negative value		other ACNET format error
	positive value		number of devices in error

	This function requires the following include files:

	dbprops_h, diolib_h, acnet_errors_h

	Related functions:

	dio_raw_to_value_text_c, dio_raw_to_scaled_custom_c,
	dio_scaled_to_value_text_c, dio_value_text_to_raw_data_c,
	dio_value_text_c, dio_raw_to_scaled_data(_c),
	dio_primary_to_scaled_data_c, dio_scaled_to_raw_data(_c),
	dio_scaled_to_raw_custom_c, dio_get_dev(_c), dio_bld_get(_c),
	dio_get_lst, dio_get_raw(_c), dio_bld_get_raw(_c),
	dio_get_lst_raw(_c), dio_get_pdb, dio_raw_to_status_c,
	dio_raw_to_status_extended_c, dio_raw_to_status_text,
	dio_raw_to_status_text_extended_c, dio_raw_to_scaled_custom_c,
	dio_primary_to_scaled_custom_c, dio_data_type_info_c,
	error_in_list(_c)

	C/C++ usage:

	char	value_string[DIO_LONG_DISPLAY_LEN+1];
	short	raw_data;
	short	error;
	short	property = PRSET;
	int	status;
	int	device_index = 14430;
	int	ftd = FTD_ONESHOT;
	int	lengths[NUM_DEVICES] = {2};
	int	offset = 0;
	int	convert_type = DIO_COMMON;
	int	num_devices = 1;
	int	format = DIO_FORMAT_UNIFORM_LENGTH;
	int	value_length = DIO_LONG_DISPLAY_LEN;
	int	scaling_lengths[NUM_DEVICES] = {2};
	int	primary_indices[NUM_DEVICES] = {0};
	int	common_indices[NUM_DEVICES] = {2};
	int	display_lengths[NUM_DEVICES] = {DIO_SHORT_DISPLAY_LEN};
	int	display_types[NUM_DEVICES] = {DIO_STANDARD_NOTATION};
	static const int	num_constants[NUM_DEVICES] = {2};
	int	same_values = FALSE;
	unsigned int	options = DIO_DISPLAY_OPT_NONE;
	static const double	constants[2*NUM_DEVICES] = {{2, 1}};

	status = dio_get_raw_c(device_index,property,(void *) &raw_data,
			       ftd,lengths[0],offset);

	status = dio_raw_to_value_text_custom_c((void *) &raw_data,value_string,
						&error,num_devices,convert_type,
						format,value_length,lengths,
						scaling_lengths,primary_indices,
						common_indices,display_lengths,
						display_types,constants,
						num_constants,same_values,
						options);