summaryrefslogtreecommitdiffhomepage
path: root/digital/avr/modules/twi/test
diff options
context:
space:
mode:
Diffstat (limited to 'digital/avr/modules/twi/test')
-rw-r--r--digital/avr/modules/twi/test/Makefile.master4
-rw-r--r--digital/avr/modules/twi/test/Makefile.slave4
-rw-r--r--digital/avr/modules/twi/test/avrconfig_master.h4
-rw-r--r--digital/avr/modules/twi/test/test_twi_host.py32
-rw-r--r--digital/avr/modules/twi/test/test_twi_master.c23
-rw-r--r--digital/avr/modules/twi/test/test_twi_sl.c16
6 files changed, 71 insertions, 12 deletions
diff --git a/digital/avr/modules/twi/test/Makefile.master b/digital/avr/modules/twi/test/Makefile.master
index 72762aa2..55a762c0 100644
--- a/digital/avr/modules/twi/test/Makefile.master
+++ b/digital/avr/modules/twi/test/Makefile.master
@@ -1,9 +1,9 @@
BASE = ../../..
-AVR_PROGS = test_twi_master
+PROGS = test_twi_master
test_twi_master_SOURCES = test_twi_master.c
DOC =
EXTRACTDOC =
-MODULES = twi uart proto math/random
+MODULES = twi uart proto math/random utils
CONFIGFILE = avrconfig_master.h
diff --git a/digital/avr/modules/twi/test/Makefile.slave b/digital/avr/modules/twi/test/Makefile.slave
index 73d3b01e..35f84bcd 100644
--- a/digital/avr/modules/twi/test/Makefile.slave
+++ b/digital/avr/modules/twi/test/Makefile.slave
@@ -1,9 +1,9 @@
BASE = ../../..
-AVR_PROGS = test_twi_sl
+PROGS = test_twi_sl
test_twi_sl_SOURCES = test_twi_sl.c
DOC =
EXTRACTDOC =
-MODULES = twi uart proto
+MODULES = twi uart proto utils
CONFIGFILE = avrconfig_slave.h
diff --git a/digital/avr/modules/twi/test/avrconfig_master.h b/digital/avr/modules/twi/test/avrconfig_master.h
index 21bc4888..a65f872f 100644
--- a/digital/avr/modules/twi/test/avrconfig_master.h
+++ b/digital/avr/modules/twi/test/avrconfig_master.h
@@ -36,9 +36,9 @@
/** Activate slave part. */
#define AC_TWI_SLAVE_ENABLE 0
/** Slave recv buffer size. */
-#define AC_TWI_SL_RECV_BUFFER_SIZE 1
+#define AC_TWI_SL_RECV_BUFFER_SIZE 16
/** Slave send buffer size. */
-#define AC_TWI_SL_SEND_BUFFER_SIZE 1
+#define AC_TWI_SL_SEND_BUFFER_SIZE 16
/* proto - Protocol module. */
/** Maximum argument size. */
diff --git a/digital/avr/modules/twi/test/test_twi_host.py b/digital/avr/modules/twi/test/test_twi_host.py
new file mode 100644
index 00000000..67942276
--- /dev/null
+++ b/digital/avr/modules/twi/test/test_twi_host.py
@@ -0,0 +1,32 @@
+import sys
+sys.path.append (sys.path[0] + '/../../../../../host/mex')
+
+from mex.hub import Hub
+from mex.msg import Msg
+from mex.node import Node
+from mex.forked import Forked
+
+import os, signal, time
+
+def log (x):
+ print x
+
+h = Hub (min_clients = 3, log = log)
+fh = Forked (h.wait)
+
+n = Node ()
+def nf ():
+ while True:
+ time.sleep (1)
+ n.wait (n.date + 1)
+fn = Forked (nf)
+
+slave = os.popen ('./test_twi_sl.host', 'w')
+
+try:
+ os.system ('./test_twi_master.host')
+finally:
+ fn.kill ()
+ fh.kill ()
+ slave.close ()
+ time.sleep (1)
diff --git a/digital/avr/modules/twi/test/test_twi_master.c b/digital/avr/modules/twi/test/test_twi_master.c
index d65d185d..e032f839 100644
--- a/digital/avr/modules/twi/test/test_twi_master.c
+++ b/digital/avr/modules/twi/test/test_twi_master.c
@@ -31,6 +31,10 @@
#include "modules/math/random/random.h"
#include "io.h"
+#ifdef HOST
+# include "modules/host/mex.h"
+#endif
+
void
proto_callback (uint8_t cmd, uint8_t size, uint8_t *args)
{
@@ -121,6 +125,10 @@ proto_callback (uint8_t cmd, uint8_t size, uint8_t *args)
twi_ms_send (args[0], random_bytes, byte_number);
while (!twi_ms_is_finished ())
;
+#ifdef HOST
+ /* Give time to slave to copy data. */
+ mex_node_wait_date (mex_node_date () + 2);
+#endif
/* Received buffer */
uint8_t received_buffer[max_byte_number];
@@ -182,8 +190,12 @@ proto_callback (uint8_t cmd, uint8_t size, uint8_t *args)
}
int
-main (void)
+main (int argc, char **argv)
{
+ avr_init (argc, argv);
+#ifdef HOST
+ mex_node_connect ();
+#endif
/* Enable interruptions */
sei ();
/* Initialize serial port */
@@ -196,8 +208,13 @@ main (void)
proto_send0 ('M');
while (42)
{
- uint8_t c = uart0_getc ();
- proto_accept (c);
+#ifdef HOST
+ mex_node_wait_date (mex_node_date () + 1);
+ while (uart0_poll ())
+ proto_accept (uart0_getc ());
+#else
+ proto_accept (uart0_getc ());
+#endif
}
return 0;
}
diff --git a/digital/avr/modules/twi/test/test_twi_sl.c b/digital/avr/modules/twi/test/test_twi_sl.c
index 020c9e6b..e52d914f 100644
--- a/digital/avr/modules/twi/test/test_twi_sl.c
+++ b/digital/avr/modules/twi/test/test_twi_sl.c
@@ -23,7 +23,6 @@
*
* }}} */
-
#include "common.h"
#include "modules/twi/twi.h"
#include "modules/proto/proto.h"
@@ -31,6 +30,10 @@
#include "modules/utils/utils.h"
#include "io.h"
+#ifdef HOST
+# include "modules/host/mex.h"
+#endif
+
void
proto_callback (uint8_t cmd, uint8_t size, uint8_t *args)
{
@@ -51,8 +54,12 @@ proto_callback (uint8_t cmd, uint8_t size, uint8_t *args)
}
int
-main (void)
+main (int argc, char **argv)
{
+ avr_init (argc, argv);
+#ifdef HOST
+ mex_node_connect ();
+#endif
/* Enable interruptions */
sei ();
/* Initialize serial port */
@@ -65,6 +72,9 @@ main (void)
proto_send0 ('S');
while (42)
{
+#ifdef HOST
+ mex_node_wait_date (mex_node_date () + 1);
+#endif
uint8_t data[AC_TWI_SL_RECV_BUFFER_SIZE];
data[0] = 0;
/* Check for data */
@@ -73,7 +83,7 @@ main (void)
/* Receive and store them */
twi_sl_update (data, AC_TWI_SL_RECV_BUFFER_SIZE);
}
- if (uart0_poll ())
+ while (uart0_poll ())
proto_accept (uart0_getc ());
}
return 0;