summaryrefslogtreecommitdiff
path: root/digital
diff options
context:
space:
mode:
Diffstat (limited to 'digital')
-rw-r--r--digital/asserv/src/asserv/simu.host.c16
-rw-r--r--digital/io/tools/test_simu_aquajim.py2
-rw-r--r--digital/io/tools/test_simu_control.py2
3 files changed, 14 insertions, 6 deletions
diff --git a/digital/asserv/src/asserv/simu.host.c b/digital/asserv/src/asserv/simu.host.c
index 76a92ae1..07e441ea 100644
--- a/digital/asserv/src/asserv/simu.host.c
+++ b/digital/asserv/src/asserv/simu.host.c
@@ -87,6 +87,9 @@ double simu_counter_left_th, simu_counter_right_th;
/** Use mex. */
int simu_mex;
+/** Counter to limit the interval between information is sent. */
+int simu_send_cpt;
+
/** Initialise simulation. */
static void
simu_init (void)
@@ -94,15 +97,17 @@ simu_init (void)
int argc;
char **argv;
host_get_program_arguments (&argc, &argv);
- if (argc == 2 && strcmp (argv[0], "-m") == 0)
+ if (argc == 2 && strncmp (argv[0], "-m", 2) == 0)
{
- simu_mex = 1;
+ simu_mex = atoi (argv[0] + 2);
+ if (!simu_mex) simu_mex = 1;
+ simu_send_cpt = simu_mex;
mex_node_connect ();
argc--; argv++;
}
if (argc != 1)
{
- fprintf (stderr, "Syntax: asserv.host [-m] model\n");
+ fprintf (stderr, "Syntax: asserv.host [-m[interval]] model\n");
exit (1);
}
simu_robot = models_get (argv[0]);
@@ -404,8 +409,11 @@ timer_wait (void)
if (simu_mex)
mex_node_wait_date (mex_node_date () + 4);
simu_step ();
- if (simu_mex)
+ if (simu_mex && !--simu_send_cpt)
+ {
+ simu_send_cpt = simu_mex;
simu_send ();
+ }
}
/** Read timer value. Used for performance analysis. */
diff --git a/digital/io/tools/test_simu_aquajim.py b/digital/io/tools/test_simu_aquajim.py
index ea0136d0..44953a42 100644
--- a/digital/io/tools/test_simu_aquajim.py
+++ b/digital/io/tools/test_simu_aquajim.py
@@ -121,6 +121,6 @@ class TestSimu (InterNode):
self.obstacle.notify ()
if __name__ == '__main__':
- app = TestSimu (('../../asserv/src/asserv/asserv.host', '-m', 'aquajim'),
+ app = TestSimu (('../../asserv/src/asserv/asserv.host', '-m9', 'aquajim'),
('../src/io.host'))
app.mainloop ()
diff --git a/digital/io/tools/test_simu_control.py b/digital/io/tools/test_simu_control.py
index 1316a2c5..a3c5fd49 100644
--- a/digital/io/tools/test_simu_control.py
+++ b/digital/io/tools/test_simu_control.py
@@ -88,6 +88,6 @@ class TestSimuControl (TestSimu):
pass
if __name__ == '__main__':
- app = TestSimuControl (('../../asserv/src/asserv/asserv.host', '-m',
+ app = TestSimuControl (('../../asserv/src/asserv/asserv.host', '-m9',
'aquajim'), ('../src/io.host'))
app.mainloop ()