Reflection

Featherweight provides the most comprehensive and coherent known API for introspection of NI LabVIEW™ datatypes.

All of Featherweight’s type-adapting functions rely upon this Reflection API as the basis upon which idiomatic bindings to the LabVIEW type system are built.

Type Reflection Categories

Loosely, all types fall into a few categories:

Primitive Scalar Datatypes
Fixed-Width Types
Numeric
Integers: I8, I16, I32, I64, U8, U16, U32, U64
Floating Point: SGL, DBL, EXT
Complex: CSGL, CDBL, CEXT
Complex: SGLwithUnits, DBLwithUnits, EXTwithUnits
Boolean
Variable-width Handle Types
String
Path
Picture
themes
default
my_theme
Packaged themes are also available in this folder
theme.config
Config file for setting packaged themes
dist
Compiled CSS and JS files
components
Individual component CSS and JS
semantic.json
Contains build settings for gulp

Omitted Types

For completeness and clarity, below are enumerated a few types that do not exist:

  • Fixed-width strings
  • Fixed-width byte arrays (BLOB)
  • Enum64

Additionally, some of the following types were strategically omitted:

  • toolkit-specific types, such as references to hardware product line toolkits
  • semaphore reference types
  • entire object models of VI Server (further reflection of the VIServerControl type is available with existing standard library functionality; Featherweight does not duplicate this)
  • specific reflection of floating point numbers with Units. Use of Units is generally discouraged and avoided by Featherweight developers.

Page authors:

Jack R. Dunaway