<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://labviewwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bryan</id>
	<title>LabVIEW Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://labviewwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bryan"/>
	<link rel="alternate" type="text/html" href="https://labviewwiki.org/wiki/Special:Contributions/Bryan"/>
	<updated>2026-04-22T17:10:24Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=TortoiseSVN_client_to_Subversion&amp;diff=35627</id>
		<title>TortoiseSVN client to Subversion</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=TortoiseSVN_client_to_Subversion&amp;diff=35627"/>
		<updated>2025-04-23T15:03:12Z</updated>

		<summary type="html">&lt;p&gt;Bryan: Updated link to JKI Toolkit and added link Viewpoint Systems&amp;#039; toolkit.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TortoiseSVN is a free Subversion client integrated as a Windows shell extension. [http://tortoisesvn.net/] &lt;br /&gt;
&lt;br /&gt;
After downloading and installing TortoiseSVN, one can:&amp;lt;br&amp;gt; [[Point to an existing repository]]&amp;lt;br&amp;gt; [[Add a directory to the repository]]&amp;lt;br&amp;gt; [[Configure TortoiseSVN to work with LabVIEW]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below are links to some available TortoiseSVN Toolkits.  Visit provider&#039;s pages for additional information:&lt;br /&gt;
&lt;br /&gt;
- [https://www.vipm.io/package/jki_tool_tortoisesvn/ JKI TortoiseSVN Toolkit]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
- [https://www.viewpointusa.com/product/ni-labview-toolkits/tsvn-toolkit/ Viewpoint Systems TSVN Toolkit]&lt;br /&gt;
&lt;br /&gt;
[[Category:SCC]]&lt;br /&gt;
[[Category:SVN]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Set_up_differencing_capabilities&amp;diff=32220</id>
		<title>Set up differencing capabilities</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Set_up_differencing_capabilities&amp;diff=32220"/>
		<updated>2023-09-19T13:35:18Z</updated>

		<summary type="html">&lt;p&gt;Bryan: /* Using LVCompare.exe and TortoiseSVN */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Easy Setup For Git ==&lt;br /&gt;
The easiest way to setup LVCompare and LVMerge for use with Git is to copy/paste the following into Git Bash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;cd &amp;amp;&amp;amp; git clone https://gitlab.com/sas-blog/LVCompare-Merge-Setup.git &amp;amp;&amp;amp; cd LVCompare-Merge-Setup &amp;amp;&amp;amp; ./setupLVTools.sh&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will clone a repo and run a shell script to set everything up. You can read more about it here:&lt;br /&gt;
https://blog.sasworkshops.com/the-easiest-way-to-setup-lvcompare-and-lvmerge/&lt;br /&gt;
&lt;br /&gt;
After that, you can use the difftool command in Git Bash to view diffs or use your favorite Git GUI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are several methods setting up differencing LabVIEW VIs with subversion.  A new feature in LabVIEW 2009 in the program LVCompare.exe which allows graphical differencing from the command line.  In older versions, TortoiseSVN can be coupled with the open source LVDiff to achieve the same goal.&lt;br /&gt;
&lt;br /&gt;
== LVCompare.exe National Instruments Documentation ==&lt;br /&gt;
This documentation describes the options you can pass to LVCompare.exe. For example, you can instruct LVCompare.exe to ignore changes in the position of front panel objects by pass in &amp;quot;-nofppos&amp;quot;. For the full set of documentation please refer to the link below:&lt;br /&gt;
[http://zone.ni.com/reference/en-XX/help/371361R-01/lvhowto/configlvcomp_thirdparty/ LVCompare.exe from National Instruments]&lt;br /&gt;
&lt;br /&gt;
== Using LVCompare.exe and svn CLI ==&lt;br /&gt;
From the command line, subversion cannot normally compare binary files such as vis.  The svn diff command has a switch --diff-cmd to allow an external differencing engine to be used.  This will be leveraged to used LVComare to operate on vis.&lt;br /&gt;
&lt;br /&gt;
To use LVCompare.exe with subversion in the command line, first add &amp;quot;C:\Program Files\National Instruments\Shared\LabVIEW Compare&amp;quot; to your system PATH variable (this allows the command prompt to find LVcompare.exe).&lt;br /&gt;
&lt;br /&gt;
The output of the diff command is quite complicated (from [http://subversion.tigris.org/faq.html#diff-cmd] subversion FAQ):&lt;br /&gt;
&amp;lt;blockquote&amp;gt;When using an external diff command, Subversion builds a fairly complicated command line. First is the specified --diff-cmd. Next comes the specified --extensions (although empty --extensions are ignored), or &#039;-u&#039; if --extensions is unspecified (or specified as &#039;&#039;). Third and fourth, Subversion passes a &#039;-L&#039; and the first file&#039;s label (e.g. &amp;quot;project_issues.html (revision 11209)&amp;quot;). Fifth and sixth are another &#039;-L&#039; and the second label. Seventh and eighth are the first and second file names (e.g. &amp;quot;.svn/text-base/project_issues.html.svn-base&amp;quot; and &amp;quot;.svn/tmp/project_issues.html.tmp&amp;quot;).&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
If your preferred diff command does not support these arguments, you may need to create a small wrapper script to discard arguments and just use the last couple file paths.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Warning: Beware that Subversion does not expect the external diff program to change the files it receives, and doing so may scramble the working copy.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
On windows, this wrapper is easy to create. Save the following file as LVdiff.bat in the same directory as LVCompare.exe.  This formulates the LVCompare command correctly.&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
@ECHO OFF&amp;lt;br/&amp;gt;&lt;br /&gt;
lvcompare &amp;quot;%cd%\%~7&amp;quot; &amp;quot;%cd%\%~6&amp;quot;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
Then, to execute the diff, use the following command:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
svn diff --diff-cmd LVdiff.bat --force CHANGED.vi&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
where CHANGED.vi is the one you want to diff.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT: As stated in the FAQ, subversion does not expect diff to make any changes, so make sure not to save the text-base vi.&lt;br /&gt;
&lt;br /&gt;
== Using LVCompare.exe and TortoiseSVN ==&lt;br /&gt;
For users of the TortoiseSVN client and LabVIEW 2009, it is also possible extend TortoiseSVN&#039;s built-in differencing functionality to allow VIs to be compared from a simple Windows Explorer right-click menu using LVCompare.exe. This can be achieved by adding an entry for .VI files to the &amp;quot;Advanced&amp;quot; list of TortoiseSVN&#039;s Diff settings with the following syntax&amp;lt;ref&amp;gt;http://zone.ni.com/devzone/cda/tut/p/id/9407&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;quot;C:\Program Files\National Instruments\Shared\LabVIEW Compare\LVCompare.exe&amp;quot; %base %mine&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;Note:&#039;&#039; If you&#039;re using 32-bit LabVIEW on a 64-bit Windows OS, the path would be:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;quot;C:\&#039;&#039;&#039;Program Files (x86)&#039;&#039;&#039;\National Instruments\Shared\LabVIEW Compare\LVCompare.exe&amp;quot; %base %mine&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
(from [http://zone.ni.com/devzone/cda/tut/p/id/9407] Command-Line Graphical Differencing of VIs)&lt;br /&gt;
&lt;br /&gt;
== Using TortoiseSVN and LVDiff for VIs ==&lt;br /&gt;
TortoiseSVN has its own program (TortoiseMerge) to show the differences between two different versions of a file.  This works well with text files but since LabVIEW VIs are binary files it is advantageous to use LabVIEW&#039;s graphical differencing capabilities.&lt;br /&gt;
&lt;br /&gt;
The professional version of LabVIEW has a &amp;quot;CMP Compare two VIs.vi&amp;quot; in the ...\LabVIEW x.x\project\procmphier.llb library.&lt;br /&gt;
&lt;br /&gt;
The open-source &amp;quot;LVDiff&amp;quot; tool (see [http://meta-diff.sourceforge.net/] for the main download but download the updated &amp;quot;lvdiff.vi&amp;quot; from the link here [http://forums.ni.com/ni/board/message?board.id=170&amp;amp;message.id=354286&amp;amp;requireLogin=False] since the version currently in the .zip file does not work with VIs in libraries) provides a wrapper to call this VI.&lt;br /&gt;
&lt;br /&gt;
Be sure to update the paths in the .lvdiff file.&lt;br /&gt;
&lt;br /&gt;
Open Windows Explorer.&amp;lt;br /&amp;gt;&lt;br /&gt;
Right-click on a directory and select &amp;quot;TortoiseSVN...Settings&amp;quot; from the pop-up menu.&amp;lt;br /&amp;gt;&lt;br /&gt;
Under &amp;quot;External Programs&amp;quot; select &amp;quot;Diff Viewer&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:DiffViewerPageNew2.png]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Click on the &amp;quot;Advanced...&amp;quot; button and add a &amp;quot;.vi&amp;quot; extension with the &amp;quot;External Program&amp;quot; pointing to &amp;quot;lvdiff.exe&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:SettingUpLVDiff.png]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To compare a file with the previous version in the repository right-click on the file in Windows explorer and select &amp;quot;TortoiseSVN...Diff with previous version&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Using SourceTree and LVDiff for VIs ==&lt;br /&gt;
You can invoke LVCompare.exe from Atlassian SourceTree by using the application found here: [https://github.com/smithed/vicompare VI Compare].&lt;br /&gt;
Set up SourceTree using the steps below.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Go To Tools&amp;gt;&amp;gt;Options || &lt;br /&gt;
[[File:Tools,options.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Select &amp;quot;Diff&amp;quot;. Then Select &amp;quot;Custom&amp;quot; for External Diff Tool and Merge tool || &lt;br /&gt;
[[File:2019-07-29 11h45 51.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Navigate to the installed executables. Specify  &amp;lt;&amp;quot;$LOCAL&amp;quot; &amp;quot;$REMOTE&amp;quot;&amp;gt; for Diff Command Arguments and &amp;lt;&amp;quot;$BASE&amp;quot; &amp;quot;$REMOTE&amp;quot; &amp;quot;$LOCAL&amp;quot; &amp;quot;$MERGED&amp;quot;&amp;gt; for Merge Command Arguments || &lt;br /&gt;
[[File:2019-07-29 11h46 08.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:SCC]]&lt;br /&gt;
[[Category:SVN]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Set_up_differencing_capabilities&amp;diff=32219</id>
		<title>Set up differencing capabilities</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Set_up_differencing_capabilities&amp;diff=32219"/>
		<updated>2023-09-19T13:34:33Z</updated>

		<summary type="html">&lt;p&gt;Bryan: /* Using LVCompare.exe and TortoiseSVN */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Easy Setup For Git ==&lt;br /&gt;
The easiest way to setup LVCompare and LVMerge for use with Git is to copy/paste the following into Git Bash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;cd &amp;amp;&amp;amp; git clone https://gitlab.com/sas-blog/LVCompare-Merge-Setup.git &amp;amp;&amp;amp; cd LVCompare-Merge-Setup &amp;amp;&amp;amp; ./setupLVTools.sh&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will clone a repo and run a shell script to set everything up. You can read more about it here:&lt;br /&gt;
https://blog.sasworkshops.com/the-easiest-way-to-setup-lvcompare-and-lvmerge/&lt;br /&gt;
&lt;br /&gt;
After that, you can use the difftool command in Git Bash to view diffs or use your favorite Git GUI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are several methods setting up differencing LabVIEW VIs with subversion.  A new feature in LabVIEW 2009 in the program LVCompare.exe which allows graphical differencing from the command line.  In older versions, TortoiseSVN can be coupled with the open source LVDiff to achieve the same goal.&lt;br /&gt;
&lt;br /&gt;
== LVCompare.exe National Instruments Documentation ==&lt;br /&gt;
This documentation describes the options you can pass to LVCompare.exe. For example, you can instruct LVCompare.exe to ignore changes in the position of front panel objects by pass in &amp;quot;-nofppos&amp;quot;. For the full set of documentation please refer to the link below:&lt;br /&gt;
[http://zone.ni.com/reference/en-XX/help/371361R-01/lvhowto/configlvcomp_thirdparty/ LVCompare.exe from National Instruments]&lt;br /&gt;
&lt;br /&gt;
== Using LVCompare.exe and svn CLI ==&lt;br /&gt;
From the command line, subversion cannot normally compare binary files such as vis.  The svn diff command has a switch --diff-cmd to allow an external differencing engine to be used.  This will be leveraged to used LVComare to operate on vis.&lt;br /&gt;
&lt;br /&gt;
To use LVCompare.exe with subversion in the command line, first add &amp;quot;C:\Program Files\National Instruments\Shared\LabVIEW Compare&amp;quot; to your system PATH variable (this allows the command prompt to find LVcompare.exe).&lt;br /&gt;
&lt;br /&gt;
The output of the diff command is quite complicated (from [http://subversion.tigris.org/faq.html#diff-cmd] subversion FAQ):&lt;br /&gt;
&amp;lt;blockquote&amp;gt;When using an external diff command, Subversion builds a fairly complicated command line. First is the specified --diff-cmd. Next comes the specified --extensions (although empty --extensions are ignored), or &#039;-u&#039; if --extensions is unspecified (or specified as &#039;&#039;). Third and fourth, Subversion passes a &#039;-L&#039; and the first file&#039;s label (e.g. &amp;quot;project_issues.html (revision 11209)&amp;quot;). Fifth and sixth are another &#039;-L&#039; and the second label. Seventh and eighth are the first and second file names (e.g. &amp;quot;.svn/text-base/project_issues.html.svn-base&amp;quot; and &amp;quot;.svn/tmp/project_issues.html.tmp&amp;quot;).&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
If your preferred diff command does not support these arguments, you may need to create a small wrapper script to discard arguments and just use the last couple file paths.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Warning: Beware that Subversion does not expect the external diff program to change the files it receives, and doing so may scramble the working copy.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
On windows, this wrapper is easy to create. Save the following file as LVdiff.bat in the same directory as LVCompare.exe.  This formulates the LVCompare command correctly.&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
@ECHO OFF&amp;lt;br/&amp;gt;&lt;br /&gt;
lvcompare &amp;quot;%cd%\%~7&amp;quot; &amp;quot;%cd%\%~6&amp;quot;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
Then, to execute the diff, use the following command:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
svn diff --diff-cmd LVdiff.bat --force CHANGED.vi&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
where CHANGED.vi is the one you want to diff.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT: As stated in the FAQ, subversion does not expect diff to make any changes, so make sure not to save the text-base vi.&lt;br /&gt;
&lt;br /&gt;
== Using LVCompare.exe and TortoiseSVN ==&lt;br /&gt;
For users of the TortoiseSVN client and LabVIEW 2009, it is also possible extend TortoiseSVN&#039;s built-in differencing functionality to allow VIs to be compared from a simple Windows Explorer right-click menu using LVCompare.exe. This can be achieved by adding an entry for .VI files to the &amp;quot;Advanced&amp;quot; list of TortoiseSVN&#039;s Diff settings with the following syntax&amp;lt;ref&amp;gt;http://zone.ni.com/devzone/cda/tut/p/id/9407&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;quot;C:\Program Files\National Instruments\Shared\LabVIEW Compare\LVCompare.exe&amp;quot; %base %mine&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;Note:&#039;&#039; If you&#039;re using 32-bit LabVIEW on a 64-bit Windows OS, the path would be:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;quot;C:\&#039;&#039;&#039;Program Files (x86)&#039;&#039;&#039;\National Instruments\Shared\LabVIEW Compare\LVCompare.exe&amp;quot; %base %mine&lt;br /&gt;
&amp;lt;/blockquote&lt;br /&gt;
(from [http://zone.ni.com/devzone/cda/tut/p/id/9407] Command-Line Graphical Differencing of VIs)&lt;br /&gt;
&lt;br /&gt;
== Using TortoiseSVN and LVDiff for VIs ==&lt;br /&gt;
TortoiseSVN has its own program (TortoiseMerge) to show the differences between two different versions of a file.  This works well with text files but since LabVIEW VIs are binary files it is advantageous to use LabVIEW&#039;s graphical differencing capabilities.&lt;br /&gt;
&lt;br /&gt;
The professional version of LabVIEW has a &amp;quot;CMP Compare two VIs.vi&amp;quot; in the ...\LabVIEW x.x\project\procmphier.llb library.&lt;br /&gt;
&lt;br /&gt;
The open-source &amp;quot;LVDiff&amp;quot; tool (see [http://meta-diff.sourceforge.net/] for the main download but download the updated &amp;quot;lvdiff.vi&amp;quot; from the link here [http://forums.ni.com/ni/board/message?board.id=170&amp;amp;message.id=354286&amp;amp;requireLogin=False] since the version currently in the .zip file does not work with VIs in libraries) provides a wrapper to call this VI.&lt;br /&gt;
&lt;br /&gt;
Be sure to update the paths in the .lvdiff file.&lt;br /&gt;
&lt;br /&gt;
Open Windows Explorer.&amp;lt;br /&amp;gt;&lt;br /&gt;
Right-click on a directory and select &amp;quot;TortoiseSVN...Settings&amp;quot; from the pop-up menu.&amp;lt;br /&amp;gt;&lt;br /&gt;
Under &amp;quot;External Programs&amp;quot; select &amp;quot;Diff Viewer&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:DiffViewerPageNew2.png]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Click on the &amp;quot;Advanced...&amp;quot; button and add a &amp;quot;.vi&amp;quot; extension with the &amp;quot;External Program&amp;quot; pointing to &amp;quot;lvdiff.exe&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:SettingUpLVDiff.png]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To compare a file with the previous version in the repository right-click on the file in Windows explorer and select &amp;quot;TortoiseSVN...Diff with previous version&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Using SourceTree and LVDiff for VIs ==&lt;br /&gt;
You can invoke LVCompare.exe from Atlassian SourceTree by using the application found here: [https://github.com/smithed/vicompare VI Compare].&lt;br /&gt;
Set up SourceTree using the steps below.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Go To Tools&amp;gt;&amp;gt;Options || &lt;br /&gt;
[[File:Tools,options.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Select &amp;quot;Diff&amp;quot;. Then Select &amp;quot;Custom&amp;quot; for External Diff Tool and Merge tool || &lt;br /&gt;
[[File:2019-07-29 11h45 51.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Navigate to the installed executables. Specify  &amp;lt;&amp;quot;$LOCAL&amp;quot; &amp;quot;$REMOTE&amp;quot;&amp;gt; for Diff Command Arguments and &amp;lt;&amp;quot;$BASE&amp;quot; &amp;quot;$REMOTE&amp;quot; &amp;quot;$LOCAL&amp;quot; &amp;quot;$MERGED&amp;quot;&amp;gt; for Merge Command Arguments || &lt;br /&gt;
[[File:2019-07-29 11h46 08.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:SCC]]&lt;br /&gt;
[[Category:SVN]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Diff_Teststand&amp;diff=8143</id>
		<title>Diff Teststand</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Diff_Teststand&amp;diff=8143"/>
		<updated>2019-06-26T12:52:18Z</updated>

		<summary type="html">&lt;p&gt;Bryan: Added TortoiseSVN diff settings for TestStand 2014 &amp;amp; 2016 - These may work with other versions but I don&amp;#039;t have them to verify.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to use a [[Source Code Control Tools|SCC tool]] with [[Teststand|teststand]] sequence files, it&#039;s possible to use SeqFileDifferApp.exe deliverd by [[NI|NI]] in the &amp;amp;lt;Teststand&amp;amp;gt;\bin folder.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
For [[TortoiseSVN client to Subversion|TortoiseSVN]] the following settings can be used&amp;lt;ref&amp;gt;http://lavag.org/topic/12386-tortoisesvn-diff-with-teststand-sequences/page__view__findpost__p__74269&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;quot;C:\Program Files\National Instruments\TestStand 4.2\Bin\SequenceFileDiffer.exe&amp;quot;&amp;amp;nbsp;%base&amp;amp;nbsp;%mine&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
For later versions&amp;lt;ref&amp;gt;Verified with 32-bit versions of TestStand 2014 and 2016.&amp;lt;/ref&amp;gt; of (32-bit) TestStand, the following settings can be used for [[TortoiseSVN client to Subversion|TortoiseSVN]]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;quot;C:\Program Files (x86)\National Instruments\shared\TestStand\FileDifferLauncher.exe&amp;quot; %base %mine&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
References/Notes:&lt;br /&gt;
&lt;br /&gt;
[[Category:SCC]]&lt;br /&gt;
[[Category:Teststand]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Linux&amp;diff=6915</id>
		<title>Linux</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Linux&amp;diff=6915"/>
		<updated>2019-03-26T16:26:00Z</updated>

		<summary type="html">&lt;p&gt;Bryan: Corrected link to scientificlinux.org.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://en.wikipedia.org/wiki/Linux Linux] is a family of open source software and operating systems with many flavors and distributions available for download online.&lt;br /&gt;
==Supported Distributions==&lt;br /&gt;
Below is a list of officially supported Linux distributions.  The Base version of LabVIEW is not supported on Linux, but Full and Professional versions of LabVIEW are supported.&lt;br /&gt;
* [https://www.centos.org/ CentOS] version 7.x&lt;br /&gt;
* [https://www.opensuse.org/#Leap OpenSUSE Leap] versions 42.2 and 42.3&lt;br /&gt;
* [https://www.redhat.com/en Red Hat Linux] versions 6.x and 7.x&lt;br /&gt;
* [https://www.scientificlinux.org/ Scientific Linux]&lt;br /&gt;
&lt;br /&gt;
LabVIEW can be installed on most Red Hat-based Linux distributions, but issues may arise during installation.  Installation on Debian-based distributions is more involved and requires more in-depth knowledge of Linux operating systems.  Several instructions can be found on the internet for installing LabVIEW on non-supported distributions.&lt;br /&gt;
==External Links==&lt;br /&gt;
* [https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000kG1MSAU&amp;amp;l=en-US NI.com - LabVIEW and Linux Compatibility]&lt;br /&gt;
* [https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000P7nVSAS&amp;amp;l=en-US NI.com - How to install LabVIEW on Linux]&lt;br /&gt;
&lt;br /&gt;
[[Category:LabVIEW for Linux]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Alliance_program&amp;diff=6859</id>
		<title>Alliance program</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Alliance_program&amp;diff=6859"/>
		<updated>2019-03-19T13:20:40Z</updated>

		<summary type="html">&lt;p&gt;Bryan: Added external link to NI Alliance Partner Directory link on NI.com;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The National Instruments Alliance Partner Program is a business development relationship between National Instruments and other companies that can provide the technical expertise and know-how to offer products, services, and systems complementary to NI products.&lt;br /&gt;
&lt;br /&gt;
The program includes business relationships between NI and more than 500 consultants, system integrators and developers worldwide. The program combines the wide variety of NI measurement and automation products with the specific industry expertise of consultants and systems integrators. NI Alliance Partners educate customers, make product recommendations, help customers meet short development schedules, provide turnkey systems and develop and market specialized add-on packages based on NI software and hardware.&lt;br /&gt;
&lt;br /&gt;
The NI Alliance Partner program has three levels – Associate, Certified and Select.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
*[[list of alliance program partner companies]]&lt;br /&gt;
== External links ==&lt;br /&gt;
*[http://www.ni.com/alliance/ Alliance program details on ni.com]&lt;br /&gt;
*[https://partners.ni.com/directory/ Alliance partner directory on ni.com]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Alliance_program&amp;diff=6858</id>
		<title>Alliance program</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Alliance_program&amp;diff=6858"/>
		<updated>2019-03-19T12:38:10Z</updated>

		<summary type="html">&lt;p&gt;Bryan: Added external link to NI Alliance Directory on NI.com&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The National Instruments Alliance Partner Program is a business development relationship between National Instruments and other companies that can provide the technical expertise and know-how to offer products, services, and systems complementary to NI products.&lt;br /&gt;
&lt;br /&gt;
The program includes business relationships between NI and more than 500 consultants, system integrators and developers worldwide. The program combines the wide variety of NI measurement and automation products with the specific industry expertise of consultants and systems integrators. NI Alliance Partners educate customers, make product recommendations, help customers meet short development schedules, provide turnkey systems and develop and market specialized add-on packages based on NI software and hardware.&lt;br /&gt;
&lt;br /&gt;
The NI Alliance Partner program has three levels – Associate, Certified and Select.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
*[[list of alliance program partner companies]]&lt;br /&gt;
== External links ==&lt;br /&gt;
*[http://www.ni.com/alliance/ Alliance program details on ni.com]&lt;br /&gt;
*[https://partners.ni.com/directory/ Alliance partner directory on ni.com]&lt;br /&gt;
&lt;br /&gt;
[[Category:Added external link to NI Alliance Partner Directory link on NI.com]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=LabVIEW_Learning_Materials&amp;diff=6842</id>
		<title>LabVIEW Learning Materials</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=LabVIEW_Learning_Materials&amp;diff=6842"/>
		<updated>2019-03-13T10:49:34Z</updated>

		<summary type="html">&lt;p&gt;Bryan: Removed dead links where updated URLS couldn&amp;#039;t be found.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{see also|category:LabVIEW fundamentals}}&lt;br /&gt;
==Learning LabVIEW ==&lt;br /&gt;
Many useful learning resources are available for LabVIEW: online help, online reference manuals, and LabVIEW code examples. Articles, ready made applications, and technical notes are available on the [[National Instruments]] Web site and in the [http://zone.ni.com NI Developer Zone]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Formal Training===&lt;br /&gt;
Formal training on LabVIEW is available from several providers. Offerings differ based on prior LabVIEW experience level and the preferred delivery method. Common delivery methods include: &lt;br /&gt;
&lt;br /&gt;
* In-person instructor-led&lt;br /&gt;
* Remote instructor-led (usually through a web conference)&lt;br /&gt;
* Online self-paced (usually through a combination of pre-recorded lecture videos and exercise solution videos)&lt;br /&gt;
* Self-paced with a manual  &lt;br /&gt;
&lt;br /&gt;
National Instruments has a [http://sine.ni.com/tacs/app/fp/p/ap/ov/pg/1/sn/n8:28/ suite of courses] ranging from beginner to advanced as well as several specialty topics such as LabVIEW Real-Time and LabVIEW Connectivity. National Instruments offers all common delivery methods mentioned above except online self-paced. Other LabVIEW training providers such as [http://www.sixclear.com/ Sixclear] provide this online self-paced environment. Sixclear&#039;s same curriculum is also delivered through in-person instructor-led training. [http://www.durability.com/Divisions/Automation/Training/LabVIEW101.asp Durability] is another provider of in-person instructor-led training. &lt;br /&gt;
&lt;br /&gt;
Recommended training courses for those with no knowledge of LabVIEW are the [http://sine.ni.com/tacs/app/fp/p/ap/ov/pg/1/sn/n8:28/ National Instruments Core 1 and Core 2] courses, the [http://www.sixclear.com/labviewtraining/ Sixclear LabVIEW Fundamentals I and II] courses, or the [http://www.durability.com/Divisions/Automation/Training/LabVIEW101.asp Durability LabVIEW 101 and 102] courses. All sets of courses are geared to a user with little to no LabVIEW experience and teach the proficiencies outlined by the [http://sine.ni.com/nips/cds/view/p/lang/en/nid/14438 Certified LabVIEW Associate Developer (CLAD)] exam as well as simple DAQ and instrument control.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Common arguments justifying formal training revolve around the idea that the sum cost of developers&#039; time is greater than the cost of training because: &lt;br /&gt;
*  the LabVIEW graphical programming paradigm is appreciably different than traditional text-based programming  &lt;br /&gt;
*  costly mistakes commonly occur when moving from simple LabVIEW applications to more complex applications, especially when developing parallel loop applications&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Alternatives to Formal Training===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
National Instruments maintains a list of [http://www.ni.com/reference/books/labview.htm LabVIEW reference books] as an alternative to formal training.&lt;br /&gt;
&lt;br /&gt;
Another alternative to formal training are half-day &amp;quot;LabVIEW Hands-On&amp;quot; workshops offered by National Instruments. Recommended follow-ups are the &amp;quot;G Programmer&#039;s reference manual&amp;quot; and the LabVIEW &amp;quot;User Manual&amp;quot; found in the LabVIEW documentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
Some online tutorials:&lt;br /&gt;
&lt;br /&gt;
*[http://blog.sixclear.com/ VI High LabVIEW Video Tutorial Blog by Sixclear]&lt;br /&gt;
*[http://www.ni.com/labview/skills-guide/en/ Some NI courses, including videos] (requires an active support contract with NI)&lt;br /&gt;
*[http://vishots.com/category/labview-tutorials/ VI Shots LabVIEW Video Tutorials]&lt;br /&gt;
*NI Tutorials (including videos and exercises) - http://zone.ni.com/devzone/cda/tut/p/id/7466&lt;br /&gt;
*More links at NI&#039;s site - http://www.ni.com/training/labview.htm&lt;br /&gt;
*Software Engineering with LabVIEW (generally requires some LabVIEW knowledge) - http://zone.ni.com/devzone/cda/tut/p/id/7117&lt;br /&gt;
*Connexions Tutorial (written by NI) - http://cnx.org/content/col10241/latest/&lt;br /&gt;
*LabVIEW Tutorials - http://www.upscale.utoronto.ca/GeneralInterest/LabView.html&lt;br /&gt;
*Videos of NI&#039;s LabVIEW Core 3 course (8 full lessons) - http://www.youtube.com/playlist?list=PL3E1DD4C18D357331&lt;br /&gt;
*Tutorial videos (some are free) - http://www.fafiles.com/&lt;br /&gt;
*Learning LabVIEW - http://learnlabview.blogspot.com/&lt;br /&gt;
*LabVIEW Tutorial Basics (BEKA, German) - http://www.fu-net.de/lv/lv01/&lt;br /&gt;
*LabVIEW Tutorial Advanced Techniques (BEKA, German) - http://www.fu-net.de/lv/lv02/&lt;br /&gt;
&lt;br /&gt;
[[Category:LabVIEW fundamentals]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Diff_LabVIEW&amp;diff=6790</id>
		<title>Diff LabVIEW</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Diff_LabVIEW&amp;diff=6790"/>
		<updated>2019-03-12T10:46:37Z</updated>

		<summary type="html">&lt;p&gt;Bryan: Expanded to include LVCompare settings based on LabVIEW vs Windows OS bitness.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to use a [[Source Code Control Tools|SCC tool]] with [[LabVIEW|LabVIEW]] files directly from the Windows Explorer, [http://www.altap.cz Altap Salamander] or similar file browser, it&#039;s possible to use LVCompare.exe deliverd by [[NI|NI]] in the &amp;amp;lt;LabVIEW&amp;amp;gt;\Shared folder.&amp;lt;br&amp;gt;   For [[TortoiseSVN client to Subversion|TortoiseSVN]] the following settings can be used for both LabVIEW VIs (Extension: .vi) or Controls (Extension: .ctl):&lt;br /&gt;
&lt;br /&gt;
(TortoiseSVN -&amp;gt; Settings -&amp;gt; Diff Viewer -&amp;gt; Advanced -&amp;gt; Add...)&lt;br /&gt;
&lt;br /&gt;
If running 32-bit LabVIEW under 64-bit Windows:&lt;br /&gt;
&amp;lt;pre&amp;gt;Filename/Extension: .vi&lt;br /&gt;
Program: &amp;quot;C:\Program Files (x86)\National Instruments\Shared\LabVIEW Compare\LVCompare.exe&amp;quot; -nobdcosm -nobdpos %mine %base&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If running 32-bit LabVIEW under 32-bit Windows or 64-bit LabVIEW under 64-bit Windows:&lt;br /&gt;
&amp;lt;pre&amp;gt;Filename/Extension: .vi&lt;br /&gt;
Program: &amp;quot;C:\Program Files\National Instruments\Shared\LabVIEW Compare\LVCompare.exe&amp;quot; -nobdcosm -nobdpos %mine %base&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:SCC]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=LVM_File_Extension&amp;diff=6771</id>
		<title>LVM File Extension</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=LVM_File_Extension&amp;diff=6771"/>
		<updated>2019-03-11T13:59:14Z</updated>

		<summary type="html">&lt;p&gt;Bryan: Undo revision 6770 by Bryan (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;LVM File Extension&#039;&#039;&#039; (&#039;&#039;*.lvm&#039;&#039;), or &amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;ab&amp;lt;u&amp;gt;V&amp;lt;/u&amp;gt;IEW &amp;lt;u&amp;gt;M&amp;lt;/u&amp;gt;easurement File, is a text-based file format for one-dimensional data that is used with the [[Read LabVIEW Measurement File]] and [[Write LabVIEW Measurement File]] Express VIs. The &#039;&#039;.lvm&#039;&#039; file is designed so it is easy to parse and easy to read when imported into a spreadsheet program, such as Microsoft Excel, or a text editor, such as Notepad. It supports multiple data sets, grouping of data sets, and the addition of data sets to existing files. The file format is not designed for high-performance or for very large data sets, as is the case with all text-based formats.&lt;br /&gt;
&lt;br /&gt;
See [[LabVIEW Measurement File]].&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[[Technical Data Management File]]&lt;br /&gt;
&lt;br /&gt;
[[Category:LabVIEW file extensions]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=LVM_File_Extension&amp;diff=6770</id>
		<title>LVM File Extension</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=LVM_File_Extension&amp;diff=6770"/>
		<updated>2019-03-11T13:58:10Z</updated>

		<summary type="html">&lt;p&gt;Bryan: Undo revision 6769 by Bryan (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;LVM File Extension&#039;&#039;&#039; (&#039;&#039;*.lvm&#039;&#039;), or &amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;ab&amp;lt;u&amp;gt;V&amp;lt;/u&amp;gt;IEW &amp;lt;u&amp;gt;M&amp;lt;/u&amp;gt;easurement File, is a text-based file format for one-dimensional data that is used with the [[Read LabVIEW Measurement File]] and [[Write LabVIEW Measurement File]] Express VIs. The &#039;&#039;.lvm&#039;&#039; file is designed so it is easy to parse and easy to read when imported into a spreadsheet program, such as Microsoft Excel, or a text editor, such as Notepad. It supports multiple data sets, grouping of data sets, and the addition of data sets to existing files. The file format is not designed for high-performance or for very large data sets, as is the case with all text-based formats.&lt;br /&gt;
&lt;br /&gt;
See [[LabVIEW Measurement File]].&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[[TDM_File_Extension|Technical Data Management File]]&lt;br /&gt;
&lt;br /&gt;
[[Category:LabVIEW file extensions]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=LVM_File_Extension&amp;diff=6769</id>
		<title>LVM File Extension</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=LVM_File_Extension&amp;diff=6769"/>
		<updated>2019-03-11T13:26:47Z</updated>

		<summary type="html">&lt;p&gt;Bryan: Removed previously created link to TDM file extension - I don&amp;#039;t think the .TDM extension was supposed to be the intent.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;LVM File Extension&#039;&#039;&#039; (&#039;&#039;*.lvm&#039;&#039;), or &amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;ab&amp;lt;u&amp;gt;V&amp;lt;/u&amp;gt;IEW &amp;lt;u&amp;gt;M&amp;lt;/u&amp;gt;easurement File, is a text-based file format for one-dimensional data that is used with the [[Read LabVIEW Measurement File]] and [[Write LabVIEW Measurement File]] Express VIs. The &#039;&#039;.lvm&#039;&#039; file is designed so it is easy to parse and easy to read when imported into a spreadsheet program, such as Microsoft Excel, or a text editor, such as Notepad. It supports multiple data sets, grouping of data sets, and the addition of data sets to existing files. The file format is not designed for high-performance or for very large data sets, as is the case with all text-based formats.&lt;br /&gt;
&lt;br /&gt;
See [[LabVIEW Measurement File]].&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[[Technical Data Management File]]&lt;br /&gt;
&lt;br /&gt;
[[Category:LabVIEW file extensions]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=LVM_File_Extension&amp;diff=6768</id>
		<title>LVM File Extension</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=LVM_File_Extension&amp;diff=6768"/>
		<updated>2019-03-11T13:23:34Z</updated>

		<summary type="html">&lt;p&gt;Bryan: Updated link to TDM File Extension&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;LVM File Extension&#039;&#039;&#039; (&#039;&#039;*.lvm&#039;&#039;), or &amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;ab&amp;lt;u&amp;gt;V&amp;lt;/u&amp;gt;IEW &amp;lt;u&amp;gt;M&amp;lt;/u&amp;gt;easurement File, is a text-based file format for one-dimensional data that is used with the [[Read LabVIEW Measurement File]] and [[Write LabVIEW Measurement File]] Express VIs. The &#039;&#039;.lvm&#039;&#039; file is designed so it is easy to parse and easy to read when imported into a spreadsheet program, such as Microsoft Excel, or a text editor, such as Notepad. It supports multiple data sets, grouping of data sets, and the addition of data sets to existing files. The file format is not designed for high-performance or for very large data sets, as is the case with all text-based formats.&lt;br /&gt;
&lt;br /&gt;
See [[LabVIEW Measurement File]].&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[[TDM_File_Extension|Technical Data Management File]]&lt;br /&gt;
&lt;br /&gt;
[[Category:LabVIEW file extensions]]&lt;br /&gt;
&lt;br /&gt;
[[Category:LabVIEW file extensions]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Virtual_Instrument&amp;diff=6172</id>
		<title>Virtual Instrument</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Virtual_Instrument&amp;diff=6172"/>
		<updated>2019-03-06T12:03:46Z</updated>

		<summary type="html">&lt;p&gt;Bryan: Added link to VI Icons.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;VI&#039;&#039;&#039;, or &amp;lt;u&amp;gt;V&amp;lt;/u&amp;gt;irtual &amp;lt;u&amp;gt;I&amp;lt;/u&amp;gt;nstrument, is the basic building block of programs written in the [[G]] Language.  It is similar to a function or subroutine in other programming languages.  It includes the [[Front Panel]] (containing [[Controls]] and [[Indicators]]), the [[Block Diagram]] (containing Control Terminals, Wires, and Structures and various other [[GObject]] nodes), the VI&#039;s [[Icon]] and its [[Connector Pane]] (as well as compiled executable code which is hidden behind the scenes).&lt;br /&gt;
&lt;br /&gt;
The term Virtual Instrument is a play off of the fact that LabVIEW applications are designed for writing software that simulates the functionality of instruments -- rather than being a physical instrument on a laboratory bench, they are virtual and exist in software.&lt;br /&gt;
&lt;br /&gt;
==The VI File Format==&lt;br /&gt;
VIs are saved as &#039;&#039;*.vi&#039;&#039; files in a proprietary binary format defined by [[National Instruments]], the makers of [[LabVIEW]]. By default, a VI contains two kinds of code: the graphical source code that you edit and a compiled version of this code that LabVIEW uses to run the VI.&lt;br /&gt;
&lt;br /&gt;
The graphical source code includes the:&lt;br /&gt;
*[[Front Panel]]&lt;br /&gt;
*[[Block Diagram]]&lt;br /&gt;
*[[Connector Pane]]&lt;br /&gt;
*[[VI_Icons|Icon]]&lt;br /&gt;
&lt;br /&gt;
The compiled version includes the:&lt;br /&gt;
*[[Compiled Code]]&lt;br /&gt;
*[[Inplaceness Information]]&lt;br /&gt;
&lt;br /&gt;
When you edit the source code of the VI, LabVIEW automatically recompiles the VI to reflect your changes in the compiled version of the code. LabVIEW also automatically recompiles all VIs that call the changed VI, resulting in unsaved changes to the calling VIs. If the calling VIs are stored in [[Source Code Control|source code control]], these pending unsaved changes force you to check out the VIs when you update their subVIs.&lt;br /&gt;
&lt;br /&gt;
To avoid this problem, Starting in [[LabVIEW 2010]], [[LabVIEW]] allows you to separate compiled code from the graphical source code of a VI, thereby creating source-only VIs. After you separate the compiled code from a VI, LabVIEW still compiles the VI when you modify subVIs. However, LabVIEW stores the recompiled version of the code in a [[Compiled Object Cache|compiled object cache]] rather than in the VI in [[Source Code Control|source code control]]. Because the VI in [[Source Code Control|source code control]] does not change, you no longer have to check the VI out of source control when you change subVIs.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*[[Separating Compiled Code]]&lt;br /&gt;
*[[NI LabVIEW Compiler]]&lt;br /&gt;
&lt;br /&gt;
[[Category:LabVIEW fundamentals]]&lt;br /&gt;
[[Category:LabVIEW fundamentals]]&lt;br /&gt;
&lt;br /&gt;
[[Category:LabVIEW fundamentals]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=CTL_File_Extension&amp;diff=6060</id>
		<title>CTL File Extension</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=CTL_File_Extension&amp;diff=6060"/>
		<updated>2019-03-05T11:48:08Z</updated>

		<summary type="html">&lt;p&gt;Bryan: Added links to Type Def and Strict Type Def articles.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;CTL File Extension&#039;&#039;&#039; (&#039;&#039;*.ctl&#039;&#039;), or &amp;lt;u&amp;gt;C&amp;lt;/u&amp;gt;on&amp;lt;u&amp;gt;t&amp;lt;/u&amp;gt;ro&amp;lt;u&amp;gt;l&amp;lt;/u&amp;gt;, is the file extension of LabVIEW controls or type definitions. Controls are stored either &#039;&#039;in&#039;&#039; their parent [[VI]] or in these dedicated files. When created in a &#039;&#039;.ctl&#039;&#039; file the control can be customized and be assigned special behavior: [[Type Definition]] or [[Strict Type Definition]].&lt;br /&gt;
&lt;br /&gt;
See [[Control]].&lt;br /&gt;
&lt;br /&gt;
[[Category:LabVIEW file extensions]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Fun_stuff&amp;diff=6056</id>
		<title>Fun stuff</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Fun_stuff&amp;diff=6056"/>
		<updated>2019-03-04T16:31:23Z</updated>

		<summary type="html">&lt;p&gt;Bryan: Removed internal link that was deleted back in 2013.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[[Project management tarot deck for the G programmer]]&lt;br /&gt;
*[[Labtoons]]&lt;br /&gt;
&lt;br /&gt;
[[Category:LabVIEW ecosystem]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Linux&amp;diff=6040</id>
		<title>Linux</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Linux&amp;diff=6040"/>
		<updated>2019-02-25T11:43:19Z</updated>

		<summary type="html">&lt;p&gt;Bryan: Added Scientific Linux and sorted lists in alphabetical/logical order.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://en.wikipedia.org/wiki/Linux Linux] is a family of open source software and operating systems with many flavors and distributions available for download online.&lt;br /&gt;
==Supported Distributions==&lt;br /&gt;
Below is a list of officially supported Linux distributions.  The Base version of LabVIEW is not supported on Linux, but Full and Professional versions of LabVIEW are supported.&lt;br /&gt;
* [https://www.centos.org/ CentOS] version 7.x&lt;br /&gt;
* [https://www.opensuse.org/#Leap OpenSUSE Leap] versions 42.2 and 42.3&lt;br /&gt;
* [https://www.redhat.com/en Red Hat Linux] versions 6.x and 7.x&lt;br /&gt;
* [https://https://www.scientificlinux.org/ Scientific Linux]&lt;br /&gt;
&lt;br /&gt;
LabVIEW can be installed on most Red Hat-based Linux distributions, but issues may arise during installation.  Installation on Debian-based distributions is more involved and requires more in-depth knowledge of Linux operating systems.  Several instructions can be found on the internet for installing LabVIEW on non-supported distributions.&lt;br /&gt;
==External Links==&lt;br /&gt;
* [https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000kG1MSAU&amp;amp;l=en-US NI.com - LabVIEW and Linux Compatibility]&lt;br /&gt;
* [https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000P7nVSAS&amp;amp;l=en-US NI.com - How to install LabVIEW on Linux]&lt;br /&gt;
&lt;br /&gt;
[[Category:LabVIEW for Linux]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Category:LabVIEW_for_Linux&amp;diff=6039</id>
		<title>Category:LabVIEW for Linux</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Category:LabVIEW_for_Linux&amp;diff=6039"/>
		<updated>2019-02-22T15:24:02Z</updated>

		<summary type="html">&lt;p&gt;Bryan: Created page with &amp;quot;Articles in category &amp;quot;LabVIEW for Linux&amp;quot;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Articles in category &amp;quot;LabVIEW for Linux&amp;quot;&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Linux&amp;diff=6038</id>
		<title>Linux</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Linux&amp;diff=6038"/>
		<updated>2019-02-22T15:23:45Z</updated>

		<summary type="html">&lt;p&gt;Bryan: Updated Category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://en.wikipedia.org/wiki/Linux Linux] is a family of open source software and operating systems with many flavors and distributions available for download online.&lt;br /&gt;
==Supported Distributions==&lt;br /&gt;
Below is a list of officially supported Linux distributions.  The Base version of LabVIEW is not supported on Linux, but Full and Professional versions of LabVIEW are supported.&lt;br /&gt;
* [https://www.redhat.com/en Red Hat Linux] versions 6.x and 7.x&lt;br /&gt;
* [https://www.centos.org/ CentOS] version 7.x&lt;br /&gt;
* [https://www.opensuse.org/#Leap OpenSUSE Leap] versions 42.2 and 42.3&lt;br /&gt;
&lt;br /&gt;
LabVIEW can be installed on most Red Hat-based Linux distributions, but issues may arise during installation.  Installation on Debian-based distributions is more involved and requires more in-depth knowledge of Linux operating systems.  Several instructions can be found on the internet for installing LabVIEW on non-supported distributions.&lt;br /&gt;
==External Links==&lt;br /&gt;
* [https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000P7nVSAS&amp;amp;l=en-US NI.com - How to install LabVIEW on Linux]&lt;br /&gt;
* [https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000kG1MSAU&amp;amp;l=en-US NI.com - LabVIEW and Linux Compatibility]&lt;br /&gt;
&lt;br /&gt;
[[Category:LabVIEW for Linux]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Linux&amp;diff=6037</id>
		<title>Linux</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Linux&amp;diff=6037"/>
		<updated>2019-02-22T15:19:48Z</updated>

		<summary type="html">&lt;p&gt;Bryan: Updated and partially rewritten.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://en.wikipedia.org/wiki/Linux Linux] is a family of open source software and operating systems with many flavors and distributions available for download online.&lt;br /&gt;
==Supported Distributions==&lt;br /&gt;
Below is a list of officially supported Linux distributions.  The Base version of LabVIEW is not supported on Linux, but Full and Professional versions of LabVIEW are supported.&lt;br /&gt;
* [https://www.redhat.com/en Red Hat Linux] versions 6.x and 7.x&lt;br /&gt;
* [https://www.centos.org/ CentOS] version 7.x&lt;br /&gt;
* [https://www.opensuse.org/#Leap OpenSUSE Leap] versions 42.2 and 42.3&lt;br /&gt;
&lt;br /&gt;
LabVIEW can be installed on most Red Hat-based Linux distributions, but issues may arise during installation.  Installation on Debian-based distributions is more involved and requires more in-depth knowledge of Linux operating systems.  Several instructions can be found on the internet for installing LabVIEW on non-supported distributions.&lt;br /&gt;
==External Links==&lt;br /&gt;
* [https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000P7nVSAS&amp;amp;l=en-US NI.com - How to install LabVIEW on Linux]&lt;br /&gt;
* [https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000kG1MSAU&amp;amp;l=en-US NI.com - LabVIEW and Linux Compatibility]&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=TortoiseSVN_client_to_Subversion&amp;diff=6036</id>
		<title>TortoiseSVN client to Subversion</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=TortoiseSVN_client_to_Subversion&amp;diff=6036"/>
		<updated>2019-02-22T14:03:22Z</updated>

		<summary type="html">&lt;p&gt;Bryan: Updated link to JKI&amp;#039;s blog announcement for TSVN tool.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TortoiseSVN is a free Subversion client integrated as a Windows shell extension. [http://tortoisesvn.net/] &lt;br /&gt;
&lt;br /&gt;
After downloading and installing TortoiseSVN, one can:&amp;lt;br&amp;gt; [[Point to an existing repository]]&amp;lt;br&amp;gt; [[Add a directory to the repository]]&amp;lt;br&amp;gt; [[Configure TortoiseSVN to work with LabVIEW]] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
JKI&amp;amp;nbsp;has released a [https://blog.jki.net/news/announcing-tortoisesvn-tool-for-labview-v2-2-0 TortoiseSVN&amp;amp;nbsp;Tool for LabVIEW]&amp;amp;nbsp;that helps integrate TortoiseSVN&amp;amp;nbsp;with typical LabVIEW&amp;amp;nbsp;workflows.&lt;br /&gt;
&lt;br /&gt;
[[Category:SCC]]&lt;br /&gt;
[[Category:SVN]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Functions_Palette/Programming/Synchronization/Queue_Operations&amp;diff=6032</id>
		<title>Functions Palette/Programming/Synchronization/Queue Operations</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Functions_Palette/Programming/Synchronization/Queue_Operations&amp;diff=6032"/>
		<updated>2019-02-21T17:33:59Z</updated>

		<summary type="html">&lt;p&gt;Bryan: Main part was taken from NI.com.  Added image and additional text from/link to NI.com knowledge base article on queues from which the original wording came.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Location in palette==&lt;br /&gt;
Functions &amp;gt;&amp;gt; Synchronization &amp;gt;&amp;gt; Queue Operations&lt;br /&gt;
[[File:QueuePalette.png|thumb|Queue Operations Palette]]&lt;br /&gt;
==Concept==&lt;br /&gt;
(From [http://www.ni.com NI.com])&lt;br /&gt;
&lt;br /&gt;
A queue maintains a first in/first out (FIFO) order of data items. For instance, the customers waiting in line at a fast food restaurant are in a queue. &lt;br /&gt;
&lt;br /&gt;
A queue is useful in producer/consumer situations, where one portion of code is creating data to be used by another portion. The advantage of using a queue is that the producer and consumer rates do not have to be identical. If consumption is slower than production, the queue will become full and the producer code will be forced to wait until the consumer has dequeued an element before a new element can be queued up.&lt;br /&gt;
&lt;br /&gt;
Unlike an array, it is not possible to randomly access elements in a queue.  It is strictly a buffer that provides you the ability to enqueue (add/insert) and dequeue (subtract/remove) elements.  The only way to view all the elements in a queue is to dequeue them one by one.  You cannot perform data manipulation to all the elements in a queue either.&lt;br /&gt;
==Example use cases==&lt;br /&gt;
[[Queued_State_Machine|Queued State Machines]] (Also known as Queue Driven State Machines, or QDSMs).&lt;br /&gt;
==External Links==&lt;br /&gt;
#[https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000P7OfSAK&amp;amp;l=en-US NI.com - What Is a Queue]&lt;br /&gt;
&lt;br /&gt;
[[Category:Synchronization]]&lt;br /&gt;
[[Category:Synchronization]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=File:QueuePalette.png&amp;diff=6031</id>
		<title>File:QueuePalette.png</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=File:QueuePalette.png&amp;diff=6031"/>
		<updated>2019-02-21T17:14:18Z</updated>

		<summary type="html">&lt;p&gt;Bryan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Queue Operations Palette&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Use_svn_directories&amp;diff=6024</id>
		<title>Use svn directories</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Use_svn_directories&amp;diff=6024"/>
		<updated>2019-02-20T11:54:22Z</updated>

		<summary type="html">&lt;p&gt;Bryan: Changed steps to numbered list.  Added deprecation info on feature.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Use &amp;quot;_svn&amp;quot; directories instead of &amp;quot;.svn&amp;quot; directories so that LabVIEW doesn&#039;t index the directories when building up palettes.&lt;br /&gt;
&lt;br /&gt;
== How to use _svn directories  ==&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; As of version 1.4.0 and later, the setting below is no longer available via TortoiseSVN &amp;gt;&amp;gt; Settings.  However, an alternative method, (also known as the SVN_ASP_DOT_NET_HACK) is described in TortoiseSVN&#039;s release notes located [https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-admins-aspdotnethack.html here].&lt;br /&gt;
&lt;br /&gt;
#Open Windows explorer.&lt;br /&gt;
#Right click on a directory and select &amp;quot;TortoiseSVN...Settings&amp;quot; from the pop-up menu.&lt;br /&gt;
#On the &amp;quot;General&amp;quot; page in the &amp;quot;Settings - Tortoise SVN&amp;quot; dialog check the &amp;quot;Use &#039;_svn&#039; instead of &#039;.svn&#039; directories&amp;quot; box.&lt;br /&gt;
#Click OK.&lt;br /&gt;
#TortoiseSVN will prompt you to restart the computer.&lt;br /&gt;
&lt;br /&gt;
[[Category:SCC]]&lt;br /&gt;
[[Category:SVN]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=For_loop&amp;diff=6001</id>
		<title>For loop</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=For_loop&amp;diff=6001"/>
		<updated>2019-02-04T12:42:56Z</updated>

		<summary type="html">&lt;p&gt;Bryan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:ForLoop.PNG|thumb|For Loop - Will execute &amp;quot;your code&amp;quot; ten times.]]&lt;br /&gt;
[[File:ForLoop Indexing.png|thumb|For Loop With Indexed Input - Will execute &amp;quot;your code&amp;quot; ten times.]]&lt;br /&gt;
[[File:ForLoop Indexing Conditional.png|thumb|For Loop With Conditional Terminal - Will execute until first TRUE element, which would be at index 4.  The remaining elements will not be indexed.]]&lt;br /&gt;
== Using a For Loop ==&lt;br /&gt;
The LabVIEW For Loop is a structure that will execute code contained within a finite number of times.  The number of times that the loop will execute is initially determined by the numeric value written to the &amp;quot;N&amp;quot; terminal of the loop, or by the size of an array wired as an input to the loop (when indexing is enabled for the input tunnel).  The latter method of specifying the number of iterations is similar to the For-Each structure in many text-based programming languages.&lt;br /&gt;
&lt;br /&gt;
Outputs from a For Loop will be an array by default unless alternate behavior for the tunnel is selected by right-clicking on the tunnel and selecting a behavior under &amp;quot;Tunnel Mode&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== How do I stop a For Loop? ==&lt;br /&gt;
In earlier versions of LabVIEW, there was no way to stop the execution of a For Loop until the requisite number of iterations have been met.  In those earlier LabVIEW versions, a [[While Loop]] would have to be used, in addition to having input and/or output tunnels with indexing enabled.  &lt;br /&gt;
&lt;br /&gt;
In later versions of LabVIEW, a conditional terminal was made available to For Loop, which functions similar to that which is used in a [[While Loop]].  The conditional terminal can be made visible by right-clicking on the border of a For Loop and selecting &amp;quot;Conditional Terminal&amp;quot;.  This conditional terminal is useful if a condition has been met that would make further iterations of the loop unnecessary.  A simple example of this could be if indexing a 10 element array in search of a particular value, then finding the desired value at the fourth element.  The loop could then be stopped without having to continue to iterate through the remaining elements.&lt;br /&gt;
&lt;br /&gt;
== Why doesn&#039;t my For Loop return a value? ==&lt;br /&gt;
As a good programming rule in LabVIEW, NEVER output a value from a For Loop with indexing disabled. When the loop does not execute (0 iteration) a non indexing output stays undefined and will hold any garbage left there by previous memory usage. This is because the wire output from the For Loop has no code or data source to get the value from when the loop does not execute. Instead, use a shift register (SR) to output the value and at the left SR enter a default value for the case when the loop does not execute. When the For Loop does not execute this default value of the left SR is passed to the right SR. Similarly passing a [[Refnum]] through a For Loop that never executes (0 iterations) destroys the reference. Either pass the reference using a SR as described above or wire around the loop. Note that [[While Loop]] always execute at least once so the outputs are always defined.&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
[http://www.ni.com/white-paper/7588/en/ NI.com Tutorial on For Loops and While Loops]&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Talk:For_loop&amp;diff=6000</id>
		<title>Talk:For loop</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Talk:For_loop&amp;diff=6000"/>
		<updated>2019-02-04T12:37:27Z</updated>

		<summary type="html">&lt;p&gt;Bryan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I think adding some images to this page would help.--[[User:MichaelAivaliotis|MichaelAivaliotis]] ([[User talk:MichaelAivaliotis|talk]]) 05:27, 2 February 2019 (UTC)&lt;br /&gt;
&lt;br /&gt;
I added three images with descriptions in the captions as well as a link to NI&#039;s page on For and While loops for additional information.--[[User:Bryan|Bryan]] ([[User talk:Bryan|talk]]) 12:37, 4 February 2019 (UTC)&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=For_loop&amp;diff=5999</id>
		<title>For loop</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=For_loop&amp;diff=5999"/>
		<updated>2019-02-04T12:29:44Z</updated>

		<summary type="html">&lt;p&gt;Bryan: Added images and an external link to NI&amp;#039;s tutorial on While and For Loops.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:ForLoop.PNG|thumb|For Loop (Will execute &amp;quot;your code&amp;quot; ten times.)]]&lt;br /&gt;
[[File:ForLoop Indexing.png|thumb|For Loop With Indexed Input (Will execute &amp;quot;your code&amp;quot; ten times.)]]&lt;br /&gt;
[[File:ForLoop Indexing Conditional.png|thumb|For Loop With Conditional Terminal (Will execute until first TRUE element, which would be at index 4.)]]&lt;br /&gt;
== Using a For Loop ==&lt;br /&gt;
The LabVIEW For Loop is a structure that will execute code contained within a finite number of times.  The number of times that the loop will execute is initially determined by the numeric value written to the &amp;quot;N&amp;quot; terminal of the loop, or by the size of an array wired as an input to the loop (when indexing is enabled for the input tunnel).  The latter method of specifying the number of iterations is similar to the For-Each structure in many text-based programming languages.&lt;br /&gt;
&lt;br /&gt;
Outputs from a For Loop will be an array by default unless alternate behavior for the tunnel is selected by right-clicking on the tunnel and selecting a behavior under &amp;quot;Tunnel Mode&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== How do I stop a For Loop? ==&lt;br /&gt;
In earlier versions of LabVIEW, there was no way to stop the execution of a For Loop until the requisite number of iterations have been met.  In those earlier LabVIEW versions, a [[While Loop]] would have to be used, in addition to having input and/or output tunnels with indexing enabled.  &lt;br /&gt;
&lt;br /&gt;
In later versions of LabVIEW, a conditional terminal was made available to For Loop, which functions similar to that which is used in a [[While Loop]].  The conditional terminal can be made visible by right-clicking on the border of a For Loop and selecting &amp;quot;Conditional Terminal&amp;quot;.  This conditional terminal is useful if a condition has been met that would make further iterations of the loop unnecessary.  A simple example of this could be if indexing a 10 element array in search of a particular value, then finding the desired value at the fourth element.  The loop could then be stopped without having to continue to iterate through the remaining elements.&lt;br /&gt;
&lt;br /&gt;
== Why doesn&#039;t my For Loop return a value? ==&lt;br /&gt;
As a good programming rule in LabVIEW, NEVER output a value from a For Loop with indexing disabled. When the loop does not execute (0 iteration) a non indexing output stays undefined and will hold any garbage left there by previous memory usage. This is because the wire output from the For Loop has no code or data source to get the value from when the loop does not execute. Instead, use a shift register (SR) to output the value and at the left SR enter a default value for the case when the loop does not execute. When the For Loop does not execute this default value of the left SR is passed to the right SR. Similarly passing a [[Refnum]] through a For Loop that never executes (0 iterations) destroys the reference. Either pass the reference using a SR as described above or wire around the loop. Note that [[While Loop]] always execute at least once so the outputs are always defined.&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
[http://www.ni.com/white-paper/7588/en/ NI.com Tutorial on For Loops and While Loops]&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=File:ForLoop_Indexing_Conditional.png&amp;diff=5998</id>
		<title>File:ForLoop Indexing Conditional.png</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=File:ForLoop_Indexing_Conditional.png&amp;diff=5998"/>
		<updated>2019-02-04T12:26:31Z</updated>

		<summary type="html">&lt;p&gt;Bryan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For Loop showing usage of available conditional terminal.&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=File:ForLoop_Indexing.png&amp;diff=5997</id>
		<title>File:ForLoop Indexing.png</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=File:ForLoop_Indexing.png&amp;diff=5997"/>
		<updated>2019-02-04T12:24:03Z</updated>

		<summary type="html">&lt;p&gt;Bryan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For Loop with indexed input.&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=File:ForLoop.PNG&amp;diff=5996</id>
		<title>File:ForLoop.PNG</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=File:ForLoop.PNG&amp;diff=5996"/>
		<updated>2019-02-04T12:10:52Z</updated>

		<summary type="html">&lt;p&gt;Bryan: Category:Structures&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=For_loop&amp;diff=5994</id>
		<title>For loop</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=For_loop&amp;diff=5994"/>
		<updated>2019-01-30T17:53:22Z</updated>

		<summary type="html">&lt;p&gt;Bryan: Rewritten to provide additional information on For Loops, behavior and ways of stopping executions in later LabVIEW versions.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using a For Loop ==&lt;br /&gt;
The LabVIEW For Loop is a structure that will execute code contained within a finite number of times.  The number of times that the loop will execute is initially determined by the numeric value written to the &amp;quot;N&amp;quot; terminal of the loop, or by the size of an array wired as an input to the loop (when indexing is enabled for the input tunnel).  The latter method of specifying the number of iterations is similar to the For-Each structure in many text-based programming languages.&lt;br /&gt;
&lt;br /&gt;
Outputs from a For Loop will be an array by default unless alternate behavior for the tunnel is selected by right-clicking on the tunnel and selecting a behavior under &amp;quot;Tunnel Mode&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== How do I stop a For Loop? ==&lt;br /&gt;
In earlier versions of LabVIEW, there was no way to stop the execution of a For Loop until the requisite number of iterations have been met.  In those earlier LabVIEW versions, a [[While Loop]] would have to be used, in addition to having input and/or output tunnels with indexing enabled.  &lt;br /&gt;
&lt;br /&gt;
In later versions of LabVIEW, a conditional terminal was made available to For Loop, which functions similar to that which is used in a [[While Loop]].  The conditional terminal can be made visible by right-clicking on the border of a For Loop and selecting &amp;quot;Conditional Terminal&amp;quot;.  This conditional terminal is useful if a condition has been met that would make further iterations of the loop unnecessary.  A simple example of this could be if indexing a 10 element array in search of a particular value, then finding the desired value at the fourth element.  The loop could then be stopped without having to continue to iterate through the remaining elements.&lt;br /&gt;
&lt;br /&gt;
== Why doesn&#039;t my For Loop return a value? ==&lt;br /&gt;
As a good programming rule in LabVIEW, NEVER output a value from a For Loop with indexing disabled. When the loop does not execute (0 iteration) a non indexing output stays undefined and will hold any garbage left there by previous memory usage. This is because the wire output from the For Loop has no code or data source to get the value from when the loop does not execute. Instead, use a shift register (SR) to output the value and at the left SR enter a default value for the case when the loop does not execute. When the For Loop does not execute this default value of the left SR is passed to the right SR. Similarly passing a [[Refnum]] through a For Loop that never executes (0 iterations) destroys the reference. Either pass the reference using a SR as described above or wire around the loop. Note that [[While Loop]] always execute at least once so the outputs are always defined.&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Strict_Type_Definition&amp;diff=5993</id>
		<title>Strict Type Definition</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Strict_Type_Definition&amp;diff=5993"/>
		<updated>2019-01-25T12:14:34Z</updated>

		<summary type="html">&lt;p&gt;Bryan: Updated link to NI URL for TypDefs and their creation to match same format as was used on TypeDef LabVIEW Wiki page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A strict type definition [STD] is like a [[Type Definition|type definition]] with well-defined appearance. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:Type_Def_Status.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Well-defined appearance means that all instances of STD&#039;s share the appearance of that STD, e.g. their properties cannot be changed (except of label, caption and enable-state). &lt;br /&gt;
&lt;br /&gt;
This is handy whenever the size, color etc. needs to be fixed. Think of sophisticated screen designs or stacked STDs. STDs are created by saving as this type of control - similar to &#039;simple&#039; type definitions.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[Type Definition]]&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
* [http://zone.ni.com/reference/en-XX/help/371361B-01/lvhowto/creating_type_defs/ Creating Type Definitions and Strict Type Definitions]&lt;br /&gt;
&lt;br /&gt;
[[Category:user interface]]&lt;br /&gt;
&lt;br /&gt;
[[Category:User interface]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=User:Bryan&amp;diff=5992</id>
		<title>User:Bryan</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=User:Bryan&amp;diff=5992"/>
		<updated>2019-01-25T12:07:44Z</updated>

		<summary type="html">&lt;p&gt;Bryan: Created page with &amp;quot;[https://lavag.org/profile/404-bryan/ Profile on LAVA]&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://lavag.org/profile/404-bryan/ Profile on LAVA]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=VI_Icon&amp;diff=5989</id>
		<title>VI Icon</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=VI_Icon&amp;diff=5989"/>
		<updated>2019-01-21T11:56:26Z</updated>

		<summary type="html">&lt;p&gt;Bryan: Typo correction, &amp;quot;LabVIEW&amp;quot; capitalization, and addition of text regarding icon images and sharing across spoken languages.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{update}}&lt;br /&gt;
&lt;br /&gt;
== VI Icon Importance ==&lt;br /&gt;
The icon you use to represent your subVI can tell you or other developers a lot about what the subVI does without ever having to open the subVI.  Taking the time to create at least simple text VI icon is a requirement when sharing code between developers.  The use of images in VI icons can also enhance their meaning when text can&#039;t be used because of length or in cases where code is shared across different spoken languages.  National Instruments keeps an [http://www.ni.com/devzone/idnet/library/icon_art_glossary.htm Icon Art Glossary] to help developers who are less experienced making easy to recognize icons.&lt;br /&gt;
&lt;br /&gt;
== How to Make icons smaller than the entire square ==&lt;br /&gt;
Sometimes it is desirable to make a LabVIEW subVI&#039;s icon smaller than the normal 32x32 pixels.  National Instruments has done this with several primitives and has made it possible for end users to make custom icons of any size for a subVI.  It is good practice to ensure that terminals used line up logically with the borders of the smaller VI created.&lt;br /&gt;
&lt;br /&gt;
Starting with a typical icon editor&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:Typical_icon_editor.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Clear the default icon from the 256 icon, then click on the &amp;quot;Show Terminals&amp;quot; checkbox.  Draw a box, around the terminals you wish to have displayed on your custom icon.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:Icon_editor_with_small_icon.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Fill the 256 color icon with a color of your choice, as well as any words or symbols you wish to use to describe your subVI&#039;s work, then copy the subVI to the black and white icon by selecting the black and white icon and pressing the copy from 256 color button on the right.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:Icon_editor_with_all_small_icons.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can even make irregularly shaped icons. The white area outside will be transparent in your diagrams. Interestingly, if the border you define is not contiguous, the inside of your icon will also be transparent (you can see a wire go all the way to its connection point (visible as a little cross in the &amp;quot;show terminals&amp;quot; icon view). You can actually have multiple non-transparent areas in your icons if you wish. &lt;br /&gt;
&lt;br /&gt;
== Other icon tricks ==&lt;br /&gt;
===Double Click===&lt;br /&gt;
There are certain tools in the icon editor that are &amp;quot;double-clickable&amp;quot;.  Double clicking on the selection, filled box, and empty box tool icons in the editing palette will apply that tool to the entire icon square. Double clicking on the font tool will bring up a font dialog for selecting font name, size, color, justification, and style (bold, italics, etc). &lt;br /&gt;
 &lt;br /&gt;
[[Image:Double_Clickable_Icon_Editor_tools.png]]&lt;br /&gt;
&lt;br /&gt;
===Move text===&lt;br /&gt;
While typing a text into the  Icon Editor the text is movable by using the arrow keys on the keyboard.&lt;br /&gt;
&lt;br /&gt;
== Alternative Icon Editors ==&lt;br /&gt;
As of LabVIEW 8.0 a custom icon editor could be built and called from LabVIEW to edit icons of VIs.  The relevant information to replace the built in VI icon editor is available [http://forums.lavag.org/index.php?s=&amp;amp;showtopic=3320&amp;amp;view=findpost&amp;amp;p=12920 here].&lt;br /&gt;
&lt;br /&gt;
[[Category:LabVIEW fundamentals]]&lt;br /&gt;
[[Category:Calling a VI]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=LabVIEW_object-oriented_programming&amp;diff=5988</id>
		<title>LabVIEW object-oriented programming</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=LabVIEW_object-oriented_programming&amp;diff=5988"/>
		<updated>2019-01-21T11:43:04Z</updated>

		<summary type="html">&lt;p&gt;Bryan: Added definition for LVOOP.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;LVOOP (pronounced &amp;quot;el vee oop&amp;quot;) is the native implementation of by-value object orientated programming that appeared in LabVIEW 8.20. LVOOP stands for &#039;&#039;&#039;L&#039;&#039;&#039;ab&#039;&#039;&#039;V&#039;&#039;&#039;IEW &#039;&#039;&#039;O&#039;&#039;&#039;bject &#039;&#039;&#039;O&#039;&#039;&#039;riented &#039;&#039;&#039;P&#039;&#039;&#039;rogramming.&lt;br /&gt;
&lt;br /&gt;
*See the [[LVOOP Frequently Asked Questions]] page, here on the LabVIEW Wiki &lt;br /&gt;
*NI has a comprehensive LabVIEW Object-Oriented Programming FAQ for their native LVOOP (native by-value OOP) [http://zone.ni.com/devzone/cda/tut/p/id/3573 here]. It includes links to many other online resources, including the NI Week presentations that the NI R&amp;amp;amp;D team have given to customers. &lt;br /&gt;
*There are multiple example programs that ship with LV. They are located in &amp;amp;lt;labview&amp;amp;gt;exampleslvoop &lt;br /&gt;
*The National Instruments LVOOP FAQ references the [http://zone.ni.com/devzone/cda/tut/p/id/3574 LVOOP White Paper] several times. If you&#039;re an experienced LabVIEW developer, you&#039;ll probably enjoy it more than other forms of documentation. &lt;br /&gt;
*Christina Rogers (National Instruments R&amp;amp;amp;D) has some excellent discussion about refactoring code, specifically the Getting Started Window, to use LabVIEW classes. See her blog at [http://eyesonvis.blogspot.com/ http://eyesonvis.blogspot.com/] and look at the posts in August 2006. &lt;br /&gt;
*[http://forums.ni.com/ni/board/message?board.id=170&amp;amp;message.id=216094&amp;amp;requireLogin=False The LVOOP Design Patterns] is a work-in-progress that [http://forums.lavag.org/Aristos-Queue-m5877.html Aristos Queue] (National Instruments R&amp;amp;amp;D) is working on to help new LVOOP customers choose architectures appropriate to different types of software projects.&lt;br /&gt;
&lt;br /&gt;
== See Also  ==&lt;br /&gt;
*[http://www.ni.com/white-paper/3573/en/ NI White Paper: LabVIEW Object-Oriented Programming FAQ]&lt;br /&gt;
*[http://www.ni.com/white-paper/3574/en/ NI White Paper: LabVIEW Object-Oriented Programming: The Decisions Behind the Design]&lt;br /&gt;
&lt;br /&gt;
[[Category:GOOP]]&lt;br /&gt;
[[Category:GOOP]]&lt;br /&gt;
[[Category:GOOP]]&lt;br /&gt;
[[Category:GOOP]]&lt;br /&gt;
[[Category:GOOP]]&lt;br /&gt;
&lt;br /&gt;
[[Category:GOOP]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=LabVIEW_object-oriented_programming&amp;diff=5967</id>
		<title>LabVIEW object-oriented programming</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=LabVIEW_object-oriented_programming&amp;diff=5967"/>
		<updated>2019-01-18T12:04:52Z</updated>

		<summary type="html">&lt;p&gt;Bryan: Added references to some NI Whitepapers on LVOOP&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;LVOOP (pronounced &amp;quot;el vee oop&amp;quot;) is the native implementation of by-value object orientated programming that appeared in LabVIEW 8.20. &lt;br /&gt;
&lt;br /&gt;
*See the [[LVOOP Frequently Asked Questions]] page, here on the LabVIEW Wiki &lt;br /&gt;
*NI has a comprehensive LabVIEW Object-Oriented Programming FAQ for their native LVOOP (native by-value OOP) [http://zone.ni.com/devzone/cda/tut/p/id/3573 here]. It includes links to many other online resources, including the NI Week presentations that the NI R&amp;amp;amp;D team have given to customers. &lt;br /&gt;
*There are multiple example programs that ship with LV. They are located in &amp;amp;lt;labview&amp;amp;gt;exampleslvoop &lt;br /&gt;
*The National Instruments LVOOP FAQ references the [http://zone.ni.com/devzone/cda/tut/p/id/3574 LVOOP White Paper] several times. If you&#039;re an experienced LabVIEW developer, you&#039;ll probably enjoy it more than other forms of documentation. &lt;br /&gt;
*Christina Rogers (National Instruments R&amp;amp;amp;D) has some excellent discussion about refactoring code, specifically the Getting Started Window, to use LabVIEW classes. See her blog at [http://eyesonvis.blogspot.com/ http://eyesonvis.blogspot.com/] and look at the posts in August 2006. &lt;br /&gt;
*[http://forums.ni.com/ni/board/message?board.id=170&amp;amp;message.id=216094&amp;amp;requireLogin=False The LVOOP Design Patterns] is a work-in-progress that [http://forums.lavag.org/Aristos-Queue-m5877.html Aristos Queue] (National Instruments R&amp;amp;amp;D) is working on to help new LVOOP customers choose architectures appropriate to different types of software projects.&lt;br /&gt;
&lt;br /&gt;
== See Also  ==&lt;br /&gt;
*[http://www.ni.com/white-paper/3573/en/ NI White Paper: LabVIEW Object-Oriented Programming FAQ]&lt;br /&gt;
*[http://www.ni.com/white-paper/3574/en/ NI White Paper: LabVIEW Object-Oriented Programming: The Decisions Behind the Design]&lt;br /&gt;
&lt;br /&gt;
[[Category:GOOP]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=LabVIEW_object-oriented_programming_FAQ&amp;diff=5966</id>
		<title>LabVIEW object-oriented programming FAQ</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=LabVIEW_object-oriented_programming_FAQ&amp;diff=5966"/>
		<updated>2019-01-18T12:01:56Z</updated>

		<summary type="html">&lt;p&gt;Bryan: Added definition for acronym.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a stub page for Frequently Asked Questions (FAQ) about LVOOP. Please feel free to add to the list of FAQ and answer any of the questions that have been posted.&lt;br /&gt;
&lt;br /&gt;
You may find many questions already answered on the [http://zone.ni.com/devzone/cda/tut/p/id/3573 LVOOP FAQ on NI&#039;s website]. That FAQ will be updated by NI for new versions of LabVIEW and new OO tools as they become available.&lt;br /&gt;
&lt;br /&gt;
== Why is class data private?  ==&lt;br /&gt;
&lt;br /&gt;
In general object-oriented programming terms, attributes (like methods) can have private, protected, or public visibility. In practice individual object-oriented programming languages have differing capabilities when it comes to specifying visibility. In the UML attributes are generally assumed to have private visibility unless otherwise specified. (Operations, on the other hand, are assumed to be public unless otherwise specified.) Generally, OOP style guides say never to give attributes public visibility, and the so-called “Law of Demeter” in its strong form limits attribute visibilities to private. In other words, access to data in a class from outside the class is always through accessor methods (‘set’ or ‘get’) methods. In LVOOP this is the only choice, a decision designed to promote good code designs with minimal coupling. (See further here: [http://zone.ni.com/devzone/cda/tut/p/id/3574]). (Note that LabVIEW 8.5 introduces a “Create Accessor” dialog box to simplify the creation of accessor methods. For more information on this dialog box see the LabVIEW 8.5 Upgrade Notes here: [http://digital.ni.com/manuals.nsf/websearch/7A60FDCEA6D2D8C4862572FD00159F5A].)&lt;br /&gt;
&lt;br /&gt;
== What are the differences between public, protected, and private class members?  ==&lt;br /&gt;
&lt;br /&gt;
In Object-Oriented Programming terms these generally mean:&lt;br /&gt;
&lt;br /&gt;
A private feature (UML abbreviation -) is accessible only from the defining class. A public feature (+) is accessible from outside the class. A protected feature (#) is (in C++, for example) accessible from the defining class and any of its child classes. The UML also has an abbreviation for package (~) visibility. The exact meaning of the different visibilities varies among different programming languages.&lt;br /&gt;
&lt;br /&gt;
In 2009 LabVIEW introduced &#039;&#039;Community&#039;&#039; scoping to classes (and other project libraries.)  Community scoped items are the same as private items, except they are visible to external entities specifically designated as &amp;quot;Friends of This Library.&amp;quot;  Some important things to keep in mind with community scoping are:&lt;br /&gt;
&lt;br /&gt;
* Friendship is a one-way permission granted by a class giving external entities access to community scoped items.  If Class A makes Class B a friend, Class B has access to Class A&#039;s community scoped items, but Class A does not have access to Class B&#039;s community scoped items.&lt;br /&gt;
&lt;br /&gt;
* Child classes are not automatically granted access to a parent&#039;s community scoped items.&lt;br /&gt;
&lt;br /&gt;
== Why are there no class constructor and destructor?  ==&lt;br /&gt;
&lt;br /&gt;
== Are objects by value or by reference?  ==&lt;br /&gt;
&lt;br /&gt;
== What does LVOOP mean?  ==&lt;br /&gt;
LVOOP (pronounced &amp;quot;el vee oop&amp;quot;) stands for &#039;&#039;&#039;L&#039;&#039;&#039;ab&#039;&#039;&#039;V&#039;&#039;&#039;IEW &#039;&#039;&#039;O&#039;&#039;&#039;bject-&#039;&#039;&#039;O&#039;&#039;&#039;riented &#039;&#039;&#039;P&#039;&#039;&#039;rogramming.&lt;br /&gt;
&lt;br /&gt;
[[Category:GOOP]]&lt;br /&gt;
&lt;br /&gt;
== How can I create by reference objects?  ==&lt;br /&gt;
&lt;br /&gt;
== How can I create active objects?  ==&lt;br /&gt;
&lt;br /&gt;
== Are there any add on tools for LVOOP?  ==&lt;br /&gt;
&lt;br /&gt;
== What does the &amp;quot;Dynamic Dispatch&amp;quot; connector pane terminal setting do?  ==&lt;br /&gt;
&lt;br /&gt;
== My LVOOP class control has a black border, what does that mean&amp;amp;nbsp;?  ==&lt;br /&gt;
&lt;br /&gt;
A LVOOP class has a default value that is determined by the default value of the private data control in the .lvclass file. However, a control on a vi front panel, or a constant on a block diagram can also have a default value that is different from the default data for the class as a whole.&amp;amp;nbsp;When this happens the control (or constant) is given a black border.&amp;amp;nbsp;It can just as easily be a non-default value of the class itself, so if your private data cluster contains a numeric whose default value is 5, this control may have the numeric with a default value of 6.&lt;br /&gt;
&lt;br /&gt;
When there is a class heirarchy, it is possible for a parent class method to process an instance of a child class. Similarily, it is possible to set the default value of a parent class control or constant to be an instance of a child class. This will also result in a black border around the parent class control or constant. When this happens with a member vi of the parent class, the parent class becomes dependent on the child class in addition to the normal dependency of the child on the parent. This can be confusing and awkward to locate.&lt;br /&gt;
&lt;br /&gt;
To change the default value of a class control run a VI such that a non-default value ends up in an indicator, then do one of the following:&amp;lt;br&amp;gt;A) Right click on that indicator and choose &amp;quot;Make Current Value Default&amp;quot; or&amp;lt;br&amp;gt;B) Right click on that indicator and choose &amp;quot;Change to Constant&amp;quot; (the current value of a control/indicator always becomes the value of the constant)&lt;br /&gt;
&lt;br /&gt;
[[Category:GOOP]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Application_builder&amp;diff=5960</id>
		<title>Application builder</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Application_builder&amp;diff=5960"/>
		<updated>2019-01-10T15:24:35Z</updated>

		<summary type="html">&lt;p&gt;Bryan: SouthPaw moved page Application builder to Application Builder: Capitalization of &amp;quot;Builder&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Application Builder]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Application_Builder&amp;diff=5959</id>
		<title>Application Builder</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Application_Builder&amp;diff=5959"/>
		<updated>2019-01-10T15:24:34Z</updated>

		<summary type="html">&lt;p&gt;Bryan: SouthPaw moved page Application builder to Application Builder: Capitalization of &amp;quot;Builder&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCnestright}}&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
= Introduction&amp;lt;br&amp;gt;  =&lt;br /&gt;
&lt;br /&gt;
The application builder (AB) is a part of the LabVIEW Project environment, it has the possibilities to distribute your code in various ways:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*Executables&amp;lt;br&amp;gt; &lt;br /&gt;
*DLLs&amp;lt;br&amp;gt; &lt;br /&gt;
*Source distributions&amp;lt;br&amp;gt; &lt;br /&gt;
*Web services&amp;lt;br&amp;gt; &lt;br /&gt;
*Installers&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depending on the LabVIEW version you have one or more of the above options might be missing.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
= Manual&amp;lt;br&amp;gt;  =&lt;br /&gt;
&lt;br /&gt;
{{Stub}}&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
= Advanced&amp;lt;br&amp;gt;  =&lt;br /&gt;
&lt;br /&gt;
The application builder has several interesting advanced uses&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Automatic building&amp;lt;br&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
You can use a VI inside vi.lib that can build without user interaction. The VI is located in &amp;lt;span style=&amp;quot;font-style: italic;&amp;quot;&amp;gt;&amp;amp;lt;&amp;lt;/span&amp;gt;&#039;&#039;vi.lib&amp;amp;gt;\AppBuilder\BuildTargetBuildSpecification.vi&#039;&#039;. This VI takes a project path and optionally a build and target name as parameters.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Symbolic paths&amp;lt;br&amp;gt;  ==&lt;br /&gt;
&lt;br /&gt;
Inside the application builder LabVIEW uses several symbolic paths to have envorinment dependent variables.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;width: 708px; height: 104px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Symbolic path&amp;lt;br&amp;gt;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Contents&amp;lt;br&amp;gt;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Usage&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| NI_AB_PROJECTNAME&amp;lt;br&amp;gt;&lt;br /&gt;
| Name of the project&amp;lt;br&amp;gt;&lt;br /&gt;
| Automatically place the build in a folder that is named after the project&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| NI_AB_TARGETNAME&amp;lt;br&amp;gt;&lt;br /&gt;
| Name of the (Real-Time) target&amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Building executables]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Invoke_Node&amp;diff=5958</id>
		<title>Invoke Node</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Invoke_Node&amp;diff=5958"/>
		<updated>2019-01-10T12:22:20Z</updated>

		<summary type="html">&lt;p&gt;Bryan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;Invoke Node&#039;&#039;&#039; is used to perform a method on a VI using [[VI Server]], very similar to the [[Call By Reference]] Node. &#039;&#039;&#039;Invoke Node&#039;&#039;&#039;, however, does not need a strictly typed reference and as such is not bound to the VI&#039;s connector pane and is free to call &#039;&#039;&#039;any VI&#039;&#039;&#039;. On the other hand, as the connector pane of the callee is unknown at editing time, one must use several calls to &#039;&#039;&#039;Invoke Node&#039;&#039;&#039; in order to set control values, run the VI and retrieve its results.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &lt;br /&gt;
When using the &#039;&#039;&#039;Invoke Node&#039;&#039;&#039; it is very common to stumble upon an error:&lt;br /&gt;
== VI is not in appropriate state for the invoke node ==&lt;br /&gt;
This is a known behaviour, but I wouldn&#039;t call it an error. It&#039;s just how LabVIEW works. A lot of the methods for a VI reference can not be executed for VIs which are either in a reserved state or already running. When a VI is running is rather obvious but a reserved state means that the VI is either part of a running hierarchy of VIs (usually your application) or a strict typedefed VI reference is open to it. The reasons for this are not so simple but it comes down to protecting the VI from influences from different caller types. The Run method of the &#039;&#039;&#039;Invoke Node&#039;&#039;&#039; (amongst others) is asynchronous as it starts the VI but not necessarily waits for termination of the VI. An implicit reference to the VI as an icon in your block diagram or an explicit one in the form of a strict typedef to be used with the Call by Reference Node are synchronous as far as the caller is concerned.&lt;br /&gt;
&lt;br /&gt;
If you are unable to resolve that error message, you may eventually try to use the Call by Reference Node instead. If you need for whatever reasons to use the Run method you MUST make sure that the VI is not an explicit part of your application by not adding its icon anywhere in your app (and not opening a strict typedefed reference to it either).&lt;br /&gt;
&lt;br /&gt;
[[Category:Application control]]&lt;br /&gt;
[[Category:VI Scripting]]&lt;br /&gt;
[[Category:VI Server]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Debugging_Executables&amp;diff=5957</id>
		<title>Debugging Executables</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Debugging_Executables&amp;diff=5957"/>
		<updated>2019-01-10T12:19:35Z</updated>

		<summary type="html">&lt;p&gt;Bryan: /* Connecting to the Executable */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
Executables created in LabVIEW can be debugged after having been compiled into an executable, (*.exe).  However, this is only able to be done if &amp;quot;Enable debugging&amp;quot; was enabled in the build specification when the application was compiled with the LabVIEW [[Application builder]].&lt;br /&gt;
&lt;br /&gt;
= Build Specification Settings =&lt;br /&gt;
Under the &amp;quot;Advanced&amp;quot; category in the Build Specification:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Enable debugging&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;Enabled&#039;&#039; - &amp;quot;Builds in&amp;quot; the ability to connect to and debug the application to be compiled.  This ability can then be enabled/disabled in the application at any time by modifying the &amp;quot;DebugServerEnabled&amp;quot; key in the [AppName].ini file after it has been compiled.&lt;br /&gt;
** &#039;&#039;Disabled&#039;&#039; - Completely disables any ability to connect to and debug the application once built.  This ability can not be enabled even if the &amp;quot;DebugServerEnabled&amp;quot; key has  been added and set to &#039;&#039;True&#039;&#039; in the [AppName].ini file.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Wait for debugger on launch&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;Enabled&#039;&#039; - If &amp;quot;Enable debugging&amp;quot; has been enabled, the built application can be accessed for debugging, but the application does not automatically run when launched.  The application will have to be manually started by clicking on the run arrow.&lt;br /&gt;
** &#039;&#039;Disabled&#039;&#039; - The application will begin running immediately when the application is launched when &amp;quot;DebugServerEnabled&amp;quot; is enabled.&lt;br /&gt;
&lt;br /&gt;
= Application Configuration File =&lt;br /&gt;
It should be noted that changes to the values of the following keys in the configuration file for the built application will be ignored if &amp;quot;Enable Debugging&amp;quot; was not checked in the [[Application builder]] when compiled.&lt;br /&gt;
&lt;br /&gt;
=== Key/Value Example ===&lt;br /&gt;
:DebugServerEnabled=&#039;&#039;True&#039;&#039;&lt;br /&gt;
:DebugServerWaitOnLaunch=&#039;&#039;False&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Connecting to the Executable =&lt;br /&gt;
&amp;lt;p&amp;gt;In order to debug an executable that has been compiled with the proper settings (see above), the application must already be launched either on the local computer or on a computer accessible via a network connection.&lt;br /&gt;
&lt;br /&gt;
# In LabVIEW, select the &#039;&#039;&#039;Operate&#039;&#039;&#039; &amp;gt;&amp;gt; &#039;&#039;&#039;Debug Application or Shared Library...&#039;&#039;&#039;&lt;br /&gt;
# Enter the machine name or IP address of the computer that is running the application.  If the application is running on the local machine, enter &#039;&#039;localhost&#039;&#039;.&lt;br /&gt;
# If the &amp;quot;Application or shared library&amp;quot; drop-down doesn&#039;t show the name of the application that you are looking for and the application has been configured properly, click on &amp;quot;Refresh&amp;quot;.&lt;br /&gt;
# Select the application that you wish to debug and click on &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
At this point, the application should &amp;quot;download&amp;quot; and you should be able to use the LabVIEW debugging tools in the application.&lt;br /&gt;
&lt;br /&gt;
[[Category:Debugging]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Debugging_Executables&amp;diff=5956</id>
		<title>Debugging Executables</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Debugging_Executables&amp;diff=5956"/>
		<updated>2019-01-10T12:18:54Z</updated>

		<summary type="html">&lt;p&gt;Bryan: Slight reformatting and addition of config file key/val pairs.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
Executables created in LabVIEW can be debugged after having been compiled into an executable, (*.exe).  However, this is only able to be done if &amp;quot;Enable debugging&amp;quot; was enabled in the build specification when the application was compiled with the LabVIEW [[Application builder]].&lt;br /&gt;
&lt;br /&gt;
= Build Specification Settings =&lt;br /&gt;
Under the &amp;quot;Advanced&amp;quot; category in the Build Specification:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Enable debugging&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;Enabled&#039;&#039; - &amp;quot;Builds in&amp;quot; the ability to connect to and debug the application to be compiled.  This ability can then be enabled/disabled in the application at any time by modifying the &amp;quot;DebugServerEnabled&amp;quot; key in the [AppName].ini file after it has been compiled.&lt;br /&gt;
** &#039;&#039;Disabled&#039;&#039; - Completely disables any ability to connect to and debug the application once built.  This ability can not be enabled even if the &amp;quot;DebugServerEnabled&amp;quot; key has  been added and set to &#039;&#039;True&#039;&#039; in the [AppName].ini file.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Wait for debugger on launch&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;Enabled&#039;&#039; - If &amp;quot;Enable debugging&amp;quot; has been enabled, the built application can be accessed for debugging, but the application does not automatically run when launched.  The application will have to be manually started by clicking on the run arrow.&lt;br /&gt;
** &#039;&#039;Disabled&#039;&#039; - The application will begin running immediately when the application is launched when &amp;quot;DebugServerEnabled&amp;quot; is enabled.&lt;br /&gt;
&lt;br /&gt;
= Application Configuration File =&lt;br /&gt;
It should be noted that changes to the values of the following keys in the configuration file for the built application will be ignored if &amp;quot;Enable Debugging&amp;quot; was not checked in the [[Application builder]] when compiled.&lt;br /&gt;
&lt;br /&gt;
=== Key/Value Example ===&lt;br /&gt;
:DebugServerEnabled=&#039;&#039;True&#039;&#039;&lt;br /&gt;
:DebugServerWaitOnLaunch=&#039;&#039;False&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Connecting to the Executable =&lt;br /&gt;
&amp;lt;p&amp;gt;In order to debug an executable that has been compiled with the proper settings (see above), the application must already be launched either on the local computer or on a computer accessible via a network connection.&lt;br /&gt;
&lt;br /&gt;
# In LabVIEW, select the &#039;&#039;&#039;Operate&#039;&#039;&#039; &amp;gt;&amp;gt; &#039;&#039;&#039;Debug Application or Shared Library...&#039;&#039;&#039;&lt;br /&gt;
# Enter the machine name or IP address of the computer that is running the application.  If the application is running on the local machine, enter &#039;&#039;localhost&#039;&#039;.&lt;br /&gt;
# If &amp;quot;Application or shared library&amp;quot; drop-down doesn&#039;t show the name of the application that you are looking for and the application has been configured properly, click on &amp;quot;Refresh&amp;quot;.&lt;br /&gt;
# Select the application that you wish to debug and click on &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
At this point, the application should &amp;quot;download&amp;quot; and you should be able to use the LabVIEW debugging tools in the application.&lt;br /&gt;
&lt;br /&gt;
[[Category:Debugging]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Debugging&amp;diff=5954</id>
		<title>Debugging</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Debugging&amp;diff=5954"/>
		<updated>2019-01-09T21:15:40Z</updated>

		<summary type="html">&lt;p&gt;Bryan: /* Advanced Debugging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Debugging Basics ==&lt;br /&gt;
[[File:BD Toolbar.gif|center|thumb|506x506px|Block Diagram Toolbar ]]&lt;br /&gt;
Basic debugging tools come integrated into every block diagram window in the toolbar. See [http://www.ni.com/getting-started/labview-basics/debug Debugging Tools in LabVIEW] .&amp;lt;ref&amp;gt;&amp;quot;Debugging Tools in LabVIEW&amp;quot; by National Instruments ([http://www.ni.com/getting-started/labview-basics/debug]http://www.ni.com/getting-started/labview-basics/debug)&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Broken Run Button&#039;&#039;&#039; - appears broken when the VI you are creating or editing contains errors&lt;br /&gt;
* &#039;&#039;&#039;Highlight Execution&#039;&#039;&#039; - displays an animation of the block diagram execution when you run the VI&lt;br /&gt;
* &#039;&#039;&#039;Retain Wire Values&#039;&#039;&#039; - save the wire values at each point in the flow of execution so that when you place a probe on the wire you can immediately retain the most recent value of the data that passed through the wire&lt;br /&gt;
* &#039;&#039;&#039;Step Into&#039;&#039;&#039; - opens a node and pauses&lt;br /&gt;
* &#039;&#039;&#039;Step Over&#039;&#039;&#039; - executes a node and pauses at the next node&lt;br /&gt;
* &#039;&#039;&#039;Step Out&#039;&#039;&#039; - finishes executing the current node and pauses&lt;br /&gt;
&lt;br /&gt;
== Breakpoints ==&lt;br /&gt;
[[File:BreakpointButton.gif|left|frameless|24x24px]]&lt;br /&gt;
Like other software languages, breakpoints allow the developer to pause the execution of the code at a specified point. This is helpful when the developer knows the code works to that point but the wants to use the other debugging to past that point to discover the problem. See more on [https://zone.ni.com/reference/en-XX/help/371361J-01/lvhowto/breakpoints/ Managing Breakpoints].&amp;lt;ref&amp;gt;&amp;quot;Managing Breakpoints&amp;quot; by National Instruments (http://zone.ni.com/reference/en-XX/help/371361R-01/lvhowto/breakpoints/)&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Probes ==&lt;br /&gt;
[[File:ProbeButton.gif|left|frameless|24x24px]]&lt;br /&gt;
Use [[Probes]] to check intermediate values on a wire as a VI runs. Use the Probe tool if you have a complicated block diagram with a series of operations, any one of which might return incorrect data. Use the Probe tool with execution highlighting, single-stepping, and breakpoints to determine if and where data is incorrect. If data is available, the probe immediately updates and displays the data during execution highlighting, single-stepping, or when you pause at a breakpoint. When execution pauses at a node because of single-stepping or a breakpoint, you also can probe the wire that just executed to see the value that flowed through that wire.&amp;lt;ref&amp;gt;&amp;quot;Using the Probe Tool&amp;quot; by National Instruments [http://zone.ni.com/reference/en-XX/help/371361R-01/lvhowto/using_the_probe_tool/ (http://zone.ni.com/reference/en-XX/help/371361R-01/lvhowto/using_the_probe_tool/])&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conditional Disable Structure/Conditional Symbols ==&lt;br /&gt;
More to come&lt;br /&gt;
&lt;br /&gt;
== Suspend When Called ==&lt;br /&gt;
More to come&lt;br /&gt;
&lt;br /&gt;
== Debug Window ==&lt;br /&gt;
More to come&lt;br /&gt;
&lt;br /&gt;
== Error Handling ==&lt;br /&gt;
More to come&lt;br /&gt;
&lt;br /&gt;
== Desktop Execution Trace Toolkit ==&lt;br /&gt;
More to come&lt;br /&gt;
&lt;br /&gt;
== Advanced Debugging ==&lt;br /&gt;
* [[Debugging_Executables|Debugging Executables]]&lt;br /&gt;
More to come&lt;br /&gt;
&lt;br /&gt;
== Articles ==&lt;br /&gt;
[https://forums.ni.com/t5/WAsatch-Front-LabVIEW-WAFL-User/Basics-of-Debugging-LabVIEW/gpm-p/3816405 Basics of Debugging LabVIEW] - by Quentin Alldredge, Q Software Innovations, LLC&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Debugging]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Debugging_Executables&amp;diff=5953</id>
		<title>Debugging Executables</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Debugging_Executables&amp;diff=5953"/>
		<updated>2019-01-09T21:13:07Z</updated>

		<summary type="html">&lt;p&gt;Bryan: Created page with &amp;quot;{{TOCright}} Executables created in LabVIEW can be debugged after having been compiled into an executable, (*.exe).  However, this is only able to be done if &amp;quot;Enable debugging...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
Executables created in LabVIEW can be debugged after having been compiled into an executable, (*.exe).  However, this is only able to be done if &amp;quot;Enable debugging&amp;quot; was enabled in the build specification when the application was compiled.&lt;br /&gt;
&lt;br /&gt;
== Build Specification Settings ==&lt;br /&gt;
Under the &amp;quot;Advanced&amp;quot; category in the Build Specification:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Enable debugging&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;Enabled&#039;&#039; - &amp;quot;Builds in&amp;quot; the ability to connect to and debug the built application.  This ability can then be enabled/disabled by setting the appropriate key in the [AppName].ini file after it has been compiled.&lt;br /&gt;
** &#039;&#039;Disabled&#039;&#039; - Completely disables any ability to connect to and debug the application once built.  This ability can not be enabled even if the appropriate keys have been added and set in the [AppName].ini file.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Wait for debugger on launch&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;Enabled&#039;&#039; - If &amp;quot;Enable debugging&amp;quot; has been set, this setting allows the built application to be launched and accessed, but the application does not automatically run.  The run arrow will have to be clicked to start running the application.&lt;br /&gt;
** &#039;&#039;Disabled&#039;&#039; - The application will begin running immediately when the application is launched.&lt;br /&gt;
&lt;br /&gt;
== Debugging an Executable ==&lt;br /&gt;
In order to debug an executable that has been compiled with the proper settings (see above), the application must already be launched either on the local computer or on a computer accessible via a network connection.&lt;br /&gt;
&lt;br /&gt;
# In LabVIEW, select the &#039;&#039;&#039;Operate&#039;&#039;&#039; &amp;gt;&amp;gt; &#039;&#039;&#039;Debug Application or Shared Library...&#039;&#039;&#039;&lt;br /&gt;
# Enter the machine name or IP address of the computer that is running the application.  If the application is running on the local machine, enter &#039;&#039;localhost&#039;&#039;.&lt;br /&gt;
# If &amp;quot;Application or shared library&amp;quot; drop-down doesn&#039;t show the name of the application that you are looking for and the application has been configured properly, click on &amp;quot;Refresh&amp;quot;.&lt;br /&gt;
# Select the application that you wish to debug and click on &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
At this point, the application should &amp;quot;download&amp;quot; and you should be able to use the LabVIEW debugging tools in the application.&lt;br /&gt;
&lt;br /&gt;
[[Category:Debugging]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=NaN&amp;diff=5950</id>
		<title>NaN</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=NaN&amp;diff=5950"/>
		<updated>2019-01-09T18:32:17Z</updated>

		<summary type="html">&lt;p&gt;Bryan: /* External links */  Add: correct/additional references to IEEE 754 Standard.  Remove: Broken link to IEEE 754 Standard.  Change: Reorganized external links.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;NaN&#039;&#039;&#039; is the notation in LabVIEW for the floating-point value &#039;&#039;Not-a-Number&#039;&#039;. LabVIEW implements the [http://grouper.ieee.org/groups/754/ IEEE-754 standard] for floating-point calculations, which specifies unique values for the outputs of mathematical operations which have no meaningful numerical result. A few examples of calculations which produce NaN are:&lt;br /&gt;
&lt;br /&gt;
*division of zero by zero&lt;br /&gt;
*square root of a negative number&lt;br /&gt;
*division of an infinity by an infinity&lt;br /&gt;
*logarithm (any base) of a non-positive number&lt;br /&gt;
*any calculation which includes NaN as one of its operands&lt;br /&gt;
&lt;br /&gt;
The last example above implies that any calculation sequence which generates NaN as an intermediate step will propagate NaN through all subsequent calculations. While this is generally true, there are exceptions (the LabVIEW &#039;&#039;&#039;Power of X&#039;&#039;&#039; primitive returns one for zero raised to NaN).&lt;br /&gt;
&lt;br /&gt;
One salient feature of the NaN value is that all comparison operations involving NaN return &#039;&#039;&#039;FALSE&#039;&#039;&#039;, including the equality operator (in other words, NaN&amp;amp;nbsp;!= NaN). LabVIEW provides the &#039;&#039;&#039;Not A Number/Path/Refnum?&#039;&#039;&#039; primitive, which is the proper way to test for NaN.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable FCK__ShowTableBorders&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Not A Number/Path/Refnum? &amp;lt;br&amp;gt;primitive&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Nanfunc.png|center]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Floating-point controls, indicators, and block diagram constants support the direct entry of NaN (case-insensitive). Similarly, string-to-numeric and numeric-to-string primitives convert or format NaN without regard to format specifiers.&lt;br /&gt;
&lt;br /&gt;
== Use Cases ==&lt;br /&gt;
&lt;br /&gt;
*indicating &amp;quot;missing&amp;quot; data in data-tables in files.&lt;br /&gt;
*used for lifting the &amp;quot;plotting pen&amp;quot; in graph, for instance if a value would be out of its allowed range.&lt;br /&gt;
&lt;br /&gt;
== External links  ==&lt;br /&gt;
&lt;br /&gt;
*IEEE pages: &lt;br /&gt;
**[http://ieeexplore.ieee.org/servlet/opac?punumber=2355 754-1985 - IEEE Standard for Binary Floating-Point Arithmetic]&lt;br /&gt;
**[http://ieeexplore.ieee.org/servlet/opac?punumber=4610933 754-2008 - IEEE Standard for Floating-Point Arithmetic]&lt;br /&gt;
*Wikipedia entries: &lt;br /&gt;
**[http://en.wikipedia.org/wiki/NaN Wikipedia entry on NaN]&lt;br /&gt;
**[http://en.wikipedia.org/wiki/IEEE_754 Wikipedia entry on IEEE 754]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=OS_Open_Document&amp;diff=5935</id>
		<title>OS Open Document</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=OS_Open_Document&amp;diff=5935"/>
		<updated>2019-01-09T18:13:17Z</updated>

		<summary type="html">&lt;p&gt;Bryan: Fix: Broken Link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ PrivateEvent&lt;br /&gt;
| description =Triggered when the user opens a non-LabVIEW file with LabVIEW&lt;br /&gt;
| minLVVersion = 8.2&lt;br /&gt;
| maxLVVersion =&lt;br /&gt;
| class = Application &lt;br /&gt;
| OS1 =w&lt;br /&gt;
| OS2 =l&lt;br /&gt;
| OS3 =&lt;br /&gt;
| OS4 =&lt;br /&gt;
| NowPublic =No&lt;br /&gt;
| Notes = See this [https://lavag.org/topic/4851-associating-my-exe-with-a-specific-file-extension-type/?page=1 discussion]. Supposedly only works with LabVIEW 8.2&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Open_Source_Code&amp;diff=5934</id>
		<title>Open Source Code</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Open_Source_Code&amp;diff=5934"/>
		<updated>2019-01-07T20:25:32Z</updated>

		<summary type="html">&lt;p&gt;Bryan: /* Articles */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Open Source Repositories ==&lt;br /&gt;
&lt;br /&gt;
=== GitHub ===&lt;br /&gt;
* [https://github.com/trending/labview Trending LabVIEW Projects on GitHub]&lt;br /&gt;
* [https://github.com/search?q=labview&amp;amp;type=Repositories All LabVIEW Projects on GitHub]&lt;br /&gt;
&lt;br /&gt;
=== GitLab ===&lt;br /&gt;
* [https://gitlab.com/search?utf8=%E2%9C%93&amp;amp;search=labview LabVIEW Projects on GitLab]&lt;br /&gt;
&lt;br /&gt;
=== BitBucket ===&lt;br /&gt;
* [https://bitbucket.org/lavag/ LAVA projects on BitBucket]&lt;br /&gt;
&lt;br /&gt;
==Forums and Discussion Groups==&lt;br /&gt;
[https://forums.ni.com/t5/Git-User-Group/gp-p/grp-2368 Git User Group - NI Community]&lt;br /&gt;
&lt;br /&gt;
[https://forums.ni.com/t5/Mercurial-User-Group/gp-p/5107 Mercurial User Group - NI Community]&lt;br /&gt;
&lt;br /&gt;
==Articles==&lt;br /&gt;
&lt;br /&gt;
[https://devs.wiresmithtech.com/blog/open-source-labview-how-to-contribute/ Open Source LabVIEW-How to Contribute] - James McNally, Wiresmith Technology&lt;br /&gt;
&lt;br /&gt;
Open source software projects are making huge contributions around the world. They allow communities to pool their resources and achieve progress that couldn’t be reached by individual teams in silos.&lt;br /&gt;
&lt;br /&gt;
While there are open source projects in LabVIEW, it feels like a resource that we aren’t great at using as a community. Every project I’ve seen seems to handle things quite differently, and it can be hard to track down where to work.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/NISystemsEngineering/GitHub-Hands-on/blob/master/Basic%20Concepts/Basic%20Concepts.md Git Basic Concepts for LabVIEW]  - developed by NI Systems Engineering&lt;br /&gt;
&lt;br /&gt;
How to use GitHub with LabVIEW Code.&lt;br /&gt;
* [https://forums.ni.com/t5/Reference-Design-Content/Getting-Started-Git-and-GitHub-setup/ta-p/3544824 Getting Started with Git and GitHub]&lt;br /&gt;
* [https://forums.ni.com/t5/Reference-Design-Content/Getting-Started-Git-GitHub-Development-Workflow/ta-p/3544823 Git/GitHub Development Workflow]&lt;br /&gt;
&lt;br /&gt;
[https://opensource.org/ Open Source Initiative]&lt;br /&gt;
&lt;br /&gt;
Not an article, per-se, however it is a full website promoting the open source cause.  Includes lots of information about licensing.&lt;br /&gt;
&lt;br /&gt;
[https://forums.ni.com/t5/LabVIEW-Development-Best/Using-Subversion-SVN-with-LabVIEW/ba-p/3479672 Using Subversion (SVN) with LabVIEW]&lt;br /&gt;
&lt;br /&gt;
[[Category:Open Source Code]]&lt;/div&gt;</summary>
		<author><name>Bryan</name></author>
	</entry>
</feed>