-
Posts
835 -
Joined
-
Last visited
-
Days Won
49
Content Type
Profiles
Forums
Downloads
Gallery
Posts posted by MikaelH
-
-
I can't find a good way of converting a 2D mouse point to a estimated 3D point.
But I suggest that the user gets X and Y diretional buttons to control a cursor to the right point they want to select.
Cheers,
Mikael
-
Hi Trin
I don't have the full solution for this but I've added a VI that shows how to mark certain points of the graph using cursors.
I was hoping there were a invoke node that converts a 2D coordinate position to a estimated 3D position, but this invoke node method don't exist.
I guess you have to make a first guess, and then give the user 4 direction buttons so you can move the cursor in the X-Y direction.
Cheers,
Mikael
-
Hi
I haven't tried it in a C# application but it should work just fine. It should be included in Measurement Studio.
I did use the DataSocket Active-X component straight in a web-page a while ago and that worked great.
Of cause I had to allow to run an Active-X items in the browser.
I also added a NI-Graph component on the web page and the Data Socket updated the graph every time a value was received.
At that time (2000), it was impressive to see a web page updating in real time.
Cheers,
Mikael
-
Thanks Guys
It’s always nice to see that I’m not alone out there
I’m using 8.6.1, and also lvlib’s containing classes.
I would guess it has something to do with Dependencies or Error Checking.
I’m keen on creating a big dummy projects and submitting it to NI to see if they can figure something out.
If they managed to find a solution for LV2010, I promise I’ll be the first to upgrade ;-)
Cheers,
Mikael
-
Hi
Sometimes the response time when editing a large VI gets soooo long.
I can easily see it on the mouse cursor when I move to different object and would expect the cursor to change, but it takes 3-5 second.
Am I the only person to experience this?
I have a powerful PC, so that’s not the bottle neck.
It’s like LV decides to recompile the whole VI and do a complete Error Check of all code in the project.
If I restart LabVIEW it looks like it becomes faster for a short while, then it’s back to be frustrating slow.
So I tried to open my main VI direct, not using the project, and then the response was fast.
I do use lots of classes.
Any ideas?
Have you experienced the same?
Cheers,
Mikael
-
I take it subpanels can't be dynamically created at runtime?
Noop...but maybe NI will let us do that someday.
-
I’ve really pushed the limit of sub panels in a LV app, and haven’t had any problems.
I’ve attached an example that uses a grid of sub panels, and in every sub panel I insert an active object of different types.
Cheers,
Mikael
- 2
-
When you place controls on the Front Panel you can tell LV who the Parent is.
So first you need to get the control (the only control found on the Front Panel) reference for the Cluster, and then use this ref as parents for all attributes.
FYI, the GDS tool has an API interface to do this and it also has XMI support,if you are interested to try it out let me know.
Cheers,
Mikael
-
Hi
We're about to release a new version of GDS, that has better support for 2009.
You can download a beta version here: http://goop.endevo.net/GDS/GDS_P9S_2009.zip
Cheers,
Mikael
-
For them who doesn't not it. There is a build function in LabVIEW to swap two wires connected to any 2 input function.
Just use the wire tool and press Ctrl+click.
//Mikael
-
Hi Jeffrey
It's always nice to get a peak into your design solutions :-)
I guess you have 2 base class methods Thread 1 and Thread 2 that you override like this:
I tried the solution the way I would have done it, and it worked as suspected.
I’m using the GDS’s design pattern function to create a spawning process for every Station object.
In this process I call the Thread VI.
Have a look at the design and check out the video describing how Design Patterns in GDS works.
http://goop.endevo.n...DesignPatterns/
Cheers,
Mikael
-
So there you go guys, another reason to use classes in you applications :-)
-
Hi
Since I have almost all my VIs in classes in my app, so when I want to dynamically run a VI (method), I use the Open VI ref using the string name instead of path:
"MyClass.lvclass:MyDynamicVI.vi" and as long as I use any VI on this class the whole class will be loaded in memory by LabVIEW and it works without me knowing the absolute path.
//Mikael
- 1
-
If you remove the INI files, LV will not load the GDS in memory.
If GDS should be loaded, all files have to be compiled, if any file needs to be compiled (or LabVIEW thinks it need to be recompiled), LV will crash.
I have only tested it once myself and I got it working at least once, but I'll look into this issue.
Cheers,
Mikael
-
Just make sure you remove the 3 ini files, and LV should start as normal.
-
Yes I have use it a bit, but your right LabVIEW does hang if any VIs aren't Pre-Compiled.
So to solve this, you hav e to:
1) After installing GDS, move the 3 ini files in the folder: LabVIEW 2009\resource\Framework\Providers\Endevo
2) Make all VIs in this folder Writable (Not Read-Only)
3) Also make sure these folders are also Writable: \project and vi.lib\addons
4) Start LabVIEW and Masscompile all files in these 3 locations.
5) Just to be sure I would open all VIs direct under the folder: LabVIEW 2009\resource\Framework\Providers\Endevo, and verify that they really don't have a * in the title bar.
ANd is so resave all when closing.
6) Quit LabVIEW
7) Move the 3 ini files back and restart LabVIEW
Let me know how it went.
I do have a beta GDS-version, that might work better, let me know if you want to try that one.
//Mikael
-
But you can't use Auto-Populate folder within a class. Classes and Auto-Populate folders don't go togeather
- 1
-
The best solution I've found so far is to maintain both the previous and next element in the list (a doubly linked list), insert them backwards, and then reverse the list after adding all elements to it. Is there another way?
Hi Shaun
It looks like your after the “Iterator” design pattern.
(Page 257, in Design Patterns http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612).
Just google it.
E.g. http://www.cs.unb.ca/profs/wdu/cs4015w02/ch5d.htm
Cheers,
Mikael
-
Mikael,
Thank you very much. I will spend some time today going through these links. Do you recommend the endevo version over the LV version of OOP?
I most often use the reference based class templates, and I then use the Endevo GOOP 3 class provider in GDS.
But when possible I use the normal by value approach, but I still use GDS, but uses the LabVIEW Native class provider to make my life easier.
Cheers,
Mikael
-
Hi Daryl
I'm sorry to here that the OOP class didn't deliver what it promised.
You could start here: http://lavag.org/top...-goop-prgamming
I've also uploaded some videos, but those are focusing on the Goop Development Suite.
www.goop.endevo.net/GDS/videos/GDSFeatures
www.goop.endevo.net/GDS/videos/GettingStarted
www.goop.endevo.net/GDS/videos/DesignPatterns
www.goop.endevo.net/GDS/videos/StateMachine
www.goop.endevo.net/GDS/videos/Debugger
Tomi has made a nice video that you can try.
http://expressionflo...ts-and-classes/
Cheers,
Mikael
-
Hi
We're running XP, and most of them are XP embedded.
We started to notice this problem when we updated the code to be LV 2009 compatible.
The funtion takes a string in and returns a Configuration Ref Num, in LV 2009, this is replaced by a class.
So in the initial design we used the "Private" functions in the Config VIs to create the object, but in LV 2009 this is not possible since we can use the private VIs any more.
This is the initial code, which always has been working:
And here is the code we changed to and started generating problems.
LcString_OpenConfigDataUsingString.vi
This problem has become more and more frequent for some reason, before is occurred about 0-2 times a week, but latelty we saw it several times a day.
Maybe it's the virus protection application that causes the problem.
Cheers,
Mikael
-
Hi
We have experienced some strange things on some computers running the a LV executable applications.
We download ini-file content from a database and temporary write them to an ini-file so we can use the Configuration File VIs.
1) We delete the file (it might already exist)
2) We write a new file
3) We open it with the “Open Config Data” VI.
So easy, but we have experienced problems on some computers running this code in an LV executable. It always works when running it from the Dev Environment.
(FYI the VI that create this Config data Refnum is not reentrant)
The problem is that the file is empty.
Why I see an empty file is probably because I use the Default input to the “Open Config Data” VI, that lets it Create the file if it doesn’t exist.
But why is it not created.
Any ideas?
Is Window treating files in the Temporary folder different?
Are commands (e.g. the Delete File), somehow cashed in Windows and executed later when the file is in the temporary folder?
We have solved it by doing this for now, but why why why????
Cheers and happy New Year guys.
Mikael
-
Hi Jeff
If you can upload the same code in 8.6, I can help you quicker, since I won't have access to LV-2009 until tonight :-)
Or. you can just port a screen shot of your "Stop Loop Query"
But here are some tips/question.
I guess the "Stop Loops" sets a flag in the attribute and the "Stop Loop Query" checks it?!
Reading from the attribute is normally a quick task, but if the size of the attribute is huge, it will taks some time.
You can check the attribute size, using the "Tools->Debuggers->Endevo Object Debugger..." option.
I would suggest that you check how often this "Stop Loop Query" is called in other loops, so you don't call it so often LabVIEW has to wait for access to it.
When I need a faster attribute access and I know it's a Singleton, I use one LabVIEW 2-Style Global
If you have many caller to the "Stop Loop Query"-VI, you can change it's Priority to subroutine (VI Properties->Execution).
And when you use this VI on the block diagrams you can right click on it and select option: "Skip Subroutine Call if Busy"
I also use the Profiler to see how much time is spend in accessing the attributes of the class.
Cheers,
MIkael
-
Don't you need to: DECLARE @NewTestID int
I would suggest to write a Stored Procedure that does it.
Cheers,
Mikael
how to connect SQL SERVER 2008 to labview
in Database and File IO
Posted
If you want to use a udl file. Just create an empty file and name the extension to udl, and the dubble click on it.
I use the user.lib\LabSQL tool for this, which in my opinion is the fastest way to connect to a database.
Have anybody else got a fast way of accessing SQL databases?
//Mikael