09-03-2021 03:48 PM
I am new to DQMH. In my application I have
1. Controller - Reads configuration file and calls respective instrument. Using EHL and MHL (producer/consumer pattern).
2. Power Supply - Gets the event message from controller. Sends the event back to controller.
3. Scope - Gets the event message from controller. Sends the event back to controller.
My question:
1. Controller - How do I invoke an event programmatically within the controller? For example when the broadcast is received by the controller (lets say from Scope), if Scope message status is success then I need to programmatically generate event so that controller can invoke the event (say Next Test) case.
Thanks.
09-03-2021 04:24 PM
If all three entities you describe (Controller, Power Supply, and Scope) are DQMH Modules, then any module can send a request (or register for a broadcast) from any other module. So I guess I don't fully understand the question?
09-03-2021 06:56 PM
Hi Ivrat,
In your description, for the Power supply and scope modules you state "Gets the event message from controller. Sends the event back to controller."
Two questions:
1) Is the controller calling Request and Wait For Reply events from the Power supply and Scope? If yes, then so far so good. If no, then could you elaborate what you mean by "Sends the event back to controller"?
2) Assuming you said yes to the previous question, the controller would be eventually receiving a reply from the Power supply and Scope to indicate that the action has been completed, and then the Controller can continue to do the next task.
If you're creating a test sequencer here, then I recommend you don't use self-queuing in the MHL to act as a sequencer. Instead, you'll want a state machine to manage the test sequence.
09-17-2021 12:39 PM
Thank you for all your help.
I used Request messages send from controller. Power supply and scope broadcast the reply back. Currently I am not using "Request and wait for reply events" as controller needs to perform next task after sending events to scope.
Although another follow up questions:
When a stop test is selected on controller, all modules (eg.scope, DMM) need to stop their current execution so that next test can be performed. If scope is waiting for trigger then how do I break it out of it before timeout? I am using TDS3052 and its LV driver.
09-17-2021 05:36 PM