-
Posts
3,905 -
Joined
-
Last visited
-
Days Won
34
Content Type
Profiles
Forums
Downloads
Gallery
Posts posted by Jim Kring
-
-
Try OpenGOOP -- no passwords...
-
We are running a test on a circuit board. In order to test the unit we are required to use a .dll that the client wrote. The problem is if the board is bad the .dll hangs. Because the board is a security device we are not allowed to mess with the dll in any way and the source code is not available. The only way to fix the problem right now is to go into task manager and end the process.
Does any one have code that will do this programmatically or know what the API call would be
Here are some VIs that use system exec to execute the tasklist and taskkill commands.
Download File:post-17-1098386155.zip
-Jim
-
You need the OpenG Toolkit. The "List Directory" function works just like the primitive function, but allows a semicolon delimited list of file patterns.
-
:!: Today, I discovered a serious flaw in the following FlexMotion VIs:
Wait for Blend Complete
Wait for Move Complete
Wait Reference
The problem is that when an Error is passed into them they do not pass the "Board ID" or "Axis" values through, as one would expect. Here are some screenshots of the offenders:
This can cause huge problems downstream. For example, here is some code that I wrote as part of a move command. If the move fails, I want to kill/abort the motion. But, since I no longer have valid "Board ID" or "Axis" values, the abort call fails (this is VERY bad :thumbdown:). You can see some code which is exposed to this flaw, below:
The only suitable workaround is to not, use the pass-through values, as shown in the work-around below:
Lucky for me, I didn't crash a motion axis before I discovered the bug.
-
Heck! I haven't even got XP to run the way I want yet.
One of the things I have to get around to. The thing is, everyone test their pages on IE. A lot of people are recommending Opera. ????
Feel free to jump in everyone! (like you guys need an invitation
:gathering: ) After all, this is the lounge.
The only thing that I use IE for is running Windows Update. Get Firefox!
-
I have seen and tried to use this before. Sometimes it worked fine and in other areas it did not let me run my code. I had a snippet of code that I wanted to comment out, and the coditional worked fine for that. When I commented out a non-executable VI, the diagram looked like it compiled (good run arrow) but I could not run the VI, it errored on execution.
Too bad, since this would be a very good feature to have to share sections of the same VI that is being worked on by more than one person.
Mike
I have heard that the "Conditional Disable Structure" does not work for blocks of code that call subVIs. Maybe this is why you ran into problems, on occasion.
-
Almost like having a LabVIEW Service that is invisible and a Monitor/UI (in System Tray or not) that is the only part we "see". This is the method I am implementing at the moment on a project that spawns communication handlers. I had observed that occasionally the spawning would hang. Not good in a distributed Client-Server architecture.
Mike
This is exactly the problem that I am having. I am spawning communication handers and my application stops communicating when the root loop hangs -- For example: when the General Error Handler (or other dialog) is open. Talk about annoying!
-
xeyes is an application that has a window with two eyeballs that look at your mouse position, presumaby so that it is easy for you to know where your mouse pointer is located. It is available on almost any Xwindows system (used for Linux displays). I opened the xeyes app so that it would be obvious that it was a linux environment. If you want to try out xeyes, there is a Win32 version that you can download from here:
http://www.shemesh.biz/code.html ==> Win32 Xeyes
-Jim
PS - your desktop picture is scary
-
I do Linux development on my Laptop using VMware Workstation (an x86 emulator), and I have 3 LabVIEW for Linux versions installed in addition to the four versions that I run on Windows XP.
-
After thinking about it, I thought that you had hidden a feedback node:
But, after reading your hint about data sources, I realized that the code "makes sense":
- 1
-
Well that's a neat trick! :worship:
This normally generates an error in LV (broken wire). You can't have the output of the array feeding into the equal function. Object is member of a cycle.
"These wires form a cycle, making two parts of the diagram interdependent, so each must wait for an input from the other and neither can execute."
I assume there is something else you're not showing us...
I see the same thing!?
-
Hi,
Sorry for this new topic, I'm not able to find the old one in the forum.
Thanks to Jim for his appropiate response.
Just one more thing, I've made the vi with the these subvi's:
Init Server-Server Login-Send Data.
I'm able to execute the first and the second but I have a problem in the third one because although I'm able to execute without problems I'm not able to send the e-mail because the SERVER answers this:
"SERVER: 503 MAIL FROM command must precede DATA"
Jim I suppose you know what is happening. Could you help me one more time, please?
Thanks in advance.
Kind regards.
Jose.
If you are referring the Dev Zone forum thread, it is located here.
You need to send the following command, first:
MAIL FROM:<you@email.com>
Take a look at "OGIC_SMTP_Main.vi" which provides a working example.
Regards,
-Jim
-
In my experience, LabVIEW cannot load two different DLLs with the same name at the same time.
-
Hello,
I'd like to send an e-mail from Labview, for this purpose I'm using a library call ogic-smtp from openG web site.
My vi consists of three functions(subVIs):
Init Server-Server Login-Send Data
Everytime I run the VI this message pops up:
"Error 1055 ocurred at Property Node in OGIC_SMTP_InitializeServer.vi --> SMTPAutentication.vi.
Possible reasons:
Labview: Object reference is invalid. "
I'm new in Labview and I'm a little bit lost, could someone guide a little bit, please?
Thanks in advance.
Jose
Wire a valid string control reference into "Server Response IN". This is used by the VI for sending status information to a user interface.
-
Jim,
I think I understand what you're saying however the problem that I'm running across is that basically I want to create a control once using it as a template to save typedefs off of. From there I then can iterate creating and saving new typedefs off of that one template control but changing labels and stuff like that. After that is complete, I made a VI that can make an old style global vi using each of those typedefs as the input and output.
I hope that made sense
Derek Lewis
I suggest that you work on an example, and let others help you along.
-
You can add this to your LabVIEW.ini file:
coerceFromVariant=TRUE
This will cause Variants to automatically coerce to any data type. But be careful, there is no error handling. I wouldn't use this in your applications, but it is interesting.
-
Hi Everyone,
:question:
I've got another question. Is it possible to create a typedef or strict typedef using the New VI object and New VI function. I've been able to create a control vi but I haven't been able to change it to a typedef or strict typedef control.
Thanks for the help,
Derek Lewis
Hmmm, it might be possible, but what I think you want to do is create a CTL file (which is a VI of type custom control) and then set it to be a strict typedef. Then drop this item using the New VI Object function, using the typedef CTL file's path as the source of the new object.
-
Hello, all. Michael Aivaliotis gave a good NI Week presentation on process spawning. One factor to consider is the apparent limitation of LabVIEW in that it cannot instantiate new VIs when the root loop hangs (please the bug posting here for more info).
Do any of you out there use this (Process Spawning) design pattern?
-
I didn't write LabVIEW and I don't know exactly how the guts of it works, but it appears that the Root Loop (a synchronous task handling loop at the very core of LabVIEW) hangs when the pull-down (or Run-Time) menu is in-use, a pop-up menu is in-use, or a dialog (such as the error dialog, file dialog, etc) is open.
By "Instantiate New VIs", I mean:
- Open a VI Reference to a VI on disk that is not already in memory
- Open a VI Reference to a reentrant VI, thus creating a new instance
- Open a VI Reference to a VI Template on disk, thus creating a new instance
The implication of this fact is that one cannot:
- Spawn a process using either the VI Template or Reentrant VI approach
- Instantiate Instances of OpenGOOP objects (which use a reentrant VI instance as the data store)
This is too, bad since spawning VIs is a very powerful technique. Is this a problem/bug for the majority of the power-users out there? IMO, process spawning and GOOP are very important design patterns that my applications cannot live without.
Is there something that I missed and is it possible to get around this issue?
- Open a VI Reference to a VI on disk that is not already in memory
-
You can also read the image file into a picture control and save the picture control's default value once it has been populated.
-
Often you find the need two run an instance of the LabVIEW development environment on the host PC and the RT target simultaneously. This is useful for debugging a client-server applications where you need to debug the client and server simultaneously. This is very easy to do in Windows. Take a look at the following FAQ: How to run multiple instances of LabVIEW
You can create two batch files that will each open a new instance of LabVIEW...
L_Drive_LabVIEW.bat
subst l: "C:\Program Files\National Instruments\LabVIEW 7.0"
start l:\labview
M_Drive_LabVIEW.bat
subst m: "C:\Program Files\National Instruments\LabVIEW 7.0"
start m:\labview
When you reboot, the L:\ and M:\ drives will disappear. Or you can use the /d switch to delete the temporary drives. Use the /? switch for more info on the SUBST command.
-
Norm,
Set a session cookie with a unique session ID once the user successfully logs in. This cookie will be destroyed by the user's browser when they close their browser or there is inactivity (~20min). You can also destroy the session on the server side, by overwriting the cookie and destroying the session ID in your "active sessions" look-up table. On the server side will will need a map (lookup table) between session IDs and user/session information. PHP, for example, stores these in files located in the temp dir:
/tmp/sess_{SESSION_ID}
Best of luck,
-Jim
-
It should be noted that HTTP and FTP are only supported on Windows :thumbdown:
-
Michael, it is possible and much easier than I first thought. Here (attached) is a working, and fairly complete solution -- it supports compound types including nested variants (variants containing variants). It is currently sub-optimal for arrays, which can be improved... but that solution is also non-trivial :laugh:
Jean-Pierre (et al.), I was thinking that we could use this VI as a replacement for "Remove Typedefs from Variant" in the lvdata package. Maybe we could add a "Recursive?" boolean argument that defaults to FALSE so that the original behavior is preserved for existing users (but would they even want the original behavior?).
Any thoughts?
Cheers,
-Jim
I had a lapse of reason -- the VI that I wrote doesn't coerce variants, it strips typedefs. I solved a different, but related problem. I'll think about the original problem some more.
negative numbers
in LabVIEW General
Posted
In the units you specified, I think that the equation would be:
Strain = (500 * Voltage) - 2500