summaryrefslogtreecommitdiff
path: root/usb-i2c-sl018
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2013-02-07 01:34:05 +0000
committerChristian Pointner <equinox@spreadspace.org>2013-02-07 01:34:05 +0000
commite528d8912601e151e2724176298e0365773b6b8e (patch)
tree5e6102f07c02d42db97fb48775a53470414ec05e /usb-i2c-sl018
parentadded manual switch (diff)
added to_string functions for events and states
git-svn-id: https://svn.spreadspace.org/avr/trunk@165 aa12f405-d877-488e-9caf-2d797e2a1cc7
Diffstat (limited to 'usb-i2c-sl018')
-rw-r--r--usb-i2c-sl018/eventqueue.c15
-rw-r--r--usb-i2c-sl018/eventqueue.h1
-rw-r--r--usb-i2c-sl018/statemachine.c28
-rw-r--r--usb-i2c-sl018/statemachine.h1
-rw-r--r--usb-i2c-sl018/stepper.c2
-rw-r--r--usb-i2c-sl018/tuer-rfid.c18
6 files changed, 51 insertions, 14 deletions
diff --git a/usb-i2c-sl018/eventqueue.c b/usb-i2c-sl018/eventqueue.c
index 53f60d5..305a823 100644
--- a/usb-i2c-sl018/eventqueue.c
+++ b/usb-i2c-sl018/eventqueue.c
@@ -44,3 +44,18 @@ void eventqueue_push(event_t event)
RingBuffer_Insert(&event_queue,event);
}
+const char* event_to_string(event_t event)
+{
+ switch(event) {
+ case none: return "none";
+ case cmd_open: return "cmd_open";
+ case cmd_close: return "cmd_close";
+ case cmd_toggle: return "cmd_toggle";
+ case btn_toggle: return "btn_toggle";
+ case card: return "card";
+ case open_fin: return "open_fin";
+ case close_fin: return "close_fin";
+ case move_timeout: return "move_timeout";
+ }
+ return "invalid"; // gcc - shut the fuck up!!!
+}
diff --git a/usb-i2c-sl018/eventqueue.h b/usb-i2c-sl018/eventqueue.h
index fa2929b..35c1fa1 100644
--- a/usb-i2c-sl018/eventqueue.h
+++ b/usb-i2c-sl018/eventqueue.h
@@ -29,5 +29,6 @@ typedef enum { none, cmd_open, cmd_close, cmd_toggle, btn_toggle, card, close_fi
void init_eventqueue(void);
event_t eventqueue_pop(void);
void eventqueue_push(event_t);
+const char* event_to_string(event_t event);
#endif
diff --git a/usb-i2c-sl018/statemachine.c b/usb-i2c-sl018/statemachine.c
index 77fb9cd..7719a23 100644
--- a/usb-i2c-sl018/statemachine.c
+++ b/usb-i2c-sl018/statemachine.c
@@ -32,11 +32,27 @@
typedef enum state_enum {reset, closed, closing, opened, opening, timeout_after_open, timeout_after_close, error, manual_movement} state_t;
state_t state = reset;
+const char* state_to_string(state_t s)
+{
+ switch(s) {
+ case reset: return "reset";
+ case error: return "error";
+ case closing: return "closing";
+ case opening: return "opening";
+ case manual_movement: return "manual movement";
+ case timeout_after_open: return "timeout after open";
+ case timeout_after_close: return "timeout after close";
+ case closed: return "closed";
+ case opened: return "opened";
+ }
+ return "invalid"; // gcc - shut the fuck up!!!
+}
+
void change_state(state_t new_state)
{
if (new_state == state)
return;
- printf("state: %d\n\r",new_state);
+ printf("state: %s\n\r", state_to_string(new_state));
switch(new_state) {
case reset:
break;
@@ -121,12 +137,12 @@ void statemachine_task_event(void)
case move_timeout:
return change_state(state==opening?timeout_after_open:timeout_after_close);
default:
- printf("Error: event %d not allowed in state %d\n\r", event, state);
+ printf("Error: event %s not allowed in state %s\n\r", event_to_string(event), state_to_string(state));
return;
}
case reset:
case error:
- printf("Error: Not accepting commands in state %d\n\r",state);
+ printf("Error: Not accepting commands in state %s\n\r", state_to_string(state));
break; // Not accepting commands
case manual_movement:
case timeout_after_open:
@@ -150,7 +166,7 @@ void statemachine_task_event(void)
case open_fin:
case close_fin:
case move_timeout:
- printf("Error: event %d not allowed in state %d\n\r", event, state);
+ printf("Error: event %s not allowed in state %s\n\r", event_to_string(event), state_to_string(state));
return;
}
}
@@ -163,3 +179,7 @@ void statemachine_task(void)
statemachine_task_event();
}
+const char* statemachine_get_state_as_string(void)
+{
+ return state_to_string(state);
+}
diff --git a/usb-i2c-sl018/statemachine.h b/usb-i2c-sl018/statemachine.h
index 26e692b..90b478c 100644
--- a/usb-i2c-sl018/statemachine.h
+++ b/usb-i2c-sl018/statemachine.h
@@ -25,5 +25,6 @@
#define R3TUER_statemachine_h_INCLUDED
void statemachine_task(void);
+const char* statemachine_get_state_as_string(void);
#endif
diff --git a/usb-i2c-sl018/stepper.c b/usb-i2c-sl018/stepper.c
index b4390c3..d2fd50f 100644
--- a/usb-i2c-sl018/stepper.c
+++ b/usb-i2c-sl018/stepper.c
@@ -55,7 +55,7 @@ inline void stop_stepper(void)
TIMSK1 = 0; // disable timer interrupt
}
-inline uint8_t handle_step(void)
+static inline uint8_t handle_step(void)
{
static uint8_t step_idx = 0;
diff --git a/usb-i2c-sl018/tuer-rfid.c b/usb-i2c-sl018/tuer-rfid.c
index 3e5b035..1ae51cc 100644
--- a/usb-i2c-sl018/tuer-rfid.c
+++ b/usb-i2c-sl018/tuer-rfid.c
@@ -77,15 +77,15 @@ void handle_stdio(uint8_t cmd)
case 't':
eventqueue_push(cmd_toggle);
break;
- case '0': ledmatrix(off); break;
- case '1': ledmatrix(red); break;
- case '2': ledmatrix(red_moving); break;
- case '3': ledmatrix(red_blink); break;
- case '4': ledmatrix(green); break;
- case '5': ledmatrix(green_moving); break;
- case '6': ledmatrix(green_blink); break;
- case '7': ledmatrix(rg_moving); break;
- case '8': ledmatrix(rg_blink); break;
+ /* case '0': ledmatrix(off); break; */
+ /* case '1': ledmatrix(red); break; */
+ /* case '2': ledmatrix(red_moving); break; */
+ /* case '3': ledmatrix(red_blink); break; */
+ /* case '4': ledmatrix(green); break; */
+ /* case '5': ledmatrix(green_moving); break; */
+ /* case '6': ledmatrix(green_blink); break; */
+ /* case '7': ledmatrix(rg_moving); break; */
+ /* case '8': ledmatrix(rg_blink); break; */
default: printf("error, unknown command %02X '%c'\n\r",cmd, cmd); return;
}
}