<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Extending LabVIEW-built applications with LVOOP plugins</title>
	<atom:link href="http://expressionflow.com/2008/06/02/extending-labview-built-applications-with-lvoop-plugins/feed/" rel="self" type="application/rss+xml" />
	<link>http://expressionflow.com/2008/06/02/extending-labview-built-applications-with-lvoop-plugins/</link>
	<description>LabVIEW and visual programming blog</description>
	<lastBuildDate>Wed, 14 Dec 2011 00:11:04 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: markjjaeger</title>
		<link>http://expressionflow.com/2008/06/02/extending-labview-built-applications-with-lvoop-plugins/comment-page-1/#comment-7043</link>
		<dc:creator>markjjaeger</dc:creator>
		<pubDate>Tue, 25 Jan 2011 21:50:40 +0000</pubDate>
		<guid isPermaLink="false">http://expressionflow.com/2008/06/02/extending-labview-built-applications-with-lvoop-plugins/#comment-7043</guid>
		<description>Tom,

I realize this is a few years late, but nice work! Your example is the most informational that I&#039;ve been able to find on this topic.

I did have one question for you, and it&#039;s probably not even that difficult to answer. I&#039;m relatively new to LVOOP, so I&#039;m not familiar with all of the various tips and tricks. Along those lines, how would you recommend creating a new plugin (for example, Triangle.lvclass) in this example?  Is there an easy way to create the Triangle.lvclass object and underlying VI&#039;s (Draw.vi, Get Name.vi)? Right now I seem to be making it difficult on myself - here are the steps I took:
 - Open new project
 - Add the &quot;Plugin Interface.lvclass&quot; object definition
 - Add a new Class to the project, call it Triangle.lvclass
 - Change the properties of Triangle.lvclass so that it inherits from the plugin interface
 - Create a new VI named Draw.vi, adding the Picture In and Picture Out controls
 - Do the same for &quot;Get Name.vi&quot;

My application will end up having a bunch of plugins (20-some), and I&#039;d like to streamline the creation process a bit if possible. Any help you can provide would be greatly appreciated. Thanks!

Mark</description>
		<content:encoded><![CDATA[<p>Tom,</p>
<p>I realize this is a few years late, but nice work! Your example is the most informational that I&#8217;ve been able to find on this topic.</p>
<p>I did have one question for you, and it&#8217;s probably not even that difficult to answer. I&#8217;m relatively new to LVOOP, so I&#8217;m not familiar with all of the various tips and tricks. Along those lines, how would you recommend creating a new plugin (for example, Triangle.lvclass) in this example?  Is there an easy way to create the Triangle.lvclass object and underlying VI&#8217;s (Draw.vi, Get Name.vi)? Right now I seem to be making it difficult on myself &#8211; here are the steps I took:<br />
 &#8211; Open new project<br />
 &#8211; Add the &#8220;Plugin Interface.lvclass&#8221; object definition<br />
 &#8211; Add a new Class to the project, call it Triangle.lvclass<br />
 &#8211; Change the properties of Triangle.lvclass so that it inherits from the plugin interface<br />
 &#8211; Create a new VI named Draw.vi, adding the Picture In and Picture Out controls<br />
 &#8211; Do the same for &#8220;Get Name.vi&#8221;</p>
<p>My application will end up having a bunch of plugins (20-some), and I&#8217;d like to streamline the creation process a bit if possible. Any help you can provide would be greatly appreciated. Thanks!</p>
<p>Mark</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tomi Maila</title>
		<link>http://expressionflow.com/2008/06/02/extending-labview-built-applications-with-lvoop-plugins/comment-page-1/#comment-6872</link>
		<dc:creator>Tomi Maila</dc:creator>
		<pubDate>Sun, 07 Dec 2008 09:25:27 +0000</pubDate>
		<guid isPermaLink="false">http://expressionflow.com/2008/06/02/extending-labview-built-applications-with-lvoop-plugins/#comment-6872</guid>
		<description>Hi Pierre,

Which version of LabVIEW are you using? I&#039;m testing the scenario you suggested with LabVIEW 8.6 and I have no problems. For the Circle plugin, I set both Circle and Ellipse classes as Always Included and voilà, everything works as suggested. I think the the previous versions of the builder may have had problems with colliding classes, so if you are using LV earlier than 8.6, you should consider upgrading. 

The plugin search algorithm I suggested in the example is pretty plain simple and you should not use this simple version of the plugin search algorithm with your scenario as it will identify all classes used by the plugin class as plugins themselves. Some other indication such as a setting file is needed for identifying the main plugin class. I created a modified example for LabVIEW 8.6 that demonstrates the usage of plugin inheritance. It can be downloaded from the same &lt;a href=&quot;http://expressionflow.com/downloads/lvoop-plugins-example/&quot; rel=&quot;nofollow&quot;&gt;download page&lt;/a&gt; as the basic example.</description>
		<content:encoded><![CDATA[<p>Hi Pierre,</p>
<p>Which version of LabVIEW are you using? I&#8217;m testing the scenario you suggested with LabVIEW 8.6 and I have no problems. For the Circle plugin, I set both Circle and Ellipse classes as Always Included and voilà, everything works as suggested. I think the the previous versions of the builder may have had problems with colliding classes, so if you are using LV earlier than 8.6, you should consider upgrading. </p>
<p>The plugin search algorithm I suggested in the example is pretty plain simple and you should not use this simple version of the plugin search algorithm with your scenario as it will identify all classes used by the plugin class as plugins themselves. Some other indication such as a setting file is needed for identifying the main plugin class. I created a modified example for LabVIEW 8.6 that demonstrates the usage of plugin inheritance. It can be downloaded from the same <a href="http://expressionflow.com/downloads/lvoop-plugins-example/" rel="nofollow">download page</a> as the basic example.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: PierreCottin</title>
		<link>http://expressionflow.com/2008/06/02/extending-labview-built-applications-with-lvoop-plugins/comment-page-1/#comment-6871</link>
		<dc:creator>PierreCottin</dc:creator>
		<pubDate>Sat, 06 Dec 2008 23:42:38 +0000</pubDate>
		<guid isPermaLink="false">http://expressionflow.com/2008/06/02/extending-labview-built-applications-with-lvoop-plugins/#comment-6871</guid>
		<description>Very interesting article!
I have tried to extend this example to a class Circle inheriting from a class Ellipse. I did not manage to compile the circle plugin to acces both circle and ellipse object. If I do not include the Ellipse class in the projet, it appears as a dependency but the source distribution does not include it. If I include the Ellipse class in the projet, I have to exclude overridden methods and send it to the support directory (to hide it from the main). With two methods, it&#039;s not so bad but with a real class hierarchy with several parents, it will be quite complicated. Do you know an easier way to proceed?
Thanks.
Pierre</description>
		<content:encoded><![CDATA[<p>Very interesting article!<br />
I have tried to extend this example to a class Circle inheriting from a class Ellipse. I did not manage to compile the circle plugin to acces both circle and ellipse object. If I do not include the Ellipse class in the projet, it appears as a dependency but the source distribution does not include it. If I include the Ellipse class in the projet, I have to exclude overridden methods and send it to the support directory (to hide it from the main). With two methods, it&#8217;s not so bad but with a real class hierarchy with several parents, it will be quite complicated. Do you know an easier way to proceed?<br />
Thanks.<br />
Pierre</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tomi Maila</title>
		<link>http://expressionflow.com/2008/06/02/extending-labview-built-applications-with-lvoop-plugins/comment-page-1/#comment-2556</link>
		<dc:creator>Tomi Maila</dc:creator>
		<pubDate>Tue, 03 Jun 2008 12:55:39 +0000</pubDate>
		<guid isPermaLink="false">http://expressionflow.com/2008/06/02/extending-labview-built-applications-with-lvoop-plugins/#comment-2556</guid>
		<description>Ben, nice that you found this article useful.</description>
		<content:encoded><![CDATA[<p>Ben, nice that you found this article useful.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ben</title>
		<link>http://expressionflow.com/2008/06/02/extending-labview-built-applications-with-lvoop-plugins/comment-page-1/#comment-2552</link>
		<dc:creator>Ben</dc:creator>
		<pubDate>Mon, 02 Jun 2008 15:50:46 +0000</pubDate>
		<guid isPermaLink="false">http://expressionflow.com/2008/06/02/extending-labview-built-applications-with-lvoop-plugins/#comment-2552</guid>
		<description>Thank you Tomi!

A light bulb went on in my head while stuying this example.

I had previously missed a very fundamental idea before seeing this example. It had not clciked that the VI I was double clciking on in Main is NOT the VI that executes but rather the Draw.VI of the targt class. Yest the other examples i lloked at must have been doing the same. But &#039;casue I am an old timer LV coder, I did not realize another VI was beeing slippe dat run-time.

Duh!

Ben</description>
		<content:encoded><![CDATA[<p>Thank you Tomi!</p>
<p>A light bulb went on in my head while stuying this example.</p>
<p>I had previously missed a very fundamental idea before seeing this example. It had not clciked that the VI I was double clciking on in Main is NOT the VI that executes but rather the Draw.VI of the targt class. Yest the other examples i lloked at must have been doing the same. But &#8216;casue I am an old timer LV coder, I did not realize another VI was beeing slippe dat run-time.</p>
<p>Duh!</p>
<p>Ben</p>
]]></content:encoded>
	</item>
</channel>
</rss>

