DQMH Consortium Toolkits Feature Requests

Community Browser
Labels
cancel
Showing results for 
Search instead for 
Did you mean: 
Overview
Get support when using Delacor toolkits.
Post an idea
j.eggs

Now, when creating a round trip event, the broadcast event uses the exact same typedef as the reply payload. When using a cloneable module, this causes the broadcast event to miss the module ID and therefore any listener to this broadcast event does not know from which module it comes.

 

One typical use case we have which illustrates this is a cloneable module to drive a thermal chamber. The "get thermal chamber status" must be a request + wait for reply, but we also added a helper loop in the module's main to execute a periodic status check and the status update must be shared to everyone using a broadcast event so it can be displayed on a top VI's user interface for example. Actually, if we create a "round trip event" the brodcast event created misses the module ID, therefore the top VI cannot know the status of which thermal chamber was updated.

 

A possible solution I see is the broadcast event to have it's own typedef, composed of the module ID and the typedef of the reply payload.

 

What do you think about this proposal? Do you have other suggestions?

j-medland

The DQMH library has several errors defined in privately scoped VIs like "Module Not Running--error.vi".

It feels like the error codes associated with these error constants form part of the public API but there is no way that the library caller can know what these codes are without the omnipotent powers of the developer looking into the code (or deliberately triggering the error in an API call).

What would be people's thoughts on providing some public VIs which wrap up the private error constant VIs and just output the code for use with the things like the "Clear Errors.vi" or other error handling logic?

I know these could be added to a custom template but if the point of the DQMH is to encourage good practice then avoiding magic numbers in the caller's error handling logic is a win right!

Cheers

 

John
 

Eric_BOB

1)I don't think it's possible in DQMH 5.0 to modify arguments of one Event without removing it and re-create it. Lots scripting but very useful. Perhaps, in the convert tool menu?

2) Remove automatically all vi's and controls create during event creation if there is a problem during this process. I have encountered this problem and I have lost time before understanding why I couldn't recreate the same event.

0 Kudos
benjamin-hinrichs

When working with clonable modules it is possible (although not desired) to address a Module ID instance that doesn't exist (e.g. has already been closed, never existed in the first place). All clones would ignore said request and in the best case you'd see a timeout error. This may bring about unexpected bugs, especially when working with Requests (without reply).

 

I think the request should check if Module ID exists and throw an error if it doesn't. This could work by modifying the Request and Request with Reply template to the following:

benjamin-hinrichs_1-1611666541492.png

 

I propose to add such functionality to the DQMH Clonable Template and check for this in module validation.

 

0 Kudos
Eric_BOB

Today I want to validate one case of use in your QMH toolkit. My case is to simply add some messages queue with priority in front of the queue. But during my test, I encountered a strange result, the step isn't in the expected order. After looking in Delacor_lib_QMH_enqueue Message(poly).Vi, I show that vi run as coded, but not as (for me) expected and logical. I think that when you want to add some steps with the priority you want to add all steps in the same order as in the Message array, but with your vi it's not the case. For example, if you want to add 4 Messages (1,2,3,4) with priority, you won't obtain 1,2,3,4, but with your vi you obtain 1,4,3,2.

I send you a test vi to see that.

I have a workaround and propose some modifications for that vi.

1) I don't understand why you want to create an array for priority (boolean array priority message). I don't show why mix priority and not priority are use cases. And the result order is completely unpredictable. I propose to modify the array by just one boolean, and in this case, all message array became a priority (front) or not (back).

2) In case of the queue is empty, the priority has (for me) no sense, and i put all added Message array with no priority to respect order.

3) In case of the queue isn't empty, I invert all added Message array (and Message Datas array too) to respect order.

I send you one version of modified VI to see how. You must add it to your Delacor QMH library to run it.

Eric

Download All
CyGa

A round-trip can be summarized as a Request and Reply event + broadcast of the reply.

Round-trips are particularly useful when debugging systems where the access to the module itself is hard to get (like when using TestStand / VeriStand platforms). They are very good sniffers to understand what's going on under the hood.

 

I would find it very valuable if the broadcast could also carry the request arguments !

This way the 'sniffer' could expose the context of the reply : reply is formed that way when the request contains such arguments.

joerg.hampel

This feature request is adding to the already existing "Private Request" and "Helper Loop Creation" requests (or not?):

 

When working with helper loops in cloneable modules, it would be nice to have a way for sending messages from the MHL to the helper loop which doesn't need the module ID, and which doesn't interfere with other clones' helper loop timings. I'd still like this new mechanism to look and feel like the regular events, with all the scripting and other goodness.

 

Maybe instead of calling them private events, a better name would be "local" events (which would, of course, be set to private scope).

CyGa

Hi,

In order to reduce the number of clicks to launch a DQMH scripter, that would be great to be able to launch them from the LabVIEW New... menu !

Indeed this window has several advantages :

  1. The tree view keeps its layout from one excution to another. So if the last thing I did from that window was to launch the 'New Event...' scripter, next time I'll launch this window this item will be directly accessible
  2. It allows inserting the created code into the project or not. So to create quick code without adding it to the currently open project, this is quite usefull
  3. The tree view makes easier to choose the scripter to launch. With Tools menu, if the mouse pointer accidently leaves the menu and overs another menu entry, you've got to go back and re-do some of the menu selection process
  4. A LV keyboard shortcut can be added to the New... action. In my case I redirected the CTRL+N shortcut to launch the 'New...' window instead of triggering the 'New VI' action. It would allow me to launch a scripter with 1 keyboard shortcut + 1 double click ! Quite fast !

Olivier-JOURDAN

Note: I couldn't find any idea/discussion about it and it's surprising. If I missed something, please point it out to me and accept my apology.

 

The idea would be to access the most used scripting tool via Quick Drop.

 

My wish list:

  • Create New DQMH Event...
  • Add New DQMH Module...

Darren

When NI released VI Analyzer 2018, they included a feature to ignore VI Analyzer test failures for specific objects and VIs through the use of #via_ignore bookmarks:

 

Untitled.png

 

I would like similar functionality for ignoring DQMH Validate Module failures. I propose that if a VI contains a #dqmh_validate_ignore bookmark anywhere on its diagram, then that VI will not return a failure for any DQMH Validate Module test whose name is included in that bookmark's label. Something like this:

 

Untitled2.png

Olivier-JOURDAN

I'm triggering module validation with CI. On a large project (40+ modules), the validation takes 20+ minutes to execute.

 

I'm wondering if there are ways to reduce this execution time.

Olivier-JOURDAN

Original idea from Matthias Baudot in https://anchor.fm/wired-in-software/episodes/Episode-6---Matthias-Baudot-from-Studio-Bods-emtpti

 

When you have lots of modules (20+), initializing module selector control tends to take seconds that can be annoying when you need to use the scripting tools.

 

Finding a way to remove this init time would greatly improve the user experience in large application development.

CyGa

Hi,

 

Some of my events have a common events arguments and/or reply payload.
Creating a template would speed up their creation.

 

Also, when using round trips from TestStand, I made a modification to the content of a round trip event to easily handle termination.
It could be nice if this modification could be saved as a template, so that every round trips I create to be used within a TS sequence would contain automatically that modification.

CyGa

Hi,

When creating Request And Reply / Round Trip events, the timeout to get the answer is set as a constant which is global to the module.

It would be nice to personalize this timeout to choose between :

  • Module timeout
  • Personnalized timeout with a control to enter a value in millisecond

If Module timeout is selected, then module timeout -- constant.vi would be wired to the 'wait for notification' timeout input.
If Personnalized is selected the value set by the user would replace the module timeout -- constant.vi (using a constant instead, or better calling a newly create 'request name' timeout -- constant.vi)

0 Kudos
BenjaminR

Hi Everyone, 

 

I'm wondering if anyone already wanted to port existing DQMH module to a newer version.

 

Basically, we implemented our own DQMH Template, that we improved it days after days. As we added some amazing and usefull feature to our internal DQMH Framework, we'd like to port some existing modules to our newest version.

 

I know, this would intensively use VI Scripting. But, maybe the Delacor team has a Magic Tool to do this porting 😉

By the way, If anyone has already been facing this situation and I'll appreciate to discuss about it.

0 Kudos
psmorris

Sometimes, I need to create two or more very similar request and wait for reply events - one to perform some kind of action (e.g. set the value of vertical range on a scope card) and one to query that value. In both cases I want to return the value that was actually set. At the moment, I end up with two identical reply payload typedefs as its not trivial to reuse them between events.

 

When creating a broadcast event you can already select to use the payload of a previously created request and wait for reply, I'd like to see that option available in request and wait for reply events too...

 

Thanks

 

Paul

psmorris

At the moment, when we create a request and wait for reply event, the reply payload (correctly) includes an error cluster to report any error that occurred during the handling of the request. However, the error cluster label includes the request name, even though it is within a typedef'd cluster which already uses the request name.

 

Not only is this a pain as it can take up a lot of block diagram space - I thought duplicating names of structures with a structure was not great style - if its in the "Do something request and wait for reply (Reply payload)" cluster, it probably doesnt need to be called the "Do something request and wait for reply_error"

 

Could it be changed to just be called "Error"?!

 

Just a thought...

 

Paul

CyGa

Hi,

Today when I finish creating an event / module, If I want to create a new one I've got to click again on Tools => Delacor => DQMH => Create...

Sometimes, after planning my architecture I'll need to create several modules/events in a row to start building my app.

Going through the menus each time is a pain in such case.

 

Maybe replacing the OK button by a Create button and a Create and Continue button would help to this (like you can have using Redmine for example).

 

The Create button would act like the OK button today.

The Create and Continue button would generate the new event / module but without closing the window.

It would simply reset the fields to their defaut values (and reopen a new virgin payload/paramater window in case of creating an event).

 

This way creating several items in a row would be really faster and easier.

 

(more details in the ppt attached)

joerg.hampel

Wouldn't it be great if we could hook into the scripting process of DQHM and, for example, add our own automation steps to the creation of new modules or new events? Something like the "post-build VI" feature of the application builder...

 

This has been discussed before in the now deprecated "Feature Requests" thread

Konan__

Please create an additional toolbar named "Delacor" that has at least 2 buttons: one to create a new module, one to create a new event.

 

It's too tedious to go everytime via menu Tools, Delacor, DQMH, bla bla

 

Clipboard01.jpg

 

In this picture you can see on the right the JKI tester toolbar, and also the NI Unit Test Framework toolbar.

 

thanks