Tomi Maila
Members-
Posts
849 -
Joined
-
Last visited
-
Days Won
9
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by Tomi Maila
-
Q's about Notifier behavior with re-entrant vi's
Tomi Maila replied to TG's topic in Application Design & Architecture
QUOTE(TG @ Sep 30 2007, 09:19 PM) True. But I would recommend normally not to pass event registration refnums around but instead pass user events around and register the events just before the execution of the actual event structure loop. This way you don't accidentally use the same event registration refnum multiple times. Don't forget to unregister the events so that they don't consume system resources when you don't use them anymore. So the program flow I recommend would be something like: Master: Create user event Master: Start Receiver process Master: Pass user event reference to Receiver for example using a named queue Receiver: Register user event Receiver: Send initialization status to Master (usually OK) Master: Start Sender process Master: Pass user event reference to Sender for example using a named queue Sender: Send initialization status to Master (usually OK) Sender: Generate user event Receiver: Catch user event using event structure Receiver: Before exiting unregister user event and exit Master: Before exiting, destroy user event And this program flow would allow you to have as many senders and as many receivers as you would like for the single user event reference. Then all the receivers would listen messages from all the senders. All the receivers would handle all the messages. -
Q's about Notifier behavior with re-entrant vi's
Tomi Maila replied to TG's topic in Application Design & Architecture
I use both queues and events for notifications. I've not encountered any problems with either of them With events you must register the events so that you have a unique event registration refnum for each event structure. Event registration refnum is like a mailbox that you cannot share with your pal. Queues can be used instead of notifiers as well although the logics of queues is a little different. Queues can be easily used for asynchronous messaging, especially for one-to-one messaging. To send a message, enqueue the message to the queue. To catch the message, preview or dequeue it. When the queue is empty i.e. it contains no message the dequeue operation waits until timeout. The things become more complicated when you need to send a message to multiple receivers. You can then create a queue for each receiver separately and enqueue the message to all these queues. You can also create a proxy VI that takes care of multiplying the initial message so that each receiver gets one. Tomi -
Q's about Notifier behavior with re-entrant vi's
Tomi Maila replied to TG's topic in Application Design & Architecture
Hi, I'm just quickly browsing the messages at LAVA. First events had some major problems before was it LV 8.0. or LV 8.20 so if you are using old version of LabVIEW, upgrade. Also there is odd notifier behavior that is explained in the Notifier Signals Missed thread. Basically a single wait for notification node (WfN) instance can only be used to catch notifiers from a single source safely. If you use a singe wait for notification instance to catch notifications from multiple sources then you may or actually will encounter problems. You should browse trough this thread if you are using notifiers. -
Hi, I've encountered odd freeze of LAVA when clicking on a thread link or when clicking View New Posts link. The browser sends the request and I guess something starts downloading from the site but not enough to render anything visible. This has occurred many many times during the last week. I don't have the same problem with any other page. I think this may be related to these snap shots somehow...
-
Default Value for Class
Tomi Maila replied to LAVA 1.0 Content's topic in Object-Oriented Programming
Is there a way to "probe" the default value of class controls (or constants)? If not, there really should be... Tomi -
Map, implemented with classes, for 8.5
Tomi Maila replied to Aristos Queue's topic in Object-Oriented Programming
QUOTE(NormKirchner @ Sep 17 2007, 11:38 PM) I second this request. AQ, could you please explain where do you think modifying a value on one wire which results in a value change on a parallel wire. -
OpenG "File Locate in Project" tool v1.0 released
Tomi Maila replied to Jim Kring's topic in Announcements
Orko and Jim, thanks for this simple but useful tool! I also learned something new by examining the tools. I didn't know how to add items to the file menu... Thanks again! -
QUOTE(Jim Kring @ Sep 15 2007, 01:26 AM) I hope this is an easier task than trying to understand all the little details of Aristos Queue's magical in-place map. Actually this reminds me that I still don't completely understand all the details of what not to do and why. Hmm.. another thing popped into my mind. I wonder if the in-place memory structure could be used to lock a by-reference object when manipulating the content. Not that it currently can be but with a little additional features it could act as a diagram to protect against simultaneous access. Tomi
-
QUOTE(muna @ Sep 15 2007, 02:47 PM) How does this relate to LabVIEW?
-
QUOTE(Aristos Queue @ Sep 11 2007, 09:58 PM) It's late and I may not be thinking clearly anymore. However I think TortoiseSVN and presumably other source code control software successfully solve a similar problem. When using TortoiseSVN you define a file system folder and all it's subfolders to be under source code control. TortoiseSVN doesn't automatically syncrhonize the content of all folders with the SCC server. Instead, the user needs to commit changes. Committing changes forces TortoiseSVN to syncrhonizes the folder structure with the source code control. TortoiseSVN uses hidden folders to store information about it's previous known state. This is actually not that different from the problem of LabVIEW libraries needing to keep in sync with certain folders. LV could rely on hidden files to find out to which library current folder belongs to. When a file is added to the folder, it's not automatically added to library. Instead it needs to be synchronized with the library, which could be manually executed or automatically occur when the folder owning library is opened. The hidden files could be used to specify which library owns a folder so that only a single library could own a folder. If a VI is opened in an owned folder, then LV could simply check from hidden files who owns the folder and open the owner as well should this be required. EDIT: I actually should meet Jeff W. tomorrow, let's see if I come up with something interesting to ask from him.
-
QUOTE(proximableu @ Sep 11 2007, 05:04 PM) Congratulations! What are your duties?
-
View New Posts and Google Ads have disappeared as they were supposed to. Great work Mike! Thanks again for all this effort for keeping us happy
-
Hi Mike, Thanks for all the efforts keeping the site up-to-date. I've one new question related to the upgrade process. Is it the intention that us Premium Members also see new kind of google ads on the bottom of the frames of each post in a thread first page? Toimi
-
QUOTE(Justin Goeres @ Sep 10 2007, 09:11 PM) Furthermore when I press a link in Latest Topic Replies list at forum home, the link targets to thread first page as well. I guess this is again the same issue. For example this http://forums.lavag.org/-t8346.html&view=getnewpost' target="_blank">link should target to Yen's post #26 on second page of the thread, not first page.
-
The RSS reader thing requires you to always use the same application for reading the feeds. If you use different computer at work and at home, then you are stick with online RSS reader providers such as google alone. Nothingwrong with google but I like alternatives...
-
QUOTE(Gary Rubin @ Sep 10 2007, 02:44 PM) Same here... this is the functionality of LAVA I used to use daily.
-
QUOTE(crelf @ Sep 6 2007, 02:40 PM) I love this video! I've seen it so many times and it still makes me smile. The guys in white suit is Åke Blomqvist, the founder of a famous dance school in Helsinki. Here is a http://www.tanssikoulublomqvist.fi/' target="_blank">link to the school, should you want to join the lessons.
-
I simply need to continue building up the image of the country where I live. Let me present you a YMCA cover NMKY by Finnish band Gregorius. <center><object width="425" height="350"><param name="movie" value="http://www.youtube.com/watch?v=lCgrG35-3js"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/watch?v=lCgrG35-3js" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object></center>
-
You mean you want to do this manually for some VIs or automatically for a large number of VIs?
-
When one drags and drops a project item from one project explorer into another project explorer, LabVIEW removes the items from the source project and adds the items to the target project. This is not the behaviour I'd expect. I'd expect LabVIEW to add the same items to the target project without removing the items from the source project. This is how most applications seem to work. EDIT: According to local NI this is not a bug but a feature. One should use Ctrl + Drag & Drop to accomplish the functionality. I kind of disagree.
-
My first initial comment is that you are using two OpenG library VI's in your project. The functionality of both of these VIs is very simple. I'd include these VIs into the project with new names instead of requiring the class user to download and install the appropriate OpenG packages. I took a quick look at the project and there are some issues with the roles of different classes I'd like to suggest you to modify. The reponsibilities of the classes are overlapping, which is not generally considered a good OOP design. However I still need to take a longer look before any details.
-
I'd like to take a look at this but just now I don't have time. If I've not replied in a week, please send me a PM to remind me
-
QUOTE(Noxious @ Aug 31 2007, 02:18 AM) Also see this thread on the NI forums: http://forums.ni.com/ni/board/message?board.id=170&message.id=229208' target="_blank">http://forums.ni.com/ni/board/message?boar...ssage.id=229208 Windows services start on windows startup and you can use third party software such as srvany to start your application as a service. Getting your application to a system tray as an icon is a different thing. For this purpose you don't need a windows service but a windows startup program that you set to start from the registry. The system tray interactions are complitely unknown field to me but I guess there is an API for that. You better serarch microsoft documentation rather than LabVIEW documentation as you are pioneering in this field... Tomi
-
Map, implemented with classes, for 8.5
Tomi Maila replied to Aristos Queue's topic in Object-Oriented Programming
QUOTE(robijn @ Aug 30 2007, 02:35 PM) No you wouldn't need locking. If you call tree manipulation from two places at the same time, you would manipulate two different trees.