Jump to content

Ton Plomp

Members
  • Posts

    1,991
  • Joined

  • Last visited

  • Days Won

    38

Posts posted by Ton Plomp

  1. (packages not in SCC)...

    While above statement is true, the point of view towards the packages changes. For the reuse developer, the packages are 'built files' that should not be placed under SCC.

    However the user of the reuse lib (packages) will see them as part of his source, hence place them under SCC.

    Felix

    Looking at your process this would mean the reuse user placed vi.lib and user.lib under SCC as well?

    Ton

  2. ...

    Correct. I'm not a hardcore mercurial user so I can't comment intelligently on exactly how that would happen, but in SVN, if you had a directory of packages under source code control you'd have to delete the old package and then Commit that change.

    In my book Built files do not belong in SCC, for mercurial I excluded the following items from scc:

    • .ogp$
    • /built*$
    • built
    • /build*$
    • .lvlps$
    • .aliases$
    • .zip$

    This prevents OGP and zip files as wel as built/d folders to get automatically added to SCC, I can add them manually (hg add ......)

    Ton

  3. I doubt that you can run LabVIEW (IDE) on that platform, officially Debian is not supported by NI.

    Running a Linux LabVIEW executable might work, but that really depends on what you want to do, remember that hardware support (serial for instance) is very hard to get working on debian platforms.

    Ton

  4. The Common folder with project library approach is quite simple, works exceptionally well for our use cases, and doesn't rely on a third party package. I can see that if you want to use the palettes (e.g., for core toolsets) you'd want to use the user.lib. Otherwise, why?

    Two things come to mind:

    • Paths, things in the user.lib (or vi.lib/instr.lib) have an aboslute path, moving a VI that uses one of those functions isn't going to force a re-linking.
      This means I can have my code under SCC in d:\sourcecode, my colleague can have it on his USB-drive at f:\code.
      Which also means it's easier to setup a coherent IDE, just install the packages in a manner you like (copy, VIPM, install with NI installer) and you have them where you expect them
    • QuickDrop
      The items show up in a quick drop search (which can be very usefull)
    • The other advantage is the thing you allready mentioned but (IMHO) is very important, you can easily access them. It's possible to browse them through the palettes. In some of these dying seconds of the day (when the coffee isn't ready yet, a download is going on, facebook is offline, whatever) you can go through them and see if any of your colleagues has writing a little gem, he mentioned but you weren't listening.

    Ton

  5. The tool I've created only sees the list of VIs within its own EXE and not the other!!! I'm connecting to port 2020 (set in the ini file of the EXE I'm trying to access) and set the port of the analyser to 2022, and it STILL somehow connects internally!!!!

    Good post!

    However I don't think you'll succeed in retrieving the list of VIs remotely. From the help from the property All VIs in memory:

    The following table lists the characteristics of this property.

    Data typei1dstr.gifPermissionsRead OnlyAvailable in Run-Time EngineYes (Read Only)Available in Real-Time Operating SystemYesRemote access disallowedYes

    Remote access disallowed—Specifies if access to this property or method is disallowed with a permission error by a remote application instance. If this characteristic value is Yes, LabVIEW returns error 1032 if you try to use a remote reference to this property or method.

    However I would love to be proven wrong.

    Ton

  6. Also, LabVIEW ships with this VI:

    <vi.lib>\Platform\fileVersionInfo.llb\FileVersionInfo.vi

    which will dig the version number out of your EXE file (it's the same info that you get when right-clicking on the file in Windows Explorer).

    That's what you should be displaying in your about box etc., rather than some global variable that you save before building.

    Also you can use property nodes to make sure the EXEs and the Installers have the same version numbers.

    Here's a little snippet on how you can use this code:

    post-2399-0-17995200-1291802441_thumb.pn

    Ton

  7. One question, is it hard to tweak the usage to 'standard' behaviour (double click to explor).

    TC API does not support such functionality. Other methods (such as activity monitoring) are not worth en effort.

    No, that's not what I meant, I meant 'double click to open with TC'.

    Any ideas on how to mange 'Top Level VIs' ?

    Ton

  8. index.php?app=downloads&module=display&section=screenshot&id=157

    Name: Align and distribute

    Submitter: Ton Plomp

    Submitted: 05 Dec 2010

    File Updated: 23 Jan 2011

    Category: General

    LabVIEW Version: 2009

    License Type: BSD (Most common)

    Align Distribute objects v1.2.0

    Copyright © 2010, Ton Plomp

    All rights reserved.

    Author: Ton Plomp

    LAVA Name: Ton Plomp

    Contact Info: Contact via PM on lavag.org

    LabVIEW Versions:

    LabVIEW 2009 and up

    Dependencies:

    No dependencies, demo VI needs the OpenG time library

    Description:

    A set of VIs to align or distribute a set of points or objects, they behave similar to the align and distribute functions in the LabVIEW IDE. These tools are usefull when dealing with objects that needs to be rearranged.

    The set of VIs is bundled in one polymorphic VI (align_distribute.vi) that has the following tree layout

    -Align

    -Top

    -point

    -rectangle

    -Left

    -point

    -rectangle

    -Bottom

    -point

    -rectangle

    -Right

    -point

    -rectangle

    -Vertical center

    -point

    -rectangle

    -Horizontal center

    -point

    -rectangle

    -Vertical center

    -point

    -rectangle

    -Distribute

    -Top

    -Left

    -Bottom

    -Right

    -Vertical Centers

    -Vertical Gaps

    -Vertical Compress

    -Horizontal Centers

    -Horizontal Gaps

    -Horizontal Compress

    Installation and instructions:

    Use the VI whereever you want, or install it into your user.lib with VI Package manage (http://www.jki-soft.com/vipm)

    Examples:

    The zip-file includes one DemoVI that moves front panel controls around

    Known Issues:

    Acknowledgements:

    Icons are supplied by National Instruments in the LabVIEW IDE

    Version History:

    AlignDistribute - 1.2.0 (Released 2010-06-28)

    =============================================

    - 0000021: [bug] The palette shows Align Distribute.vi as name.

    v1.1.0: Initial public release of the code.

    License:

    This code licensed under the BSD license

    ==============Start of license==================

    Copyright © 2010, Ton Plomp

    All rights reserved.

    Redistribution and use in source and binary forms, with or without

    modification, are permitted provided that the following conditions are met:

    1. Redistributions of source code must retain the above copyright

    notice, this list of conditions and the following disclaimer.

    2. Redistributions in binary form must reproduce the above copyright

    notice, this list of conditions and the following disclaimer in the

    documentation and/or other materials provided with the distribution.

    3. All advertising materials mentioning features or use of this software

    must display the following acknowledgement:

    This product includes software developed by the .

    4. Neither the name of the nor the

    names of its contributors may be used to endorse or promote products

    derived from this software without specific prior written permission.

    THIS SOFTWARE IS PROVIDED BY ''AS IS'' AND ANY

    EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE

    DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY

    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES

    (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;

    LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND

    ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT

    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

    ==============End of license==================

    Support:

    If you have any problems with this code or want to suggest features:

    please go to lavag.org and Navigate to LAVA > Resources > Code Repository (Certified) and

    search for the "Distribute objects" support page.

    Distribution:

    This code was downloaded from the LAVA Code Repository found at lavag.org

    Click here to download this file

  9. I use the license of my employer at home.

    However every once a year I look into buying one myself (preferable a used license) or a debug license which are cheaper.

    My employer is not interested in the code I produce at home, nor has the intention of ever selling code themself, my contract was just 2 pages. Our IT-rules say that I can install a local copy of MS Office for instance, and they don't make a note that they have the IP on the documents I write with MS Office, I extrapolate this guideline into a field of interest. (on the same basis I use Total Commander at home, which would be the second piece of software I would buy when starting my own company).

    Ton

  10. Hello Everyone,

    I have a 16*16 array with some I32 values and i want to know with each iteration if there is a change in any of the elements.

    First step would be to XOR the old and new array. Then using a 'Not Equal to 0' node, you will get a boolean array where true means 'changed'. Then you need to check how much elements are true.

    You could convert it into a 0, 1 intger array, and use the sum of the array to get the number of changed elements.

    Ton

    • Like 1
  11. when i tried this within a vi that used the global normally. Yes it worked.

    But when I ran it from a secondary program (with the first program running so the global should be in memory) I got that error.

    That is normal, VIs are enclosed in there own application space. If you want to open a (global) VI in a different application/project, you need to open a reference to that application first.

    Ton

  12. "removed source from VIs"

    I was getting all excited until I read that rolleyes.gif

    Sorry, I meant, removed compiled code from VIs.

    Darn..., to be clear the VIs posted at bitbucket should have the blockdiagrams present!

    The world of SCC now gives me the power to get the latest version -1, remove the compiled code and recheck in.

    EDIT:And if I really had removed the code, you could always get a version earlier.

    Ton

    • Like 1
  13. Now that several months have gone by, how do you feel about Mercurial?

    Pretty good.

    I am still working on a Mercurial API, together with a Source Control Provider. (I think I finished it almost)

    One of the best things is that it's quite easy to set up a public mirror of your repo's.

    For instance when I develop a tool, I normally push to my private server, but once every release I push to my private server and to a public server where people can get a clone of the history.

    Your right that the size of a LabVIEW repo is substantial (there is no compression possible in the latest LabVIEW versions) and every changed VI is stored as is.

    Ton

  14. I'm working on a team of 5 to develop a relatively large software project spread across a PC, FPGA (R-Series card), cRIO, and an ARM board. Our last attempt this problem lead to a source control nightmare. We managed an svn repository using tortoisesvn. This became problematic because we couldn't edit any of the FPGA files without checking out the entire project. This lead to parallel projects being worked on and the eventual merging problems. I know that LV has a source control manager, but to my knowledge it requires you to have a relatively expensive source control manager. Does anyone have good ideas about how to manage a large, multi-fabric project without buying perforce?

    You can use LabVIEW Profressional (not Base or Full) together with PushOK SVNSCC plugin. It's rather cheap (€30). Or JKIs TSVN interface which connects to SVN via TortoiseSVN.

    Sorry, but this doesn't sound like an issue with the SCC provider (SVN), but more like an issue with the way you were doing SCC.

    What do you mean by "project"? The lvproj file or the whole project from the repository? You don't need to check out (in SVN terms it's "get lock", not "check out" - that's something different) to edit one part of it.

    Yes, please specify, you might need to uncheck the 'tread read-only files as locked' option. Also explore the 'Source Only' setting if you are using LabVIEW 2010.

    Ton

×
×
  • Create New...

Important Information

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