From fbef33e2e56410298cf14ecf66fb35b53a1565ae Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Wed, 6 Feb 2013 23:16:14 +0000 Subject: main loop injects events now git-svn-id: https://svn.spreadspace.org/avr/trunk@149 aa12f405-d877-488e-9caf-2d797e2a1cc7 --- usb-i2c-sl018/eventqueue.h | 2 +- usb-i2c-sl018/tuer-rfid.c | 17 ++++++++--------- 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(); -- cgit v1.2.3