Learn about the components of a plug-in so you can customize a plug-in you created from a template or develop a new plug-in.

When you create a plug-in named MyFirstPlugin, for example, using the FlexLogger Plug-In Wizard in LabVIEW, the wizard creates a project with the hierarchy shown below.



The VIs within MyFirstPlugin.lvclass are the starting point for code changes. These VIs perform different roles, such as defining parameters and exchanging data with FlexLogger. For details about how these VIs function, refer to Processing Element Class. State information—like a hardware reference—passes between the VIs using the private class data defined in MyFirstPlugin.ctl.



If you plan to develop a plug-in, first test your hardware and drivers using a LabVIEW VI that communicates with third-party instruments. NI recommends that you start with the LabVIEW-only VI provided in some of the examples, including Mouse Input. This LabVIEW-only VI demonstrates how to map functionality from a standalone VI to a FlexLogger plug-in class. For more information, refer to FlexLogger Plug-In Development Kit Examples.

Review the examples installed with the FlexLogger Plug-In Development Kit and refer to the table below for guidance on your plug-in related question.
Table 4. Plug-In Development Guidance
Question Where to Go
How many channels do I need? Refer to Channel Class for details on how plug-in channels communicate with FlexLogger.
How many parameters will I need to edit while logging data? Only setpoint channels can be edited while data logging is in progress.

Refer to Read Setpoint Channels from FlexLogger for details on how to use setpoint channels.

How many plug-in parameters do I need? Plug-in parameter values affect the entire plug-in—for example, the name of a hardware resource.

Refer to Plug-in Class for more information.

How many channel-specific parameters do I need? Channel-specific parameter values are unique to every channel and are defined when creating new plug-in channels.

Refer to Channel Class for more information.

What data do I need to pass between plug-in VIs? You must pass references to any resources you initialize or allocate. For example, if an instrument session is initialized in Configure Session VI, it needs to be passed to Process VI for use and then to Cleanup Session VI for disposal. Important plug-in information can be stored in the private class data of the plug-in (for example, MyFirstPlugin.ctl).
How do I know my plug-in works? Use one of the following approaches to evaluate the functionality of your plug-in by executing the logic and investigating the effect of code changes.
  • Load the plug-in into FlexLogger. Refer to Using Plug-Ins in FlexLogger for more information.
  • Run the plug-in with the Plug-in Environment Simulator. Refer to Interactively Testing Plug-Ins for more information.