Jump to content

Mark Balla

Moderators
  • Posts

    607
  • Joined

  • Last visited

  • Days Won

    41

Posts posted by Mark Balla

  1. QUOTE(TobyD @ Jan 14 2008, 06:26 PM)

    I was stumbling around the internet today and found the http://store.dataact.com/product_info.php?products_id=39' target="_blank">Dataact Icon Editor. The screenshot makes it look pretty good, but it looks as though the site has not has any activity in almost a year (based on the forum posting dates).

    Does anyone know what happened and/or if the icon editor is still available somewhere. I even guessed the link to the download page and was able to download the icon editor, but the VI's are locked and there must be a date check in the code because when I try to run it I get a msgbox that says the verson has expired.

    Just curious...

    I went through my archives and dug out the DataAct editor and got the same result you did.

    brian175 was the creator of this software you might want to drop him a PM asking for help.

  2. QUOTE(PJM_labview @ Oct 17 2007, 05:46 PM)

    1) I hardly ever have controls on my FP that I do not want to connect to the connector pane.

    2) Best attempt at connection will do the following (in order of priority):

    3) If there are controls/indicators I don't want to connect, I am not sure what the best approach is. Maybe if the controls/indicators are not in the visible window frame, it should not be connected (yes I think I like this).

    PJM

    OK PJM this one is for you.

    I've implemented a pairs matching and wiring program. Using Aristos' program

    I was able to create a program to categorize controls and indicators so they could be compared to each other.

    If two items match and one is a control and the other an indicator they are paired up and placed in a pairs array.

    All items that do not match up are placed in a controls or indicator array.

    Starting with the pairs array the program gets the highest item in a priority and tries to find it the array.

    When the array item is found it is wired to the connector pain according to a wiring list.

    When all the pairs are wired, the program moves on to the single controls array and then to the single indicators.

    So for most FP arrangements it's down to three button presses. "Select All", "By Pairs" , "Arrange and Cleanup"

    You will only have to move the controls or indicators that are in the wrong place.

    After starting the Fixer and creating a subvi do the following.

    1: Select a control or indicator on the FP of the vi to fix

    2: Bring up the SubVI fixer. Ctrl-Shift-Space (default)

    3: Press the "Select All Controls" button to select all controls on the FP

    4: Press the "By Pairs" button to automatically wire the FP items.

    5: If the connection to the connector pain are not to your liking move the out or place ones to the correct location and press the "By Arangement" button

    6: When all connection are good press the "Arrange & Cleanup" button to finish.

    Here are a couple of videos to demonstrate.

    Download File:post-584-1199684719.swf

    I would like to have people test this and see if it is stable and works for most programmers. The priority list may not be what every one likes. So if you open the

    _Subvis for FIXER\Pairs\Pairs_Catagory Priority Array.vi you will see instructions on how to change the wiring priority.

    post-584-1199684903.png?width=400

    Other added features

    Have FP center in monitor 1 on startup

    Added Max FP size setting in the Settings panel.

    Last folder selected to save in is remembered and is used

    next time. (Needs Testing)

    Here is the newest version. Just as a reminder to place the 3 items in your National Instruments\LabVIEW 8.5\project\ folder. Open LabVIEW and call the "FIX SUBVI" item from the tools menu. Press Ctrl-Shift-SpaceBar to have the fixer popup.

    Download File:post-584-1199685943.zip Download File:post-584-1199686110.zip

    QUOTE(Aristos Queue @ Oct 23 2007, 10:36 PM)

    QUOTE(Michael_Aivaliotis @ Oct 30 2007, 10:35 PM)

    So perhaps this cleanup tool in progress can run automatically after a "create sub-VI" action or something? Like a "disconnect all and reconnect correctly" function.

    I'll work on these next.

    Thanks again everyone for your Ideas, Code and Inspiration.

    Please keep your Comments, Suggestions, and Critiques coming.

    Mark.

  3. I just ran into this problem today.

    Not sure if this is the same issue you are seeing.

    post-584-1197529257.png?width=400

    I had two vis with the same name "Build FLD Record". One owned by a class and one that wasn't

    If I were to remove the owned one from the class lvlib I would have two vis with identical names.

    This would cause a conflict so it looks like LabVIEW won't let you remove a vi from a class if it will cause a conflict in the project.

    When I closed the project and opened the class by itself the file could be removed from the class.

    When I reopened the project as expected a conflict showed up.

    Hope this helps

  4. QUOTE(Aristos Queue @ Nov 5 2007, 02:58 PM)

    Thanks for finding this for me.

    I've been playing with the "GetLVClassInfo.vi" and there is an indicator I need clarified.

    What is the "Fully Qualified LV Class Name" represent and why is it an array. eveything I've tried so far will only output one item in the array which is the class name. In what circumstances will I see more than on item?

  5. I've made enough improvements to make it worth posting the latest version 5.

    Here is the list of improvements from version 4

    • Change FP Layout
    • Fixed the close if lonely problem. The fixer should now close if it is the only vi running.
    • Improved the Active VI detection. In ver 4 you had to click on a vi while the fixer FP was opened for it to find it. Now its keeps track in the background.
    • Added a recommended button. Since you can now set LabVIEW to make all input required by default this function is needed.
    • The hot keys to popup the Main FP can now be set in the settings window. Default is still Ctrl-Shift-Spacebar.

    LV 8.5

    LV8.2

    Thanks again for all the feedback and ideas.

  6. QUOTE(Michael_Aivaliotis @ Oct 30 2007, 10:35 PM)

    I totally agree and this is one the top reasons why I started this tool.

    QUOTE(Michael_Aivaliotis @ Oct 30 2007, 10:35 PM)

    If you have an error in and an error out I would like it to position the error in and error out in the right place

    I'm currently working on a function that searches selected FP items for matching pairs and applies wiring rules to them.

    QUOTE(Michael_Aivaliotis @ Oct 30 2007, 10:35 PM)

    In the settings of the fixer you can apply prefixes and suffixes to controls or indicators. It's an all or nothing setting though so if you set indicators to use a prefix of "Out" then all indicators will be set that way.

    QUOTE(Michael_Aivaliotis @ Oct 30 2007, 10:35 PM)

    So perhaps this cleanup tool in progress can run automatically after a "create sub-VI" action or something? Like a "disconnect all and reconnect correctly" function.

    I like it.

    Any Idea how to detect when the "create sub-VI" function has been called?

  7. QUOTE(Aristos Queue @ Oct 28 2007, 09:48 AM)

    The "Is This Control Of This LabVIEW Class" would be useful If I had a way to take a reference to a LabVIEW Object control and extract the LVClass Refnum out of it Any recommendations on how best to do this?

    F.Y.I. In 8.5 I have tried several ways to create a LabVIEWClassControl Ref Control and every method seems to crash LabVIEW. I also tried them in 8.2 and they work fine.

    Create control,

    post-584-1193636799.png?width=400

    Create SubVI,

    post-584-1193636818.png?width=400

    Select Class

    post-584-1193636850.png?width=400

    I briefly checked the LAVA bug list and 8.5 known issues list and didn't see this problem.

    I will file a bug report this week when I get time.

    QUOTE(Aristos Queue @ Oct 28 2007, 09:48 AM)

    "Close If Lonely" checks for VIs that are not "Close If Lonely". If the only VIs that are open are all marked as Close If Lonely, then all those VIs will close. It requires a sociable VI to keep the lonely VIs company.I can't check the code right at the moment, but I recall that an open project window will serve to keep a lonely VI company, too.

    Thanks for the clarification, I added the "Close if lonely" node in the Caller and they both shut down when no other "sociable" vis are present.

  8. QUOTE(Aristos Queue @ Oct 23 2007, 11:36 PM)

    LabVIEW classes should generally get the same treatment. When there are multiple classes on the same conpane, each with an "in" and an "out" terminal, the preference should be if the VI is owned by a given class then that class gets preferential treatment for being in the upper left and upper right. Otherwise, mimic the panel layout.

    If I have a reference to a class control what is the best method to determine what it's class name is? The property and invoke nodes don't seem to have any way to extract class information.

  9. QUOTE(silmaril @ Oct 25 2007, 02:25 AM)

    Yes, this one works nicely, but I'm sorry to say that I found two more little things that should be fixed.

    In _FIXER Subvis Main.vi there should be a "This VI" reference at the beginning. Without this, I always get error 1026.

    post-7932-1193296538.png?width=400

    The OpenG SubVI was designed very carefully. If you don't wire a reference to it's input, it opens it's own reference and makes shure it is closed again at the end of the VI.

    Ok I fixed this problem by sequencing the FP State Property before the OpenG vi.

    QUOTE(silmaril @ Oct 25 2007, 02:25 AM)

    fixed for the next rev

    QUOTE(silmaril @ Oct 25 2007, 02:25 AM)

    Looking at your code, one question comes to my mind: What exactly does the method "FP.Set Close If Lonely" do?

    This is a scripting node that will setup the vi to close if it is the only vi opened.

    I now relalize that it is not doing what was indended. Because the FIX SUBVI.vi and the _FIXER Subvis Main.vi are setup to both be opened and running I always have at least two vis opened.

    I will add this to the fixit list.

    Thanks a lot for the feedback and keep it comming.

    LAVA ROCKS

    Mark

  10. QUOTE(silmaril @ Oct 24 2007, 05:01 AM)

    Thankyou for the feedback and trying out the tool. I hope it saves you some time.

    QUOTE(silmaril @ Oct 24 2007, 05:01 AM)

    The tool works very nice, as long as the name of the main VI starts with an underscore.

    I copied it into my projects directory and removed that underscore to get a Tools menu item for this.

    Now I get a funny problem: every time the tool changes the window focus to itself, it seems to detect the VI Activation event and sets "Target VI" to itself, which makes it impossible to use the tool anymore.

    Well it looks like I continue to be one of the most file upload challenged members in LAVA. I see I have yet again forgot to include a file. :oops:

    The file that is missing is called “FIX SUBVI.vi” and is the one that is you are suppose to see in the tools menu. It's main function is to remove the toolbars and scroll bars from the Main vi as well as call it.

    I have seen the problem where the main keeps bringing focus to itself. I put a quick and dirty fix in the “Active VI_Get Active VI From Global.vi”.

    post-584-1193293428.png?width=400

    By renaming the Main you disabled my fix and the problem returned.

    Here is my new and improved fix.

    post-584-1193293457.png?width=400

    Here is Version 4 it has the fixes above plus some icon cleanup.

    post-18176-0-02849000-1351286878_thumb.p

    post-18176-0-73588200-1351287213.png

  11. The original topic on creating a tool to automatically wire a FP to the Connector pane was started here. My thanks to JDave for starting it.

    I started a new topic to track the progress of the SubVI Fixer.

    Here is Version 3 using the VI Activation Event that PJM showed me.

    msg-2399-0-00715900-1351198367.png

    Version 3 works the same as Version 2 but is much more stable. the Video is located Here

    QUOTE(PJM_labview @ Oct 17 2007, 06:46 PM)

    The next thing I want to do with this tools is implement PJM's suggentions.

    In the Settings_Change.vi I added a array of Clusters. The Clusters have two items a match pair type and an array of wirring priorities.

    post-584-1193202996.png?width=400

    post-584-1193203003.png?width=400

    My current plan this

    post-584-1193203013.png?width=400

    The next thing I need to figure out is how do I determine what controls match from their references.

    I could do it by label name only and I probably will to start with but I would like to do it by type.

    Does anyone have an Idea how to uniquely identify a FP item via reference. The goal is to differentiate (cluster of different components from each other, References of different types and objects of different classes).

  12. QUOTE(tcplomp @ Oct 19 2007, 12:43 AM)

    Mark,

    Here's the code I used and copied into the project folder:

    post-2399-1192772485.png?width=400

    Download File:post-2399-1192772496.vi

    Be aware that the VI is Auto-run!

    I get a changing VI title for every VI I click.

    The App.MenuLaunch items (App and VI) are only valid once! per menu-click, so you might need a Functional global.

    Ton

    Thats interesting it still doesn't work for me. I don't have the scripting keys enabled and I see my property node it a different color than yours.

    So is it true that I have to have the keys enabled to run the vi. That wasn't true for the 7.1 stuff.

    If this is the case I will not be able to use this function. I bring this tool with me when I work on clients machines and I'm not going to put the scripting on it.

  13. QUOTE(tcplomp @ Oct 19 2007, 12:43 AM)

    Mark,

    Here's the code I used and copied into the project folder:

    post-2399-1192772485.png?width=400

    Download File:post-2399-1192772496.vi

    Be aware that the VI is Auto-run!

    I get a changing VI title for every VI I click.

    The App.MenuLaunch items (App and VI) are only valid once! per menu-click, so you might need a Functional global.

    Ton

    Thats interesting it still doesn't work for me. I don't have the scripting keys enabled and I see my property node it a different color than yours.

    So is it true that I have to have the keys enabled to run the vi. That wasn't true for the 7.1 stuff.

    If this is the case I will not be able to use this function. I bring this tool with me when I work on clients machines and I'm not going to put the scripting on it.

  14. QUOTE(Gavin Burnell @ Oct 18 2007, 05:01 PM)

    I wrote my own development environment toolbar for my own use - it didn't have plugins or any fancy key bindings, but I did include things like the XNode manager and some of my various scripting hacks like a "clean-up all wires" tool, a "wire up all possible tunnels" tool, a "re-link all badly linked subvis" tool, a "show node terminal locations and order" tool, and a "find tunnelling error wire and rewire to case selector" tool (my favourite for making my sub-vis more LAVA code repository friendly....)

    Unfortunately other priorities (undergraduates mainly) have gotten in the way of my LabVIEW coding recently :( !

    Any chance you could post these or submit them to the CR.

    I am especially interested in the clean up all wire tool

    Thanks

    Mark

  15. Ton, I took you vi and wraped it in a while loop. I ran it and opened and closed vis and could not get the event to fire.What am I missing.

    post-584-1192768917.png?width=400

    QUOTE(Michael_Aivaliotis @ Oct 18 2007, 05:57 PM)
    I'm up for it also. I would like to see a few more people commit to it before we move foward.QUOTE(tcplomp @ Oct 18 2007, 11:21 PM)

    So maybe Forum with Subversion/CVS support
    ;)
    Ton

    Now that would be very cool :thumbup:QUOTE(JDave @ Oct 18 2007, 04:19 PM)

    ideas reminded me that where it would be best to combine efforts is to work on a Development Time toolbar. Plugin tools and all. I mean this would be a perfect starting point of a Coding Challenge. Provide a toolbar framework and challenge people to come up with really neat tools to put in there. There was some brief mention of an OpenG toolbar, but nothing came of that. Anyway, I will make another thread to continue this discussion.

    I like the tool bar Idea.QUOTE(JDave @ Oct 18 2007, 04:19 PM)

    To coalesce efforts on the arranging and wiring of controls to the connector pane, I have a thought. It is cumbersome to require controls to be placed in exact bins like my tool requires. It is also cumbersome to put in placeholder decorations like your tool requires.

    Just to clarify it is not required that you place a decoration on the FP. You only need to use one as a place holder if the fixer doesn't wire the connector pane like you expected. Then all you have to do is double click on the FP and hit a key and you have your place holder I don't see what is cumbersome about that.

  16. My Fixer would handle your points in the following Ways

    QUOTE(PJM_labview @ Oct 17 2007, 06:46 PM)

    On the Fixer there is a "Select All Controls" button that will select all controls on the front panel.

    QUOTE(PJM_labview @ Oct 17 2007, 06:46 PM)

    2) Best attempt at connection will do the following (in order of priority):
    • Connect error clusters
      (if present) to lower left and lower right respectively (regardless of the connector pane pattern).

    • If
      references
      are present (like ref in, ref out),
      connect
      them on the
      upper left and upper right
      respectively.

    • Connect
      any
      control/indicator pair
      having the same name pattern (ex: data in; data out or data in; data dup)
      at the same level
      on the connector pane respectively on the left and right side.

    • Connect
      the
      remaining controls like they are mimicking
      the connector pane (see example below).

    The fixer doesn't differentiate types of controls from each other but this could be added. You would have to add the following modules to get this to work.

    Identify controls and pairs of controls by type (Error clusters, Refs) and by Label names.

    Define pair wiring and rules (Top corners, bottom corners, across edges) This get tricky if the pattern is not a constant.

    Apply these rules instead of doing a wire by position. It get really complicated if you try to do both.

    Create a way for the user to select rules and pairs.

    Not trivial but doable

    QUOTE(PJM_labview @ Oct 17 2007, 06:46 PM)

    Since the Fixer depends on the user selecting the controls that are to be wired if it is not selected it is not wired.

    QUOTE(robijn @ Oct 18 2007, 02:46 AM)

    Wow this looks fantastic !

    Thanks, this tool has saved me a lot of time what usually takes 3 minutes I can do in 20 seconds. I think the biggest benefit is that I create more subvis in my code. The fear of making a SubVI and then spending non value added time cleaning it up is greatly reduced.

    QUOTE(martin@aerodynamics @ Oct 18 2007, 07:07 AM)

    What I miss is someting like an Abort button to keep the old connetor pane...

    Can you explain in more detail what you mean? What is it you want to Abort?

    The "Use Current Wiring" button doesn't change the wiring or the pattern. Then if you use the "Arange & Cleanup" button only the FP will change. An example would be when you make a cluster bigger and it overlaps with other controls on the FP. This method also works when it is eaiser to manually wire instead of moveing controls around.

    Mark

  17. QUOTE(tcplomp @ Oct 17 2007, 02:18 PM)

    The uhm, event structure (most likely you need to dynamically register for the user's application.

    It's a private event (so you need the scripting keys)

    Ton

    Can you post a simple example vi with this in it.

    The detection of the active vi or the one the user last operated on is the big sticking point with stability. Stability got worse when I moved it to 8.5

    When you say scripting keys do you mean the 7.1 INI keys or

    the 8.0 and beyond version?

×
×
  • Create New...

Important Information

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