Jump to content

dannyt

Members
  • Posts

    416
  • Joined

  • Last visited

  • Days Won

    12

Posts posted by dannyt

  1. Hi Norm

    I have found this API SO useful over the last week so much Kudos to you sir :worshippy::thumbup1:.

    Can I just ask a couple more questions.

    Why all these VI's are Reentrent ? Is there a fundamental reason for this or just your choice. I am just trying to increase my understanding.

    I can understand that "Get All.VI" needs to be as you do a recursive call on it, but I do not really understand why all the other are. In fact I wonder if you really want things like Item Add.vi to be reentrent.

    Along the same lines I assume that Debugging is disabled because the VI's are Reentrent ?

    Finally in the "Get All.vi" which is Reenternet I noticed it calls the "Merge Errors.vi" which is itself not Reentrent, should this really be replaced ?

    cheers

    Dannyt

  2. Ok, cool. So you request this from your SCC then create a text file or HTML document or similar?

    Out of interest - do you have an example document of what this looks like?

    Cheers

    JG

    example BOM file

    -------------- ClearCase Build Info (Build Start) -----------------

    ClearCase Build View : petes-dev-ats-814

    ClearCase Config Spec :

    element * CHECKEDOUT

    element * /main/dev-ats-814/LATEST

    element * /main/B591-ATS-2009NOV24 -mkbranch dev-ats-814

    element * /main/0 -mkbranch dev-ats-814

    create_message_event.vi,P:\testTeam\ATS\Projects\test_exec_framework\user_events\create_message_event.vi,\main\1,

    create_exit_event.vi,P:\testTeam\ATS\Projects\test_exec_framework\user_events\create_exit_event.vi,\main\1,

    run_sequence_data_type.vi,P:\testTeam\ATS\Projects\test_exec_framework\general_type_defs\run_sequence_data_type.vi,\main\1,

    update_symbols_run.vi,P:\testTeam\ATS\Projects\Sandpit\update_symbols_run.vi,\main\1,

    Open File+.vi,C:\Program Files\National Instruments\LabVIEW 8.2\vi.lib\Utility\file.llb\Open File+.vi,CC PATH NOT FOUND,file.llb

    kHz-MHz.vi,P:\testTeam\ATS\Projects\Sandpit\kHz-MHz.vi,\main\1,

    NI_MAPro.lvlib:ma_Check for Equality with Precision.vi,C:\Program Files\National Instruments\LabVIEW 8.2\vi.lib\measure\mamon.llb\ma_Check for Equality with Precision.vi,CC PATH NOT FOUND,mamon.llb

    NI_MAPro.lvlib:ma_Range Check with Precision.vi,C:\Program Files\National Instruments\LabVIEW 8.2\vi.lib\measure\mamon.llb\ma_Range Check with Precision.vi,CC PATH NOT FOUND,mamon.llb

    NI_MAPro.lvlib:ma_Limit Test Outside.vi,C:\Program Files\National Instruments\LabVIEW 8.2\vi.lib\measure\mamon.llb\ma_Limit Test Outside.vi,CC PATH NOT FOUND,mamon.llb

    NI_MAPro.lvlib:ma_Limit Test Inside.vi,C:\Program Files\National Instruments\LabVIEW 8.2\vi.lib\measure\mamon.llb\ma_Limit Test Inside.vi,CC PATH NOT FOUND,mamon.llb

    As you see starts with the ClearCase Config Spec used for the build then lists all the files used in build.

    Each line is comma separated look like

    VI name, full filepath, ClearCase extended path info (if a ClearCase object), llb name if VI is in a llb.

    • Like 1
  3. Thanks for replying with what you do.

    I am part way through implementing the following (which will be dependent on the project):

    Check Out/In Project with updated Build Versions (I use Perforce)

    Download installers (drivers, support software etc...) and extract files (zips) when building a Full Installer (usually as a CD)

    Convert .bat files to exe (I have to see if this is possible with 3rd Party Software)

    Create ISO image (For CD Installers) (have command line interface for my burning app so this should be fine)

    Output text or image of Version for CD Label (I would like to automate this but I don't think my CD Label app has any hooks)

    Move deliverable (Zip/ISO etc...) to Server

    Label src code after save and build

    And off course all this will be reusable.

    A bit of work, but it is definitely worth it.

    Also what is BOM (Bill Of Materials?) and how do you use it in your workflow?

    Wow sounds like you have set yourself a big but very impressive target

    Yes a BOM is Build Of Materials, it tend to just be used for a QA satifaction / audit point of view. It can be useful to see easily what files have change between build as it included's the source control system version info for each file.

    Danny

  4. Have you implemented a scripting process in your work?

    Do you have any feedback or examples to add?

    Look forward to hearing what you've done.

    Cheers

    -JG

    Hi JG,

    We do have a automated build system here and have had one for 2 years or so. Until this last month or so it was all based around the openG builder, until I looked at your code and found BuildTargetBuildSpecifications VI. So I have only really used from the code the case for building executables and built my own code around it.

    On our executables we have a 'Help About' VI that we populate with things like build time, who built it, our ClearCase Configuration Specification and label. So most of the code I have added is my own ClearCase control VI's to check files out, update info and after the build to tidy all this up again. also I create a BOM of my builds.

    I am really please with the results of this :D and must pass on my thanks to you in showing my another way to do this.

    I must admit I am quite sad as I have after about 2 years finally abandoned the OpenG builder. But I have now decreased my build times from well over half an hour to around 5 minutes and my final built executable is around 6M smaller than it used to be. I do as a result loose the OpenG VI rename/ mangle options during build, but as all our software stays internal it was part of the openG builder I never used.

    Dannyt

  5. HI

    I notice that with most of these VI you have allow the caller to pass in the tree reference or use the internal get current VI to find it, you use the same approach for the item tags.

    Other than the consideration of "data flow" is there any rewason to favour one method over the other, ie pass things round or leave the VI to figure it for themselves ?

    cheers

    Dannyt

    Another option to add to API.

    Item Modify Cell Color.vi

  6. I have an application composed of many objects, but whenever I shut it down and close the project it prompts me to save one of the VIs (always the same one), as if it was modified. I have inspected that VI and I cannot see what is causing this. Does any anyone know what may be going on?

    Thanks in advance, Mike

    Two questions. One, when you close the VI and get the prompt to save it what does the List Unsaved Changes link show in the "Explain Changes" window, also does this happen if you one that single VI up on it own directly.

    Dannyt

  7. Sorry, my examples posted earlier were in 8.5.1.

    Here they are back saved to 8.0.

    Bruce

    Bruce,

    many many thanks to you for that, works a treat, +1 rep to you sir :-)

    LAVA to the rescue again. I was at least please I was heading onto the right lines

    NOTE for anyone else downloading the 8.0 version, you file Create Shortcut.vi has the 8.5 version of Set Shortcuproperties in it so remember to put the new 8.0 one in its place

    Dannyt

  8. Have you looked up the IShellLink interface? There's probably a third-party commandline interface available somewhere if you look hard enough.

    I will have a look at IShellLink thanks.

    I was try to avoid a thirdparty option if possible and just do it with LabVIEW so I did not have to deploy anything out with the LabVIEW. Maybe there is a registry key ?

    If I was going in the thirdparty direction I could code up a WSH example myself

    'Create a Desktop ShortCut

    set WshShell = WScript.CreateObject("WScript.Shell")

    strDesktop = WshShell.SpecialFolders("Desktop")

    set oShellLink = WshShell.CreateShortcut(strDesktop & "\Shortcut To Notepad.lnk")

    oShellLink.TargetPath = "Notepad.exe" 'WScript.ScriptFullName

    oShellLink.WindowStyle = 1

    oShellLink.Hotkey = "CTRL+SHIFT+N"

    oShellLink.IconLocation = "notepad.exe, 0"

    oShellLink.Description = "Shortcut To Notepad."

    oShellLink.WorkingDirectory = strDesktop

    oShellLink.Save

    cheers

    Dannyt

  9. Hi

    I wonder if anybody could give me pointers in creating a Windows XP desktop shortcut with LabVIEW or how edit an existing one. Working in LabVIEW 8.2.1

    I can see how to do this with WshShell commands (the Windows shell scripting environment) but not with LabVIEW.

    I did try playing around with the "IWshRuntimeLibrary.IWshShell2" ActiveX object but though I can find a CreateShortCut invoke method I seem unable to do anything constructive with it.

    cheers

    Dannyt

  10. Hi Jim

    Yes, it was a great blog post! It's 2am here, but I will have a look at this tomorrow. I have just upgraded to Windows 7, so I don't have everything installed yet. But I will try to put on 8.6.1 if I have the time (delayed pay-per-view tomorrow) :). It should back save ok as the same XML tags are used in 8.6 and LabVIEW 2009. Don't know about 8.5 and I know 8.2 is different.

    JG

    Hi,

    I have been playing with your build script and I really like the potential of it.

    Unfortunately our code base is written in LabVIEW 8.2 and I have been playing around trying to get the build script working in 8.2, so this is just a quick not to anyone who may be interested, the build script CAN be run when saved back to LabVIEW 8.2.1, but the project must be closed for it to work.

    It appears in LabVIEW 8.2.1 the call to AppBuilder\BuildTargetBuildSpecification.vi will fail with an error 1025 if the project is open. However close the project and the call works.

    Extra note in LabVIEW 8.2.1 if you open the project then open your build.vi and close the project, the build.vi VI will also close. So first ensure that your project is closed, open your build.vi and run it.

    cheers

    Dannyt

  11. Thanks guys,

    Do you have a rule/protocol to always recompile before each build?

    And if you do, have you automated this process (e.g. for a nightly build?)

    Cheers

    JG

    I have written a little utility that does some of this.

    Our process is (using ClearCase as our SCC) to check out and make changes on all files that we are really changing and then check those files back into the SCC, ignoring the recompiles.

    So if I then load my top level VI I get a sometimes very long list of files that need recompiles. With the top level VI open I run a tool that finds all VI with unsaved changes in memory, I stumbled upto a property node "VI Modification bitset" , I then automatically do a ClearCase checkout of all these files, re-save them and do a ClearCase checkin with a common checkin comment like "File has been automatically update due to recompile".

    Dannyt

  12. Damn, so far in my life I have managed to avoid becoming a twit or twitter (what is the term for somebody who reads twit's ?), but people seem determined to try and drag me into the next centry, will it work Ok with my IE6.

    For an old lag like me it is very confusing do I take my LAVA via Twitter or maybe the RSS Feed or maybe the LAVA Facebook or shall I just keep on reading the good old web site itself. Actually I think I will just wait for the DVD to come out

  13. Howdy,

    I am wondering if it is possible to replace the befault build pocedure with a custon build procedure. I would like to interject a VI that would run before the build application process that would check for some custom requirements before allowing the build. This would be for building an Application(exe). I know I can programaticaly build something using a build spec, but what I want to know is if I can override the right click on the build spec process from the project with my own process. If I could have the build process run a VI post build that would even be acceptable.

    Any help on this would be greatly appreciated.

    cross post: http://forums.ni.com...hread.id=473656

    (my answer also cross posted)

    The answer to your prayers lies in the OpenG builder it is part of the OpenG software tools, also search for the OpenG builder of Lava there are quite a lot of references to it

    I have been using the OpenG builder for a couple of years now and one of the major advantages it gives is methods to run pre and post build scripts and also plugin scripts during the builds.

    We control our VI's within ClearCase and using the OpenG builder I can automatically set the correct configuration specification before a build and check out a revision file and some other stuff. Also during the build I can generate a BOM list (Bill of Materials) and after I can automatically check the built file into ClearCase if I want.

    I will say it is not without it's own little niggles, it builds slower than the normal NI build for example, but for now it will provide what you are looking for.

    cheers

    DannyT

  14. How much time do you spend time in arranging the controls in the cluster ? We develop lot of Express VI and we use these kind on clusters in those express VIs. We spend much time on arranging the controls in the cluster in the front panel as shown below. Initially I had written a VI to arrange controls in cluster but I had to place it in project for it to be easily accessible under tools menu. Now I had created a RCF plugin to do this Thanks to JKI team :) . You can consider this as fifth menu option in Auto sizing Cluster. The image below will show two Clusters Cluster in the Left show the input cluster and the cluster in the right is the cluster that is cleaned up using the plugin. We need to select the cluster and Right Click to invoke the Arrange Controls RCF plugin. I thought this will be useful for people who develop clusters like me.

    Rajkumar B

    Could you tell me which version of LabVIEW this has been built for.

    Thank you

    Dannyt

  15. Hi Sharon,

    Well that was fun, I have a solution for you, I am sure others will give you a better one.

    Basically your VI object Class needs to be a ControlTerminal in this case and not Numberic, note the attached file picks up Diva.vi from C: not D:

    Though this change works I think you need to be a little more generic in your code. The Diagrams[] returns an entry for each case in your case structure, I would make it loop round for each case, and then use a Diag - AllObjs[] on each of these Diagram, you then need to go through all the objects in that Diagram.

    An alternative way of going about this especially if you want to make this a more generic tools is to use the TRef Traverse for References.vi as you starting point.

    01Case.vi

  16. I have been into my daughters primary school a couple of time and I taken the old Lego Mindstorm kit.

    I had made up two small robots both with tank tracks drive, one a simple line follower and the other with touch sensors and arms so when it touch something it would stop move backwards turn around and go somewhere else. The kids year 2 so about 6-7 loved them and I got plenty of questions.

    They especially seemed to enjoy it when the line follower failed to follow the line very well and kept wandering of the line randomly. The very hight level of fluorescent lighting from all angles mean there was very little contrast unlike my living room floor. So we play with turning the light off, then on, then in front of the windows or not.

    I actually pick ed up an old Mindstorm kit of Ebay to do this was only about £50.

    Dannyt

×
×
  • Create New...

Important Information

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