summaryrefslogtreecommitdiff
path: root/usb-i2c-sl018
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2013-02-06 23:16:14 +0000
committerChristian Pointner <equinox@spreadspace.org>2013-02-06 23:16:14 +0000
commitfbef33e2e56410298cf14ecf66fb35b53a1565ae (patch)
treeb95bdbe64618a8d4285904167a3db02fd5c5187a /usb-i2c-sl018
parenteventqueue woring (diff)
main loop injects events now
git-svn-id: https://svn.spreadspace.org/avr/trunk@149 aa12f405-d877-488e-9caf-2d797e2a1cc7
Diffstat (limited to 'usb-i2c-sl018')
-rw-r--r--usb-i2c-sl018/eventqueue.h2
-rw-r--r--usb-i2c-sl018/tuer-rfid.c17
2 files changed, 9 insertions, 10 deletions
diff --git a/usb-i2c-sl018/eventqueue.h b/usb-i2c-sl018/eventqueue.h
index b823060..c1aac9e 100644
--- a/usb-i2c-sl018/eventqueue.h
+++ b/usb-i2c-sl018/eventqueue.h
@@ -24,7 +24,7 @@
#ifndef R3TUER_eventqueue_h_INCLUDED
#define R3TUER_eventqueue_h_INCLUDED
-typedef enum { none } event_t;
+typedef enum { none, cmd_open, cmd_close, cmd_toggle, btn_toggle, card } event_t;
void init_eventqueue(void);
event_t eventqueue_pop(void);
diff --git a/usb-i2c-sl018/tuer-rfid.c b/usb-i2c-sl018/tuer-rfid.c
index 10f567d..f08549e 100644
--- a/usb-i2c-sl018/tuer-rfid.c
+++ b/usb-i2c-sl018/tuer-rfid.c
@@ -67,16 +67,13 @@ void handle_stdio(uint8_t cmd)
dump_keystore_to_stdio();
break;
case 'o':
- if(start_stepper(dir_open))
- printf("ok\n\r");
- else
- printf("error: already in progress\n\r");
+ eventqueue_push(cmd_open);
break;
case 'c':
- if(start_stepper(dir_close))
- printf("ok\n\r");
- else
- printf("error: already in progress\n\r");
+ eventqueue_push(cmd_close);
+ break;
+ case 't':
+ eventqueue_push(cmd_toggle);
break;
case '0': ledmatrix(off); break;
case '1': ledmatrix(red); break;
@@ -100,7 +97,8 @@ void handle_card(void)
if(keystore_check_card(uid.buffer,uid.length)) {
sl018_set_led(1);
_delay_ms(255);
- printf("Card allowed - opening/closing door\n\r"); // TODO: open/close door!
+ printf("Card allowed - opening/closing door\n\r");
+ eventqueue_push(card);
sl018_set_led(0);
} else {
printf("Card not found in Database\n\r");
@@ -120,6 +118,7 @@ int main(void)
init_heartbeat();
init_stepper();
init_ledmatrix();
+ init_eventqueue();
sei();
sl018_reset();