VI Analyzer Enthusiasts Documents

Showing results for 
Search instead for 
Did you mean: 

Useful VIs in _analyzerutils.llb

The following LLB contains several helpful VIs when writing custom VI Analayzer tests, or just any code inspection tools in general:

[LabVIEW 20xx]\vi.lib\addons\analyzer\_analyzerutils.llb

Here is a list of particularly useful VIs in that LLB, along with a brief description of each:

  • VIAnUtil Characterize - Given a Wire reference, this VI returns useful information about that wire, including an array of wire segment endpoints and what direction they flow, along with an indication of whether the wire has any backwards segments.
  • VIAnUtil Check If - Indicates whether or not a given Control reference is an error cluster control or indicator.
  • VIAnUtil Check If - Indicates whether or not a given ObjectFunction reference is an implicit property node or invoke node.
  • VIAnUtil Check Rect - A general utility VI that will check two rectangles (left, top, right, bottom) and see if they overlap.
  • VIAnUtil Check Type If - Similar to VIAnUtil Check If above, but operates on a variant data type value.
  • VIAnUtil Clear Specific - A general utility VI that will check an error cluster for a specific error code, and if TRUE, returns the previous error that was wired in instead.
  • VIAnUtil Filter - Filters out references that match a given Class Name from a GObject reference array.
  • VIAnUtil Get All While Loop End - Given a VI reference, returns references to all the Loop Condition terminals in all While Loops in that VI.
  • VIAnUtil Get Class Hierarchy from Class - Given a Class Name, returns the top-down class hierarchy required to get to that class. For example, if you wire "Ring" to this VI, it will return an array with the values Generic, GObject, Control, Numeric, NamedNumeric, and Ring.
  • VIAnUtil Get Error IO - Returns references and connector pane positions of the error cluster controls and indicator on a VI, along with a Boolean indicating if the VI has a single error in and single error out cluster on its connector pane.
  • VIAnUtil Get ExpressVI - Given a SubVI reference, returns whether or not it is an Instance VI (Express VI), and the name of that Express VI.
  • VIAnUtil Get Nonreentrant SubVIs in For - Given a ForLoop reference, returns information about all non-reentrant subVIs in that For Loop.
  • VIAnUtil Get Owner - Given a Generic reference, returns the owner hierarchy of that object. For example if you passed in a reference to a function inside a While Loop, this VI will return an array with the values TopLevelDiagram, WhileLoop, Diagram, and Function.
  • VIAnUtil Get Terminal Data - Given a Terminal reference, returns the data type variant and VariantDataType enum value describing that data type. For more information on the VariantDataType VIs, browse the vi.lib\Utility\VariantDataType folder.
  • VIAnUtil Get Wire - Given a Wire reference, returns the data type of that wire as a human-readable string.
  • VIAnUtil Has - Indicates whether or not the given VI has a diagram.
  • VIAnUtil Has - Indicates whether or not the given VI has a panel.
  • VIAnUtil Is Control Really - Indicates whether or not a given Control is actually visible. This VI is more reliable than just reading the Visible property, because if a control's owner (tab control, cluster, etc.) is not visible, the Visible property will not necessarily return FALSE, but this VI will.
  • VIAnUtil Is - Indicates whether or not a given control is a System-style control.
  • VIAnUtil Remove Duplicate Strings in - A general utility VI that will remove duplicate strings from a 1D string array, and optionally sort the array.
  • VIAnUtil Test - When writing your own custom VI Analyzer tests, this VI is a simple harness that will run your test on a single VI and return the results. This VI makes it much easier to debug new tests than having to run them through the full VI Analyzer engine.
  • VIAnUtil Valid - Given a SubVI reference, indicates whether or not it is a valid subVI. An example of an "invalid" subVI would be a missing subVI.
  • VIAnUtil VI in vilib, userlib, - A general utility VI that will indicate whether or not a given file path resides in vi.lib, user.lib, or instr.lib.

Note that these VIs are available in core LabVIEW...they do *not* require that the VI Analyzer Toolkit be installed.

Darren Nattinger, CLA
LabVIEW Artisan and Nugget Penman