Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 03/19/2012 in all areas

  1. Congrats to François Normandin as UI Tools is now Compatible with LabVIEW! ... View the full article
    1 point
  2. A while back AQ issued a request to finish some code located in <resource>\Framework\Providers\LVClassLibrary\NewAccessors The with great power come great responsibility line always stuck in my head and it was on my to-do list however, it took me a while to look at it (plus my scripting skills have improved slightly since then ). Basically the code operates on a Class which has other Classes as Data Members (composition) and allows the end user to create an API that wraps the required Data Member methods (delegation): I have now finished off the existing code and bolted on a UI and included it with LVOOP Assistant. I made this a separate thread for a few reasons (not discussed here). Feedback on this feature would be really appreciated. I thought I'd put it out for testing and to get feedback. The aim of this tool is to speed up development. This wasn't my first choice in how to design the GUI etc... integrating it into the current LVOOP GUI's that ship with LabVIEW would be grand, but these are locked. So this way was by far the easiest for me. My next mission is to see if I can get this natively included with LabVIEW Instructions: Class A contains other Classes as Data Members Nesting of Data Members (stored in clusters) is also supported Public methods are may be selected In this case Class B is Friends with A - which means A can have B's community-scoped on their block diagram Private and Protected scoped methods are not supported as Private would break Protected is not logical as LabVIEW does not allow a Child as a Data Member of a Parent The script is accessed through the Project Provider by right-clicking on a Class (that contains data members) and selecting LVOOP Assistant >> Create Element Wrappers The GUI will appear and allow the end user to select the Data Member that will be worked on as well the methods that will be wrapped Public methods and green, Community methods are blue Click a method to check/uncheck it, or use the buttons to batch check/uncheck etc... In the example Data Member 2 is chosen - which is an instance of Class B, which has the following methods Clicking OK creates the following methods for Class A What is happening from a scripting perspective is that Class B's method is copied Converted to a Class A method Class A's BD is cleared, then the method is delegated to Class B. Here is a demonstration (no sound) <!-- copy and paste. Modify height and width if desired. --> <object id="scPlayer" width="957" height="652" type="application/x-shockwave-flash" data="http://content.screencast.com/users/jgcode/folders/LVOOP%20Assistant/media/d749a41d-0411-46de-a9ac-2df37c6dc6f9/jingswfplayer.swf" > <param name="movie" value="http://content.screencast.com/users/jgcode/folders/LVOOP%20Assistant/media/d749a41d-0411-46de-a9ac-2df37c6dc6f9/jingswfplayer.swf" /> <param name="quality" value="high" /> <param name="bgcolor" value="#FFFFFF" /> <param name="flashVars" value="thumb=http://content.screencast.com/users/jgcode/folders/LVOOP%20Assistant/media/d749a41d-0411-46de-a9ac-2df37c6dc6f9/FirstFrame.jpg&containerwidth=957&containerheight=652&content=http://content.screencast.com/users/jgcode/folders/LVOOP%20Assistant/media/d749a41d-0411-46de-a9ac-2df37c6dc6f9/LVOOP%20Assistant%20-%20CEW.swf&blurover=false" /> <param name="allowFullScreen" value="true" /> <param name="scale" value="showall" /> <param name="allowScriptAccess" value="always" /> <param name="base" value="http://content.screencast.com/users/jgcode/folders/LVOOP%20Assistant/media/d749a41d-0411-46de-a9ac-2df37c6dc6f9/" /> Unable to display content. Adobe Flash is required.</object> Enjoy! -JG Example Code in LabVIEW 2011 cew example_LV2011.zip
    1 point
  3. There is an interesting new post on the LabVIEW Tools Network Developer Center Blog that talks about a facet of deprecating code - How to Change Connector Panes in New Versions of an API. I added a comment based on my experiences about deprecation in general, with examples from OpenG. Please check out the blog post and add your comments on this interesting topic! I would am very interested to hear what over developers do, as well as see examples including libraries and classes etc... Regards -JG
    1 point
  4. The first time this came up, the only thing I replied to was the factual error -- I'm tired of that garbage collector myth being propagated. What I avoided was any commentary on the main post because I didn't feel like it, but today, I feel like asking: Why do your objects have lifetime? Processes (VIs and communications channels) have lifetime. Data does not. These patterns that you're developing in your code come about because of the co-joining of these two concepts, an artifact of other programming languages that are piss poor programming models for a parallel environment.
    1 point
  5. I saw this article and those displays jumped right out. http://today.msnbc.m...p/#.T2N_v8Uf4qw
    1 point
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.