Jump to content

Jim Kring

Members
  • Posts

    3,905
  • Joined

  • Last visited

  • Days Won

    34

Posts posted by Jim Kring

  1. One of our customers asked me if important system files on the filesystem on his cRIO controller could be deleted through ftp. Since I don't have a RT system at hand to test this and don't want to encourage him to just try it I was hoping one of you guys might shed some light on this.

    Yes, there are many important files that are accessible via FTP. MAX should be able to restore these files if they ever get damaged.

    Does the locking feature (in MAX) of an RT-target also prevent deletion of crucial system files?

    Yes you should lock (password protect) access to FTP, if you cannot secure access to the network containing the RT system.

  2. And has this old issue of creating a control typedef (instead of creating on a standard VI FP) been resolved?

    I'm not sure if I recall what the issue exactly. Was it that "Get Contorl From Type Descriptor.vi" did not work on a *.ctl VI reference (only a standard VI reference)? I don't know if this is still a limitation, but I would guess that it does.

  3. Or you can extract the decal and use it as a decoration and a Vi reference to find and control it.

    But that seems like the long way around.

    6095[/snapback]

    The decal is a click-able part of the button -- a floating decoration will not be click-able, which will aggravate users.

  4. And one more addition - a VI that hides the taskbar button. Like I said in my last post, for some reason the LV window did not disappear in the EXE, so using this only causes one of the buttons to disappear, but if you do this inside LV, the button will disappear. You can call this VI when the clock VI stops running and it when it stops, the window will return to normal. Minimizing the window in this situation causes it to become a "floating window" which can be restored.

    6089[/snapback]

    You can hide the LabVIEW button, by adding the following to your app's INI file:

    HideRootWindow=TRUE

  5. I too would like audio, if it is available. It would also be nice to have the presentation in PPT format, if the speaker's notes are available.

    BTW, the presentation looks great, Rob. :thumbup: I'm sorry that I missed it, at NI Week -- always so much going on, and so little time.

  6. I'm not sure if this is a bug.  It might just be a feature.  I recall a thread on info-labview on this a few years ago.  I think that when you are using string ranges, the upper limit is non-inclusive.

    5846[/snapback]

    It is a bug. The VI should be broken for "no case for some selector values".

    5848[/snapback]

    Jean-Pierre, I was referring to Wolfram's second bug posting, which has a string range frame and a default frame.

  7. Another nice case bug.  :rolleyes:

    5842[/snapback]

    I'm not sure if this is a bug. It might just be a feature. I recall a thread on info-labview on this a few years ago. I think that when you are using string ranges, the upper limit is non-inclusive.

  8. Hi all,

    I m trying to integrate Labview 7.0 (on Mandrake linux) to mysql 4.1 using C APIs.

    I use the labview utility - lvmkmf

      i.e lvmkmf my_conn (my_conn is the C program that uses the mysql C APIs)

    The C APIs require the library mysqlclient and I have included it in the Makefile using the CINLIB macro.

    And I get the following error.

    gcc -shared -o my_conn.tmp \

            /home/viji/cintools/cin.o  my_conn.o  /home/viji/cintools/libcin.a /home/viji/cintools/libmysqlclient.a

    /home/viji/cintools/lvsbutil -c my_conn -t CIN -d `pwd`

    /home/viji/cintools/my_conn.tmp: undefined symbol: compress

    /home/viji/cintools/lvsbutil: error building resource file: 1

    make: *** [my_conn.lsb] Error 2

    Is the lvsbutil trying the compress the libraries and giving an error when trying to do so?

    Thanks,

    Viji

    5718[/snapback]

    There is an example here showing how to call the mysql C API. I'm not sure about your error (sorry), but maybe this example will provide some insight. I was able to get it to work on my Linux box.

    -Jim

  9. Are you checking this bug list against the newest version of LabVIEW very extensivly?  Would it be worth coordinating effort to get them all checked out?  (I could help, but no sense duplicating effort)

    5808[/snapback]

    John, I have submitted a bug in the LabVIEW Wait beta.

  10. I often go through the pain of having to "recenter" my objects on the front panel from having the window scroll "out of bounds" from an interaction with a background control or other random reasons.

    Is this just part of the burden of labview or am I missing a good trick here?  It seems needlessly painful to have to recenter your controls.  Other design tools, like VB, don't have that "endless landscape" issue.

    Does labview need some "revert" function to recenter your front panel automatically?  :headbang:

    5155[/snapback]

    There is an OpenG VI called "Fit VI window to Largest Dec" which will do just what it says. Put a frame decoration onto your Front Panel, where you want the panel extents to be when the VI runs. The rest is automated.

    You can get this VI in the Application Control (appcontrol) library which is available for download using OpenG Commander.

    Best of luck,

    -Jim

  11. I use case-selectors with a strict-typed enum Mode control to leverage subVI functionality.  For some VI's that get called a lot (such as an LV2 global), there may be many many instances of the VI.  Currently, there are two ways to find a specific function call that uses the VI and a moding constant:
    • Search for the VI, then look through every instance until you find the right one
    • Search for the enum constant, then look through every instance until you find the right one

    Where this lacks heavily is finding a particular enumerated function--both methods above find all functions.  For example say I have a VI with three modes:

    • Load References
    • Save Values
    • Get Values

    If I want to find the one instance where I load the references, I may have to search through a dozen or so instances of "Save Values" or "Get Values" before finding the one enum constant designating a "Load References Call".  And actually in my case, the statistics are worse than that as to how many I have to look through.

    The short of it:  It would be nice to have a method to search not only for an instance of an enum constant, but for the instance of a particular value of an enum... like being able to select the object in the Find box and then also being able to get a dropdown list of values to select from (or an all encompassing "All Values", similiar to property nodes.)

    2168[/snapback]

    I have debugged code written by others that used "naked" functional LV2 globals (not placed inside wrapper VIs to hide the call mode selection and input/output routing). I find it a real pain, as you have described, to search for all instances using a particular call mode, in addition to reverse engineer which inputs and outputs are associated with each call mode. Here is the solution: for each calling mode, create a wrapper VI. It is then very easy to search for the wrapper VI instances. Also, users of your functional LV2 global will always know which inputs and outputs are relevant to a specific call mode. The collection of wrappers can be thought of as the API of your component.

  12. Jim,

    In laymans terms, that OpenG vi library kicks some serious @!$  (its great!!)  Thanks for introducing me to it.  Is there a version that works with the Linux version of LabVIEW?  Thanks!

    Richard

    4972[/snapback]

    Richard,

    You're very welcome and I hope you enjoy the various other libraries and tools that OpenG developers have created. I'm sure you will find a lot of @!$ kicking stuff in there ;)

    Regarding Linux, Rolf is right, both OpenG Commander and nearly all of the downloadable libraries should work on Linux (and Mac, too).

    -Jim

  13. Is there a vi that I can use to simply delete a directory and all it contains?  (i.e. the equivalent of executing rm -Rf <directory> in *nix)

    The only vi I found that can delete directories requires that the directory already be empty.  This is bad because it means I have to list all the files in the directory and delete those first.  If the directory contains more directories, then it just complicates things.  It seems like it would be inefficient to have to write a recursive style vi that repeats this process of going through all the subdirs, deleting each subdirs files, and then deleting the subdir, until the top level directory becomes "empty".

    For the measurement system I'm building, I need to be able to delete directories containing millions files as quickly as possible.  Any ideas?

    Richard

    4964[/snapback]

    Download OpenG Commander from openg.org and install the file library package. This contains a VI called "Delete Recursive" that does just what its name implies.

  14. I just found this post from awhile ago, looks cool...

    http://forums.lavausergroup.org/index.php?...16&hl=labview+8

    Does anyone have any idea when version 8 will be released based on previous release dates?  Does NI usually issue new releases every 12 months? 16 months? 18 months?  Any guesstimates when it will hit the shelves?  Maybe we should have a wager with a prize for the person who guesses closest :)

    4957[/snapback]

    Most folks who know, aren't allowed to say. Also this tends to change around a lot, as NI decides which features will be ready in time and which ones will have to wait. One thing to note, is that NI has hinted that the next version will have lots of new features; so, it will naturally take a while.

  15. We have a need to easily determine if a directory with subdirectories full of hundreds of LabVIEW vi's has been modified. We would like to be able to check if a "baselined" directory of files matches with a copied version of the same directory. We have experienced problems when someone modifies one or two vi files out of several hundred without notification, then the resultant code doesn't work properly when executed as some later time. For diagnostic purposes we would like to be able and check quickly if someone actually has modified any vi without laboriously reviewing each vi by hand. We were thinking of some stand alone software possibly a LabVIEW vi that could check automatically the copied version against the baselined version.

    4949[/snapback]

    One tool that I use for such things is Beyond Compare. It is easy to use and provides tons of features. Another option is to use a Version Control System (CVS, Subversion, Perforce, VSS, etc).

×
×
  • Create New...

Important Information

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