rharmon@sandia.gov Posted September 10, 2020 Report Share Posted September 10, 2020 I have a program where I launch a clone that runs in the background and updates the Top Level VI. In normal operation the top level vi tells the clone to stop and everything seems to be fine, but every once in a while the clone stops, or maybe the top level stops and leaves the clone running. Is there some method to monitor running clones? Maybe with the ability to stop a running clone? This is how I launch the clones. Thanks for your help... Quote Link to comment
Neil Pate Posted September 10, 2020 Report Share Posted September 10, 2020 (edited) A simple way I have found which works quite nicely is to get the clone to register itself with some kind of repository (FGV). I then have another tool which reads from the list of running VIs and can do stuff like display status, open block diagrams etc. Edited September 10, 2020 by Neil Pate Quote Link to comment
ensegre Posted September 10, 2020 Report Share Posted September 10, 2020 This one is simply great as a GUI for that. If you're looking for a programmatic way of monitoring running clones, I guess you simply have to look under the hood. Quote Link to comment
Neil Pate Posted September 10, 2020 Report Share Posted September 10, 2020 1 minute ago, ensegre said: This one is simply great as a GUI for that. If you're looking for a programmatic way of monitoring running clones, I guess you simply have to look under the hood. that is nice but I found it way too heavyweight to use regularly. My debugger is built into my application and can be used even in the exe Quote Link to comment
drjdpowell Posted September 11, 2020 Report Share Posted September 11, 2020 The task manager should work, though like Neil I also find it displays too much, and have a more specialised tool built into my "Messenger Library" framework: Quote Link to comment
LogMAN Posted September 11, 2020 Report Share Posted September 11, 2020 A typical solution for this is to regularly exchange a "heartbeat" message between your top-level VI and running clone(s). That way, if either the top-level VI or clone doesn't respond within an expected timeframe (i.e. 60 seconds), the system can react accordingly (i.e. spawn a new clone, report an error, or - in case of the clone - shut itself down). Quote Link to comment
hooovahh Posted September 17, 2020 Report Share Posted September 17, 2020 I do something close to Neil. My messaging structure uses the user events, and so in my event structure I have a long timeout of say 5000ms. In that timeout case I check to see if the user event is valid (not a number/reference). If it isn't valid then go clean up, I probably forgot to send a quit message or something shutdown improperly. I made an idea on the idea exchange to generate an event, when a reference gets destroyed over here which would make this a bit more graceful. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.