Continous increasing using a event case

Hello,
I'm making a game space invaders in labview, but i've a problem with it. I have make my shooter already, I can move(step by step) and shoot with it ...
But my problem is,  I wan't to move continously. When I press the right key, it should keep on going ... now it stops after one step ...
How can I do this ??

Use the "Key Repeat" event to detect this.  Or, run a seperate loop that watches key buttons and sends the values over User Events.  Then, register the User Events and hook up the refnum to the dynamic terminal on the event case.  From there, you can watch those values.
7J1L1M

Similar Messages

  • Are you ever required to wire the dynamic event terminals through an event case?

    I remember some time ago, I ran into an issue while using an event case where my program was not functioning properly until, on a whim, I wired the dynamic event through that event case... now the reason I'm asking this in a general sense is because I don't remember what particular code I had this issue with and I could have been failing to update a shift register or something.
    In code I'm currently writing, I'm simply passing the dynamic event wire in a shift reg.  I was just wondering if there's any difference between wiring it through the event cases or simply passing it to the output shift register (without passing through the event cases)...
    any info appreciated!
    Thx
    -pat

    You do not have to wire it through. You don't need a shift register for references since the value will be the same for each iteration. In fact using a shift register is probably what caused issues. You probably updated it with the default value somewhere.
    =====================
    LabVIEW 2012

  • Multiple event cases ?

    I hear people saying do not use multiple event cases.
    is this in reference to multiple event cases in the same loop?
    is it ok to use 1 event structure per parallel loop?
    what happens if you have two parallel loops reacting to the same event?
    - James
    Using LV 2012 on Windows 7 64 bit

    James R wrote:
    I hear people saying do not use multiple event cases.
    Who are these people??! There is nothing wrong with an event structure containing multiple event cases.
    James R wrote:
    is this in reference to multiple event cases in the same loop?
    Yes, you should only have one event structure per loop, but that event structure can have multiple cases.
    James R wrote:
    is it ok to use 1 event structure per parallel loop?
    Yes. What makes you think otherwise?
    James R wrote:
    what happens if you have two parallel loops reacting to the same event?
    Nothing unusual. They will both fire whenever that associated event occurs. No problem!
    LabVIEW Champion . Do more with less code and in less time .

  • How can I use the same event case for different controls dynamically

    OS: Linux 2.6.24-1-686 #1 SMP Sat Apr 19 00:37:55 UTC 2008 i686 GNU/Linux
    LabVIEW: Version 8.2
    I have a lot of (about 50) controls (numeric, boolean) on my front panel. If a "Value Change" event will be fired by any of them the same event case shall be executed. As I do not want to add all 50 controls to the same event case manually I am looking for a way to do it at run time. Additionally the VI is still under contruction, i.e. controls will be added and removed.
    Thanks for any help here.
    Regards,
    Johannes
    Solved!
    Go to Solution.

    Hi Johannes,
    collect all your control references (you can use the FP property for it) and create a user event. Connect this user event to your event structure. Now you have one event case for all your controls. See the attached picture.
    Mike
    Attachments:
    Unbenannt1.PNG ‏11 KB

  • How to use only one event case at a time??

    Using LabVIEW, using the event structure is it possible to have only one event case execute at a time. For example, having event case controlled by keyboard, and the other event case controlled by mouse (clicking buttons) and only one being able to execute, not simultaneously. I was considering using a switch of some sort, but each case does not have a "stop if true/false" so I am open to a new method or work around. I attached code. I do not want output to be able to be sent from the keyboard case and mouse case at the same time.
    Thanks,
    Andrew
    Attachments:
    WiFi Motor Control & Cam Stripped.vi ‏29 KB

    Ah, OK. all you need is to keep state in a shift register that ensures that all "key down/mouse down" events are discarded after each key down/mounse down event until a key up or mouse up (resp.) has occured.
    Overall, you code is still way to complicated for this simple task. For example, you could eliminate all these "select" primitives and place the approriate diagram constant inside the respective case. On the other hand it is too simplistic, because you would think that certain key combinations should be allowed concurrently (e.g. up and left).
    What does the receiver actually do with the codes? Do you have any documentation for this device?
    LabVIEW Champion . Do more with less code and in less time .

  • Add event cases to an event structure using scripting

    Hello,
    Iam trying to (using scripting) update an event structure (add event cases) on a vi that is not on memory.
    i get error 1054 The specified object was not found.
    here is a picture of it.
    any help in this will be greatly apreaciated.
    Solved!
    Go to Solution.

    Another suggestion, the following VI is a wrapper for Traverse for GObjects VI and allows you to specify the name of the object you want. I always use this VI, I never use the Open VI Object Reference function, for the reasons tst mentioned:
    vi.lib\Utility\traverseref.llb\TRef Find Object By Label.vi
    Darren Nattinger, CLA
    LabVIEW Artisan and Nugget Penman

  • Can you use event case with labview real time?

    I have a real time application I am putting together and until recentally have concentrated on getting the data acquisition working as expected.
    I am using a PXI-8183 in a 1031 chassis.
    I am now trying to add the functionality for setting up the system in the form of a GUI remote front panel that I connect to with a host laptop.  I am connecting with the host as expected and it seems to be working well in that respect.
    My problem is with event cases, operating in a while loop on the target.  They just dont seem to want to trigger when i click on a button I have set an event for.
    I have looked through the documentation and cant see any reference to issues with event cases on rt, but I feel I am missing something fundamental.  Can anyone help?
    Regards,
    Barry

    look here maybe:
    http://digital.ni.com/public.nsf/allkb/42B70D2D0C4B568586256E2F0051441D
    Harold Timmis
    [email protected]
    Orlando,Fl
    *Kudos always welcome

  • State machine with using event case

    Hallo everyone,
    i have a question about how to realize the "Timeout". In the flow diagram below we can see 2 different situation:
    1. in the 1st Situation i have used the state machine, it begins at state 1, which contains a event case. In there it will be at first determined, if the input value has changed within 10 second,  if it didn't, the state machine will go to state 2, if it 's  changed, will be furthermore determined, whether the input value equal to 3, if yes, the state mashine will jump to state 3, if no, jump back to state 1. (this VI i have done before, you can take a look at the Attachment).
    2. my question is in the 2nd situation. It begins also at state 1. In there the input value can also be changed (once or many times) or not. If the value has not been changed within 10 s, or even though it's been changed many times within 10s, but  it's never been equal to 3, the state machine will go to state 2; only when the input value within 10s equal to 3, it can jump to state 3.
    This problem i have no idea how to solve, does anybody have  idea or better methods?
    thanks a lot!!
    Solved!
    Go to Solution.
    Attachments:
    situation 1.vi ‏12 KB

    The statement in the OP is not covering all cases.
    mexaviesta wrote:
    2. my question is in the 2nd situation. It begins also at state 1. In there the input value can also be changed (once or many times) or not. If the value has not been changed within 10 s, or even though it's been changed many times within 10s, but  it's never been equal to 3, the state machine will go to state 2; only when the input value within 10s equal to 3, it can jump to state 3.
    This problem i have no idea how to solve, does anybody have  idea or better methods?
    thanks a lot!!
    Just check my implementation for Situation 2 and let us know, if it works for you.
    I am not allergic to Kudos, in fact I love Kudos.
     Make your LabVIEW experience more CONVENIENT.
    Attachments:
    Situation 2.llb ‏40 KB

  • How to use a event structure with a state machine

    First, I would like to inform you that I only work on LabView part time, and have much to learn.  Anything I do learn, I usually forget until I need it again, because I only work on it part time.
    Using your StopWhileLoopMOD[1].vi, I am trying to put a state machine inside the event structure.  
    Related link: http://forums.ni.com/t5/LabVIEW/How-to-stop-while-loop-in-Event-case/td-p/465564/page/2
    Here is my application:  on the front panel, the user can select any combination of 7 different tests.  I have created cases to perform each step of each test in the correct order, but if the user presses stop, the tests won't stop because some of the cases have a while loop inside the event structure (like you mentioned is a bad idea).  The user should be able to stop the test, reselect tests to perform, and re-start the tests. 
    When the start button is pressed for the event structure, I need all the cases to run in the proper order, unless stop is pressed.
    In the past I have indexed an array and used that to run the state machine, but it won't stop immediately.  
    I have sub VIs that are built in while loops because the outputs of the product needs time to stabilize.  The state machine stops and waits up to a certain number of iterations.  If it passes the test, the while loop stops and the next state starts.  If it takes too long, it exits and reports an error.  Maybe I need to just use the state machine and not an event structure?
    Is there a good example of an event structure?
    metzler CLAD
    Solved!
    Go to Solution.

    I'm not sure exactly what you are asking, but it sounds like you want to script a bunch of tests and if the user says stop, to immediately stop the current test and abandon the others?  I'm going to assume that you know how to clear the array so that it will abandon the others, so I'm guessing that you are having trouble abandoning the current test?  If this is indeed the case, then the problem is that you are not able to propagate the message from the main VI FP which is the GUI to the sub vi which is the test, where the test may or may not have a GUI (FP visible) of it's own.  Threading was the first thing to come to mind, but this may not be necessary using events.
    You can do this by passing a refnum of the stop button to the subVI, where you can then add that wait to the event case structure.
    I've attached 2 VIs, mainvi.vi which is just a loop displays the count*2 (number of seconds passed since running) that will call subvi.vi and then check to see if the stop button is pressed.  mainvi.vi is by no means a state engine, it is just a simple loop for demonstration purposes.  subvi.vi just waits 2 seconds and leaves, it is a better structured state engine with an init state to start a poll case to wait for events and an exit state to clean up.  You can modify this any way you wish to get it to do what you want.  You will note that even if subvi.vi is being executed, it will terminate immediately when the stop button is pressed.
    Hope this helps.
    A
    Attachments:
    mainvi.vi ‏17 KB
    subvi.vi ‏33 KB

  • How can I fire an event case on the value change of an indicator, or a network variable?

    Hi!  I have an event structure setup to look for a value change of an indicator on the front panel.  The indicator is updated by the value of a boolean network-published shared variable through a seperate parallel loop that is polling all of the network-published shared variables.  The event, however, does not fire when the indicator changes value.  I have switched the indicator to a control and tested it with user interaction and that works just fine.
    I want to use the event structure space for my code exectution because it seems logical that that is where it would go, and it will help keep my block diagram tity.  The code is also something I would like executed with the front pannel temperarily disabled.  I would rather not have the code in my network-variable polling loop because again the tity issue.   I would also rather not use a notification VI wired to an independent loop for this particular code.
    Is there a way to have an event structure fire an event with the value change of an indicator, or a network variable directly?
    Thanks for your input.
    LV 8.5
    -Nic

    Thanks for the reply.
    I went about things a little differently, but got them to work so..... .  It really was not my desire to have a boolean indicator on the front panel.  As previously stated, my ultimate goal was to have an event fire on the change of a network variable, which I had to poll for anyway but that is tucked away in a section where I am handling all my network variables.  I ended up using that Create User Event, Register User Event, and Generate User Event SubVIs to handle the task.
    I've read the help for all of those SubVI's and it is not entirely clear to me if the event fires every time the "Generate User Event" receives some inputs, or if it only fires when the value changes.  I could do a test to find out.  It wouldn't be too difficult to add a shift register or a feedback node and place the Generate User Event in a case structure so that it is only fired when the input changes state.

  • Using Multiple Event Listeners

    Hi,
    I have a movielcip (A) class in which I have used a Tween class effect on a child movieclip (B) scrollRect. The (B) Movieclip in turn has several movieclips whose have tween class effect being executed on thier child movieclips.
    the tweens are all unique to each movieclip
    and the event listeners are taken off once completed.
    This works all well and good in FLASH IDE...
    My problem arises when I try to view this in a browser on a Windows XP
    it doesnt work in
    Opera Version 9.63
    Firefox 2.0
    and Google Chrome 2.0
    The only browser it works fluently in is
    Internet Explorer 7.0.5
    What is happening in most cases it that the animation appears to "stick" but i think what may be happening is the listening or removal of the event listeners. The animations are left incompleted.
    Is there any rule of thumb when using multiple event listeners?
    here is a snippet of some of my code
    on click event from movieclip (A)
    private function scrollToSlidePrev(e:MouseEvent) {
                   if (((slideIndex - 1) >= 0)) {
                        nextButton.mouseEnabled = nextButton.enabled = previousButton.enabled = previousButton.mouseEnabled = false;
                        var position:Number = 0-SLIDEAREA.width;
                        var slide1:TileListSlide = slides[slideIndex] as TileListSlide;
                        var slide2:TileListSlide = slides[--slideIndex] as TileListSlide;
                        scrollSlide(position,slide1,slide2);
    tween animation in movieclip (A) on (B)
    private function scrollSlide(pos:int,slide1:TileListSlide,slide2:TileListSlide) {
                   slide1.resizeSlideTo(0.6); // execute tween on child movie clips in B
                   slide2.resizeSlideTo(1); // same as above;
                   var rect:Rectangle = sliderMc.scrollRect;
                   var tween1:Tween = new Tween(rect,"x",Regular.easeOut,rect.x,rect.x + pos,3,true);
                   tween1.addEventListener(TweenEvent.MOTION_CHANGE,setSliderScroll,false,4);
                   tween1.addEventListener(TweenEvent.MOTION_FINISH,toggleButtonEnabled,false,3);
    tween animation in movieclip (B) children
    public function resizeSlideTo(sc) {
                   var m:Matrix = tileList.transform.matrix as Matrix;
                   var p:Point = new Point (m.a, 0);
                   var tween2:Tween = new Tween(p,"x",Regular.easeOut,p.x,sc,3,true);
                   if (numericStepper != null) {
                        if (sc != 1) {
                             numericStepper.visible = false;
                             tween2.removeEventListener(TweenEvent.MOTION_FINISH,showStepper);
                        if (sc === 1) {
                             tween2.addEventListener(TweenEvent.MOTION_FINISH,showStepper,false,2);
                   tween2.addEventListener(TweenEvent.MOTION_CHANGE,setScaleOnScroll,false,3);
    here is the link
    http://visual_admin.web.aplus.net/ticker/ticker_widget.html
    the effect disables and re-enables the buttons when its done.... then the listeners are removed.
    each one with the exception cretes its own unique tween (obviously this is a custom class built as each clip)
    i really don't know what to make of it guys         

    apparantly making the tween a property of the class rather than a random variable in a function worked.....go figure

  • How can I 'click' on a "latch" mechanical boolean in an event case?

    Since I can't set true of false to the local variable of latch mechanical boolean, how can I click the boolean in an event case?

    LUX_ wrote:
    1. I can't make the value change event work (the second option of the solution posted by smercurio...)
    2. The occurrence does not work as I thought it would be. I need to stop the timer if user change to other mode within that 7 minutes period (my test.vi set to 10 seconds).
    The value change using a signaling property only works if you actually have an event assigned to that value change. You currently don't!
    I am not sure why you complicate things with the occurrence. You don't need it. (the wait for occurence prevents the the loop from e.g. checking the elapsed time). THe code is way too convoluted.
    I think all you need is one loop utilizing the timeout of the event as wait timer (and one to randomly cause faults). See attached for a rough draft. modify as needed. As you can see, you don't need all these locals and hidden controls.
    LabVIEW Champion . Do more with less code and in less time .
    Attachments:
    testMOD.vi ‏18 KB

  • How to display the Logo by using TOP_OF_Page Event in OOPS

    Hi Gurus,
    I'm using TOP_OF_Page event to print Header and Logo in the same conatiner.
    Let me explain the case clearly,i have splitted the main conatiner in two parts like conatiner1 and conatainer2.
    i want to display logo and header in the container1, and i'm trying to use the * vertical_split * method ,but i'm unable to display the logo by splitting this conatiner vertically.........
    and if possible plz forward the sample code....
    Hence plz suggest me how to handle this.
    Thanks inadvance.

    Hi,
    In your top container i.e, container1, you can directly display the logo as well as text as there are methods already available in class  CL_DD_DOCUMENT(For eg, ADD_TEXT, ADD_PICTURE, ADD_ICON etc).
    Data:  lo_document TYPE REF TO cl_dd_document.
    CREATE OBJECT lo_document
        EXPORTING
          style = 'ALV_GRID'.
    CALL METHOD lo_document->add_text                   " To add text
        EXPORTING
          text         = text-006
          sap_fontsize = '18'
          sap_emphasis = cl_dd_area=>strong.               " For bold
      CALL METHOD lo_document->new_line.               " For new line
    CALL METHOD lo_document->add_text
        EXPORTING
          text         = text-018
          sap_emphasis = cl_dd_area=>strong.
      CALL METHOD lo_document->add_gap                 " To add gap in the same line
        EXPORTING
          width = 10.
    CALL METHOD lo_document->add_picture             " For picture
        EXPORTING
          picture_id       = 'TRVPICTURE01'
          width            =  '100'.
    CALL METHOD lo_document->display_document
        EXPORTING
          parent = lo_top_container1.
    Thanks and Regards,
    Himanshu

  • How can I reduce the number of event cases in the main VI?

    I would like to reduce the number of event case of the event structure in my main VI. E.g. I would like to have pop up window with a table when the user double click a table row. Nothing more simple than this: add a case to the event structure trigger by double clicking the table, read the table row ... But in my main VI I would have lots of them and the event structure gets crowded with minor tasks. One solution is using XControls. But is there any other recomended way to handle selected events separatly from the event structure in the main VI?
    to clarify: I don't want to distribute the whole event structure. (In this case the code would not be maintainable) But I would like to handle certain context specific events in a differnt place. If I have them all in the main VI the drop down list of the events in the event structure exceeds the windows size and the program becomes difficult to maintain because one looses the overview.

    "Strictly forbidden" is not true. But highly not recommended. The reason is simple:
    1. Code can react unpredictable. Dennis already stated some things about that in your linked thread. 
    2. Code is not readable and therefore not maintainable. Each event source should have only one event structure for its events. Since the UI is a single source, events from there should be captured in a single event structure. It is recommended to use this event structure as producer in a producer/consumer design pattern in order not to block the events.
    3. You will most propably need timeouts in your event structure which completly negates the advantage of event driven programming. Either use event driven programming or stay at polling. Do not mix (most of all because of maintenance).
    Regarding your "advantages" you listed:
    - Clustering  reduces readability in therefore should never be done. Additionally, it requires timeout cases in most places which is not recommended.
    - If you have such many events and interactions in your "sequence", it is a clear indication that you chose the wrong architecture for your application.
    Please see attached example. Since i am not used to program with more than one event structure (except if i have different dedicated event sources), the example is "constructed" and therefore may lack of "realism". Nevertheless, it shows some issues which might occur:
    - Blocking calls within the events lead to the fact that the UI is not responsive for the event time (FuncA). Nevertheless, interaction is still enqueued and if the blocking call is over, all those interaction are executed. In the example, please press FuncA and then press FuncC immediatly. You will see that nothing happens and after the 5s blocking call, the FuncC dialog appears. You also can switch tabs, but the visual display will update only after the 5s blocking call.
    - In order to keep the UI responsive, FuncB is configured not to block the UI. But this is no solution: Press FuncB (on page 2) and the change to page 1 and press FuncA. Additionally, press FuncC. What happens? Just to mess things up, press Stop as well......do this combination several times. It is possible that only the lower loop is finished and the VI is still running even if Stop has been pressed.
    Please note everyone that the attached example shoudl strictly be seen as "NEVER DO IT LIKE THIS". This is a negative example and shows the approach which is not recommended by any means!
    CEO: What exactly is stopping us from doing this?
    Expert: Geometry
    Marketing Manager: Just ignore it.
    Attachments:
    Never EVER86.vi ‏10 KB

  • Trouble Passing Values Using onClick Event

    I have a page with a div, <div id= PF_Text_Panel></>,  containing text describing an image, the image is in a separate div.  Using CSS the text panel is on top of the image and covers about 1/3 of the image’s left side.  A slide effect, handled by the function Slide, targets the PF_Text_Panel div. The function Slide is triggered by an onClick event allowing the user to slide the description to the left and reveal the entire image.
    The function Slide contains an if statement. The if statement is used to determine if PF_Text_Panel is open or closed using the variable SldPnlState  as a flag like this; if the variable SldPnlState ==1, then run Slide.  The other part of this function, which actually slides the div is an instance of the Slide Effect, inserted using Dreamweaver CS4.
    The variable SldPnlState  is set using the function setSldPnlState
    The function setSldPnlState, initiated by an onClick, passes a value to the variable SldPnlState, in this case it can be set to either 0 or 1 by separate onClick events
    To test if the variable SldPnlState is being passed from the onClick event to the variable I included the function printVar which writes the value of the variable SldPnlState to the screen.
    I believe that the Spry effect Slide portion of the function works because if I go into the code and manually set the variable SldPnlState to 1 the function Slide works and if I set it to 0 the function Slide does not work.
    This the bug:
    printVar indicates that the value is being passed the variable SldPnlState, it displays either a 1 or 0 as expected. 
    The function Slide does not work however, when the variable SldPnlState should be set by the onClick event passing the value using the function setSldPnlState.  It does not seem like the value is being passed from the onClick event triggering the function or that somehow the script stops running.
    You can demo the page at: http://dg-ad.com/Slide_Effect_Logic_Parameter.html
      Attached is the code, if anyone has some suggestions I would really appreciate hearing from you
    <!--begin setup Spry Effects-->
    <script src="SpryAssets/SpryEffects.js" type="text/javascript"></script>
    <!--Begin pass variable from flagToggle parameter to SldPnlState variable includes printVar function to sent results to screen-->
    <script language="javascript" type="text/javascript">
    <!--begin set flag using onclick event-->
    var SldPnlState = (1);
    function setSldPnlState(flagToggle)
    SldPnlState = flagToggle;
    </script>
    <!--end set flag using onclick event-->
    <!--begin slider onclick event-->
    <script type="text/javascript">
    if(SldPnlState==1)
    function MM_effectSlide(targetElement, duration, from, to, toggle, transition, fps, horizontal)
    Spry.Effect.DoSlide(targetElement, {duration: 500, from: 0, to: 200, toggle: true, transition: 2, fps: 750, horizontal: true});
    //-->
    </script>
    <!--end slider onclick event-->
    <!--begin write variable onclick event-->
    <script type="text/javascript">
    function printVar()
    document.getElementById('test_display').innerHTML = SldPnlState
    </script>
    <!--end write variable onclick event-->
    </head>
    <body id="wrapper">
            <div style="padding-top:50px;">
            <a href="#" onclick="setSldPnlState(1);">Set var SldPnlState to Flag Status Set Open (1)</a><br><br><br>
            <a href="#" onclick="setSldPnlState(0);">Set var SldPnlState to Flag Status Set Closed (0)</a><br><br><br>
            <a href="#" onclick="printVar();">Print Flag Status to Screen</a><br><br><br>
            <div id="test_display" style="border:#9CC thick groove; width:50px; height:50px; margin:15px; text-align:center; font-size:36px;"></div>
            <a href="#" onclick="MM_effectSlide('PF_Text_Panel');">Slide Panel</a><br><br>
            </div>
    <div id="PF_Text_Panel" style="border:#9C9 thick solid; height:250px; margin-top:25px;">
      <div id="PF_Text" class="PF_Text">
      </div>
      <script type="text/javascript">
        var panelWidget_1=new Spry.Widget.HTMLPanel('PF_Text');
        </script>
    </div>

    Thanks so much for taking a look at this.  The whole reason I am doing this is that I couldn't find a state indicator flag in the Spry.Effect.DoSlide effect.
    I see that the htmlPanel does not have a bearing on the problem as you mentioned but not having the javascript doesn't matter either.  I am using the Spry.Effect.DoSlide effect, it is in the head,  in the function with the if statement, and it is making the div"PF_Text_Panel slide which works fine including the if statement.  If I set the var SldPnlState = (1) it works set it to 0 and the slide effect is disabled.  I need to be able to change the variable using an onclick event.
    The problem as you mention is with the function SldPnlState = flagToggle;  This is what I need to do.  I need to pass a value to  the variable SldPnlState from an onclick event.  As the function Slide is set up, with an if statement, the div will slide if SldPnlState=1 and the slide function will turn off if SldPnlState=0.  However when I do the onclick="setSldPnlState(1);"event there is no effect on the Slide function.  The value seems to pass to the variable tSldPnlState since I can get the value of this same variable to display using the function printVar() which will display 1 or 0 depending on which onclick event I run.  It seems like the I can pass the variable from the onclick event it's just that if statement in the function MM_effectSlide never sees it.  I don't know enough to trouble shoot this.  But I will take a closer look at the SldPnlState = flagToggle; part as you suggest.

Maybe you are looking for