cml based on dqmh® framework · a cloneable dqmh module can have one or multiple instances running...

41
CML based on DQMH® framework Olivier Jourdan

Upload: others

Post on 06-Mar-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

CML based on DQMH® frameworkOlivier Jourdan

Page 2: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

Table of Contents1. Project description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  1

2. Code component descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  2

2.1. DQMH® modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  2

2.1.1. Preamble. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  2

2.1.2. Modules overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  3

2.1.3. CML UI.lvlib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  4

2.1.4. Acquisition.lvlib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  6

2.1.5. Logger.lvlib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  9

2.1.6. Settings Editor.lvlib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  10

2.2. Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  13

2.2.1. CML Shared.lvlib. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  13

2.2.2. Launcher Support.lvlib. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  13

2.3. Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  13

3. VI descriptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  14

3.1. DQMH® modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  14

3.1.1. CML UI.lvlib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  14

3.1.2. Acquisition.lvlib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  18

3.1.3. Logger.lvlib. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  24

3.1.4. Settings Editor.lvlib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  30

3.2. Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  35

3.2.1. CML Shared.lvlib. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  35

3.2.2. Launcher Support.lvlib. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  35

3.3. Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  36

4. Legal Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  37

4.1. Document creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  37

4.1.1. Antidoc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  37

4.1.2. Asciidoc for LabVIEW™ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  37

4.1.3. Graph Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  38

4.2. Product used in the project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  39

4.2.1. DQMH® . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  39

Page 3: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

Section 1. Project descriptionThe Continuous Measurement and Logging (CML) Delacor Queued Message Handler (DQMH) sampleproject is a variation of the NI QMH based CML project using DQMH® modules instead of separateMessage Handle Loops.

CML based on DQMH® framework

Section 1. Project description | 1

Page 4: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

Section 2. Code component descriptions

2.1. DQMH® modulesThis section describes DQMH® module responsibilities and relationships.

2.1.1. Preamble

A DQMH module is the main component of an architecture based on DQMH® framework. A DQMHmodule 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 bothother 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. Multiplelocations 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.

CML based on DQMH® framework

2 | Section 2. Code component descriptions

Page 5: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

NOTERefer to the DQMH® framework official documentation to find more details on how theframework works

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

Graphs used in this section have the following legend:

Components:

Events:

Start and Stop module callers:

2.1.2. Modules overview

This project contains the following modules.

Table 1. Modules list

Singleton Cloneable

CML UI.lvlib

Acquisition.lvlib

Logger.lvlib

Settings Editor.lvlib

CML based on DQMH® framework

2.1. DQMH® modules | 3

Page 6: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

This graph represents the links between all DQMH modules.

2.1.3. CML UI.lvlib

Type: Singleton

Responsibility: This module is the user interface of the Continuous Measurement and Logging application.

Module Start/Stop calls

Table 2. Start and Stop module callers

Function Callers

CML UI.lvlib:Start Module.vi CML Main.viTest CML UI API.vi

CML UI.lvlib:Stop Module.vi CML UI.lvlib:Handle Exit.viCML Main.viTest CML UI API.vi

Module relationship

CML based on DQMH® framework

4 | Section 2. Code component descriptions

Page 7: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

Table 3. Requests callers

Request Name Callers

CML UI.lvlib:Show Panel.vi CML Main.viTest CML UI API.vi

CML UI.lvlib:Hide Panel.vi Test CML UI API.vi

CML UI.lvlib:Get Module Execution Status.vi CML UI.lvlib:Start Module.viCML UI.lvlib:Obtain Broadcast Events forRegistration.vi

CML UI.lvlib:Show Diagram.vi Test CML UI API.vi

Table 4. Broadcasts Listeners

Broadcast Name Listeners

CML UI.lvlib:Module Did Init.vi Test CML UI API.viCML Main.vi

CML UI.lvlib:Status Updated.vi Test CML UI API.viCML Main.vi

CML UI.lvlib:Error Reported.vi Test CML UI API.viCML Main.vi

CML UI.lvlib:Module Did Stop.vi Test CML UI API.viCML Main.vi

CML UI.lvlib:Update Module Execution Status.vi Test CML UI API.viCML Main.vi

CML based on DQMH® framework

2.1. DQMH® modules | 5

Page 8: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

Table 5. Used requests

Module Brodcasts

CML UI.lvlib CML UI.lvlib:Get Module Execution Status.vi

Acquisition.lvlib Acquisition.lvlib:Stop Acquiring.viAcquisition.lvlib:Calibrate DAQ.viAcquisition.lvlib:Start Acquiring.vi

Logger.lvlib Logger.lvlib:Initialize File.viLogger.lvlib:Stop Logging.vi

Settings Editor.lvlib Settings Editor.lvlib:Show Panel.vi

Table 6. Registred broadcast

Module Brodcasts

Acquisition.lvlib Acquisition Started.viAcquisition Stopped.viData Updated.viDevice Calibrated.viError Reported.viModule Did Init.viStatus Updated.viUpdate Module Execution Status.vi

Logger.lvlib Error Reported.viModule Did Init.viStatus Updated.viUpdate Module Execution Status.vi

Settings Editor.lvlib Error Reported.viModule Did Init.viStatus Updated.vi

2.1.4. Acquisition.lvlib

Type: Singleton

Responsibility: This module handle the continuous data acquisition.

Module Start/Stop calls

CML based on DQMH® framework

6 | Section 2. Code component descriptions

Page 9: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

Table 7. Start and Stop module callers

Function Callers

Acquisition.lvlib:Start Module.vi CML UI.lvlib:Main.viTest Acquisition API.vi

Acquisition.lvlib:Stop Module.vi CML UI.lvlib:Main.viAcquisition.lvlib:Handle Exit.viTest Acquisition API.vi

Module relationship

Table 8. Requests callers

Request Name Callers

Acquisition.lvlib:Show Panel.vi Test Acquisition API.vi

Acquisition.lvlib:Hide Panel.vi Test Acquisition API.vi

Acquisition.lvlib:Get Module Execution Status.vi Acquisition.lvlib:Start Module.viAcquisition.lvlib:Obtain Broadcast Events forRegistration.vi

Acquisition.lvlib:Show Diagram.vi Test Acquisition API.vi

CML based on DQMH® framework

2.1. DQMH® modules | 7

Page 10: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

Request Name Callers

Acquisition.lvlib:Stop Acquiring.vi CML UI.lvlib:Main.viTest Acquisition API.vi

Acquisition.lvlib:Calibrate DAQ.vi CML UI.lvlib:Main.viTest Acquisition API.vi

Acquisition.lvlib:Start Acquiring.vi CML UI.lvlib:Main.viTest Acquisition API.vi

Acquisition.lvlib:Wakeup Helper Loop.vi Acquisition.lvlib:Main.vi

Acquisition.lvlib:Change Settings.vi Acquisition.lvlib:Main.vi

Table 9. Broadcasts Listeners

Broadcast Name Listeners

Acquisition.lvlib:Module Did Init.vi CML UI.lvlib:Main.viTest Acquisition API.vi

Acquisition.lvlib:Status Updated.vi CML UI.lvlib:Main.viTest Acquisition API.vi

Acquisition.lvlib:Error Reported.vi CML UI.lvlib:Main.viTest Acquisition API.vi

Acquisition.lvlib:Module Did Stop.vi Test Acquisition API.vi

Acquisition.lvlib:Update Module Execution Status.vi CML UI.lvlib:Main.viTest Acquisition API.vi

Acquisition.lvlib:Acquisition Started.vi CML UI.lvlib:Main.viTest Acquisition API.vi

Acquisition.lvlib:Acquisition Stopped.vi CML UI.lvlib:Main.viTest Acquisition API.vi

Acquisition.lvlib:Data Updated.vi CML UI.lvlib:Main.viTest Acquisition API.vi

Acquisition.lvlib:Device Calibrated.vi CML UI.lvlib:Main.viTest Acquisition API.vi

Table 10. Used requests

Module Brodcasts

Acquisition.lvlib Acquisition.lvlib:Get Module Execution Status.viAcquisition.lvlib:Wakeup Helper Loop.viAcquisition.lvlib:Change Settings.vi

Logger.lvlib Logger.lvlib:Log Data.vi

Settings Editor.lvlib Settings Editor.lvlib:Update Application Settings.vi

Table 11. Registred broadcast

CML based on DQMH® framework

8 | Section 2. Code component descriptions

Page 11: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

Module Brodcasts

Settings Editor.lvlib Application Settings Updated.vi

2.1.5. Logger.lvlib

Type: Singleton

Responsibility: This module handle data logging in file.

Module Start/Stop calls

Table 12. Start and Stop module callers

Function Callers

Logger.lvlib:Start Module.vi CML UI.lvlib:Main.viTest Logger API.vi

Logger.lvlib:Stop Module.vi CML UI.lvlib:Main.viLogger.lvlib:Handle Exit.viTest Logger API.vi

Module relationship

Table 13. Requests callers

CML based on DQMH® framework

2.1. DQMH® modules | 9

Page 12: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

Request Name Callers

Logger.lvlib:Show Panel.vi Test Logger API.vi

Logger.lvlib:Hide Panel.vi Test Logger API.vi

Logger.lvlib:Get Module Execution Status.vi Logger.lvlib:Start Module.viLogger.lvlib:Obtain Broadcast Events forRegistration.vi

Logger.lvlib:Show Diagram.vi Test Logger API.vi

Logger.lvlib:Initialize File.vi CML UI.lvlib:Main.viTest Logger API.vi

Logger.lvlib:Log Data.vi Acquisition.lvlib:Main.viTest Logger API.vi

Logger.lvlib:Stop Logging.vi CML UI.lvlib:Main.viTest Logger API.vi

Table 14. Broadcasts Listeners

Broadcast Name Listeners

Logger.lvlib:Module Did Init.vi CML UI.lvlib:Main.viTest Logger API.vi

Logger.lvlib:Status Updated.vi CML UI.lvlib:Main.viTest Logger API.vi

Logger.lvlib:Error Reported.vi CML UI.lvlib:Main.viTest Logger API.vi

Logger.lvlib:Module Did Stop.vi Test Logger API.vi

Logger.lvlib:Update Module Execution Status.vi CML UI.lvlib:Main.viTest Logger API.vi

Logger.lvlib:Logging Stopped.vi Test Logger API.vi

Logger.lvlib:File Initialized.vi Test Logger API.vi

Table 15. Used requests

Module Brodcasts

Logger.lvlib Logger.lvlib:Get Module Execution Status.vi

Settings Editor.lvlib Settings Editor.lvlib:Update Application Settings.vi

Table 16. Registred broadcast

Module Brodcasts

Settings Editor.lvlib Application Settings Updated.vi

2.1.6. Settings Editor.lvlib

Type: Singleton

CML based on DQMH® framework

10 | Section 2. Code component descriptions

Page 13: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

Responsibility: This module is an ui that allow user to change application settings.

Module Start/Stop calls

Table 17. Start and Stop module callers

Function Callers

Settings Editor.lvlib:Start Module.vi CML UI.lvlib:Main.viAcquisition.lvlib:Main.viLogger.lvlib:Main.viTest Settings Editor API.vi

Settings Editor.lvlib:Stop Module.vi CML UI.lvlib:Main.viSettings Editor.lvlib:Handle Exit.viAcquisition.lvlib:Main.viLogger.lvlib:Main.viTest Settings Editor API.vi

Module relationship

CML based on DQMH® framework

2.1. DQMH® modules | 11

Page 14: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

Table 18. Requests callers

Request Name Callers

Settings Editor.lvlib:Show Panel.vi CML UI.lvlib:Main.viTest Acquisition API.viTest Logger API.viTest Settings Editor API.vi

Settings Editor.lvlib:Hide Panel.vi Test Settings Editor API.vi

Settings Editor.lvlib:Get Module Execution Status.vi Settings Editor.lvlib:Start Module.viSettings Editor.lvlib:Obtain Broadcast Events forRegistration.vi

Settings Editor.lvlib:Show Diagram.vi Test Settings Editor API.vi

Settings Editor.lvlib:Update Application Settings.vi Acquisition.lvlib:Main.viLogger.lvlib:Main.viTest Settings Editor API.vi

Table 19. Broadcasts Listeners

Broadcast Name Listeners

Settings Editor.lvlib:Module Did Init.vi CML UI.lvlib:Main.viTest Settings Editor API.vi

Settings Editor.lvlib:Status Updated.vi CML UI.lvlib:Main.viTest Settings Editor API.vi

Settings Editor.lvlib:Error Reported.vi CML UI.lvlib:Main.viTest Settings Editor API.vi

Settings Editor.lvlib:Module Did Stop.vi Test Settings Editor API.vi

Settings Editor.lvlib:Update Module ExecutionStatus.vi

CML UI.lvlib:Main.viTest Settings Editor API.vi

Settings Editor.lvlib:Application Settings Updated.vi Acquisition.lvlib:Main.viLogger.lvlib:Main.viTest Settings Editor API.vi

CML based on DQMH® framework

12 | Section 2. Code component descriptions

Page 15: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

Table 20. Used requests

Module Brodcasts

Settings Editor.lvlib Settings Editor.lvlib:Get Module Execution Status.vi

Table 21. Registred broadcast

Module Brodcasts

 —   — 

2.2. LibrariesThis section describes the libraries contained in the project.

2.2.1. CML Shared.lvlib

This library gathers all the resource shared among the different part of the code.

2.2.2. Launcher Support.lvlib

This library gathers functions used to build and laucnh the application.

2.3. ClassesThis section describes the classes contained in the project.

CML based on DQMH® framework

2.2. Libraries | 13

Page 16: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

Section 3. VI descriptions

3.1. DQMH® modulesThis section describes DQMH® modules events.

3.1.1. CML UI.lvlib

CML UI.lvlib:Start Module.vi

Event type: Not a DQMH Event

Description:

Launches the Module Main.vi._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

CML UI.lvlib:Stop Module.vi

Event type: Not a DQMH Event

Description:

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

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

Note: The <b>Timeout to Wait for Stop</b> value is ignored if 'Wait for Module toStop?' is set to FALSE._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

CML based on DQMH® framework

14 | Section 3. VI descriptions

Page 17: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

CML UI.lvlib:Show Panel.vi

Event type: Request

Description:

Send the Show Panel request to the Module's Main.vi._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

CML UI.lvlib:Hide Panel.vi

Event type: Request

Description:

Send the Hide Panel request to the Module's Main.vi._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

CML UI.lvlib:Get Module Execution Status.vi

Event type: Request

Description:

Fire the Get Module Execution Status request._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

CML UI.lvlib:Show Diagram.vi

Event type: Request

CML based on DQMH® framework

3.1. DQMH® modules | 15

Page 18: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

Description:

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

_____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

CML UI.lvlib:Module Did Init.vi

Event type: Broadcast

Description:

Send the Module Did Init event to any VI registered to listen to this module'sbroadcast events._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

CML UI.lvlib:Status Updated.vi

Event type: Broadcast

Description:

Send the Status Updated event to any VI registered to listen to events from the owningmodule._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

CML based on DQMH® framework

16 | Section 3. VI descriptions

Page 19: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

CML UI.lvlib:Error Reported.vi

Event type: Broadcast

Description:

Send the Error Reported event to any VI registered to listen to events from the owningmodule._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

CML UI.lvlib:Module Did Stop.vi

Event type: Broadcast

Description:

Send the Module Did Stop event to any VI registered to listen to this module'sbroadcast events._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

CML UI.lvlib:Update Module Execution Status.vi

Event type: Broadcast

Description:

Broadcast event to specify whether or not the module is running._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

CML based on DQMH® framework

3.1. DQMH® modules | 17

Page 20: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

3.1.2. Acquisition.lvlib

Acquisition.lvlib:Start Module.vi

Event type: Not a DQMH Event

Description:

Launches the Module Main.vi._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

Acquisition.lvlib:Stop Module.vi

Event type: Not a DQMH Event

Description:

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

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

Note: The <b>Timeout to Wait for Stop</b> value is ignored if 'Wait for Module toStop?' is set to FALSE._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

Acquisition.lvlib:Show Panel.vi

Event type: Request

CML based on DQMH® framework

18 | Section 3. VI descriptions

Page 21: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

Description:

Send the Show Panel request to the Module's Main.vi._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

Acquisition.lvlib:Hide Panel.vi

Event type: Request

Description:

Send the Hide Panel request to the Module's Main.vi._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

Acquisition.lvlib:Get Module Execution Status.vi

Event type: Request

Description:

Fire the Get Module Execution Status request._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

Acquisition.lvlib:Show Diagram.vi

Event type: Request

Description:

CML based on DQMH® framework

3.1. DQMH® modules | 19

Page 22: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

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

_____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

Acquisition.lvlib:Stop Acquiring.vi

Event type: Request

Description:

Requests the Acquisition Module to stop acquiring_____Created using Delacor QMH Event Scripter 4.0.0.65._____Based on Delacor QMH Project Template 4.2.1.64.

Acquisition.lvlib:Calibrate DAQ.vi

Event type: Request

Description:

Add calibration routine, and linear slope and offset to the acquisition helper loop._____Created using Delacor QMH Event Scripter 4.0.0.68._____Based on Delacor QMH Project Template 4.2.1.64.

Acquisition.lvlib:Start Acquiring.vi

Event type: Request And Wait For Reply

Description:

CML based on DQMH® framework

20 | Section 3. VI descriptions

Page 23: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

<b>Note</b>: This VI was renamed by the DQMH Rename Event utility. Make sure the VIDescription is updated to reflect the new event name, then delete this comment.

Requests Acquisition Module to start acquiring._____Created using Delacor QMH Event Scripter 4.1.0.78._____Based on Delacor QMH Project Template 4.2.1.64.

Acquisition.lvlib:Module Did Init.vi

Event type: Broadcast

Description:

Send the Module Did Init event to any VI registered to listen to this module'sbroadcast events._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

Acquisition.lvlib:Status Updated.vi

Event type: Broadcast

Description:

Send the Status Updated event to any VI registered to listen to events from the owningmodule._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

Acquisition.lvlib:Error Reported.vi

Event type: Broadcast

CML based on DQMH® framework

3.1. DQMH® modules | 21

Page 24: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

Description:

Send the Error Reported event to any VI registered to listen to events from the owningmodule._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

Acquisition.lvlib:Module Did Stop.vi

Event type: Broadcast

Description:

Send the Module Did Stop event to any VI registered to listen to this module'sbroadcast events._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

Acquisition.lvlib:Update Module Execution Status.vi

Event type: Broadcast

Description:

Broadcast event to specify whether or not the module is running._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

Acquisition.lvlib:Acquisition Started.vi

Event type: Broadcast

Description:

CML based on DQMH® framework

22 | Section 3. VI descriptions

Page 25: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

Broadcasts that the Acquisition Module started acquiring_____Created using Delacor QMH Event Scripter 4.0.0.65._____Based on Delacor QMH Project Template 4.2.1.64.

Acquisition.lvlib:Acquisition Stopped.vi

Event type: Broadcast

Description:

Broadcasts that the Acquisition Module has stopped acquiring data._____Created using Delacor QMH Event Scripter 4.0.0.65._____Based on Delacor QMH Project Template 4.2.1.64.

Acquisition.lvlib:Data Updated.vi

Event type: Broadcast

Description:

Broadcasts the latest data acquired_____Created using Delacor QMH Event Scripter 4.0.0.65._____Based on Delacor QMH Project Template 4.2.1.64.

Acquisition.lvlib:Device Calibrated.vi

Event type: Broadcast

Description:

CML based on DQMH® framework

3.1. DQMH® modules | 23

Page 26: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

Broadcasts that the Acquisition module calibrated the device._____Created using Delacor QMH Event Scripter 4.1.0.72._____Based on Delacor QMH Project Template 4.2.1.64.

Acquisition.lvlib:Wakeup Helper Loop.vi

Event type: Request

Description:

This is a private request to wake up the Helper Loop and start acquiring._____Created using Delacor QMH Event Scripter 4.0.0.65._____Based on Delacor QMH Project Template 4.2.1.64.

Acquisition.lvlib:Change Settings.vi

Event type: Request

Description:

Fire an event to change the hardware settings in the helper loop.This is a private request event that should only be fired from within the AcquisitionModule. If this request was public, other modules could call it and the SettingsEditor would not get the notification that the values changed.

_____Created using Delacor QMH Event Scripter 4.0.0.68._____Based on Delacor QMH Project Template 4.2.1.64.

3.1.3. Logger.lvlib

Logger.lvlib:Start Module.vi

Event type: Not a DQMH Event

CML based on DQMH® framework

24 | Section 3. VI descriptions

Page 27: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

Description:

Launches the Module Main.vi._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

Logger.lvlib:Stop Module.vi

Event type: Not a DQMH Event

Description:

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

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

Note: The <b>Timeout to Wait for Stop</b> value is ignored if 'Wait for Module toStop?' is set to FALSE._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

Logger.lvlib:Show Panel.vi

Event type: Request

Description:

CML based on DQMH® framework

3.1. DQMH® modules | 25

Page 28: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

Send the Show Panel request to the Module's Main.vi._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

Logger.lvlib:Hide Panel.vi

Event type: Request

Description:

Send the Hide Panel request to the Module's Main.vi._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

Logger.lvlib:Get Module Execution Status.vi

Event type: Request

Description:

Fire the Get Module Execution Status request._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

Logger.lvlib:Show Diagram.vi

Event type: Request

Description:

CML based on DQMH® framework

26 | Section 3. VI descriptions

Page 29: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

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

_____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

Logger.lvlib:Initialize File.vi

Event type: Request And Wait For Reply

Description:

Request the Logger to initialize the file and report when the Logger has initializedthe file._____Created using Delacor QMH Event Scripter 4.1.0.75._____Based on Delacor QMH Project Template 4.2.1.64.

Logger.lvlib:Log Data.vi

Event type: Request

Description:

<b>Note</b>: This VI was renamed by the DQMH Rename Event utility. Make sure the VIDescription is updated to reflect the new event name, then delete this comment.

Requests Logger module to log data to file_____Created using Delacor QMH Event Scripter 4.0.0.65._____Based on Delacor QMH Project Template 4.2.1.64.

Logger.lvlib:Stop Logging.vi

Event type: Request

CML based on DQMH® framework

3.1. DQMH® modules | 27

Page 30: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

Description:

Requests Logger module to stop logging and the module broadcasts when the logging hasstopped._____Created using Delacor QMH Event Scripter 4.0.0.65._____Based on Delacor QMH Project Template 4.2.1.64.

Logger.lvlib:Module Did Init.vi

Event type: Broadcast

Description:

Send the Module Did Init event to any VI registered to listen to this module'sbroadcast events._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

Logger.lvlib:Status Updated.vi

Event type: Broadcast

Description:

Send the Status Updated event to any VI registered to listen to events from the owningmodule._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

Logger.lvlib:Error Reported.vi

Event type: Broadcast

CML based on DQMH® framework

28 | Section 3. VI descriptions

Page 31: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

Description:

Send the Error Reported event to any VI registered to listen to events from the owningmodule._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

Logger.lvlib:Module Did Stop.vi

Event type: Broadcast

Description:

Send the Module Did Stop event to any VI registered to listen to this module'sbroadcast events._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

Logger.lvlib:Update Module Execution Status.vi

Event type: Broadcast

Description:

Broadcast event to specify whether or not the module is running._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

Logger.lvlib:Logging Stopped.vi

Event type: Broadcast

Description:

CML based on DQMH® framework

3.1. DQMH® modules | 29

Page 32: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

Requests Logger module to stop logging and the module broadcasts when the logging hasstopped._____Created using Delacor QMH Event Scripter 4.0.0.65._____Based on Delacor QMH Project Template 4.2.1.64.

Logger.lvlib:File Initialized.vi

Event type: Broadcast

Description:

Request the Logger to initialize the file and report when the Logger has initializedthe file._____Created using Delacor QMH Event Scripter 4.1.0.75._____Based on Delacor QMH Project Template 4.2.1.64.

3.1.4. Settings Editor.lvlib

Settings Editor.lvlib:Start Module.vi

Event type: Not a DQMH Event

Description:

Launches the Module Main.vi._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

Settings Editor.lvlib:Stop Module.vi

Event type: Not a DQMH Event

CML based on DQMH® framework

30 | Section 3. VI descriptions

Page 33: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

Description:

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

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

Note: The <b>Timeout to Wait for Stop</b> value is ignored if 'Wait for Module toStop?' is set to FALSE._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

Settings Editor.lvlib:Show Panel.vi

Event type: Request

Description:

Send the Show Panel request to the Module's Main.vi._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

Settings Editor.lvlib:Hide Panel.vi

Event type: Request

Description:

CML based on DQMH® framework

3.1. DQMH® modules | 31

Page 34: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

Send the Hide Panel request to the Module's Main.vi._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

Settings Editor.lvlib:Get Module Execution Status.vi

Event type: Request

Description:

Fire the Get Module Execution Status request._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

Settings Editor.lvlib:Show Diagram.vi

Event type: Request

Description:

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

_____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

Settings Editor.lvlib:Update Application Settings.vi

Event type: Request And Wait For Reply

Description:

CML based on DQMH® framework

32 | Section 3. VI descriptions

Page 35: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

Request Settings Editor to return the latest settings. The Settings Editor can sendthe applications settings as a reply or via broadcast._____Created using Delacor QMH Event Scripter 4.1.0.75._____Based on Delacor QMH Project Template 4.2.1.64.

Settings Editor.lvlib:Module Did Init.vi

Event type: Broadcast

Description:

Send the Module Did Init event to any VI registered to listen to this module'sbroadcast events._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

Settings Editor.lvlib:Status Updated.vi

Event type: Broadcast

Description:

Send the Status Updated event to any VI registered to listen to events from the owningmodule._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

Settings Editor.lvlib:Error Reported.vi

Event type: Broadcast

Description:

CML based on DQMH® framework

3.1. DQMH® modules | 33

Page 36: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

Send the Error Reported event to any VI registered to listen to events from the owningmodule._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

Settings Editor.lvlib:Module Did Stop.vi

Event type: Broadcast

Description:

Send the Module Did Stop event to any VI registered to listen to this module'sbroadcast events._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

Settings Editor.lvlib:Update Module Execution Status.vi

Event type: Broadcast

Description:

Broadcast event to specify whether or not the module is running._____Based on Delacor QMH Project Template 4.0.0.47._____Based on Delacor QMH Project Template 4.2.1.64.

Settings Editor.lvlib:Application Settings Updated.vi

Event type: Broadcast

Description:

CML based on DQMH® framework

34 | Section 3. VI descriptions

Page 37: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

Request Settings Editor to return the latest settings. The Settings Editor can sendthe applications settings as a reply or via broadcast._____Created using Delacor QMH Event Scripter 4.1.0.75._____Based on Delacor QMH Project Template 4.2.1.64.

3.2. LibrariesThis section describes libraries public VIs.

3.2.1. CML Shared.lvlib

3.2.2. Launcher Support.lvlib

Launcher Support.lvlib:Determine if Running in Debug Mode.vi

Description:

The launcher VI is meant to be run as a headless launcher for the module main VI. Thelauncher VI can be used as a debugging tool.

This VI determines if the launcher VI is running as a debugger by parsing the commandline arguments or checking if the VI is running in development mode and sets theLauncher VI properties accordingly._____Based on Delacor QMH Project Template 4.2.1.64.

Launcher Support.lvlib:Pre-Build Action.vi

Description:

This Pre-Build Action VI sets the Debug mode to false to ensure the top level VI hasthe headless properties at build time._____Based on Delacor QMH Project Template 4.2.1.64.

CML based on DQMH® framework

3.2. Libraries | 35

Page 38: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

Launcher Support.lvlib:Set VI Properties for Debugging Mode.vi

Description:

This VI sets the properties of the VI Launcher to either headless or debugging mode._____Based on Delacor QMH Project Template 4.2.1.64.

3.3. ClassesThis section describes classes public VIs.

CML based on DQMH® framework

36 | Section 3. VI descriptions

Page 39: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

Section 4. Legal Information

4.1. Document creationThis document has been generated using the following tools.

4.1.1. Antidoc

Project website: Antidoc

Maintainer website: Wovalab

BSD 3-Clause License

Copyright © 2019, Wovalab, All rights reserved.

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

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

• Redistributions in binary form must reproduce the above copyright notice, this list of conditions andthe 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 orpromote products derived from this software without specific prior written permission.

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

4.1.2. Asciidoc for LabVIEW™

Project website: Asciidoc toolkit

Maintainer website: Wovalab

BSD 3-Clause License

Copyright © 2019, Wovalab, All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided

CML based on DQMH® framework

4.1. Document creation | 37

Page 40: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

that the following conditions are met:

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

• Redistributions in binary form must reproduce the above copyright notice, this list of conditions andthe 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 orpromote products derived from this software without specific prior written permission.

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

4.1.3. Graph Builder

Project website: Graph Builder

BSD 3-Clause License

Copyright (c) 2020, Cyril GAMBINI All rights reserved.

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

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

• Redistributions in binary form must reproduce the above copyright notice, this list of conditions andthe 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 orpromote products derived from this software without specific prior written permission.

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

CML based on DQMH® framework

38 | Section 4. Legal Information

Page 41: CML based on DQMH® framework · A Cloneable DQMH module can have one or multiple instances running in parallel. DQMH® framework defines two different ways to carry data throughout

4.2. Product used in the projectThe documented project has been developed with the following products.

4.2.1. DQMH®

Copyright © 2015-2020 by Delacor, LLC. All Rights Reserved.

Find more details on Delacor website

CML based on DQMH® framework

4.2. Product used in the project | 39