summaryrefslogtreecommitdiffhomepage
path: root/digital/io/src/test
diff options
context:
space:
mode:
authorNicolas Schodet2008-03-31 13:03:47 +0200
committerNicolas Schodet2008-03-31 13:03:47 +0200
commit9d3573134462335051e46b990e97e1d32bef4b29 (patch)
treedd02e406ef2a785e433bbe8baf4bd814bcff1fb2 /digital/io/src/test
parentbd653ce716c5002aaf79b88cf3934e2f51e6ff07 (diff)
* digital/io/src:
- adapted FSM to AVR program.
Diffstat (limited to 'digital/io/src/test')
-rw-r--r--digital/io/src/test/gutter/Makefile17
-rw-r--r--digital/io/src/test/gutter/main.c26
-rw-r--r--digital/io/src/test/testgetsamples/Makefile17
-rw-r--r--digital/io/src/test/testgetsamples/avrconfig.h64
-rw-r--r--digital/io/src/test/testgetsamples/main.c48
5 files changed, 54 insertions, 118 deletions
diff --git a/digital/io/src/test/gutter/Makefile b/digital/io/src/test/gutter/Makefile
index 21470810..cd355139 100644
--- a/digital/io/src/test/gutter/Makefile
+++ b/digital/io/src/test/gutter/Makefile
@@ -1,7 +1,12 @@
-BASE= ..
+BASE= ../../../../avr
+HOST_PROGS = fsm
+IOBASE = ../..
+fsm_SOURCES = main.c $(IOBASE)/fsm.c \
+ $(IOBASE)/gutter_cb.c $(IOBASE)/gutter_fsm.c
+MODULES =
+CONFIGFILE =
+# -O2 : speed
+# -Os : size
+OPTIMIZE = -O2
-all: main.c $(BASE)/gutter.c $(BASE)/gutter_cb.c
- gcc -g -O2 -Wall main.c $(BASE)/gutter.c $(BASE)/gutter_cb.c -o fsm
-
-clean: fsm
- rm -f fsm
+include $(BASE)/make/Makefile.gen
diff --git a/digital/io/src/test/gutter/main.c b/digital/io/src/test/gutter/main.c
index 08be3342..41860461 100644
--- a/digital/io/src/test/gutter/main.c
+++ b/digital/io/src/test/gutter/main.c
@@ -22,17 +22,18 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* }}} */
-#include "../gutter.h"
-#include "../gutter_robo.h"
+#include "common.h"
+
+#include "../../fsm.h"
#include <stdio.h>
void
-gutter_print_test (gutter_t *gutter)
+gutter_print_test (fsm_t *gutter)
{
printf ("Machine state ");
- switch (gutter->fsm)
+ switch (gutter->state_current)
{
case GUTTER_STATE_END:
printf ("END");
@@ -55,28 +56,25 @@ gutter_print_test (gutter_t *gutter)
int
main (void)
{
- gutter_t gutter_fsm;
+ fsm_init (&gutter_fsm);
+
+ fsm_handle_event (&gutter_fsm, GUTTER_EVENT_ok);
- gutter_init (&gutter_fsm);
gutter_print_test (&gutter_fsm);
- gutter_handle_event (&gutter_fsm,
- GUTTER_EVENT_position_failed);
+ fsm_handle_event (&gutter_fsm, GUTTER_EVENT_position_failed);
gutter_print_test (&gutter_fsm);
- gutter_handle_event (&gutter_fsm,
- GUTTER_EVENT_position_reached);
+ fsm_handle_event (&gutter_fsm, GUTTER_EVENT_position_reached);
gutter_print_test (&gutter_fsm);
- gutter_handle_event (&gutter_fsm,
- GUTTER_EVENT_collector_opened);
+ fsm_handle_event (&gutter_fsm, GUTTER_EVENT_collector_opened);
gutter_print_test (&gutter_fsm);
- gutter_handle_event (&gutter_fsm,
- GUTTER_EVENT_collector_closed);
+ fsm_handle_event (&gutter_fsm, GUTTER_EVENT_collector_closed);
gutter_print_test (&gutter_fsm);
diff --git a/digital/io/src/test/testgetsamples/Makefile b/digital/io/src/test/testgetsamples/Makefile
index b0a3a7a3..21313ff6 100644
--- a/digital/io/src/test/testgetsamples/Makefile
+++ b/digital/io/src/test/testgetsamples/Makefile
@@ -1,7 +1,12 @@
-BASE= ../..
+BASE= ../../../../avr
+HOST_PROGS = fsm
+IOBASE = ../..
+fsm_SOURCES = main.c $(IOBASE)/fsm.c $(IOBASE)/getsamples.c \
+ $(IOBASE)/getsamples_cb.c $(IOBASE)/getsamples_fsm.c
+MODULES =
+CONFIGFILE =
+# -O2 : speed
+# -Os : size
+OPTIMIZE = -O2
-all: main.c $(BASE)/getsamples.c $(BASE)/getsamples_cb.c
- gcc -g -O2 -Wall main.c $(BASE)/getsamples.c $(BASE)/getsamples_cb.c -o fsm
-
-clean: fsm
- rm -f fsm
+include $(BASE)/make/Makefile.gen
diff --git a/digital/io/src/test/testgetsamples/avrconfig.h b/digital/io/src/test/testgetsamples/avrconfig.h
index c4d9f159..d6afb3d3 100644
--- a/digital/io/src/test/testgetsamples/avrconfig.h
+++ b/digital/io/src/test/testgetsamples/avrconfig.h
@@ -1,7 +1,7 @@
#ifndef avrconfig_h
#define avrconfig_h
/* avrconfig.h */
-/* avr.spi - SPI AVR module. {{{
+/* io - Input & Output with Artificial Intelligence (ai) support on AVR. {{{
*
* Copyright (C) 2008 NĂ©lio Laranjeiro
*
@@ -30,66 +30,4 @@
* 8000000, 11059200, 14745600, 16000000, 18432000, 20000000. */
#define AC_FREQ 14745600
-/* uart - UART module. */
-/** Select hardware uart for primary uart: 0, 1 or -1 to disable. */
-#define AC_UART0_PORT 1
-/** Baudrate: 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, 76800,
- * 115200, 230400, 250000, 500000, 1000000. */
-#define AC_UART0_BAUDRATE 38400
-/** Send mode:
- * - POLLING: no interrupts.
- * - RING: interrupts, ring buffer. */
-#define AC_UART0_SEND_MODE POLLING
-/** Recv mode, same as send mode. */
-#define AC_UART0_RECV_MODE POLLING
-/** Character size: 5, 6, 7, 8, 9 (only 8 implemented). */
-#define AC_UART0_CHAR_SIZE 8
-/** Parity : ODD, EVEN, NONE. */
-#define AC_UART0_PARITY EVEN
-/** Stop bits : 1, 2. */
-#define AC_UART0_STOP_BITS 1
-/** Send buffer size, should be power of 2 for RING mode. */
-#define AC_UART0_SEND_BUFFER_SIZE 32
-/** Recv buffer size, should be power of 2 for RING mode. */
-#define AC_UART0_RECV_BUFFER_SIZE 32
-/** If the send buffer is full when putc:
- * - DROP: drop the new byte.
- * - WAIT: wait until there is room in the send buffer. */
-#define AC_UART0_SEND_BUFFER_FULL WAIT
-/** In HOST compilation:
- * - STDIO: use stdin/out.
- * - PTS: use pseudo terminal. */
-#define AC_UART0_HOST_DRIVER STDIO
-/** Same thing for secondary port. */
-#define AC_UART1_PORT -1
-#define AC_UART1_BAUDRATE 115200
-#define AC_UART1_SEND_MODE RING
-#define AC_UART1_RECV_MODE RING
-#define AC_UART1_CHAR_SIZE 8
-#define AC_UART1_PARITY EVEN
-#define AC_UART1_STOP_BITS 1
-#define AC_UART1_SEND_BUFFER_SIZE 32
-#define AC_UART1_RECV_BUFFER_SIZE 32
-#define AC_UART1_SEND_BUFFER_FULL WAIT
-#define AC_UART1_HOST_DRIVER PTS
-
-/* proto - Protocol module. */
-/** Maximum argument size. */
-#define AC_PROTO_ARGS_MAX_SIZE 8
-/** Callback function name. */
-#define AC_PROTO_CALLBACK proto_callback
-/** Putchar function name. */
-#define AC_PROTO_PUTC uart0_putc
-/** Support for quote parameter. */
-#define AC_PROTO_QUOTE 1
-
-/* flash - Flash SPI AVR module. */
-/** Flash PORT used. */
-#define AC_FLASH_PORT PORTD
-/** Flash DDR used. */
-#define AC_FLASH_DDR DDRD
-/** Flash SS pin. */
-#define AC_FLASH_BIT_SS 5
-
-
#endif /* avrconfig_h */
diff --git a/digital/io/src/test/testgetsamples/main.c b/digital/io/src/test/testgetsamples/main.c
index 4e156e05..4479b053 100644
--- a/digital/io/src/test/testgetsamples/main.c
+++ b/digital/io/src/test/testgetsamples/main.c
@@ -24,17 +24,16 @@
* }}} */
#include "common.h"
-#include "modules/proto/proto.h"
-#include "modules/utils/utils.h"
-
+#include "../../fsm.h"
#include "../../getsamples.h"
-#include "../../getsamples_robo.h"
+
+#include <stdio.h>
void
-getsamples_print_test (getsamples_t *getsamples)
+getsamples_print_test (fsm_t *getsamples)
{
printf ("STATE ");
- switch (getsamples->fsm)
+ switch (getsamples->state_current)
{
case GETSAMPLES_STATE_START:
printf ("START");
@@ -66,57 +65,48 @@ getsamples_print_test (getsamples_t *getsamples)
int
main (void)
{
- getsamples_t getsamples_fsm;
-
- getsamples_init (&getsamples_fsm);
+ fsm_init (&getsamples_fsm);
getsamples_print_test (&getsamples_fsm);
- getsamples_fsm.distributor_x = 700;
- getsamples_fsm.distributor_y = 2100;
- getsamples_fsm.samples = 3;
+ getsamples_start (700, 2100, 3);
- getsamples_handle_event (&getsamples_fsm,
- GETSAMPLES_EVENT_ok);
+ /* Implicit:
+ fsm_handle_event (&getsamples_fsm, GETSAMPLES_EVENT_ok); */
getsamples_print_test (&getsamples_fsm);
- getsamples_handle_event (&getsamples_fsm,
- GETSAMPLES_EVENT_position_failed);
+ fsm_handle_event (&getsamples_fsm, GETSAMPLES_EVENT_position_failed);
getsamples_print_test (&getsamples_fsm);
- getsamples_handle_event (&getsamples_fsm,
- GETSAMPLES_EVENT_position_reached);
+ fsm_handle_event (&getsamples_fsm, GETSAMPLES_EVENT_position_reached);
getsamples_print_test (&getsamples_fsm);
- getsamples_handle_event (&getsamples_fsm,
- GETSAMPLES_EVENT_arm_moved);
+ fsm_handle_event (&getsamples_fsm, GETSAMPLES_EVENT_arm_moved);
getsamples_print_test (&getsamples_fsm);
- getsamples_handle_event (&getsamples_fsm,
- GETSAMPLES_EVENT_position_reached);
+ fsm_handle_event (&getsamples_fsm, GETSAMPLES_EVENT_position_reached);
getsamples_print_test (&getsamples_fsm);
- for (getsamples_fsm.samples--; getsamples_fsm.samples; getsamples_fsm.samples --)
+ //TODO: samples should be decremented by the FSM transitions.
+ for (getsamples_data.samples--; getsamples_data.samples;
+ getsamples_data.samples--)
{
- getsamples_handle_event (&getsamples_fsm,
- GETSAMPLES_EVENT_sample_took);
+ fsm_handle_event (&getsamples_fsm, GETSAMPLES_EVENT_sample_took);
getsamples_print_test (&getsamples_fsm);
}
- getsamples_handle_event (&getsamples_fsm,
- GETSAMPLES_EVENT_sample_took);
+ fsm_handle_event (&getsamples_fsm, GETSAMPLES_EVENT_sample_took);
getsamples_print_test (&getsamples_fsm);
- getsamples_handle_event (&getsamples_fsm,
- GETSAMPLES_EVENT_position_reached);
+ fsm_handle_event (&getsamples_fsm, GETSAMPLES_EVENT_position_reached);
getsamples_print_test (&getsamples_fsm);