Click or drag to resize

IVI-COM Property State Caching Editor

Nimbus allows state caching to be enabled on a property-by-property basis. The Property State Caching Editor allows the driver developer to enable or disable state caching for the selected property and to specify cache couplings. See the topic Understanding Nimbus State Caching for more information.

Important note Important

The state caching logic specified here is only executed when state caching is enabled by the end user. This can be done by passing Cache=True as part of the OptionString parameter to the driver's Initialize method, or it can be done after driver initialization via the IIviDriverOperation.Cache property.


When checked, Nimbus will generate implementation code that caches the property value between calls. This can reduce I/O traffic if redundant calls to the property occur, but it can also lead to cache coherency issues (data in memory out-of-sync with the actual instrument settings) if the property couplings are not thorougly understood and properly specified.

Invalidation list

If state caching is enabled for a property, this list becomes available for specifying cache couplings. The list represents all of the methods and properties which, when executed, cause the cached property value to become invalid. A properly specified list of such coupled methods and properties is critical when state caching is enabled for a property.

To add a method or property to the invalidation list

  1. Click the "+" button to add a new entry.

  2. Enter a cache entry key. Cache keys are expressed in one of the following three formats:

    • PropertyName

      Use this format to invalidate a property defined on the same interface as the property being configured.

      For example, if the property being configured is defined on the IAcme4301Trigger interface, entering Frequency indicates that whenever this property's value is changed, any value previously cached by the implementation of IAcme4301Trigger.Frequency should be discarded.

    • InterfaceName.PropertyName

      Use this format to invalidate a property defined on the same class as the property being configured, where the property satisfies the implementation of the specified interface.

      For example, if the class containing the property being configured implements both the IIviDownconverterIFOutput and IIviDownconverterRFInput interfaces (both of which define a Frequency property), specifying IIviDownconverterIFOutput.Frequency indicates that whenever this property's value is changed, any value previously cached by the implementation of IIviDownconverterIFOutput.Frequency should be discarded. Any value previously cached by the implementation of IIviDownconverterRFInput.Frequency will not be affected.

    • CollectionStyleRepCapItemPath.InterfaceName.PropertyName

      Use this format to invalidate a property defined on a collection-style repeated capability interface.

      In this case, a combination of repeated capability names and repeated capability selectors are specified in addition to the appropriate interface and property name. Examples include:

      • Channel[CHANNEL1].Trace[TRACE2].IAcme4321Acquisition.Frequency

      • Channel[*].Trace[TRACE2].IAcme4321Acquisition.Frequency

      • Channel[CHANNEL1].Trace[*].IAcme4321Acquisition.Frequency

      • Channel[CHANNEL1-CHANNEL3].Trace[*].IAcme4321Acquisition.Frequency

      • Channel[*].Trace[TRACE2,TRACE4].IAcme4321Acquisition.Frequency

      • Channel[CHANNEL1,CHANNEL3-CHANNEL5].Trace[*].IAcme4321Acquisition.Frequency

  3. Press the enter key.

See Also

Download a complete CHM version of this documentation here.