DefaultCoerceCallbackViInt64

IVI Library

Ivi_DefaultCoerceCallbackViInt64

Usage

ViStatus Ivi_DefaultCoerceCallbackViInt64(ViSession vi, ViChar repeatedCapability[ ], ViAttr attributeID, ViInt64 attributeValue, ViInt64* coercedValue);

Purpose

This function performs the default actions for coercing a value for a ViInt64 attribute. The IVI engine automatically installs this callback when you call Ivi_AddAttributeViInt64.

You can install your own coerce callback by calling Ivi_SetAttrCoerceCallbackViInt64.

This function does the following:

  1. Calls Ivi_GetAttrRangeTable to obtain the range table for the attribute. If the range table is invalid, the function returns an error.
  2. If there is no range table or its type is not IVI_VAL_COERCED, the function sets the Coerced Value parameter to the value you passed in as the Attribute Value parameter.
  3. Calls Ivi_GetViInt64EntryFromValue to find an entry that matches the value.
  4. If it can find an entry, it sets Coerced Value to the coercedValue field in the range table entry and returns VI_SUCCESS. Otherwise it returns an error.
Note  Do not call this function directly unless you are calling it from your own callback or you have already called Ivi_LockSession.

Parameters

Name Type Description
vi ViSession

The ViSession handle that you obtain from Ivi_SpecificDriverNew. The handle identifies a particular IVI session.

repeatedCapability ViChar[ ]

If the attribute you specify is based on a repeated capability, pass a repeated capability identifier. You can pass one of the identifiers strings that the specific instrument driver defines, or a virtual name the end-user defines in the configuration file.

If the attribute you specify is not based on a repeated capability, pass VI_NULL or an empty string.

attributeID ViAttr

Pass the ID of an attribute for this parameter.

The include file for a specific instrument driver defines constant names for all of the user-accessible attributes that apply to the driver. This includes attributes that the IVI engine defines, attributes that the instrument class defines, and attributes that are specific to the particular instrument. Each defined constant name begins with PREFIX_ATTR_, where PREFIX is the specific instrument prefix.

For each IVI engine attribute, the specific driver include file uses the same constant name that appears in ivi.h, except that the specific instrument prefix replaces the IVI prefix. For example, ivi.h defines IVI_ATTR_CACHE, and the Fluke 45 include file, fl45.h, defines the following constant name:

#define FL45_ATTR_CACHE  IVI_ATTR_CACHE

For each instrument class attribute, the specific driver include file uses the same constant name that appears in the instrument class include file, except that the specific instrument prefix replaces the class prefix. For example, the DMM class include file, ividmm.h, defines IVIDMM_ATTR_RANGE, and fl45.h defines the following constant name:

#define FL45_ATTR_RANGE  IVIDMM_ATTR_RANGE

For each specific instrument attribute, the specific driver include file defines a constant name and assigns a value that is an offset from IVI_SPECIFIC_PUBLIC_ATTR_BASE. For example, fl45.h defines the following constant name:

#define FL45_ATTR_HOLD_THRESHOLD \ (IVI_SPECIFIC_PUBLIC_ATTR_BASE + 3L)

For each attribute that is private to an instrument driver, the instrument driver source file defines a constant name and assigns a value that is an offset from IVI_SPECIFIC_PRIVATE_ATTR_BASE. For example, hp34401a.c defines the following constant name:

#define HP34401A_ATTR_TRIGGER_TYPE \ (IVI_SPECIFIC_PRIVATE_ATTR_BASE + 1L)

attributeValue ViInt64

Specify the value you want to coerce.

coercedValue ViInt64*

If the search succeeds, this parameter returns the value of the coercedValue field of the entry.

You can pass VI_NULL for the parameter if you are not interested in this value.

Return Value

Contains the status code that the function call returns. IVI engine functions can return error and warning values from several sets of status codes. Some status codes are unique to the IVI engine. Other status codes are the same codes that VISA Library functions return. Still others are error or warning values that functions in specific instrument drivers return. Each set of status codes has its own numeric range.

Regardless of the source of the status code, 0 always indicates success, a positive value indicates a warning, and a negative value indicates an error.

Related Topic

IVI Status Codes