Jump to content


Photo
- - - - -

LabVIEW Task Manager


  • Please log in to reply
80 replies to this topic

#41 drjdpowell

drjdpowell

    The 500 club

  • Premium Member
  • 800 posts
  • Location:Oxford, UK
  • Version:LabVIEW 2011
  • Since:1999

Posted 26 September 2011 - 11:17 AM

Thanks Darren! I have included your VI in the solution.

Hi Ravi, Darren's VI seems to be missing from the R4 zip file. -- James

#42 Ravi Beniwal

Ravi Beniwal

    Very Active

  • Members
  • PipPipPip
  • 94 posts
  • Location:Detroit
  • Version:LabVIEW 2011
  • Since:2001

Posted 26 September 2011 - 02:54 PM

Sorry about that! When I downloaded Darren's VI, it went straight to my Downloads folder and was being linked from there. I've fixed that now and have actually included it this time :) Here is the updated R5.

Attached File  LabVIEW Task Manager R5.zip   393.07KB   311 downloads

I've added grouping by class/library that you suggested. I've also added a Close FP button and improved the numeric sorting of the data tree.

Please let me know if anything is missing this time or if you have any suggestions/comments.
  • drjdpowell likes this

#43 Samapico

Samapico

    More Active

  • Members
  • PipPip
  • 35 posts
  • Location:Montréal, QC
  • Version:LabVIEW 2010
  • Since:2009

Posted 26 September 2011 - 05:53 PM

Could this be saved as 2010? I'm curious to try it out...

Thanks

#44 Ravi Beniwal

Ravi Beniwal

    Very Active

  • Members
  • PipPipPip
  • 94 posts
  • Location:Detroit
  • Version:LabVIEW 2011
  • Since:2001

Posted 26 September 2011 - 06:21 PM

Here's the Task Manager R5 saved for LabVIEW 2010!

Attached File  LabVIEW Task Manager R5 - 2010.zip   404.54KB   293 downloads
  • hilbert00 likes this

#45 Samapico

Samapico

    More Active

  • Members
  • PipPip
  • 35 posts
  • Location:Montréal, QC
  • Version:LabVIEW 2010
  • Since:2009

Posted 28 September 2011 - 05:34 PM

It looks like it could be useful, but I have a few comments:

When sorting by "state", it seems to be sorting items in each class/library by themselves... So there's no way to tell right away which VI's are running if you have a large project. It's not easy though, I guess you'd have to split library/class groups if they have VI's in different states. For example:

[-] a.lvlib:
____someVI.vi (RunTop)
____anotherVI.vi (RunSub)
[-] b.lvlib:
____something.vi (RunSub)
____bleh.vi (RunSub)

...

[-] a.lvlib:
____hmmm.vi (Idle)
[...]

I'd guess that doing that would be quite hard... but how about a way to filter by state instead? You could quickly find running VI's in a short list.

The project I'm running has over 1000 VI's... this task manager takes about 20 seconds for a single refresh. It's pretty painful... Do you guys have any optimization in mind that could improve this?


Still a handy tool, thanks for sharing :)

#46 Ravi Beniwal

Ravi Beniwal

    Very Active

  • Members
  • PipPipPip
  • 94 posts
  • Location:Detroit
  • Version:LabVIEW 2011
  • Since:2001

Posted 28 September 2011 - 05:45 PM

Adding a filter for VI state sounds like a good idea. I'll look into it and any optimization for adding large number of VIs to the tree. May be use add multiple items to tree instead of adding each item individually. But during a refresh, it has to get the properties of each VI and update them. Well may be not, if we specify which properties (columns) will change during execution and check only those.
I'll post an update or list of issues :)

#47 drjdpowell

drjdpowell

    The 500 club

  • Premium Member
  • 800 posts
  • Location:Oxford, UK
  • Version:LabVIEW 2011
  • Since:1999

Posted 16 January 2012 - 04:41 PM

Three months later...

Thought I’d post on something I developed from Ravi’s Task Manager. I found I had difficulty using the Task Manager, not because there is anything wrong with it, but because the LVOOP-heavy framework I use has a ridiculously large number of subVIs loaded at any one time. The actual VIs that I’m really interested in are very few and are hard to pick out from the noise. And the massive amount of VI Server calls looking for all the potential clones of all these subVIs took forever. So in the end, I rewrote almost all of it to make it a very narrowly specialized tool that lists only the VIs I most need. These VIs are the core of what I call “Actors”, dynamically-launched VIs that communicate only through exchanging messages (here’s a post on an earlier version), so it’s called the “Actor Manager”. Here’s a screenshot where the Manager is observing three open projects, one running a TCP Server and two others as TCP clients (an earlier post on the TCP stuff is here).

Actor Manager.png

All the items with black dots are Actors, arranged in a tree according to who launched who. In the common launch code for actors, information about it, including what VI launched it and an optional short description of the new actor, is posted in a named notifier (name based on a clone name of a preallocated subVI used in the launch process, so that it is unique). The notifier remains in existence while the actor is running. The Actor Manager uses VI server to run a “Find Actors” VI on each open project; this VI searches through all possible notifier names. The search by notifier name is very fast, so I can search for clone names up to 10,000 on each application instance without taking much time.

So, this is sort of the same as the “Task Manager”, but also totally opposite, in that it is a completely specialized tool, useless outside of the framework it’s designed for, rather than being a generally applicable tool. But that narrow focus also allows it to do its specialized task very well (being able to clearly see the tree of who launched who is very important to me). For anyone else with a similar framework (“Actor Framework”, for example, or MJE’s “MessagePump”) I can recommend making a similar tool. It took me more time to do that it should have, because at first I was trying to maintain the generality of Ravi’s Task Manager while adding specialized features too it, but that proved too difficult. So I recommend a separate tool (and also use Ravi’s excellent Manager when a general tool is needed).

— James
  • Stobber likes this

#48 Stobber

Stobber

    Very Active

  • Members
  • PipPipPip
  • 117 posts
  • Location:Austin, TX USA
  • Version:LabVIEW 2011
  • Since:2005

Posted 08 April 2012 - 08:37 PM

James, any chance of you sharing the source for your custom tool or contributing it to a new community project to develop an "Actor Manager" we can all use?

#49 ohiofudu

ohiofudu

    Very Active

  • Members
  • PipPipPip
  • 68 posts
  • Location:Germany
  • Version:LabVIEW 2011
  • Since:2000

Posted 09 April 2012 - 09:04 PM

I spent some time handling Error in the Task Manager Project .I also did some file hierarchy and proper Naming.
Here is the Rework in LV 2010.

Attached Files


Do it Now...do it Now... Now over Procastination
Certified LabVIEW Architect

Certified TestStand Developer
Ohiofudu Israel


#50 drjdpowell

drjdpowell

    The 500 club

  • Premium Member
  • 800 posts
  • Location:Oxford, UK
  • Version:LabVIEW 2011
  • Since:1999

Posted 13 April 2012 - 09:02 PM

James, any chance of you sharing the source for your custom tool or contributing it to a new community project to develop an "Actor Manager" we can all use?

My Actor Manager is very specific to my messaging framework, but I did a trial prototype for the 2012beta Actor Framework here.

#51 hilbert00

hilbert00

    1 more post to go.

  • Members
  • 9 posts
  • Version:LabVIEW 2010
  • Since:2000

Posted 05 October 2012 - 08:01 PM

Dear all! It's my first post here, so first of all, thanks everybody for this nice community.

I'm trying to do something that is identical to what Ravi did almost one year ago, so I will probably reuse as much as possible from his code. What I don't understand is: why the LV Task Manager doens't list compiled VIs?

My final project will be made by a few deamons, all of those possibly compiled and I would like to see a list of all the running ones using the task manager. Is it something doable?

thanks for any help!
cheers,

#52 asbo

asbo

    I have no idea what you're talking about... so:

  • V I Engineering, Inc.
  • 1,273 posts
  • Version:LabVIEW 2011
  • Since:2008

Posted 05 October 2012 - 09:08 PM

I'm trying to do something that is identical to what Ravi did almost one year ago, so I will probably reuse as much as possible from his code. What I don't understand is: why the LV Task Manager doens't list compiled VIs?

Compiled VIs? "Compiled" does not apply to VIs in the conventional sense; everytime you make a change, the IDE is compiling. I think you mean in a built executable - the reason these don't show up is because they're in the Run-Time Engine, and a separate application instance to boot, which is separate from the development IDE.
  • hilbert00 likes this

#53 hilbert00

hilbert00

    1 more post to go.

  • Members
  • 9 posts
  • Version:LabVIEW 2010
  • Since:2000

Posted 06 October 2012 - 05:06 AM

Compiled VIs? "Compiled" does not apply to VIs in the conventional sense; everytime you make a change, the IDE is compiling. I think you mean in a built executable - the reason these don't show up is because they're in the Run-Time Engine, and a separate application instance to boot, which is separate from the development IDE.



Thanks asbo! Exactly, I meant the result of the executable built.

When I launch the Task Manager I can only select the "Default Application Instance". Is there a way to add the Run Time Engine as well?
I know I maybe asking stupid question, so is there any tutorial to better understand this topic?

Thanks again,

#54 Ravi Beniwal

Ravi Beniwal

    Very Active

  • Members
  • PipPipPip
  • 94 posts
  • Location:Detroit
  • Version:LabVIEW 2011
  • Since:2001

Posted 07 October 2012 - 02:31 PM

*
POPULAR

I have created a plugin for the Task Manager that can be used from inside an executable, thanks to Michael and his guide to Plug-in Architecture using Packed Project Libraries. If you aren't familiar with PPLs, I'd highly recommend at least a quick glance through this guide.

Attached File  LabVIEW Task Manager Application.zip   603.13KB   332 downloads

I took Mike's example and created a plugin that launches the task manager. You can add it to your application as an Easter Egg (set it to load on some secret key combination). You don't have to distribute this plugin with your application, but if you are called to debug something on a deployed system, you can just take this plugin, drop it at the designated place (same as the exe in this example) and enter the key combination to launch it from within the application.

To see this in action, launch ..\LabVIEW Task Manager Application\build\testApp.exe.
If "LabVIEW Task Manager.lvlibp" exists in the same folder as the exe, your key combination will bring it up.
  • asbo, Stobber, GregPayne and 1 other like this

#55 hilbert00

hilbert00

    1 more post to go.

  • Members
  • 9 posts
  • Version:LabVIEW 2010
  • Since:2000

Posted 12 October 2012 - 05:13 PM

I have created a plugin for the Task Manager that can be used from inside an executable, thanks to Michael and his guide to Plug-in Architecture using Packed Project Libraries. If you aren't familiar with PPLs, I'd highly recommend at least a quick glance through this guide.

Attached File  LabVIEW Task Manager Application.zip   603.13KB   332 downloads

I took Mike's example and created a plugin that launches the task manager. You can add it to your application as an Easter Egg (set it to load on some secret key combination). You don't have to distribute this plugin with your application, but if you are called to debug something on a deployed system, you can just take this plugin, drop it at the designated place (same as the exe in this example) and enter the key combination to launch it from within the application.

To see this in action, launch ..\LabVIEW Task Manager Application\build\testApp.exe.
If "LabVIEW Task Manager.lvlibp" exists in the same folder as the exe, your key combination will bring it up.


is it possible to have a version saved as LabVIEW 2010? thanks!

#56 TimVargo

TimVargo

    Active

  • Members
  • Pip
  • 22 posts
  • Location:Albuquerque, NM
  • Version:LabVIEW 2013
  • Since:1994

Posted 16 August 2013 - 12:01 AM

Ten MORE months later...

 

A question for AQ:  In this very thread, at this post here, you mentioned getting some specific support added into LV 2012 (unlikely) or later, that would greatly enhance the capabilities of this LabVIEW Task Manager tool, regarding aborting of subVIs (the second of your two "sucky news" issues).  Well, now that LV 2013 released last week -- did any core changes get implemented to help solve this problem?

 

I'm liking this tool very much!  There are many ways to write good code that make it easier to keep track of many tasks, but where this tool really shines is when trying to make sense of a deluge of tasks (especially asynchronous ones) spawned by inherited code!



#57 Aristos Queue

Aristos Queue

    LV R&D: I write C++/# so you don't have to.

  • Members
  • PipPipPipPipPipPip
  • 2,800 posts
  • Location:Austin, TX
  • Version:LabVIEW 2011
  • Since:2000

Posted 22 August 2013 - 03:09 PM

did any core changes get implemented to help solve this problem?

No. I'm not working on LV myself at this point, so my traditional "let me just slip this small tweak in to help LAVA conversation" fixes aren't there this round. Instead I have to convince others to work on it. But there is good news... the plan -- and let me stress plan -- is to work on several debugging-related improvements for 2014, and I'm asking that some work be done to make this task manager work better. No promises, but I am making the request.



Thanks asbo! Exactly, I meant the result of the executable built.

hilbert00: I missed your question when you first posted it.

 

EXEs are closed boxes with no way to open VI references into an EXE from outside the EXE. So far as I know, there's no way around that. You can compile your EXE with the option to allow remote debugging and then attach the development environment to your running EXE. I haven't tried it... that *might* allow you to open references to the VIs in the EXE. You'd have to test it.

 

 

When I launch the Task Manager I can only select the "Default Application Instance".

If you open projects, each project is a separate application instance. If you're a programmer in other programming environments, the terminology may sound foreign since it is all within a single LabVIEW.exe. It lists all the application instances available within the current LabVIEW. This is why I think the remote debugging idea might work -- a new local application instance is created to debug the remote EXE.



#58 lvb

lvb

    Very Active

  • Premium Member
  • 197 posts
  • Location:Michigan
  • Version:LabVIEW 2012
  • Since:2003

Posted 22 August 2013 - 05:05 PM

But there is good news... the plan -- and let me stress plan -- is to work on several debugging-related improvements for 2014, and I'm asking that some work be done to make this task manager work better. No promises, but I am making the request.

 

Please, please add a VI server call that properly reports which VI's are running!  (See thread here)


Brian Fischer

Certified LabVIEW Architect (CLA)

Certified TestStand Architect (CTA)


#59 Aristos Queue

Aristos Queue

    LV R&D: I write C++/# so you don't have to.

  • Members
  • PipPipPipPipPipPip
  • 2,800 posts
  • Location:Austin, TX
  • Version:LabVIEW 2011
  • Since:2000

Posted 22 August 2013 - 08:15 PM

Please, please add a VI server call that properly reports which VI's are running!  (See thread here)

Probably won't happen, but I'll mention it. There's a long list already. We did a lot of pruning with customer groups at NIWeek and with some customer education groups over the last year or so.



#60 SJ_Buddy

SJ_Buddy

    I've come back for more.

  • Members
  • 2 posts

Posted 15 September 2013 - 08:00 PM

Hello Ravi Beniwal and Aristos Queue,

 

Have you had a chance to test LabVIEW Task Manager in LV2013. I have been successfully using your VI on LV2012 (Thank you sooooooo much for great work).

 

But I have upgraded to LV2013, and now I cannot see clone VIs any more. It is really killing us if we cannot see the clone.

 

Could you take a look.

 

Best Regards,

Attached Thumbnails

  • TaskManager2013.png