1. Project description

The HORIBA SDK is a powerful tool for anyone working with HORIBA scientific instruments. It simplifies the process of instrument control and data acquisition, allowing users to focus on their research and development tasks. Whether you are conducting experiments, performing quality control, or developing new applications, this SDK provides the necessary tools to streamline your workflow and enhance productivity.

2. DQMH® modules

This section describes DQMH® module responsibilities and relationships.

2.1. Preamble

A DQMH module is the main component of an architecture based on DQMH® framework. A DQMH module is used to implement a section of the application that has one responsibility.

DQMH® framework defines two different type of DQMH module.

Singleton:

A Singleton DQMH module can have only one instance running at any given time.

Cloneable:

A Cloneable DQMH module can have one or multiple instances running in parallel.

DQMH® framework defines two different ways to carry data throughout the application and with both other DQMH modules and non-DQMH based code.

Request events:

A request is a code that fires an event requesting the DQMH module to do something. Multiple locations in the code can send events to the DQMH module.

Request events are many-to-one.

Requests are usually named using imperative tense.

Broadcast events:

A broadcast is a code that fires an event broadcasting that the DQMH module did something. Multiple Event Structures can register to handle the Broadcast Events.

Broadcast Events are one-to-many.

Broadcasts are usually named using past tense or passive voice.

Default events:

By default all the DQMH ® Modules are shipped with some default events (Requests and Broadcasts). Here is the list of this events:

  • Start Module

  • Stop Module

  • Show Panel

  • Hide Panel

  • Show Diagram

  • Status Updated

  • Error Reported

  • Module Did Stop

  • Update Module Execution Status

  • Module Did Init

  • Get Module Execution Status

If you want to learn more about default DQMH ® Events see the documentaiton.

Note
Refer to the DQMH® framework official documentation to find more details on how the framework works

The following section gives you details on the project architecture relying on this framework. It gives you an overview of the modules' interaction and detailed information on each module.

Note

If your module has a helper loop, it will be listed along with the events it processes. Helper loops can be categorized as either DQMH or Custom. To ensure your helper loop adheres to DQMH guidelines see the documentaiton.

Graphs used in this section have the following legend:

Components:

Diagram

Events:

Diagram
Note

One arrow can represent one or more events between two components

Note

Request and Request and wait for Reply are represented by only one arrow. If there is no Request and wait for Reply, Request representation is used. Otherwise Request and wait for Reply is used

Start and Stop module callers:

Diagram
Diagram

2.2. Modules overview

This project contains 2 singleton modules and 0 cloneable module.

Table 1. Modules list
Singleton Cloneable

DeviceManager.lvlib

LiveLogger.lvlib

This graph represents the links between all DQMH modules.

Diagram

2.3. DeviceManager.lvlib

Type: Singleton

Responsibility: This DQMH module takes care of starting and stoping the ICL as well as monitoring any output from the ICL. It also handles any communication to and from the ICL via Websocket requests.

2.3.1. Module relationship

Diagram
Table 2. Requests callers
Request Name Callers

DeviceManager.lvlib:DevicesList

DeviceManager.lvlib:Test DeviceManager API.vi

DeviceManager.lvlib:DiscoverDevices

DeviceManager.lvlib:OpenConnectionWithDevice.vi
DeviceManager.lvlib:Test DeviceManager API.vi

DeviceManager.lvlib:Get Module Execution Status

DeviceManager.lvlib:Obtain Broadcast Events for Registration.vi
DeviceManager.lvlib:Start Module.vi

DeviceManager.lvlib:Hide Panel

DeviceManager.lvlib:Test DeviceManager API.vi

DeviceManager.lvlib:ICLshutdown

DeviceManager.lvlib:CloseConnectionWithDevice.vi
DeviceManager.lvlib:Test DeviceManager API.vi

DeviceManager.lvlib:ICLstartNotification

DeviceManager.lvlib:OpenWebSocketCommunication

DeviceManager.lvlib:OpenConnectionWithDevice.vi
DeviceManager.lvlib:Test DeviceManager API.vi

DeviceManager.lvlib:SendJSONandAskForReply

DeviceManager.lvlib:Test DeviceManager API.vi
GenericDevice.lvclass:Send Receive Parse.vi

DeviceManager.lvlib:Show Diagram

DeviceManager.lvlib:Test DeviceManager API.vi

DeviceManager.lvlib:Show Panel

DeviceManager.lvlib:Test DeviceManager API.vi

DeviceManager.lvlib:StartICL

DeviceManager.lvlib:OpenConnectionWithDevice.vi
DeviceManager.lvlib:Test DeviceManager API.vi

Table 3. Broadcasts Listeners
Broadcast Name Listeners

DeviceManager.lvlib:Error Reported

DeviceManager.lvlib:Test DeviceManager API.vi

DeviceManager.lvlib:Module Did Init

DeviceManager.lvlib:Test DeviceManager API.vi

DeviceManager.lvlib:Module Did Stop

DeviceManager.lvlib:Test DeviceManager API.vi

DeviceManager.lvlib:Status Updated

DeviceManager.lvlib:Test DeviceManager API.vi

DeviceManager.lvlib:Update Module Execution Status

DeviceManager.lvlib:Test DeviceManager API.vi

DeviceManager.lvlib:devicesDiscovered

DeviceManager.lvlib:Test DeviceManager API.vi

DeviceManager.lvlib:iclExeIsRunning

DeviceManager.lvlib:websocketConnectionOpened

DeviceManager.lvlib:Test DeviceManager API.vi

Table 4. Used requests
Module Requests

 — 

 — 

Table 5. Registered broadcast
Module Broadcasts

DeviceManager.lvlib

Error Reported.vi
Module Did Init.vi
Module Did Stop.vi
Status Updated.vi
Update Module Execution Status.vi
devicesDiscovered.vi
iclIsRunning.vi
websocketConnectionOpened.vi

2.3.2. Event list

Table 6. Events
Name Type Connector pane Description S. R. I.

Start Module

empty.png

horiba.lvlib:DeviceManager.lvlib:Start Module.vi

Launches the module Main VI. After calling this VI, you can optionally register for broadcast events from the module by wiring the broadcast events output of this VI to a Register For Events function.

After the optional Register For Events function call, you should always call the Synchronize Module Events.vi for this module with the 'Wait for Event Sync?' output of this VI to the corresponding input of the Synchronize Module Events.vi.

To see an example of the proper wiring pattern, see the "Start Module: Value Change" event frame in the API Tester VI for this module.

empty.png

empty.png

empty.png

Stop Module

empty.png

horiba.lvlib:DeviceManager.lvlib:Stop Module.vi

Send the Stop request to the Module’s Main.vi.

If Wait for Module to Stop? is TRUE, this VI will wait until the module main VI stops, and will timeout at the Timeout to Wait for Stop value. This value defaults to "-1", which means the VI will not timeout, and will always wait until the module main VI stops before completing execution.

Note: The Timeout to Wait for Stop value is ignored if 'Wait for Module to Stop?' is set to FALSE.

empty.png

empty.png

empty.png

Show Panel

request.png

horiba.lvlib:DeviceManager.lvlib:Show Panel.vi

Send the Show Panel request to the Module’s Main.vi.

empty.png

empty.png

empty.png

Hide Panel

request.png

horiba.lvlib:DeviceManager.lvlib:Hide Panel.vi

Send the Hide Panel request to the Module’s Main.vi.

empty.png

empty.png

empty.png

Get Module Execution Status

request.png

horiba.lvlib:DeviceManager.lvlib:Get Module Execution Status.vi

Fire the Get Module Execution Status request.

empty.png

empty.png

empty.png

Show Diagram

request.png

horiba.lvlib:DeviceManager.lvlib:Show Diagram.vi

This VI tells the Module to show its block diagram to facilitate troubleshooting (add probes, breakpoints, highlight execution, etc).

empty.png

empty.png

empty.png

SendJSONandAskForReply

request-and-wait-for-reply.png

horiba.lvlib:DeviceManager.lvlib:SendJSONandAskForReply.vi

This request asks in a synchronous manner to send a JSON string to the ICL, waits the specified time in [ms] and querries the websocket for a reply.

empty.png

empty.png

empty.png

StartICL

request.png

horiba.lvlib:DeviceManager.lvlib:StartICL.vi

This command starts the ICL.exe and its monitoring

empty.png

empty.png

empty.png

OpenWebSocketCommunication

request-and-wait-for-reply.png

horiba.lvlib:DeviceManager.lvlib:OpenWebSocketCommunication.vi

This event opens the websocket communcation from the DeviceManager to the ICL.exe

empty.png

empty.png

empty.png

ICLshutdown

request.png

horiba.lvlib:DeviceManager.lvlib:ICLshutdown.vi

This request sends the command to shutdown the ICL.exe via websocket communication.

empty.png

empty.png

empty.png

DiscoverDevices

request-and-wait-for-reply.png

horiba.lvlib:DeviceManager.lvlib:DiscoverDevices.vi

Requests from the ICL to discover monochromators, cameras and single channel detectors.

empty.png

empty.png

empty.png

DevicesList

request-and-wait-for-reply.png

horiba.lvlib:DeviceManager.lvlib:DevicesList.vi

This event calls mono_list, ccd_list, and scd_list.

empty.png

reentrancy-shared.png

empty.png

Module Did Init

broadcast.png

horiba.lvlib:DeviceManager.lvlib:Module Did Init.vi

Send the Module Did Init event to any VI registered to listen to this module’s broadcast events.

empty.png

reentrancy-shared.png

empty.png

Status Updated

broadcast.png

horiba.lvlib:DeviceManager.lvlib:Status Updated.vi

Send the Status Updated event to any VI registered to listen to events from the owning module.

empty.png

reentrancy-shared.png

empty.png

Error Reported

broadcast.png

horiba.lvlib:DeviceManager.lvlib:Error Reported.vi

Send the Error Reported event to any VI registered to listen to events from the owning module.

empty.png

reentrancy-shared.png

empty.png

Module Did Stop

broadcast.png

horiba.lvlib:DeviceManager.lvlib:Module Did Stop.vi

Send the Module Did Stop event to any VI registered to listen to this module’s broadcast events.

empty.png

reentrancy-shared.png

empty.png

Update Module Execution Status

broadcast.png

horiba.lvlib:DeviceManager.lvlib:Update Module Execution Status.vi

Broadcast event to specify whether or not the module is running.

empty.png

reentrancy-shared.png

empty.png

iclExeIsRunning

broadcast.png

horiba.lvlib:DeviceManager.lvlib:iclExeIsRunning.vi

This broadcast is sent when the ICL has been launched or a already running ICL has been detected.

empty.png

reentrancy-shared.png

empty.png

websocketConnectionOpened

broadcast.png

horiba.lvlib:DeviceManager.lvlib:websocketConnectionOpened.vi

This broadcast is fired when the websocket connection is opened.

empty.png

reentrancy-shared.png

empty.png

devicesDiscovered

broadcast.png

horiba.lvlib:DeviceManager.lvlib:devicesDiscovered.vi

This broadcast is being fired when devices where trying to be discovered. It returns a list of found Monos, CCDs and SCDs.

empty.png

reentrancy-shared.png

empty.png

ICLstartNotification

request.png

horiba.lvlib:DeviceManager.lvlib:ICLstartNotification.vi

This private event is used to tell the ICLcommunication loop that the ICL is running and a communcation via websocket can be established

empty.png

reentrancy-shared.png

empty.png

Type: request → Request | request and wait for reply → Request and Wait for Reply | broadcast → Broadcast

Scope: scope protected → Protected | scope community → Community

Reentrancy: reentrancy preallocated → Preallocated reentrancy | reentrancy shared → Shared reentrancy

Inlining: inlined → Inlined

2.3.3. Module Start/Stop calls

Diagram
Table 7. Start and Stop module callers
Function Callers

Start Module

DeviceManager.lvlib:OpenConnectionWithDevice.vi
DeviceManager.lvlib:Test DeviceManager API.vi

Stop Module

DeviceManager.lvlib:Handle Exit.vi
DeviceManager.lvlib:CloseConnectionWithDevice.vi
DeviceManager.lvlib:Test DeviceManager API.vi

2.3.4. Module Helper Loops

Table 8. Helper Loops Found
Name Helper Loop Type Events Handled

ICLcommunication

Custom

Timeout

DeviceManager Request Events.Stop Module

DeviceManager Request Events.StartICL

DeviceManager Request Events.OpenWebSocketCommunication

DeviceManager Request Events.ICLshutdown

DeviceManager Request Events.SendJSONandAskForReply

DeviceManager Request Events.DiscoverDevices

DeviceManager Request Events.DevicesList

2.3.5. Module custom errors

Tip

Custom errors are added to the module via vi named *--error.vi.

Module DeviceManager.lvlib use the following custom errors:

Table 9. Custom errors
Name Code Description

Module Not Running

0

Error information not found in the code

Module Not Stopped

403682

The Stop Module VI for the %s module timed out while waiting for the module main VI to stop. The module main VI may still be running.

Module Not Synced

403683

%s Module was unable to synchronize events.

Request and Wait for Reply Timeout

403686

2.3.6. Module Constant VIs

Table 10. Constant VIs Found
VI Name Data Type Value

Module Name—​constant.vi

String

DeviceManager

Module Timeout—​constant.vi

I32

5000

2.4. LiveLogger.lvlib

Type: Singleton

Responsibility: This DQMH module initializes a live logger to view everything that is occuring during code execution.

2.4.1. Module relationship

Diagram
Table 11. Requests callers
Request Name Callers

LiveLogger.lvlib:Get Module Execution Status

LiveLogger.lvlib:Obtain Broadcast Events for Registration.vi
LiveLogger.lvlib:Start Module.vi

LiveLogger.lvlib:Hide Panel

LiveLogger.lvlib:Test LiveLogger API.vi

LiveLogger.lvlib:Show Diagram

LiveLogger.lvlib:Test LiveLogger API.vi

LiveLogger.lvlib:Show Panel

LiveLogger.lvlib:Test LiveLogger API.vi

Table 12. Broadcasts Listeners
Broadcast Name Listeners

LiveLogger.lvlib:Error Reported

LiveLogger.lvlib:Test LiveLogger API.vi

LiveLogger.lvlib:Module Did Init

LiveLogger.lvlib:Test LiveLogger API.vi

LiveLogger.lvlib:Module Did Stop

LiveLogger.lvlib:Test LiveLogger API.vi

LiveLogger.lvlib:Status Updated

LiveLogger.lvlib:Test LiveLogger API.vi

LiveLogger.lvlib:Update Module Execution Status

LiveLogger.lvlib:Test LiveLogger API.vi

Table 13. Used requests
Module Requests

horiba.lvlib

LiveLogger.lvlib:Stop Module.vi

Table 14. Registered broadcast
Module Broadcasts

LiveLogger.lvlib

Error Reported.vi
Module Did Init.vi
Module Did Stop.vi
Status Updated.vi
Update Module Execution Status.vi

2.4.2. Event list

Table 15. Events
Name Type Connector pane Description S. R. I.

Start Module

empty.png

horiba.lvlib:LiveLogger.lvlib:Start Module.vi

Launches the module Main VI. After calling this VI, you can optionally register for broadcast events from the module by wiring the broadcast events output of this VI to a Register For Events function.

After the optional Register For Events function call, you should always call the Synchronize Module Events.vi for this module with the 'Wait for Event Sync?' output of this VI to the corresponding input of the Synchronize Module Events.vi.

To see an example of the proper wiring pattern, see the "Start Module: Value Change" event frame in the API Tester VI for this module.

empty.png

empty.png

empty.png

Stop Module

empty.png

horiba.lvlib:LiveLogger.lvlib:Stop Module.vi

Send the Stop request to the Module’s Main.vi.

If Wait for Module to Stop? is TRUE, this VI will wait until the module main VI stops, and will timeout at the Timeout to Wait for Stop value. This value defaults to "-1", which means the VI will not timeout, and will always wait until the module main VI stops before completing execution.

Note: The Timeout to Wait for Stop value is ignored if 'Wait for Module to Stop?' is set to FALSE.

empty.png

reentrancy-shared.png

empty.png

Show Panel

request.png

horiba.lvlib:LiveLogger.lvlib:Show Panel.vi

Send the Show Panel request to the Module’s Main.vi.

empty.png

reentrancy-shared.png

empty.png

Hide Panel

request.png

horiba.lvlib:LiveLogger.lvlib:Hide Panel.vi

Send the Hide Panel request to the Module’s Main.vi.

empty.png

reentrancy-shared.png

empty.png

Get Module Execution Status

request.png

horiba.lvlib:LiveLogger.lvlib:Get Module Execution Status.vi

Fire the Get Module Execution Status request.

empty.png

reentrancy-shared.png

empty.png

Show Diagram

request.png

horiba.lvlib:LiveLogger.lvlib:Show Diagram.vi

This VI tells the Module to show its block diagram to facilitate troubleshooting (add probes, breakpoints, highlight execution, etc).

empty.png

reentrancy-shared.png

empty.png

Module Did Init

broadcast.png

horiba.lvlib:LiveLogger.lvlib:Module Did Init.vi

Send the Module Did Init event to any VI registered to listen to this module’s broadcast events.

empty.png

reentrancy-shared.png

empty.png

Status Updated

broadcast.png

horiba.lvlib:LiveLogger.lvlib:Status Updated.vi

Send the Status Updated event to any VI registered to listen to events from the owning module.

empty.png

reentrancy-shared.png

empty.png

Error Reported

broadcast.png

horiba.lvlib:LiveLogger.lvlib:Error Reported.vi

Send the Error Reported event to any VI registered to listen to events from the owning module.

empty.png

reentrancy-shared.png

empty.png

Module Did Stop

broadcast.png

horiba.lvlib:LiveLogger.lvlib:Module Did Stop.vi

Send the Module Did Stop event to any VI registered to listen to this module’s broadcast events.

empty.png

reentrancy-shared.png

empty.png

Update Module Execution Status

broadcast.png

horiba.lvlib:LiveLogger.lvlib:Update Module Execution Status.vi

Broadcast event to specify whether or not the module is running.

empty.png

reentrancy-shared.png

empty.png

Type: request → Request | request and wait for reply → Request and Wait for Reply | broadcast → Broadcast

Scope: scope protected → Protected | scope community → Community

Reentrancy: reentrancy preallocated → Preallocated reentrancy | reentrancy shared → Shared reentrancy

Inlining: inlined → Inlined

2.4.3. Module Start/Stop calls

Diagram
Table 16. Start and Stop module callers
Function Callers

Start Module

LiveLogger.lvlib:Test LiveLogger API.vi

Stop Module

LiveLogger.lvlib:Main.vi
LiveLogger.lvlib:Handle Exit.vi
LiveLogger.lvlib:Test LiveLogger API.vi

2.4.4. Module Helper Loops

Note

No Helper Loops Found

2.4.5. Module custom errors

Tip

Custom errors are added to the module via vi named *--error.vi.

Module LiveLogger.lvlib use the following custom errors:

Table 17. Custom errors
Name Code Description

Module Not Running

0

Error information not found in the code

Module Not Stopped

403682

The Stop Module VI for the %s module timed out while waiting for the module main VI to stop. The module main VI may still be running.

Module Not Synced

403683

%s Module was unable to synchronize events.

Request and Wait for Reply Timeout

403686

2.4.6. Module Constant VIs

Table 18. Constant VIs Found
VI Name Data Type Value

Module Name—​constant.vi

String

LiveLogger

Module Timeout—​constant.vi

I32

5000

3. Libraries

This section describes the libraries contained in the project.

3.1. Examples.lvlib

Responsibility: This library contains all examples for single or multi device setup for the Horiba Scientific devices.

Version: 1.0.0.0

3.1.1. Functions

Table 19. Functions (non private scope only)
Name Connector pane Description S. R. I.

Setup Example CCD

Examples.lvlib:Setup Example CCD.vi

Setup of devices for example code execution.

empty.png

empty.png

empty.png

Teardown Example

Examples.lvlib:Teardown Example.vi

teardown of devices for example code execution.

empty.png

empty.png

empty.png

CCD Acquire Image

Examples.lvlib:CCD Acquire Image.vi

Example for a CCD spectrum acquisition.

empty.png

empty.png

empty.png

CCD Acquire Spectrum and Abort Acquisition

Examples.lvlib:CCD Acquire Spectrum and Abort Acquisition.vi

Example for a CCD spectrum acquisition.

empty.png

empty.png

empty.png

CCD Acquire Spectrum vs Pixels

Examples.lvlib:CCD Acquire Spectrum vs Pixels.vi

Example for a CCD spectrum acquisition.

empty.png

empty.png

empty.png

CCD Acquire Spectrum vs Wavelength

Examples.lvlib:CCD Acquire Spectrum vs Wavelength.vi

Example for a CCD spectrum acquisition.

empty.png

empty.png

empty.png

CCD Acquire Spectrum vs Wavenumbers

Examples.lvlib:CCD Acquire Spectrum vs Wavenumbers.vi

Example for a CCD spectrum acquisition.

empty.png

empty.png

empty.png

CCD Acquire Spectrum with Darkcount Subtract

Examples.lvlib:CCD Acquire Spectrum with Darkcount Subtract.vi

Example for a CCD spectrum acquisition: Run the acquisition once with shutter open, once with shutter closed

empty.png

empty.png

empty.png

CCD Exposure Time Control

Examples.lvlib:CCD Exposure Time Control.vi

Example on how to use the timer resolution to to achieve a exposure time in mili seconds.

empty.png

empty.png

empty.png

CCD Get Config

Examples.lvlib:CCD Get Config.vi

Retrieve the configuration of a CCD.

empty.png

empty.png

empty.png

Mono Filter Wheel

Examples.lvlib:Mono Filter Wheel.vi

This example shows how to get and set the filter wheel position of the mono.

Note: this example will return an error if no internal filter is available.

empty.png

empty.png

empty.png

Mono Get Config

Examples.lvlib:Mono Get Config.vi

This example shows how to retrieve the condifugration of the mono.

empty.png

empty.png

empty.png

Mono Grating

Examples.lvlib:Mono Grating.vi

This example shows how to get and set the grating position of the mono.

empty.png

empty.png

empty.png

Mono Init

Examples.lvlib:Mono Init.vi

"Mono init" tells the mono to start the homing procedure. This calls completes immediately but only kicks off the homing procedure. It is necessary to query the mono afterwards to check when the homing has completed.

empty.png

empty.png

empty.png

Mono Mirror

Examples.lvlib:Mono Mirror.vi

This example shows how to get and set the mirror position of the mono.

empty.png

empty.png

empty.png

Mono Position

Examples.lvlib:Mono Position.vi

This example shows how to get and set the mirror position of the mono.

empty.png

empty.png

empty.png

Mono Shutter

Examples.lvlib:Mono Shutter.vi

This example shows how to get and set the shutter position of the mono.

Note: this example will return an error if no internal shutter is available.

empty.png

empty.png

empty.png

Mono Slit

Examples.lvlib:Mono Slit.vi

This example shows how to get and set the slit width of the mono.

empty.png

empty.png

empty.png

Setup Example Mono

Examples.lvlib:Setup Example Mono.vi

Setup for the mono examples.

empty.png

empty.png

empty.png

Teardown Examples Mono

Examples.lvlib:Teardown Examples Mono.vi

Teardown of devices for example code execution.

empty.png

empty.png

empty.png

Mono Full Example

Examples.lvlib:Mono Full Example.vi

Overview of the full capabilites of the monochromator.

empty.png

empty.png

empty.png

Setup Example All Devices

Examples.lvlib:Setup Example All Devices.vi

Setup of devices for example code execution.

empty.png

empty.png

empty.png

CCD Acquire Spectrum vs Wavelength Range Mode

Examples.lvlib:CCD Acquire Spectrum vs Wavelength Range Mode.vi

Example for a CCD spectrum acquisition.

empty.png

empty.png

empty.png

SCD Range Mode

Examples.lvlib:SCD Range Mode.vi

Example for a SCD spectrum acquisition.

empty.png

empty.png

empty.png

Setup Example SCD

Examples.lvlib:Setup Example SCD.vi

Setup for the mono examples.

empty.png

empty.png

empty.png

Teardown Examples SCD

Examples.lvlib:Teardown Examples SCD.vi

Closes the connection to all connected devices and closes the ICL.

empty.png

empty.png

empty.png

SCD Acquisition

Examples.lvlib:SCD Acquisition.vi

Basic SCD acquisition example.

empty.png

empty.png

empty.png

SCD Get Infos

Examples.lvlib:SCD Get Infos.vi

Retrieve all information from the SCD.

empty.png

empty.png

empty.png

BasicUsage

Examples.lvlib:BasicUsage.vi

Basic Usage Example of the SCD.

empty.png

empty.png

empty.png

Scope: scope protected → Protected | scope community → Community

Reentrancy: reentrancy preallocated → Preallocated reentrancy | reentrancy shared → Shared reentrancy

Inlining: inlined → Inlined

3.1.2. Library Constant VIs

Note

No Constant VIs Found

3.2. horiba.lvlib

Responsibility: This library contains all code to connect and drive the Horiba hardware.

Version: 1.0.0.0

Table 20. Nested libraries
Name Type

CCD.lvclass

LVClass

Communicator.lvclass

LVClass

GenericDevice.lvclass

LVClass

Monochromator.lvclass

LVClass

SCD.lvclass

LVClass

DeviceManager.lvlib

Library

LiveLogger.lvlib

Library

3.2.1. Functions

Table 21. Functions (non private scope only)
Name Connector pane Description S. R. I.

CreateLogger

horiba.lvlib:CreateLogger.vi

Example VI to create an HSE logger.

empty.png

empty.png

empty.png

Scope: scope protected → Protected | scope community → Community

Reentrancy: reentrancy preallocated → Preallocated reentrancy | reentrancy shared → Shared reentrancy

Inlining: inlined → Inlined

3.2.2. Library Constant VIs

Note

No Constant VIs Found

4. Classes

This section describes the classes contained in the project.

4.1. Classes overview

This project contains 5 classes and 0 interface.

Table 22. Classes list
Classes Interfaces

CCD.lvclass

Communicator.lvclass

GenericDevice.lvclass

Monochromator.lvclass

SCD.lvclass

Diagram

4.2. CCD.lvclass

Responsibility: This class contains all functionality needed for Horiba’s Multi-Channel-detectors.

Version: 1.0.0.0

4.2.2. Methods

Table 23. Functions (non private scope only)
Name Connector pane Description S. R. I.

getSpeedAndGainSettings

horiba.lvlib:CCD.lvclass:getSpeedAndGainSettings.vi

Wrapper around the getSpeed and getGain VIs for convenience.

empty.png

empty.png

empty.png

parse1dOr2dArray

horiba.lvlib:CCD.lvclass:parse1dOr2dArray.vi

Parse json arrays into LV arrays.

empty.png

empty.png

empty.png

parseCcdData

horiba.lvlib:CCD.lvclass:parseCcdData.vi

Helper VI to parse the ccd data to a LV 2D image array.

empty.png

empty.png

empty.png

parseConfigData

horiba.lvlib:CCD.lvclass:parseConfigData.vi

Helper VI to parse the configuration string to a LV cluster.

empty.png

empty.png

empty.png

parseRangeMode

horiba.lvlib:CCD.lvclass:parseRangeMode.vi

Parse center wavelengths from json array into LV array.

empty.png

empty.png

empty.png

stitchingModeAverage

horiba.lvlib:CCD.lvclass:stitchingModeAverage.vi

Perfroms stitching of spectra on the basis of averaging the values. Is identical to previous SDK.

empty.png

empty.png

empty.png

stitchingModeSimple

horiba.lvlib:CCD.lvclass:stitchingModeSimple.vi

Stitches spectra based on simple cut-off modus.

empty.png

empty.png

empty.png

acquisitionAbort

horiba.lvlib:CCD.lvclass:acquisitionAbort.vi

Stops the current acquisition.

empty.png

empty.png

empty.png

acquisitionStart

horiba.lvlib:CCD.lvclass:acquisitionStart.vi

Starts an acquisition that has been set up according to the previously defined acquisition parameters.

Note: To specify the acquisition parameters please see ccd_setROI and ccd_setXAxisConversionType. If there are no acquisition parameters specified at the time of acquisition it may result in no data being generated.

empty.png

empty.png

empty.png

calculateRangeModePositions

horiba.lvlib:CCD.lvclass:calculateRangeModePositions.vi

Finds the center wavelength positions based on the input range and pixel overlap. The following commands are prerequisites and should be called prior to using this command: ccd_setXAxisConversionType, ccd_setAcqFormat, and ccd_setRoi.

index Integer. Used to identify which CCD to target. See ccd_list command monoIndex Integer. Used to identify which mono to target for the current grating density. See mono_list command start Float. Start wavelength. end Float. End wavelength. overlap Float. Pixel overlap.

empty.png

empty.png

empty.png

convertWavelengthToRamanShift

horiba.lvlib:CCD.lvclass:convertWavelengthToRamanShift.vi

Convert a wavelength array to raman shift in cm-1.

empty.png

empty.png

empty.png

DeviceClose

horiba.lvlib:CCD.lvclass:DeviceClose.vi

Closes the connection to the CCD device.

empty.png

empty.png

empty.png

DeviceIsOpen

horiba.lvlib:CCD.lvclass:DeviceIsOpen.vi

Checks if connection to the device is open or not.

empty.png

empty.png

empty.png

DeviceOpen

horiba.lvlib:CCD.lvclass:DeviceOpen.vi

Opens the connection to the CCD device.

empty.png

empty.png

empty.png

getAcqCount

horiba.lvlib:CCD.lvclass:getAcqCount.vi

Gets the number of acquisition measurements to be perform sequentially by the hardware.

Return Results:

results description count Integer. The number of acquisition measurements to be performed.

empty.png

empty.png

empty.png

getAcquisitionBusy

horiba.lvlib:CCD.lvclass:getAcquisitionBusy.vi

Gets the current busy-state of an acquisition.

empty.png

empty.png

empty.png

getAcquisitionData

horiba.lvlib:CCD.lvclass:getAcquisitionData.vi

The acquisition description string consists of the following information:

acqIndex: Acquisition number roiIndex: Region of Interest number xOrigin: ROI’s X Origin yOrigin: ROI’s Y Origin xSize: ROI’s X Size ySize: ROI’s Y Size xBinning: ROI’s X Bin yBinning: ROI’s Y Bin Timestamp: This is a timestamp that relates to the time when the all the programmed acquisitions have completed. The data from all programmed acquisitions are retrieved from the CCD after all acquisitions have completed, therefore the same timestamp is used for all acquisitions. Command Parameters:

Return Results:

results description acquisition String. Acquisition data. Example command:

Example response:

{ "command": "ccd_getAcquisitionData", "errors": [], "id": 1234, "results": { "acquisition": [ { "acqIndex": 1, "roi": [ { "roiIndex": 1, "xBinning": 1, "xOrigin": 1, "xSize": 8, "xyData": [ [ 885.6389770507812, 976 ], [w 885.2899780273438, 975 ], [ 884.9409790039062, 979 ], [ 884.593017578125, 976 ], }

empty.png

empty.png

empty.png

getAcquisitionReady

horiba.lvlib:CCD.lvclass:getAcquisitionReady.vi

Queries the CCD for readiness for acquisition.

empty.png

empty.png

empty.png

getChipSize

horiba.lvlib:CCD.lvclass:getChipSize.vi

Returns the chip sensor’s pixel width and height size.

Return Results:

results description x Integer. Chip sensor’s x size in pixels (width) y Integer. Chip sensor’s y size in pixels (height)

empty.png

empty.png

empty.png

getChipTemperature

horiba.lvlib:CCD.lvclass:getChipTemperature.vi

Returns the temperature of the chip sensor in degrees C.

Return Results:

temperature Float. Chip sensor temperature in degrees C.

empty.png

empty.png

empty.png

getCleanCount

horiba.lvlib:CCD.lvclass:getCleanCount.vi

Gets the number of cleans to be performed prior to measurement.

results description count Integer. Number of cleans. mode Integer. Specifies how the cleans will be performed. 0 = Never 1 = First Only 2 = Between Only 3 = Each

empty.png

empty.png

empty.png

getConfig

horiba.lvlib:CCD.lvclass:getConfig.vi

Returns the CCD device configuration.

results description configuration JSON. CCD device configuration.

xample response:

{ "command": "ccd_getConfig", "errors": [], "id": 1234, "results": { "configuration": { "chipHSpacing": "140", "chipHeight": "70", "chipName": "S10420", "chipSerialNumber": "FAH23 098", "chipVSpacing": "140", "chipWidth": "2048", "deviceType": "HORIBA Scientific Syncerity", "fitParameters": [ 0, 1, 0, 0, 0 ], "gains": [ { "info": "Best Dynamic Range", "token": 1 }, { "info": "High Sensitivity", "token": 2 }, { "info": "High Light", "token": 0 } ], "hardwareAvgAvailable": false, "lineScan": false, "parallelSpeeds": [ { "info": "9.6 µSec", "token": 1 }, { "info": "4.9 µSec", "token": 2 }, { "info": "19 µSec", "token": 0 } ], "productId": "13", "serialNumber": "Camera SN: 5128", "signals": [ { "events": [ { "name": "Ready For Trigger", "token": 1, "types": [ { "name": "TTL Active Low", "token": 1 }, { "name": "TTL Active High", "token": 0 } ] }, { "name": "Not Readout", "token": 2, "types": [ { "name": "TTL Active Low", "token": 1 }, { "name": "TTL Active High", "token": 0 } ] }, { "name": "Shutter Open", "token": 3, "types": [ { "name": "TTL Active Low", "token": 1 }, { "name": "TTL Active High", "token": 0 } ] }, { "name": "Start Experiment", "token": 0, "types": [ { "name": "TTL Active Low", "token": 1 }, { "name": "TTL Active High", "token": 0 } ] } ], "name": "Signal Output", "token": 0 } ], "speeds": [ { "info": "500 kHz ", "token": 1 }, { "info": "500 kHz Ultra", "token": 2 }, { "info": "500 kHz Wrap", "token": 127 }, { "info": " 45 kHz ", "token": 0 } ], "supportedFeatures": { "cf_3PositionSlit": false, "cf_CMOSOffsetCorrection": false, "cf_Cleaning": true, "cf_DSP": false, "cf_DSPBin2X": false, "cf_DelayAfterTrigger": false, "cf_Delays": false, "cf_EMCCD": false, "cf_EShutter": false, "cf_HDR": false, "cf_Image": true, "cf_MemorySlots": true, "cf_Metadata": false, "cf_MultipleExposeTimes": false, "cf_MultipleSensors": false, "cf_PulseSummation": false, "cf_ROIs": true, "cf_Signals": true, "cf_Spectra": true, "cf_TriggerQualifier": false, "cf_Triggers": true" }, "triggers": [ { "events": [ { "name": "Each - For Each Acq", "token": 1, "types": [ { "name": "TTL Rising Edge", "token": 1 }, { "name": "TTL Falling Edge", "token": 0 } ] }, { "name": "Once - Start All", "token": 0, "types": [ { "name": "TTL Rising Edge", "token": 1 }, { "name": "TTL Falling Edge", "token": 0 } ] } ], "name": "Trigger Input", "token": 0 } ], "version": "Syncerity Ver 1.002.9" } } }

empty.png

empty.png

empty.png

getDataSize

horiba.lvlib:CCD.lvclass:getDataSize.vi

Gets the number of pixels to be returned based on the current settings.

results description size Integer. Byte data size for all ROIs and acquisitions.

empty.png

empty.png

empty.png

getExposureTime

horiba.lvlib:CCD.lvclass:getExposureTime.vi

Gets the exposure time (expressed in Timer Resolution units).

Note: To check the current Timer Resolution value see ccd_getTimerResolution. Alternatively the Timer Resolution value can be set using ccd_setTimerResolution.

Example: If Exposure Time is set to 50, and the Timer Resolution value is 1000, the CCD exposure time (integration time) = 50 milliseconds.

If Exposure Time is set to 50, and the Timer Resolution value is 1, the CCD exposure time (integration time) = 50 microseconds.

empty.png

empty.png

empty.png

getFitParams

horiba.lvlib:CCD.lvclass:getFitParams.vi

Gets the FIT parameters contained in the CCD configuration for the conversion of pixel to wavelength if done via the settings contained in the CCD.

empty.png

empty.png

empty.png

getGain

horiba.lvlib:CCD.lvclass:getGain.vi

Gets the current gain token and the associated description information for the gain token. Gain tokens and their descriptions are part of the CCD configuration information. See ccd_getConfig command. For example:

"gains": [ { "info": "Best Dynamic Range", "token": 1 }, { "info": "High Sensitivity", "token": 2 }, { "info": "High Light", "token": 0 } ]

empty.png

empty.png

empty.png

getParallelSpeed

horiba.lvlib:CCD.lvclass:getParallelSpeed.vi

Gets the current parallel speed token and token description. Parallel speed tokens and their descriptions are contained in the CCD configuration information. See ccd_getConfig command.

Note: The Parallel Speed value may also be referred to as the Vertical Shift Rate. These terms are interchangeable.

For example:

"parallelSpeeds": [ { "info": "9.6 µSec", "token": 1 }, { "info": "4.9 µSec", "token": 2 }, { "info": "19 µSec", "token": 0 } ],

empty.png

empty.png

empty.png

getSignalOut

horiba.lvlib:CCD.lvclass:getSignalOut.vi

ccd_getSignalOut This command is used to get the current setting of the signal output. The address, event, and signalType parameters are used to define the signal based on the supported options of that particular CCD. The supported signal options are retrieved using the ccd_getConfig command, and begin with the "Signals" string contained in the configuration. For example:

"signals": [ { "events": [ { "name": "Shutter Open", "token": 3, "types": [ { "name": "TTL Active Low", "token": 1 }, { "name": "TTL Active High", "token": 0 } ] }, { "name": "Start Experiment", "token": 0, "types": [ { "name": "TTL Active Low", "token": 1 }, { "name": "TTL Active High", "token": 0 } ] } ], "name": "Signal Output", "token": 0 } ]

empty.png

empty.png

empty.png

getSpeed

horiba.lvlib:CCD.lvclass:getSpeed.vi

ccd_getSpeed Gets the current speed token and the associated description information for the speed token. Speed tokens and their descriptions are part of the CCD configuration information. See ccd_getConfig command. For example:

"speeds": [ { "info": "500 kHz ", "token": 1 }, { "info": "500 kHz Ultra", "token": 2 }, { "info": "500 kHz Wrap", "token": 127 }, { "info": " 45 kHz ", "token": 0 } ]

empty.png

empty.png

empty.png

getTimerResolution

horiba.lvlib:CCD.lvclass:getTimerResolution.vi

Gets the current timer resolution token.

results description resolutionToken Integer. Timer resolution token. 0 - Timer resolution is set to 1000 microseconds 1 - Timer resolution is set to 1 microsecond

empty.png

empty.png

empty.png

getTriggerIn

horiba.lvlib:CCD.lvclass:getTriggerIn.vi

This command is used to get the current setting of the input trigger. The address, event, and signalType parameters are used to define the input trigger based on the supported options of that particular CCD. The supported trigger options are retrieved using the ccd_getConfig command, and begin with the "Triggers" string contained in the configuration. For example:

"triggers": [ { "events": [ { "name": "Each - For Each Acq", "token": 1, "types": [ { "name": "TTL Rising Edge", "token": 1 }, { "name": "TTL Falling Edge", "token": 0 } ] }, { "name": "Once - Start All", "token": 0, "types": [ { "name": "TTL Rising Edge", "token": 1 }, { "name": "TTL Falling Edge", "token": 0 } ] } ], "name": "Trigger Input", "token": 0 } ]

empty.png

empty.png

empty.png

getXAxisConversionType

horiba.lvlib:CCD.lvclass:getXAxisConversionType.vi

Gets the X axis pixel conversion type to be used when retrieving the acquisition data with the ccd_getAcquisitionData command.

results description type Integer. The X-axis pixel conversion type to be used. 0 = None (default) 1 = CCD FIT parameters contained in the CCD firmware 2 = Mono Wavelength parameters contained in the icl_settings.ini file

empty.png

empty.png

empty.png

restart

horiba.lvlib:CCD.lvclass:restart.vi

Performs a restart on the CCD.

empty.png

empty.png

empty.png

setAcqCount

horiba.lvlib:CCD.lvclass:setAcqCount.vi

Sets the number of acquisition measurements to be performed sequentially by the hardware. A count > 1 is commonly referred to as "MultiAcq".

empty.png

empty.png

empty.png

setAcqFormat

horiba.lvlib:CCD.lvclass:setAcqFormat.vi

Sets the acquisition format and the number of ROIs (Regions of Interest) or areas. This command will remove all previously defined ROIs. After using this command, the ccd_setRoi command should be used to define each ROI.

parameter description numberOfRois Integer. Number of ROIs (Regions of Interest / areas) format Integer. The acquisition format. 0 = Spectra 1 = Image 2 = Crop* 3 = Fast Kinetics* * Note: The Crop (2) and Fast Kinetics (3) acquisition formats are not supported by every CCD.

empty.png

empty.png

empty.png

setCenterWavelength

horiba.lvlib:CCD.lvclass:setCenterWavelength.vi

This command sets the center wavelength value and other parameters to be used in the pixel to wavelength conversion.

Note: This command should be called before ccd_setXAxisConversionType and ccd_AcquisitionStart and is only useful uf the xAxisConversion type is set to Fitparams.

empty.png

empty.png

empty.png

setCleanCount

horiba.lvlib:CCD.lvclass:setCleanCount.vi

Sets the number of cleans to be performed according to the specified mode setting.

parameter description index Integer. Used to identify which CCD to target. See ccd_list command count Integer. Number of cleans. mode Integer. Specifies how the cleans will be performed. 0 = Never 1 = First Only 2 = Between Only 3 = Each

empty.png

empty.png

empty.png

setExposureTime

horiba.lvlib:CCD.lvclass:setExposureTime.vi

Sets the exposure time (expressed in Timer Resolution units).

Note: To check the current Timer Resolution value see ccd_getTimerResolution. Alternatively the Timer Resolution value can be set using ccd_setTimerResolution.

Example: If Exposure Time is set to 50, and the Timer Resolution value is 1000, the CCD exposure time (integration time) = 50 milliseconds.

If Exposure Time is set to 50, and the Timer Resolution value is 1, the CCD exposure time (integration time) = 50 microseconds.

empty.png

empty.png

empty.png

setGain

horiba.lvlib:CCD.lvclass:setGain.vi

Sets the CCD gain token. A list of supported gain tokens can be found in the CCD configuration. See ccd_getConfig command. For example:

"gains": [ { "info": "Best Dynamic Range", "token": 1 }, { "info": "High Sensitivity", "token": 2 }, { "info": "High Light", "token": 0 } ]

empty.png

empty.png

empty.png

setParallelSpeed

horiba.lvlib:CCD.lvclass:setParallelSpeed.vi

Sets the CCD parallel speed token. A list of supported parallel speed tokens can be found in the CCD configuration. See ccd_getConfig command.

Note: The Parallel Speed value may also be referred to as the Vertical Shift Rate. These terms are interchangeable.

For example:

"parallelSpeeds": [ { "info": "9.6 µSec", "token": 1 }, { "info": "4.9 µSec", "token": 2 }, { "info": "19 µSec", "token": 0 } ],

empty.png

empty.png

empty.png

setRoi

horiba.lvlib:CCD.lvclass:setRoi.vi

Sets a single (roiIndex) ROI (Region of Interest) or area as defined by the X and Y origin, size, and bin parameters. The number of ROIs may be set using the ccd_setAcqFormat command. For Spectral acquisition format set yBin = ySize.

Note: All values must fall within the x and y limits of the chip sensor, see ccd_getChipSize. If the ROI is not valid, the device will not be properly setup for acquisition.

Command Parameters:

parameter description roiIndex Integer. The region of interest’s index (one-based) xOrigin Integer. The starting pixel in the x direction (zero-based) yOrigin Integer. The starting pixel in the y direction (zero-based) xSize Integer. The number of pixels in the x direction (one-based) ySize Integer. The number of pixels in the y direction (one-based) xBin Integer. The number of pixels to “bin” (x pixels summed to 1 value) yBin Integer. The number of pixels to “bin” (y pixels summed to 1 value)

empty.png

empty.png

empty.png

setSignalOut

horiba.lvlib:CCD.lvclass:setSignalOut.vi

This command is used to enable or disable the signal output. When enabling the signal output, the address, event, and signalType parameters are used to define the signal based on the supported options of that particular CCD. The supported signal options are retrieved using the ccd_getConfig command, and begin with the "Signals" string contained in the configuration. For example:

"signals": [ { "events": [ { "name": "Shutter Open", "token": 3, "types": [ { "name": "TTL Active Low", "token": 1 }, { "name": "TTL Active High", "token": 0 } ] }, { "name": "Start Experiment", "token": 0, "types": [ { "name": "TTL Active Low", "token": 1 }, { "name": "TTL Active High", "token": 0 } ] } ], "name": "Signal Output", "token": 0 } ]

parameter description index Integer. Used to identify which CCD to target. See ccd_list command enable Boolean. Enables or disables the signal. true = enable false = disable

Note: When disabling the signal output, the address, event, and signalType parameters are ignored. address Integer. Token used to specify where the signal is located. (e.g. 0 = Signal Output)

Note: Signal name and token can be found in the CCD config, see ccd_getConfig event Integer. Token used to specify when the signal event should occur. (e.g. 3 = Shutter Open)

Note: Event name and token can be found in the CCD config, see ccd_getConfig signalType Integer. Token used to specify how the signal will cause the event. (e.g. 0 = TTL Active High)

Note: Signal type and token can be found in the CCD config, see ccd_getConfig

empty.png

empty.png

empty.png

setSpeed

horiba.lvlib:CCD.lvclass:setSpeed.vi

Sets the CCD speed token. A list of supported speed tokens can be found in the CCD configuration. See ccd_getConfig command. For example:

"speeds": [ { "info": "500 kHz ", "token": 1 }, { "info": "500 kHz Ultra", "token": 2 }, { "info": "500 kHz Wrap", "token": 127 }, { "info": " 45 kHz ", "token": 0 } ]

empty.png

empty.png

empty.png

setTimerResolution

horiba.lvlib:CCD.lvclass:setTimerResolution.vi

Sets the current timer resolution token.

resolutionToken Integer. Timer resolution token. 0 - Sets the timer resolution to 1000 microseconds 1 - Sets the timer resolution to 1 microsecond

empty.png

empty.png

empty.png

setTriggerIn

horiba.lvlib:CCD.lvclass:setTriggerIn.vi

This command is used to enable or disable the trigger input. When enabling the trigger input, the address, event, and signalType parameters are used to define the input trigger based on the supported options of that particular CCD. The supported trigger options are retrieved using the ccd_getConfig command, and begin with the "Triggers" string contained in the configuration. For example:

"triggers": [ { "events": [ { "name": "Each - For Each Acq", "token": 1, "types": [ { "name": "TTL Rising Edge", "token": 1 }, { "name": "TTL Falling Edge", "token": 0 } ] }, { "name": "Once - Start All", "token": 0, "types": [ { "name": "TTL Rising Edge", "token": 1 }, { "name": "TTL Falling Edge", "token": 0 } ] } ], "name": "Trigger Input", "token": 0 } ]

empty.png

empty.png

empty.png

setXAxisConversionType

horiba.lvlib:CCD.lvclass:setXAxisConversionType.vi

Sets the X-axis pixel conversion type to be used when retrieving the acquisition data with the ccd_getAcquisitionData command.

Note: To use the parameters contained in the icl_settings.ini file, the ccd_setCenterWavelength command must be called first.

type Integer. The X-axis pixel conversion type to be used. 0 = None (default) 1 = CCD FIT parameters contained in the CCD firmware 2 = Mono Wavelength parameters contained in the icl_settings.ini file

empty.png

empty.png

empty.png

Read DeviceTerm

horiba.lvlib:CCD.lvclass:Read DeviceTerm.vi

After initialization of the device this property gives back the device term which is "ccd" for the device type CCD. This is used for prefixing all commands to the ICL.

empty.png

empty.png

empty.png

Write DeviceTerm

horiba.lvlib:CCD.lvclass:Write DeviceTerm.vi

Sets the device term after init.

empty.png

empty.png

empty.png

Read DeviceType

horiba.lvlib:CCD.lvclass:Read DeviceType.vi

Returns the device type of the device saved in the device firmware.

empty.png

empty.png

empty.png

Write DeviceType

horiba.lvlib:CCD.lvclass:Write DeviceType.vi

Sets the device type after init

empty.png

empty.png

empty.png

Read Index

horiba.lvlib:CCD.lvclass:Read Index.vi

Returns the index of the device in the ICL layer.

empty.png

empty.png

empty.png

Write Index

horiba.lvlib:CCD.lvclass:Write Index.vi

Sets the device id after init

empty.png

empty.png

empty.png

Read productId

horiba.lvlib:CCD.lvclass:Read productId.vi

Returns the productID of the device saved in the device firmware.

empty.png

empty.png

empty.png

Write productId

horiba.lvlib:CCD.lvclass:Write productId.vi

Sets the device productID after init

empty.png

empty.png

empty.png

Read serialNumber

horiba.lvlib:CCD.lvclass:Read serialNumber.vi

Returns the serial of the device saved in the device firmware.

empty.png

empty.png

empty.png

Write serialNumber

horiba.lvlib:CCD.lvclass:Write serialNumber.vi

Sets the device serial after init

empty.png

empty.png

empty.png

Scope: scope protected → Protected | scope community → Community

Reentrancy: reentrancy preallocated → Preallocated reentrancy | reentrancy shared → Shared reentrancy

Inlining: inlined → Inlined

4.2.3. Class Constant VIs

Note

No Constant VIs Found

4.3. Communicator.lvclass

Responsibility: This class handles the communication between LV and the ICL via websocket requests.

Version: 1.0.0.0

4.3.2. Methods

Table 24. Functions (non private scope only)
Name Connector pane Description S. R. I.

OpenConnection

horiba.lvlib:Communicator.lvclass:OpenConnection.vi

Opens a connection to the ICL via werbsocket.

empty.png

empty.png

empty.png

CloseConnection

horiba.lvlib:Communicator.lvclass:CloseConnection.vi

Closes the websocket connection.

empty.png

empty.png

empty.png

SendAndAskForReply

horiba.lvlib:Communicator.lvclass:SendAndAskForReply.vi

Wrapper around send and receive for the websocket communication.

empty.png

empty.png

empty.png

JSON Parse Command

horiba.lvlib:Communicator.lvclass:JSON Parse Command.vi

Parses the original command.

empty.png

empty.png

empty.png

JSON Parse Errors

horiba.lvlib:Communicator.lvclass:JSON Parse Errors.vi

Parses the returned error into an LV error.

empty.png

empty.png

empty.png

JSON Parse ID

horiba.lvlib:Communicator.lvclass:JSON Parse ID.vi

Parses the message ID to follow communication.

empty.png

empty.png

empty.png

JSON Parse Info

horiba.lvlib:Communicator.lvclass:JSON Parse Info.vi

Wrapper around all other VIs that parse an answer from the ICL.

empty.png

empty.png

empty.png

JSON Parse Results

horiba.lvlib:Communicator.lvclass:JSON Parse Results.vi

Parses the results from the ICL.

empty.png

empty.png

empty.png

Overwrite ID

horiba.lvlib:Communicator.lvclass:Overwrite ID.vi

Overwrites the message ID if a custom ID is to be used for messaging to the ICL.

empty.png

empty.png

empty.png

ReceiveJson

horiba.lvlib:Communicator.lvclass:ReceiveJson.vi

Receives the reply from the synchronous communication to the ICL.

scope-protected.png

empty.png

empty.png

SendJson

horiba.lvlib:Communicator.lvclass:SendJson.vi

Sends the request for a synchronous communication to the ICL.

scope-protected.png

empty.png

empty.png

Scope: scope protected → Protected | scope community → Community

Reentrancy: reentrancy preallocated → Preallocated reentrancy | reentrancy shared → Shared reentrancy

Inlining: inlined → Inlined

4.3.3. Class Constant VIs

Note

No Constant VIs Found

4.4. GenericDevice.lvclass

Responsibility: This parent class for all devices provides base functionality like discovering, opening and closing devices on the ICL.

Version: 1.0.0.0

4.4.2. Methods

Table 25. Functions (non private scope only)
Name Connector pane Description S. R. I.

DeviceClose

horiba.lvlib:GenericDevice.lvclass:DeviceClose.vi

Closes communications with the CCD indicated by the index.

empty.png

empty.png

empty.png

DeviceOpen

horiba.lvlib:GenericDevice.lvclass:DeviceOpen.vi

This command initializes the CCD and gets it’s the CCD configuration from the device. The device is also connected to the API. Since a CCD hardware initialization occurs, all CCD parameters, including any previously set parameters, will be reset to their default values.

empty.png

empty.png

empty.png

DeviceIsOpen

horiba.lvlib:GenericDevice.lvclass:DeviceIsOpen.vi

Returns true if selected CCD is open.

empty.png

empty.png

empty.png

Send Receive Parse

horiba.lvlib:GenericDevice.lvclass:Send Receive Parse.vi

Wrapper around the send and receive calls.

empty.png

empty.png

empty.png

ReadDeviceJSONList

horiba.lvlib:GenericDevice.lvclass:ReadDeviceJSONList.vi

Parses the returned devies into a string array.

empty.png

empty.png

empty.png

DecodeDeviceJSONList

horiba.lvlib:GenericDevice.lvclass:DecodeDeviceJSONList.vi

Decodes the answer from the ICL into a device.

empty.png

empty.png

empty.png

ReadDeviceTypeAsString

horiba.lvlib:GenericDevice.lvclass:ReadDeviceTypeAsString.vi

Return the device class name as string.

empty.png

empty.png

empty.png

Read isOpen

horiba.lvlib:GenericDevice.lvclass:Read isOpen.vi

Accessor VI for this class property.

empty.png

empty.png

empty.png

Write isOpen

horiba.lvlib:GenericDevice.lvclass:Write isOpen.vi

Accessor VI for this class property.

empty.png

empty.png

empty.png

Read DeviceTerm

horiba.lvlib:GenericDevice.lvclass:Read DeviceTerm.vi

Accessor VI for this class property.

empty.png

empty.png

empty.png

Write DeviceTerm

horiba.lvlib:GenericDevice.lvclass:Write DeviceTerm.vi

Accessor VI for this class property.

empty.png

empty.png

empty.png

Read DeviceType

horiba.lvlib:GenericDevice.lvclass:Read DeviceType.vi

Accessor VI for this class property.

empty.png

empty.png

empty.png

Write DeviceType

horiba.lvlib:GenericDevice.lvclass:Write DeviceType.vi

Accessor VI for this class property.

empty.png

empty.png

empty.png

Read Index

horiba.lvlib:GenericDevice.lvclass:Read Index.vi

Accessor VI for this class property.

empty.png

empty.png

empty.png

Write Index

horiba.lvlib:GenericDevice.lvclass:Write Index.vi

Accessor VI for this class property.

empty.png

empty.png

empty.png

Read productId

horiba.lvlib:GenericDevice.lvclass:Read productId.vi

Accesor to the product ID.s

empty.png

empty.png

empty.png

Write productId

horiba.lvlib:GenericDevice.lvclass:Write productId.vi

Accessor to the product ID.

empty.png

empty.png

empty.png

Read SerialNumber

horiba.lvlib:GenericDevice.lvclass:Read SerialNumber.vi

Accessor VI for this class property.

empty.png

empty.png

empty.png

Write SerialNumber

horiba.lvlib:GenericDevice.lvclass:Write SerialNumber.vi

Accessor VI for this class property.

empty.png

empty.png

empty.png

Scope: scope protected → Protected | scope community → Community

Reentrancy: reentrancy preallocated → Preallocated reentrancy | reentrancy shared → Shared reentrancy

Inlining: inlined → Inlined

4.4.3. Class Constant VIs

Note

No Constant VIs Found

4.5. Monochromator.lvclass

Responsibility: This class contains all functionality needed for Horiba’s Monochromators.

Version: 1.0.0.0

4.5.2. Methods

Table 26. Functions (non private scope only)
Name Connector pane Description S. R. I.

setPosition

horiba.lvlib:Monochromator.lvclass:setPosition.vi

!!! Attention: this VI can potentially uncalibrate your Mono !!! !!! Only use after reading the description !!! !!! Use moveToPosition to move the mono to a different wavelength !!!

This command sets the wavelength value of the current grating position of the monochromator. This could potentially un-calibrate the monochromator and report an incorrect wavelength compared to the actual output wavelength.

wavelength Float. Set the wavelength of the mono at the current position.

empty.png

empty.png

empty.png

getFilterWheelPosition

horiba.lvlib:Monochromator.lvclass:getFilterWheelPosition.vi

Returns the current filter wheel position.

parameter description index Integer. Used to identify which mono to control. See mono_list command locationId Integer. Specifies the filter wheel location. 0 = Filter wheel 1 (Internal) 1 = Filter wheel 2 (External)

empty.png

empty.png

empty.png

moveFilterWheel

horiba.lvlib:Monochromator.lvclass:moveFilterWheel.vi

Move the filter wheel to a position.

locationId Integer. Specifies which filter wheel to move. 0 = Filter wheel 1 (Internal) 1 = Filter wheel 2 (External) position Integer. Position to move the filter wheel.

empty.png

empty.png

empty.png

getGratingPosition

horiba.lvlib:Monochromator.lvclass:getGratingPosition.vi

Returns the current grating turret position.

Note: Prior to the initialization of the grating turret, this value may not reflect the actual position of the turret. To read the current position of the grating turret, please run mono_init prior to running this command.

empty.png

empty.png

empty.png

moveGrating

horiba.lvlib:Monochromator.lvclass:moveGrating.vi

Moves the grating turret to the specified position.

Note: The turret sensor does not re-read the position each time it is moved, therefore the position may not be accurate prior to initialization. See note for mono_getGratingPosition.

empty.png

empty.png

empty.png

getMirrorPosition

horiba.lvlib:Monochromator.lvclass:getMirrorPosition.vi

Returns the position of the specified mirror.

parameter description index Integer. Used to identify which mono to control. See mono_list command locationId Integer. Identifies which mirror to get the position from. 0 = Mirror 1 (Entrance) 1 = Mirror 2 (Exit)

empty.png

empty.png

empty.png

moveMirror

horiba.lvlib:Monochromator.lvclass:moveMirror.vi

Moves the specified mirror to a position.

locationId Integer. Identifies which mirror to move (zero-based). 0 = Mirror 1 (Entrance) 1 = Mirror 2 (Exit) position Integer. Position to move to. 0 = Axial 1 = Lateral

empty.png

empty.png

empty.png

getPosition

horiba.lvlib:Monochromator.lvclass:getPosition.vi

Returns the wavelength value, in nm, of the monochromator’s current position.

empty.png

empty.png

empty.png

moveToPosition

horiba.lvlib:Monochromator.lvclass:moveToPosition.vi

This command starts the monochromator moving to the requested wavelength in nm. This is an asynchronous command. Use the mono_isBusy command to know when the move has completed.

empty.png

empty.png

empty.png

getShutterStatus

horiba.lvlib:Monochromator.lvclass:getShutterStatus.vi

Returns the status of the currently selected shutter.

Note: To view the status of the shutter solenoid the device must be configured for internal shutter mode.

locationId Integer. Identifies the currently selected shutter. 0 = Shutter 1 (Front shutter) 1 = Shutter 2 (Side shutter) position Integer. Shutter position status. 0 = Closed 1 = Open

empty.png

empty.png

empty.png

shutterClose

horiba.lvlib:Monochromator.lvclass:shutterClose.vi

Deactivates the currently selected shutter solenoid.

Note: The device must be configured for internal shutter mode. The shutter solenoid will not respond in External (Bypass) mode.

empty.png

empty.png

empty.png

shutterOpen

horiba.lvlib:Monochromator.lvclass:shutterOpen.vi

Activates the currently selected shutter solenoid.

Note: The device must be configured for internal shutter mode. The shutter solenoid will not respond in External (Bypass) mode.

empty.png

empty.png

empty.png

getSlitPositionInMM

horiba.lvlib:Monochromator.lvclass:getSlitPositionInMM.vi

Returns the position of the specified slit in millimeters. The location id of each configured slit can be found under the ports section of the mono configuration. See mono_getConfig for additional information.

For example:

"ports": [ { "locationId": 1, "slitType": 1 }, { "locationId": 2, "slitType": 1 }, { "locationId": 4, "slitType": 1 } ] Note: The "locationId" parameter is 1-based.

empty.png

empty.png

empty.png

moveSlitMM

horiba.lvlib:Monochromator.lvclass:moveSlitMM.vi

Moves the specified slit to the position in millimeters. The location id of each configured slit can be found under the ports section of the mono configuration. See mono_getConfig for additional information.

locationId Integer. Used to identify the slit location. 1 = Front entrance (axial) 2 = Side entrance (lateral) 3 = Front exit (axial) 4 = Side exit (lateral) For example:

"ports": [ { "locationId": 1, "slitType": 1 }, { "locationId": 2, "slitType": 1 }, { "locationId": 4, "slitType": 1 } ] Note: The "locationId" parameter is 1-based.

locationId Integer. Slit location (one-based) position Float. Position in millimeters

empty.png

empty.png

empty.png

DeviceClose

horiba.lvlib:Monochromator.lvclass:DeviceClose.vi

Closes communications with the monochromator indicated by the index.

empty.png

empty.png

empty.png

DeviceIsOpen

horiba.lvlib:Monochromator.lvclass:DeviceIsOpen.vi

Returns true if selected monochromator is open.

empty.png

empty.png

empty.png

DeviceOpen

horiba.lvlib:Monochromator.lvclass:DeviceOpen.vi

Opens communications with the monochromator indicated by the index command parameter.

empty.png

empty.png

empty.png

getConfig

horiba.lvlib:Monochromator.lvclass:getConfig.vi

This command returns the monochromator configuration. Port Descriptions:

locationId Integer. Used to identify the slit location. 1 = Front entrance (axial) 2 = Side entrance (lateral) 3 = Front exit (axial) 4 = Side exit (lateral) slitType Integer. Used to identify the slit size. 1 = 2mm slit 2 = 7mm slit

empty.png

empty.png

empty.png

Init

horiba.lvlib:Monochromator.lvclass:Init.vi

Starts the monochromator initialization process (homing…​). This is a "long-running" asynchronous command. Use the mono_isBusy command to know when initialization has completed.

force Boolean. Force starts the initialization process.

empty.png

empty.png

empty.png

isBusy

horiba.lvlib:Monochromator.lvclass:isBusy.vi

Returns true if selected monochromator is busy.

empty.png

empty.png

empty.png

isInitialized

horiba.lvlib:Monochromator.lvclass:isInitialized.vi

This command returns true when the mono is initialized. Otherwise it returns false.

Note: This command may also return false when the mono is busy with another command.

empty.png

empty.png

empty.png

Read DeviceTerm

horiba.lvlib:Monochromator.lvclass:Read DeviceTerm.vi

Accessor VI for this class property.

empty.png

empty.png

empty.png

Write DeviceTerm

horiba.lvlib:Monochromator.lvclass:Write DeviceTerm.vi

Accessor VI for this class property.

empty.png

empty.png

empty.png

Read DeviceType

horiba.lvlib:Monochromator.lvclass:Read DeviceType.vi

Accessor VI for this class property.

empty.png

empty.png

empty.png

Write DeviceType

horiba.lvlib:Monochromator.lvclass:Write DeviceType.vi

Accessor VI for this class property.

empty.png

empty.png

empty.png

Read Index

horiba.lvlib:Monochromator.lvclass:Read Index.vi

Accessor VI for this class property.

empty.png

empty.png

empty.png

Write Index

horiba.lvlib:Monochromator.lvclass:Write Index.vi

Accessor VI for this class property.

empty.png

empty.png

empty.png

Read productId

horiba.lvlib:Monochromator.lvclass:Read productId.vi

Accessor VI for this class property.

empty.png

empty.png

empty.png

Write productId

horiba.lvlib:Monochromator.lvclass:Write productId.vi

Accessor VI for this class property.

empty.png

empty.png

empty.png

Read serialNumber

horiba.lvlib:Monochromator.lvclass:Read serialNumber.vi

Accessor VI for this class property.

empty.png

empty.png

empty.png

Write serialNumber

horiba.lvlib:Monochromator.lvclass:Write serialNumber.vi

Accessor VI for this class property.

empty.png

empty.png

empty.png

Scope: scope protected → Protected | scope community → Community

Reentrancy: reentrancy preallocated → Preallocated reentrancy | reentrancy shared → Shared reentrancy

Inlining: inlined → Inlined

4.5.3. Class Constant VIs

Note

No Constant VIs Found

4.6. SCD.lvclass

Responsibility: !!! This class is only a stub and does not contain functionality yet !!! This class contains all functionality needed for Horiba’s Single-Channel-detectors.

Version: 1.0.0.2

4.6.2. Methods

Table 27. Functions (non private scope only)
Name Connector pane Description S. R. I.

AcqStart

horiba.lvlib:SCD.lvclass:AcqStart.vi

Define acquisition sets before starting an acquisition. Ensure acquisition preparation is completed successfully. Starting an acquisition will return an error if:

An acquisition is already running, or Acquisition preparation has not been completed. In the event of errors in the defined parameters, the result will include an error_count field indicating the number of errors detected. use saq3_getErrorLog to get the detailed error.

Trigger Modes:

Mode description 1 - 1st data started on Start command, all subsequent data acquired based on interval time 2 - 1st data started by Trigger after start Command, all subsequent data acquired based on interval time 3 - Each data acquisition waits for Trigger

empty.png

empty.png

empty.png

AcqStop

horiba.lvlib:SCD.lvclass:AcqStop.vi

Stops the current acquisition. The current data point is discarded. The acquisition process must be checked and restarted if needed.

empty.png

empty.png

empty.png

AcqPause

horiba.lvlib:SCD.lvclass:AcqPause.vi

Pause active Acquisition. Current point is completed. Can be continued. Needs to be Stopped to start a new Acquisition. An error will be returned if a pause is received while an acquisition is not running.

empty.png

empty.png

empty.png

AcqContinue

horiba.lvlib:SCD.lvclass:AcqContinue.vi

Restart a paused acquisition. An error will be returned if continue is received when not paused.

empty.png

empty.png

empty.png

ForceTrigger

horiba.lvlib:SCD.lvclass:ForceTrigger.vi

Software Trigger, treated the same as Hardware Trigger (IN). If no acquisition is in progress, the trigger will be ignored.

empty.png

empty.png

empty.png

DeviceClose

horiba.lvlib:SCD.lvclass:DeviceClose.vi

Closes communications with the CCD indicated by the index.

empty.png

empty.png

empty.png

DeviceOpen

horiba.lvlib:SCD.lvclass:DeviceOpen.vi

Opens communications with the SpectrAcq3 indicated by the index command parameter.

empty.png

empty.png

empty.png

DeviceIsOpen

horiba.lvlib:SCD.lvclass:DeviceIsOpen.vi

Returns true if selected SpectrAcq3 is open.

empty.png

empty.png

empty.png

IsDeviceBusy

horiba.lvlib:SCD.lvclass:IsDeviceBusy.vi

Checks whether the instrument is busy (e.g., performing initialization or data acquisition).

empty.png

empty.png

empty.png

GetFirmwareVersion

horiba.lvlib:SCD.lvclass:GetFirmwareVersion.vi

Get the firmware version of the device for the given index.

empty.png

empty.png

empty.png

GetFpgaVersion

horiba.lvlib:SCD.lvclass:GetFpgaVersion.vi

Get the FPGA version of the device for the given index.

empty.png

empty.png

empty.png

GetBoardRevision

horiba.lvlib:SCD.lvclass:GetBoardRevision.vi

Get the Board revision of the device for the given index.

empty.png

empty.png

empty.png

GetSerialNumber

horiba.lvlib:SCD.lvclass:GetSerialNumber.vi

Get the serial number of the device for the given index.

empty.png

empty.png

empty.png

SetHvBiasVoltage

horiba.lvlib:SCD.lvclass:SetHvBiasVoltage.vi

Set the High bias voltage in Volts. If not set then default value will be used.

empty.png

empty.png

empty.png

GetHvBiasVoltage

horiba.lvlib:SCD.lvclass:GetHvBiasVoltage.vi

Gets the integration time that was previously set. If no integration time has been explicitly set, the default value is returned. The integration time is returned in seconds.

empty.png

empty.png

empty.png

GetMaxHVVoltageAllowed

horiba.lvlib:SCD.lvclass:GetMaxHVVoltageAllowed.vi

Gets the integration time that was previously set. If no integration time has been explicitly set, the default value is returned. The integration time is returned in seconds.

empty.png

empty.png

empty.png

GetAcqSet

horiba.lvlib:SCD.lvclass:GetAcqSet.vi

Get the acquisition set parameters. scan_count Number of acquisition to perform time_step Interval between successive scans for time based scan in seconds. If 0/not defined, the scans take place as fast as possible (limited by integration time and monochromator move if applicable) integration_time Integration time in seconds external_param User defined value

empty.png

empty.png

empty.png

SetAcqSet

horiba.lvlib:SCD.lvclass:SetAcqSet.vi

Defines and sends the parameters for the acquisition set to perform the acquisition. If the acquisition set is not defined, a single-point scan with default settings is performed. Parameters that are not explicitly defined are set to their default values. Parameters to define for the acquisition

Scan Count : Number of acquisitions to perform Time Steps : Time interval in seconds between acquisitions Integration time: Time in Seconds External user defined parameter Returns an error if an acquisition is already in progress.

empty.png

empty.png

empty.png

IsDataAvailable

horiba.lvlib:SCD.lvclass:IsDataAvailable.vi

Check whether the acquired data is available.

empty.png

empty.png

empty.png

GetAvailableData

horiba.lvlib:SCD.lvclass:GetAvailableData.vi

Check whether the acquired data is available.

empty.png

empty.png

empty.png

SetInTriggerMode

horiba.lvlib:SCD.lvclass:SetInTriggerMode.vi

Tell the device how Hardware Trigger pin is used. Returns Error if Acquisition is in Progress.

mode: Mode of hardware trigger pin. 0: TTL input 1: Event marker input 2: Hardware trigger input

empty.png

empty.png

empty.png

GetTriggerMode

horiba.lvlib:SCD.lvclass:GetTriggerMode.vi

Gets the integration time that was previously set. If no integration time has been explicitly set, the default value is returned. The integration time is returned in seconds.

empty.png

empty.png

empty.png

GetLastError

horiba.lvlib:SCD.lvclass:GetLastError.vi

Gets the integration time that was previously set. If no integration time has been explicitly set, the default value is returned. The integration time is returned in seconds.

empty.png

empty.png

empty.png

GetErrorLog

horiba.lvlib:SCD.lvclass:GetErrorLog.vi

Gets the integration time that was previously set. If no integration time has been explicitly set, the default value is returned. The integration time is returned in seconds.

empty.png

empty.png

empty.png

Read DeviceTerm

horiba.lvlib:SCD.lvclass:Read DeviceTerm.vi

Accessor VI for this class property.

empty.png

empty.png

empty.png

Write DeviceTerm

horiba.lvlib:SCD.lvclass:Write DeviceTerm.vi

Accessor VI for this class property.

empty.png

empty.png

empty.png

Read DeviceType

horiba.lvlib:SCD.lvclass:Read DeviceType.vi

Accessor VI for this class property.

empty.png

empty.png

empty.png

Write DeviceType

horiba.lvlib:SCD.lvclass:Write DeviceType.vi

Accessor VI for this class property.

empty.png

empty.png

empty.png

Read Index

horiba.lvlib:SCD.lvclass:Read Index.vi

Accessor VI for this class property.

empty.png

empty.png

empty.png

Write Index

horiba.lvlib:SCD.lvclass:Write Index.vi

Accessor VI for this class property.

empty.png

empty.png

empty.png

Read productId

horiba.lvlib:SCD.lvclass:Read productId.vi

Accessor VI for this class property.

empty.png

empty.png

empty.png

Write productId

horiba.lvlib:SCD.lvclass:Write productId.vi

Accessor VI for this class property.

empty.png

empty.png

empty.png

Read serialNumber

horiba.lvlib:SCD.lvclass:Read serialNumber.vi

Accessor VI for this class property.

empty.png

empty.png

empty.png

Write serialNumber

horiba.lvlib:SCD.lvclass:Write serialNumber.vi

Accessor VI for this class property.

empty.png

empty.png

empty.png

Scope: scope protected → Protected | scope community → Community

Reentrancy: reentrancy preallocated → Preallocated reentrancy | reentrancy shared → Shared reentrancy

Inlining: inlined → Inlined

4.6.3. Class Constant VIs

Note

No Constant VIs Found

5. Custom errors

Tip

Custom errors are added via vi named *--error.vi.

Table 28. Custom errors
Name Code Description Owned by

DeviceManager.lvlib:Module Not Running

0

[horiba.lvlib]

LiveLogger.lvlib:Module Not Running

0

[horiba.lvlib]

DeviceManager.lvlib:Module Not Stopped

403682

The Stop Module VI for the %s module timed out while waiting for the module main VI to stop. The module main VI may still be running.

[horiba.lvlib]

LiveLogger.lvlib:Module Not Stopped

403682

The Stop Module VI for the %s module timed out while waiting for the module main VI to stop. The module main VI may still be running.

[horiba.lvlib]

DeviceManager.lvlib:Module Not Synced

403683

%s Module was unable to synchronize events.

[horiba.lvlib]

LiveLogger.lvlib:Module Not Synced

403683

%s Module was unable to synchronize events.

[horiba.lvlib]

DeviceManager.lvlib:Request and Wait for Reply Timeout

403686

[horiba.lvlib]

LiveLogger.lvlib:Request and Wait for Reply Timeout

403686

[horiba.lvlib]

6.1. Document creation

This document has been generated using the following tools.

6.1.1. Antidoc

Project website: Antidoc

Maintainer website: Wovalab

BSD 3-Clause License

Copyright © 2019-2025, Wovalab, All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

  • Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

6.1.2. Asciidoc for LabVIEW™

Project website: Asciidoc toolkit

Maintainer website: Wovalab

BSD 3-Clause License

Copyright © 2019-2025, Wovalab, All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

  • Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

6.1.3. Graph Builder

Project website: Graph Builder

BSD 3-Clause License

Copyright © 2020, Cyril GAMBINI All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

  • Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

6.1.4. classy Diagram Viewer

Project website: classy Diagram Viewer

BSD 3-Clause License

Copyright © 2021, Tatiana Boyé All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

  • Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

6.2. Product used in the project

The documented project has been developed with the following products.

6.2.1. DQMH®

Copyright © 2021 DQMH® Consortium, LLC. All Rights Reserved.

Find more details on DQMH® Consortium website