Jump to content

Mark Balla

Moderators
  • Posts

    607
  • Joined

  • Last visited

  • Days Won

    41

Posts posted by Mark Balla

  1. I have a project that has about 1500 vis. Several of them are set up as reentrant.

    When I double click on a reentrant SubVI from the block diagram LabView creates a clone vi.

    The problem is that clone vis are not changeable.

    So what is the quickest way to get to the clones source vi in a huge project so It can be change.

    Here are the methods I know of.

    • Open it via the project
      (trying to remember where it is and finding it can take a while)
    • Open it via windows explorer
      (same as above)
    • Open Vi Hierarchy of calling vi find SubVI and double click
      (Hierarchy can take a long time to open and doesn't work if calling vi is reentrant)
    • Open clone Menu>>File>>VI Properties (Right clicking on icon doesn't work for clones).
      Go to execution category and uncheck Reentrant execution.
      After OK is pressed the clone FP will close.
      Now when the SubVI is re opened it is the source vi and not a clone.
      Go back and make Reentrant.
      (lots of clicks and its easy to forget to make reentrant)

    Has any one found a quicker way to get to the source of a reentrant clone vi.

  2. Thanks Mark and Mike,

    There's an Icon Editor that can be downloades from NI web which has been modified by people in OpenG forum. This Editor, I think, that might suite me.

    I've got a problem, Mark, with the VI you attach in the topic 'using your own Icon Editor in LV8, LV8 allow your to use your personal icon editor' because I'm using LabVIEW v7.1 and I can't open them.

    Thanks again Mark and Mike.

    Here is my original Icon editor written in 7.1.

    It requires the reference of the VI as an input.

    Download File:post-584-1152152417.zip

  3. Hi,

    I've got some VIs that have a text in common in their icons but I would like to change that text because I'm going to use that VIs in another part of the project. So, how can I change that text programmatically in all VIs that are in the same directory?.

    I know it's possible because in the GOOP Developer program they do.

    Thanks,

    If you can't find exactly what you need and decide to create this vi yourself check out this link mballa Icon editor

    There are several subvis in the icon editor that you might find useful. I've created subvis to generate a header as well as import and export the vi's Icon.

  4. Great challenge,

    Thank you.

    1. The challenge states that my application HAS to use the same API as the test VI. This strikes me as very limited. I would much rather extend my API and use more powerful features in my application. Is this not a possiblity?

    One of The reasons why we want the same API used in the test vi as in the application is to help show Ease of portability. One of the attributes that we feel makes a good API is how easy it is to insert into another application. Adding additional functionality beyond the requirements is fine but the API as a whole should be transportable to other applications.

    2. Both dynamic events and the mouse input VIs were not available in 6.1, so obviously there's no way to make it really portable in 6.1 without writing some external code (which is not allowed by the rules :nono: :laugh: ). Did you include the 6.1 template on purpose or was that just an oversight?

    We wanted to let anyone with version 6.1 or greater be able to participate if they wished. A submission written in any of these Version is acceptable.

    Does that mean that the only way for me to output the results to my application (not to the test VI) is through those 2 strings? Can't I use anything else?
    I suppose I could output those strings to a mediator and use that to generate what I want, but that seems rather ridiculous. I would really rather add more options into my interface now (while still keeping the stings, of course)

    The strings are to insure a minimum requirement and give the committee a standard interface to use for testing. They do not have to define the Functionality of the API. It is not required that the string outputs be the only way that the API transmits it's information. The string outputs must be a part of the API.

  5. Greetings LAVA members

    the coding challenge committee:...

    post-584-1150261770.png?width=400

    post-584-1150261783.png?width=400

    post-584-1150261703.png?width=400

    post-584-1150261713.png?width=400

    post-584-1150261729.png?width=400

    post-584-1150261743.png?width=400

    post-584-1150261754.png?width=400

    post-584-1150261795.png?width=400

    ...would like to announce the next LAVA coding challenge.

    We are going to change things around for this challenge. Instead of having judges choose a final winner we are going to ask the LAVA members to vote on the final choice.

    Review Format:

    Here is how the coding challenge format will work.

    • All submissions must meet a set of minimum requirements defined by the committee.
    • Every submission that passes the minimum requirements will be evaluated by the challenge committee and the top 5 will be selected.
    • The top 5 will be posted publiclly to all the LAVA members and a winner will be chosen by popular vote.

    Challenge Definition:

    The challenge that the committee has selected is called "Mouse Gestures". A mouse gesture is a technique used in a user interface that combines mouse movements and clicks. The software interprets these actions into application commands. Mouse Gestures allow quick access to programmable commands without the need for keyboard strokes or menus. The task of the Mouse Gesture Application Interface (MGAPI) is to return to its calling application the detected gesture string. It does this by tracking the mouse trajectory on the caller's front panel between the mouse down and up events. It translates the trajectory into a series of string characters to be returned to the application.

    The string characters are identified as follows;

    U for Up

    D for Down

    R for Right

    L for Left,

    The 4 diagonal directions are identified by the corresponding numbers on the numeric keypad.

    1 for Down Left

    3 for Down Right

    7 for Up Left

    9 for Up Right

    For example, if the users presses the Mouse button and draws a "Z" on screen and then releases the button, the MGAPI returns the final string of "R1R".

    Note: Mouse Gestures are not about pattern recognition but about mapping the mouse movements to a simple set of string characters. Install the Firefox Mouse Gestures extension to see it at work.

    Challenge Framwork:

    The Mouse Gestures challenge will consist of two parts a technical part and a creative part.

    1:MGAPI:(MG Test vi)

    The first part will be to create a MGAPI and place it inside a Test VI supplied by the committee. This will give the committee a standard platform to test all submissions fairly. The committee will use the test VI along with other tools to evaluate the MGAPI to the following criteria.

    • Ease of portability,
    • Performance,
    • Scalability and Adjustability,
    • Coding Style

    Download File:post-584-1150435290.zip

    2:Application of MGAPI(MG Application vi)

    The second or creative part will be to build a LabVIEW application that makes the best use of the MGAPI. This could be anything that you can think of as long as it uses the same MGAPI as was used in the test vi. Remember you are trying to impress your LAVA peers so the cooler the better.

    Both the MGAPI and final application will be evaluated by the committee when selecting the top 5.

    Minimum Requirements:

    For the Mouse Gesture challenge, the minimum requirements are as follows:

    • The MGAPI must intercept mouse movements from the calling vi's front panel between mouse down and mouse up.
    • The MGAPI must produce two string outputs that use the 8 direction string characters UDLR1379.
    • The First string indicator Labeled (MG Process) will display the direction characters as they occur in process or while the mouse button is pressed.
    • The Second string indicator Labeled (MG Final) will remain empty until the mouse button is released and then display the final character string.
      Example:
      Referring to the Z example, when the mouse button is pressed both the (MG Process) and (MG Final) will display an empty string. After the first detected motion (MG Process) would display a "R" then a "R1" after the second and a "R1R" after the third.
      When the mouse button is released (MG Final) will then display "R1R".
    • Standard LabView Coding Challenge rules apply.

      All coding must be done in LabVIEW (any version is acceptable).

      No external code, DLLs, CINs, exes, ActiveX, .NET, etc

      DLL's or libraries that are part of the core
      LV
      are allowed.

      OpenG code is allowed. Please include this code in the ZIP file.


    • The same MGAPI code from the MG Test vi must also be use in the MG Application vi.

    Considerations:

    These Items although not mandatory should be considered when developing the MGAPI

    • Minimum segment length
    • Angle tolerance
    • Timeout when mouse is idle.

    Prize:

    post-2-1150393383.jpg?width=400

    The Winner will receive a NI USB-6008 Multifunction I/O worth $159.

    Submissions:

    The deadline for all submissions is Aug-20-2006.

    The final submission should consist of a ZIP file containing the two main vis (MG Test vi and MG Application vi) along with all of the support files and VI's. Warning, ONLY ZIP files will be acceptable as attachments.

    Please e-mail the final ZIP file to: codingchallenge@lavag.org. Multiple submissions are acceptable.

    In the subject of the email please write MG Challenge followed by your LAVA user name.

    Example: MG Challenge joe_user

    Please Do not post submissions to this thread. Please use a valid email address that you check often so we can contact you for possible missing VI's or questions.

    You CAN post questions to this thread.

    Finally, My thanks to the committee for all there past, present and future help.

    mballa

  6. I am a new user of LABView. My project deals with condition monitoring for which i use a IOTech DAq card. The raw data the comes out from the card is a 2D array of data. I need to store the data so that i can do Post Acquisition later on. I would like to save the data in Binary format so that it occupies lesser space. I am planning to store the data for atleast an 8 hour run.

    I have attached my program alongwith this topic and i hope anyone who is well versed in LabView can surely help me put. Just tp let u know that there are a few sub VI's in the file attached which wud not open unless u have an IOTech CARD. So please suggest me a solution but in a little detail so that i can understand...as i am fresher to Labview.

    Hope u guys can help me out ..cheers

    Can you explain your problem in more detail?

    Your program has code in it to save to a binary file.

    Do you need help with the Binary file or the Data acquisition.

    It's not clear what you are asking for.

  7. Download File:post-584-1149100959.zip

    Download File:post-584-1149101000.zip

    Modified 6-2-06

    The original post had untested button hiding issues.

    This one should work better.

    None of the support files have changed.

    Download File:post-584-1149281944.vi NEW VERSION

    post-584-1149282254.png?width=400

    Hi Mark,

    Any chance you could post your icon editor here? Hass your previous upload to LAVA been modified?

    Thanks,

    Neville.

    Yes the previous upload has been modified

    the lv_icon.vi NEW VERSION and the 2 zip file is what is needed to get the icon editor to work.

    Sorry for the confusion.

  8. Downloaded the latest this Am and it works fine..

    it is very cool, works really well, I tend to use Text for all my VIs (eaiser to find what I am looking for)

    I will be using this editor of yours until I get time to play around and try to build one of my own

    Thanks for the complement.

    I look forward to seeing your version and talking to you at the next user group meeting.

  9. Mark,

    I saw your Icon Editor at the LabVIEW Developer Education Day in Milwaukee yesterday.

    I thought I would download it and try it out. I have it installed as you suggest to in your post. but when I restart LabVIEW, open up at VI and double click to edit the ICon, it works, but when I click ont he Edit complete, it pops right to the Default icon editor and no changes are made. Is there a Step I am missing?

    Thanks

    Jeff

    No.

    You are not missing anything I will correct this and repost the right code.

    Thanks for bringing it to my attention

  10. While going through my archives from info-LabVIEW I found a posting by Steve Mercer that talks about making a personal Icon editor in LV8.

    I haven't seen any other discussion on this issue so I thought I would share what I've done incase it is useful to others.

    To make your own Icon editor that Labview will use. Do the following.

    Open the

    National Instruments\LabVIEW 8.0\resource\plugins\lv_icon.vit template

    Create your own Icon editor and save it in the same director as lv_icon.vi it must be this name.

    Restart LabVIEW.

    The next time Labview needs the icon editor it will use the lv_icon.vi instead of the standard one.

    Here is the one I built.

    Download File:post-584-1149100559.vi OLD VERSION

    Download File:post-584-1149281944.vi NEW VERSION

    Download File:post-584-1149100959.zip

    Download File:post-584-1149101000.zip

    It is limited to 2 colors with a header and 4 possible lines for the body.

    One additional feature is it will compress letters as small as possible so the words

    Will fit.

    post-584-1149109123.png?width=400

    post-584-1149109135.png?width=400

    Has anyone else made their own icon editor?

    All the support files are ziped up.

    you need to unzip them and keep in the same directory as the lv_icon.vi

    Modified 6-2-06

    The original post had untested button hiding issues.

    The new one should work better.

    None of the support files have changed.

    post-584-1149282254.png?width=400

    **UPDATE The latest verison of the Icon editor is now in the CR here**

  11. hi everyone i have a problem here which i really cant solve. this programme actually is my sequence programme but i need to add a stop button to stop the operation at any one of the flat sequence i tried but cant solve. anyone knows please help me. THANKS in advance :worship:

    You can solve your problem by replacing the sequence structure with a state machine. It would benifit you greatly to learn about them.

    Go to the example finder and search for state machine. run the program with execution hilighting on to see how they work.

    post-584-1147147049.png?width=400

  12. Actually, I realized that I can convert the variant directly (using variant to data) to a 2D array that contains the values. So if I understand correctly, all I need to do is change the array, and then send its values to the location that the handle is associated with? I suppose then I'd need an ActiveX component to take the handle to the array and the new values, and then set the array that is pointed to by the handle to the new values? Thanks so much!

    I have a similar situation when a variant is returned from a method I have to convert it to another active x object.

    post-584-1146279993.png?width=400

    To find the active x reference you can look in the active x browser.

    post-584-1146280002.png?width=400

    Make sure you have the Show Creatable Object Only box checked.

    post-584-1146280013.png?width=400

    I Hope this gives you some Ideas

  13. Hello,

    I am having trouble with adding additional outputs to a SUB-VI after I've created it. When I right click my Sub-VI icon to try and add additional outputs, it is grayed out, anyone know why this is? is there any way to autoupdate a sub-vi?

    thanks in advance for the help!

    PJM has a vi that will automatically relink subvis by name here

    I use a modified version in my programming tools that uses the subVI's reference.

    Download File:post-584-1145853093.llb

  14. If you search on DevZone for the LabVIEW Utils package (lvwutil32.zip) I think there is a VI that does this and the DLL call is defined inside.

    I downloaded these vis as you sugessted. The best I could do was to get a list of the application windows open. I could not get them to give me names of any of the Labview windows open.

    After googleing around a while there seems to be a function in windows user32.dll called GetActiveWindow but I can't find the prototype for it.

    Does anyone have any experience using the user32.dl or know where I can get the function prototypes for it.

    Thanks

  15. I am upgrading my program helper tool and would like it to be able to detect what the name of the active widow is.

    I initially tried the Active VI property node but it will only update the output string if something is selected which isn't always the case.

    I've also tried the Open G Find VI with Focus.vi but it will only update the name string if the Front Panel is selected and not the Block Diagram.

    Is there a windows API dll call or another VI that can tell me the name of the active window?

  16. Well, I finished my first scripting widget and I wanted to see what everyone thought. I got the idea from a *Wish List* post a while back. Why doesn't pasting simply replace the selected item? So here it is.

    Nice tool but I would like to change a few things so it will fit better with my personal tools.

    Why is the Diagram is Locked?

  17. Hi everybody,

    I have 2 very basic questions about Labview.

    1: I have created a VI with a "while loop" and I have a control and an indicator inside and it works. After that, I use this VI as a sub-VI in another program. And now, I doesn't work. I mean, I can't modify the control value dynamically. I think I should use some Local Variable, or something like that. Could you help me please ?

    2:Is it possible to Reset a control (for exemple, a numeric control) to its Default Value, while the programming is running ?

    Thanks for your answer

    To modify a subvi dynamically you need to disconnect the input terminal from the connector pane.

    post-584-1143301771.png?width=400

    When a subvi is called all input values that are connected to the connector pane will be set to the incomming value or the default value.

    Here is a quick example.

    post-584-1143302326.png?width=400

  18. I tend to used type-def enum's to keep track of messaging commands, VI lists, whatever. Often I want to grab the text of the enumerated type, which is quite simple using the 'Format Into String' vi.

    If I have a sub-VI that needs a String input, it would be nice to simply wire the Enum into the node, giving me an automatic coercion without forcing me to put the 'Format Into String' vi inbetween. This is possible for numeric inputs to sub-vi's. And the Enum type is a combination of string and numeric, so it shouldn't be difficult to add.

    Not a big deal, but it has annoyed me recently.

    David

    Why not give your subvi two inputs a string and an Enum. If the String is empty use the Enum and convert otherwise use the String input.

    Polymorphic vis might be a solution too.

×
×
  • Create New...

Important Information

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