Jump to content

Recommended Posts

I often have to create interfaces for power supplies. I often use the QMH for my overall architecture.

 

I have created a QMH that controls multiple power supplies. It was designed in such a way that it takes a minute to add an additional power supply. Of course I am using Dynamic Dispatch to use multiple types of power supplies. It works quite well.

 

I am trying to get better at LVOOP and plug-ins. I was thinking of creating an abstract class that contains a QMH for just one power supply. Of course I would create children for several types of power supplies. My plan with the single QMH for each power supply would be to use it as a plug-in or use a sub panel so that all the QMHs are on one UI.

 

If anyone has any advice on the methodology please feel free to comment. Also I am new to LAVA so I hope I am not asking something that has already been solved.

 

 

Edited by RedAndGreen

Share this post


Link to post
Share on other sites

Using a number of interaction queued message handlers (QMH) is quite a common architecture (sometimes known as “actor-oriented design").  There are multiple packages in the community that people have made available**, and I believe quite a few people have their own private implementations.   Personally, I usually have a separate QMH for each independent bit of hardware.   I have sometimes done an LVOOP driver (with child types) inside a QMH, which I think is what you are describing.

 

 

** Mine is Messenger Library (an introductory video); there is also the Actor Framework (part of LabVIEW), Delacor DQMH, and Aloha, just to name a few that are available on the LabVIEW Tools Network, and you’ll find a few other examples on LAVA such as Message Pump.

Share this post


Link to post
Share on other sites

drjdpowell,

 

Thanks for the feedback. Boy do I have a lot to learn.

 

I know how to do inheritance and dynamic dispatch but I don't know much about design patterns and frameworks.

Share this post


Link to post
Share on other sites

Hi there,

This may be a little late but I wrote a blog post regarding the use of a HAL (Hardware Abstraction Layer) inside a QMH. OK, it's our own flavour of QMH which we call the DQMH but the post content is still valid for your use case. In addition the example I use is based around a Power Supply;

Here's the link 

http://www.walkingthewires.com/2015/10/21/hal-in-your-dqmh-2/

Hope it's useful

Chris

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Similar Content

    • By 0_o
      Hi,
      This is not specifically LabVIEW related:
      How do you organize important posts you read and want to save for the time of need?
      For example, I want to save an interesting post from Lavag/NI Forums or any other LV blog.
      This post might contain VIs and I would like to tag it in a way that will let me find it when it becomes relevant.
      I would like such a post to be saved locally like an RSS so that I'll get the new comments and won't depend on the site to keep the links alive.
      I see the veterans here keep track of all the new posts and even offer solutions by giving links to some old posts without having to search for them sometimes.
      Do I miss something? How do you organize it all? I hope to hear of some cool little RSS app that will let me search through the tagged vis and posts stored on my computer and not about some bookmark manager.
      Thanks in advance.
       
    • By Moes
      Hello everyone i am relative new to labview and currently i am bit stuck need help...
      i want to capture data with a digital trigger on my chassis PFI0 (9178), the pulse is 20ms long and occurs on my straingauge 9237 module.
      The pulse comes in 10 times in a row with couple of miliseconds between it, can i measure it every time and push it inside an array like a "last in first out" memmory to evaluate it slower for the user?
       
      I am currently struggeling with the loop dividing into more then one loop approach.
       
       
      How to breach out from accquire->store->plot in one loopdone right with good performance? I don't know how to shape the cure because there is a dependency from loop time to datapoints with the daqmx task inside of it :-/
      Capturing should always be possible and run in background and the user just uses the frontend to play around with filters (me learning what filter shape the cure in which way)
       
      It would be nice if someone can share their knowledge towards realizing multiple graphs from a pulse that comes in and is stored in a graph.
      I know my program is not pretty right now but with progress it will be nicer, function first to learn!

      WheatstoneSix_6.vi
    • By Taylorh140
      I am trying to use a mixed signal graph to plot a set of digital data (12 lines) and 4 arrays of analog data in XY format.  For the analog data I want each array to be assigned to a different group in the graph, but at runtime they seem to all default to Group 1 (the Pressure graph shown below).  I have been able to change them using the legend or the graph properties for each plot, but cannot find a way to do it programmatically.  Is there a property node that can be used to set this?
       

    • By Axelwlt
      Hi,
      Is there a way to make a type def behave as a Strict Type Def during development (so that cosmetic changes made to the .ctl are propagated), and as a Type Def. at runtime (so that the cosmetics can be still be changed with property nodes)?
      My use case is that the code just needs to colour the controls at runtime, the other property values are decided during development.
    • By Tomi Maila
      At JKI, we have found that a professional user interface design can make a huge difference for LabVIEW applications. That’s why we’re very proud to announce we have just released the JKI Flat UI Controls for LabVIEW, a beautiful, professionally-designed set of LabVIEW controls that we use on some of our own projects at JKI!  We hope that by sharing these with the community, we can help make it easy for just about anyone to build their own beautiful and intuitive user interfaces in LabVIEW.
       
      Learn More & Download 

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.