* [#2835](http://bugzilla.scilab.org/show_bug.cgi?id=2835): On negative "initial... 57/17757/4
Paul Bignier [Tue, 2 Feb 2016 10:37:54 +0000 (11:37 +0100)]
* Bug #2835 fixed - On negative "initial event", EVTDLY_c took no notice of the input.

That block was only half useful if it was only meant to be called by itself.
Now it can be called by another block.

Change-Id: Ib90abdecfc195cc1fe074c713d6597949edcce07

scilab/CHANGES.md
scilab/modules/scicos_blocks/macros/Events/EVTDLY_c.sci
scilab/modules/scicos_blocks/src/c/evtdly4.c
scilab/modules/xcos/help/en_US/palettes/Events_pal/EVTDLY_c.xml
scilab/modules/xcos/tests/nonreg_tests/bug_2835.tst [new file with mode: 0644]
scilab/modules/xcos/tests/nonreg_tests/bug_2835.zcos [new file with mode: 0644]

index 3e3d738..bf67c8a 100644 (file)
@@ -335,6 +335,7 @@ Bug Fixes
 
 ### Bugs fixed in 6.0.0:
 * [#592](http://bugzilla.scilab.org/show_bug.cgi?id=592): `linspace(a, b, n<=0)` returned `b` instead of `[]`
+* [#2835](http://bugzilla.scilab.org/show_bug.cgi?id=2835): On negative "initial event", EVTDLY_c took no notice of the input.
 * [#2919](http://bugzilla.scilab.org/show_bug.cgi?id=2919): The `fchamp` example and demo were unclear and badly rendered
 * [#4327](http://bugzilla.scilab.org/show_bug.cgi?id=4327): Overloading did not support custom types names longer than 8 characters
 * [#5723](http://bugzilla.scilab.org/show_bug.cgi?id=5723): Cross-references were missing between axis_properties and axes_properties help pages
index e4a0e02..321623e 100644 (file)
@@ -36,7 +36,7 @@ function [x,y,typ]=EVTDLY_c(job,arg1,arg2)
             "Block may initially generate an output event before ";
             "       any input event. ""Date of initial output event""";
             "       gives the date of this event. Set a negative value";
-            "       to disable any output event."],..
+            "       to only mind the input events."],..
             ["Delay";"Date of initial output event"],..
             list("vec",1,"vec",1),exprs)
             if ~ok then
index 9ea3606..20ffa40 100644 (file)
@@ -60,10 +60,13 @@ SCICOS_BLOCKS_IMPEXP void evtdly4(scicos_block *block, int flag)
             i = *work;
             t = get_scicos_time();
             (*i)++; /*increase counter*/
-            dt = block->rpar[1] + (*i) * block->rpar[0] - t;
-            /* on event enabled, use the default delay if not scheduled */
-            if (block->rpar[1] >= 0 && dt < 0)
+            if (block->rpar[1] >= 0)
             {
+                dt = block->rpar[1] + (*i) * block->rpar[0] - t;
+            }
+            else
+            {
+                /* On negative initial event, only delay the input */
                 dt = block->rpar[0];
             }
             block->evout[0] = dt;
index 85af32e..80e41d7 100644 (file)
                     <emphasis role="bold">Date of initial output event</emphasis>
                 </para>
                 <para>
-                    scalar. If negative the block will never emit any output event (eg. disabled).
+                    scalar. If negative no initial input will be generated.
                 </para>
                 <para> Properties : Type 'vec' of size 1</para>
             </listitem>
diff --git a/scilab/modules/xcos/tests/nonreg_tests/bug_2835.tst b/scilab/modules/xcos/tests/nonreg_tests/bug_2835.tst
new file mode 100644 (file)
index 0000000..9793674
--- /dev/null
@@ -0,0 +1,24 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Scilab Enterprises - Paul Bignier
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- XCOS TEST -->
+//
+// <-- TEST WITH GRAPHIC -->
+//
+// <-- INTERACTIVE TEST -->
+//
+// <-- Non-regression test for bug 2835 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=2835
+//
+// <-- Short Description -->
+// On negative "initial event", EVTDLY_c took no notice of the input.
+//
+
+assert_checktrue(importXcosDiagram(SCI + "/modules/xcos/tests/nonreg_tests/bug_2835.zcos"));
+xcos_simulate(scs_m, 4);
diff --git a/scilab/modules/xcos/tests/nonreg_tests/bug_2835.zcos b/scilab/modules/xcos/tests/nonreg_tests/bug_2835.zcos
new file mode 100644 (file)
index 0000000..c4bcb3d
Binary files /dev/null and b/scilab/modules/xcos/tests/nonreg_tests/bug_2835.zcos differ