Structure of the event by tabs design pattern

Hi all

Worked on a user interface using a model of design of event structure to respond to pressure on the button.

The interface got big enough and I decided to organize buttons into groups and put them on different tabs (to the Group feature).

However, when I put a case all about the structure of the event statement to separate the code on the pattern too I was not able to switch tabs and the interface gets stuck.

Attached example.

I could put all the events button of different tabs in a structure of the event, but thought that this could get very large and unreadable. Is there a standard design model that responds to this problem?

Thank you very much.

Select this option.

Medwar19 wrote:

Hi all

Worked on a user interface using a model of design of event structure to respond to pressure on the button.

The interface got big enough and I decided to organize buttons into groups and put them on different tabs (to the Group feature).

However, when I put a case all about the structure of the event statement to separate the code on the pattern too I was not able to switch tabs and the interface gets stuck.

Attached example.

I could put all the events button of different tabs in a structure of the event, but thought that this could get very large and unreadable. Is there a model of design standard that meets this problem?

Thank you very much.

Select this option.

Standard version?

If you the tabs correspond to States so high kitted out to call a Subvi who is responcible for this State.

Then inside the Subvi handling state that I use recording dynamic event to implement the events I have to the service so that in this State.

This is what one of these sub - VI may look like.

What makes very clearn that we treat in Thøis operating mode.

Ton wrote a nugget on registration of dynamic event which can be found here.

Ben

Tags: NI Software

Similar Questions

  • Structure of the event - controlled motor not variable

    I have a state machine that includes certain structures of the event. These event structures are used to control stepper motors using an Arduino Mega microcontroller. I'm using labview in 2012.

    The entrance to one of the events is the variable "pour the entry. I want to use it to control the motor speed and direction.

    If I control the motor as shown in the attached image Working.jpg, then the motor functions correctly. If I fix the motor to the steps variable # then the engine moves at the speed set in the right direction depending on whether the entry "pour" is positive or negative.

    However, I want to control the speed of the engine, not the number of steps, with the variable "pay Input". I checked that the values read by the indicator image INPUT_VALUE works do not are of the same order as the specified values, working, by using the "Set Speed". When I connect the value of the entry to the spindle speed of the motors of the Arduino (not_working.jpg) icon, the engine is running, apparently indefinitely at maximum speed. I don't understand why there is a difference in motor behavior between the value provided by these two methods at the entrance to the speed of the motor. I am confused by the present and don't know where to go from here.

    The structure of the event somehow behaves differently when taking a value from outside the structure to this data inside? or y at - it something to do with the opening of the structure on its first loop?

    I have also attached my vi together, even though she may not be the easiest to follow and requires an arduino Mega to run.

    Carlr wrote:

    I have a state machine that includes certain structures of the event. These event structures are used to control stepper motors using an Arduino Mega microcontroller. I'm using labview in 2012.

    The entrance to one of the events is the variable "pour the entry. I want to use it to control the motor speed and direction.

    If I control the motor as shown in the attached image Working.jpg, then the motor functions correctly. If I fix the motor to the steps variable # then the engine moves at the speed set in the right direction depending on whether the entry "pour" is positive or negative.

    However, I want to control the speed of the engine, not the number of steps, with the variable "pay Input". I checked that the values read by the indicator image INPUT_VALUE works do not are of the same order as the specified values, working, by using the "Set Speed". When I connect the value of the entry to the spindle speed of the motors of the Arduino (not_working.jpg) icon, the engine is running, apparently indefinitely at maximum speed. I don't understand why there is a difference in motor behavior between the value provided by these two methods at the entrance to the speed of the motor. I am confused by the present and don't know where to go from here.

    The structure of the event somehow behaves differently when taking a value from outside the structure to this data inside? or y at - it something to do with the opening of the structure on its first loop?

    I have also attached my vi together, even though she may not be the easiest to follow and requires an arduino Mega to run.

    You have a very inappropriate design of "state machine" - even if you do not have same event in more than one of your structures of the event (in addition to time-out), looks that get some of your treatment to go forward until you get something very specific (and in which none of your other user events are being processed).

    I strongly suggest that first set you design of State machine - perhaps follow producer/consumer Design Pattern (events) rather than having everything in a loop, the way you have.  If you keep everything in a loop, you should consider redesign so that you at least allow events to deal with rather than stay in a loop for an indefinite period!

    In any case, in the case where work, you send variable "Set Speed (steps per second)" for engines step by step write vi.  But otherwise, you're feeding 'Entry for' value - are they the same? And to let you know, you send only command "write" step by step when the input value to be paid.

    It's a big mess!  For starters, look at the attached picture, get rid of your structure of the event that has "for the entry" and replace it with what I showed in the picture. (In fact, all your event structures can / must be replaced with a similar logic.) Does not need the event structure in all this, you're just more complicated it must be!

    -DP

  • Structure of the event with gray and disabled controls

    I'm working on a data acquisition program that uses the structure of the event to manage the graphic user interface.  I have a 'start logging' button that raises an event when the value changes and starts to collect data.  While collecting data, the program disables and gray on all controls on the front panel except the button "stop logging" that ends a while loop with in the event of data logging.  If this event is active only when you press "stop recording."  There are other events that are triggered by a mouse up/down, action others controls disabled on the front panel.  The problem is that, while the program collect data if you click on one controls disabled and gray that has a mouse up/down, event, the program seems to hang and will not push the button ' stop logging.  I don't know if his attempts to run another event, but he continues to logging data, I just can't stop it.  I have to use the Cancel button to stop the program.

    The real problem is that a control, even when disabled and grayed out, can still trigger a mouse to the high-low event - controlled, it true?  Also, what happens if an event is raised during execution, another event my understanding was that a single event can run at a time.

    Thank you

    Doug

    Doug,

    By reading between the lines, here a bit...  Looks like you have your data collection and logging code in the box to Start Logging event.  If so, this is part of the problem.  No other case of event cannot run until this one is over.  Move data collection and the registration code to a parallel loop.  Have this loop to sit in an inactive state until you press the Start Logging button.  Then, in case for the button change send a command via a queue to the loop of logging and out the case of the event.  The event loop is then immediately ready to respond to the next event.

    Generally the code within a case of event should run quickly, no more than 10s of milliseconds for maybe 100 ms to avoid slow response to another event.

    Look at the producer/consumer (events) design pattern which comes with LV for an example.

    Lynn

  • problems with timing in a time loop in a structure of the event

    Hello

    I'm using labview to control three motors stepper, running the three stages of different translation in different axes (X, Y and Z). Please see the attached VI, focusing on the structure of the event on the RIGHT side.

    In the Z axis, I am trying to run the engine for 5 seconds, after clicking on a button. I have attampted to do by adding a sub of elapsed time VI within a while loop, located in the tab 'Mouse before Z down' the structure of the event. A similar "elapsed time while loop" is also included in tab 'Z reverse the mouse down' the structure of the event.

    Separately these "elapsed time loops" work very well, BUT when I run a Z direction after another, say 'Z Reverse' and then 'Before Z' then they annoyingly interact. The calendar is gone, with the moment where we add, rather than rebooting.

    No idea how I can reset the time elapsed while loops? Or is there another method better do?

    Thank you very much

    Charlie

    charlieryan wrote:

    I take a wire from the 'i' of the while loop at the entrance of the Sub autoreset - VI of tiem will blink?

    No, connect you to the "reset", not "autoreset".

  • Doubt in the structure of the event

    Hi all

    I am developing an app for my instruments that is user interfaced.i am new do VI architecture. In my program I use architecture producer and consumer, structure of the matter and structure of the event. In this framework programme first four are working properly, but the fifth framework structure of the case does not good. I have attached my program then please read it tell me what I did wrong?

    Thanks in advance

    Here is an example. Sorry, the pattern is a little messy.

  • How to use a structure of the event in a Subvi

    I am using a structure of the event within a Subvi.  The Subvi has a table constructor that built tables and the structure of the event is used so that when the program runs, it allows you to change the elements of the array.  It works, but when I apply within a Subvi, it does not work properly.  This goes into a Subvi, because it will be part of a much larger progrram, so it must be modular.

    If you are using a structure of the event, it is not a Subvi.  If you worry about modularity, you should not use the structure of the event.

    You seem to have a fundamental misunderstanding of modularity.  An event structure must be placed in a while loop.  If you have a while loop in a Subvi, you have transferred control of your program to the Subvi.  You are not at this stage modular.  Your higher level GUI has no control.  You would have to create a stupid system of variables to pass data down to the loop to stop the loop and return to your main VI.  This is not a good design decision.

    Instead of searching for a way to make something broken, you should spend effort trying to understand what you really want to accomplish.  You should also spend some time to learn how to work the event structures.

    This application is small at the moment and it is already on the way to the unreadable.  It's a terrible thing to do for you.  Break these habits now.  variables are only when absolutely necessary.  Using subVIs to accomplish individual tasks, do not run the entire application.  With the structures of the event, use a value of stop button change event for will not be held hostage to the time-out.  If your variable is '2' in it, you're doing something wrong.  It has to be something different between set points, put it in the name.  If you want to make the subVIs, create an icon.

    But first and foremost, invest time in understanding dataflow

  • Control of the event: how to stop the race while loop within a structure of the event

    Hello

    I have some problems with control of a while loop inside a structure of the event (see annex VI).

    I have 3 buttons (the "Start measurement, stop, exit the program"). When a measure is running, it should be possible to stop the measure by clicking on "Stop the measure", but it does not work.

    Someone at - it an idea?

    Thank you very much and best regards,

    Michael

    Hi Michael,

    create a process parallel to your measurement. You can use the design model "producer/consumer with vents. You'll find it with «File-> new...» ».

    Another possibility would be to remove the "lock frontpanel" sign, in the case of event start measurement.

    Mike

  • Structure of the event without user interface

    I tried a quick and effective solution for a structure of event that is not a case of timeout and is part of a vi that has no user interface, but I have sent configuration data to the structure of the event.

    Let me be more clear: I have a camera that generates several events taken by a loop with the structure of the event inside.

    The provider of the camera give me this example of Labview code with all the events I'm interested and how they are implemented. I should mention that when you write a command of camera that a response to an event, but when you connect first to the camera there are more than 100 events generated by the latter, or when you download camera there are also several events. When there is no communication to the camera, the structure of the example event is inactive. The example includes a user interface to change settings and the program responds very well.

    I have to integrate this camera in great demand in which camera photo will be configured in a pragmatic way with number of the type of user interface in the example given by the manufacturer of the device.  First, I tried to design a loop with timeout cases in which a queue can send the data to the device setting configuration. Everything is good until the download when code needs to hold events in a certain way; in my case, an event is taken another goes to the time-out period and so on. After two sets of 100 images download, during the third round Labview gets blocked (Labview not responding) and I have to kill Labview. I got designer of the camera that if camera events are not taken they are kept on a pile and when the battery is full causes the Labview locked.

    Maybe I give too many details, but the question is: how to communicate with a struct event that is not a case of timeout and does not part of a user interface vi (it doesn't have a sign in my application)?

    Oops... Sorry about that.  I've attached an example what I'm talking about here.

    -Austin

  • Identify the specific control of Cluster in the structure of the event.

    Hello

    Maybe, I did my cluster wrongly mixed in a cluster of design control as seen in the attachment.

    Because of the mixed type, I can not use 'cluster to table' and impossible to identify which is different in a cluster.

    In the structure of the event, I need to make a process of changing values in the cluster.

    But how can I know if the Boolean control is changed or not?

    I would like to start a dialogue for the entry more if the set time is selected.

    labmaster.

    You could do an event to change the value for the Boolean value within the cluster.

  • structure of the event a substitute

    Hello everyone and sorry for what I think may be a very newbie question, but I can't understand not just how to use the structure of the event in my program.

    The presentation is as follows:

    I'm using labview for control devices in my lab.  I have to activate something for 30 minutes, then heat it for an another 30 miunutes (the first device is controlled DAQ and the second is controlled GPIB).  While these two processes occur, I monitor a temperature using the data acquisition card.  The two-step process is finished, I have to wait for the temperature to be lower at some point and then start again it.  So, I have to repeat this process for a number of times defined by the user.

    My question is this, I use a structure of the event to handle it all (this is maybe not the best way to do it, if you know a better way, feel free to share!).  The whole process of starting the program, I want to be able to stop it at any time in case something goes wrong, and I would do this by using a Boolean on the front panel, because I will finally control the process from a distance.  Is it possible to substitute a case of the event once it has started?  I have no doubt a 'Wait (ms)' VI in there somewhere to facilitate synchronization of processes, but once the VI begins the program waits until it is done before register you for any other button presses.

    Thanks in advance for any response,

    -daman

    You should definitely read up on State Machines!

    Maybe the link in my previous post doesn't work.  Try these.

    Reference design - http://zone.ni.com/devzone/cda/epd/p/id/6091

    State machines - http://zone.ni.com/devzone/cda/tut/p/id/3024

    ExpressionFlow Blog on policy - http://expressionflow.com/2007/10/01/labview-queued-state-machine-architecture/

    Machine States JKI - http://jkisoft.com/state-machine/

  • Structure of the event with sub-panels

    Hi, I tried to find a simple example with a structure of the event and only two sub-panels.

    I found the 'new Event Handler.vi' and I'm doing something with two sub - vi I did 'Add.vi' and 'Mul.vi '.

    To be able to switch between the two sub-panels used in 'New Event Handler.vi', the programmer used a "time surge" which I can't locate

    anywhere, so I just copied 'new Event Handler.vi '.

    I can't get this to work.

    Take a peek inside the world

    Sincere greetings,

    Lasse

    Hi Lasse,

    Yes, there is. If you open the properties of the subVIs Add.vi and Mul.vi (Ctrl + I), you can change in the tab 'appearance of the window' to that custom... There is an option display front panel, when it is called and the close later while initially closed just sellect them. Then, you will have the effect of 'pop up' :-)

    I slightly changed the example, so that can see them in the form of pop-up windows.

    See you soon

    Angel

  • create subroutines for several structures of the event and common stop button

    Hi guys,.

    I wonder if there is a better way to design algorithm below scenerio that similar technical rehearsal for each structure of the event.

    Please find in annex vi where I designed the code to a boolean (D). I want to design a similar code for all other bolleans. (In the present design code, photo is displayed when the mouse is flown over D). I obviously have other pictures for the other,(A,B,C,E,F) booleans. Can we have a kind of subroutines for other Boolean types and a single stop for all the application button.

    Thank you very much in advance for your support.

    Sorry (I forgot to add vi) Please find attached.

  • using the structure of the event in the LabVIEW classes

    Hello

    I'm new in the use of LabVIEW classes, so don't know much how I can use them.

    In my main program, I have clusters with five elements in each. The elements are controls two States and in some groups, there are three States controls. The user will press the buttons (controls), and different things will happen. In my first program were I not using classes, I had a structure of the event and the controls were cases of event in the structure.

    Is it possible to somehow use an event of cases in one of the methods that is created in the classes, so that say, that's not in the main program?

    I have attached two photos: I wanted to have a structure of the event in servoTouchEvent (in left.tri.lvclass) who is a child.

    Let me know if my explanation is not clear.

    Grateful for the help!

    Hello

    Yes, you can have a structure of the event in a Subvi rather in your main VI of top-level UI. The trick is to use the 'Save for events' and passing in references to orders that you want to have the event trigger structure for. The refnum output since the function is entered in the terminal of dynamic event of the structure of the event who could live in a Subvi. You can add instances of event where you will see these control events as dynamic events then you can do something with. These excerpts from shows all the code in a simple diagram, but the stuff in the structure of disable diagram could easily transformed into a Subvi:

     

    All this can be done without classes. What will buy classes you include the ability to encapsulate your screws and also perform different code based on what object on the hierarchy of the parent-child classes is on a wire. If the behavior of your code is different between 2-3 State and controls (which I do not know what state controls 3 you are referring), you can take advantage of the classes.

  • major error with the structure of the event

    IM under LABVIEW 13.0 PRO

    I don't know when this strarted bug happening, but now when I add a business to a structure of the event. Freezes in LabVIEW. I have to close labview with the Task Manager.

    It doesn't matter what code I'm working with, even a new VI, with nothing else than a structure of the event.

    I tried this on my desktop PC, my laptop and my CPU DAQ.

    The error occurs on my desktop and my laptop. But it does not occur on my CPU DAQ.

    Whenever I click on add event usually case, you get a popup to configure and add cases, but with the popup error never comes to the top and labview crashes.

    Theres no code to share the problem ocured when adding events to the event structure. It happened with any structure of the event, in any code, all the time.

    I spoke to an engineer of apllication of labview and suggested to delete the labview.ini file located in the installation of labview directory. I did this and the problem was solved.

    Still not sure what caused this to happen.

  • Structure of the event in primary vi and sub - VI with queues

    Hi all

    I have an application that uses the architecture of producer-consumer in which a queue transmits messages of a main VI by a Subvi, in response to the events of the user in the front panel. Inside the Sub VI, the queue is removed and treaty based on the corresponding message, and the result is displayed on the façade the sub of VI. User events are captured in the main VI using a Structure of the event. This works as expected.

    However, I also the controls on the Panel before the sub - VI to change the queue. My approach is to have another structure of the event in the VI sub for this. However, while the events in the main work of fine VI, events of sub - VI never treated.

    A simplified sandbox VI of what I'm trying to do is attached. As you can see, the main VI events are triggered as expected, but events in the sub VI are never triggered.

    I watched this white paper: detect an event in a Subvi from a high level VI , but it's not exactly what I'm trying to do. Instead, I'm just trying to detect an event generated within the Subvi. I searched this forum and found some research related, but none of them seemed to answer what I'm trying to do.

    Thank you

    Matt

    Your major issue here is the loop location.  While the structure should be inside the Subvi to make a message in the appropriate queue manager.  In fact, you should have 2 loops within your Subvi: 1) the QMH and (2) of the event loop.  You must use a user event to congratulate the event loop in the Subvi to stop.  You should NOT use the time-out of the Structure of the event unless you absolutely must.  And since everything in the Subvi is the message function, you do not have expectations.  They will be inactive (no CPU using) when there are no items to process from the queue or queue.

Maybe you are looking for

  • Apple support

    Did someone like * that I'm this assistance Apple constantly disconnects you when you're on the phone with them and they never bothered to remember? It happened more than once. They should be ashamed of themselves they became this mediocre. I just ho

  • My volume on my laptop is extremely low!

    My Entertainment PC HP Pavilion dv6-6c10us volume is so low I hardly hear it! Listening to music and watching videos or movies are extremely frustrating because I can barely hear the sound. I did a test of its scope. All sounds are at maximumsettings

  • H.D 'Store TV Toshiba 500 G' cannot read Arabic translation

    Dear team I have problem with my 'Store TV Toshiba 500 G' H.D it only is not supported to read Arabic text translated on moviesAre there measures to can be read in Arabic translate? Appreciate your help and your support Concerning

  • Why this call me?

    Hey. Until lately I get random calls and contact requests frequently an account that goes by the name of "NEW MESSAGE VIDEO HERE:" then a random link. Gets very boring, nobody knows how to stop it, and someone at - it? "You'll go far, kid".

  • Growing awareness of Firefox Skype Click-to-Call

    Hello! I'd like to edit regular expressions used by the plugin Firefox Click-to-call. I work online, and unfortunately, phone numbers that we use are entered by workers in a text field and so often don't are not properly formatted, so I would like to