summaryrefslogtreecommitdiff
path: root/usb-i2c-sl018
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2013-02-07 04:56:07 +0000
committerChristian Pointner <equinox@spreadspace.org>2013-02-07 04:56:07 +0000
commit762c7de477f5757c6a29a875d62d48c4a2b8bf32 (patch)
tree5974fd35611ffd25fffb938a628c939e4e3ad088 /usb-i2c-sl018
parentcleaned up output (diff)
added status command
further improved output git-svn-id: https://svn.spreadspace.org/avr/trunk@176 aa12f405-d877-488e-9caf-2d797e2a1cc7
Diffstat (limited to 'usb-i2c-sl018')
-rw-r--r--usb-i2c-sl018/limits.c11
-rw-r--r--usb-i2c-sl018/limits.h1
-rw-r--r--usb-i2c-sl018/tuer-rfid.c21
3 files changed, 25 insertions, 8 deletions
diff --git a/usb-i2c-sl018/limits.c b/usb-i2c-sl018/limits.c
index db0e4ee..b96cf94 100644
--- a/usb-i2c-sl018/limits.c
+++ b/usb-i2c-sl018/limits.c
@@ -90,3 +90,14 @@ limits_t limits_get(void)
return moving;
}
+
+const char* limits_to_string(limits_t limits)
+{
+ switch(limits) {
+ case moving: return "...";
+ case open: return "opened";
+ case close: return "closed";
+ case both: return "error";
+ }
+ return "invalid"; // gcc - shut the fuck up!!!
+}
diff --git a/usb-i2c-sl018/limits.h b/usb-i2c-sl018/limits.h
index 0548bc1..95bb084 100644
--- a/usb-i2c-sl018/limits.h
+++ b/usb-i2c-sl018/limits.h
@@ -28,5 +28,6 @@ typedef enum { moving, open, close, both } limits_t;
void init_limits(void);
limits_t limits_get(void);
+const char* limits_to_string(limits_t limits);
#endif
diff --git a/usb-i2c-sl018/tuer-rfid.c b/usb-i2c-sl018/tuer-rfid.c
index 28b7772..856c76d 100644
--- a/usb-i2c-sl018/tuer-rfid.c
+++ b/usb-i2c-sl018/tuer-rfid.c
@@ -45,7 +45,7 @@
#include "manual.h"
#include "ajar.h"
-void handle_stdio(uint8_t cmd)
+void handle_cmd(uint8_t cmd)
{
switch(cmd) {
case 'r':
@@ -70,15 +70,15 @@ void handle_stdio(uint8_t cmd)
break;
case 'o':
eventqueue_push(cmd_open);
- printf("ok\n\r");
break;
case 'c':
eventqueue_push(cmd_close);
- printf("ok\n\r");
break;
case 't':
eventqueue_push(cmd_toggle);
- printf("ok\n\r");
+ break;
+ case 's':
+ printf("Status: %s, %s, %s\n\r", limits_to_string(limits_get()), statemachine_get_state_as_string(), ajar_to_string(ajar_get()));
break;
/* case '0': ledmatrix(off); break; */
/* case '1': ledmatrix(red); break; */
@@ -89,7 +89,7 @@ void handle_stdio(uint8_t cmd)
/* case '6': ledmatrix(green_blink); break; */
/* case '7': ledmatrix(rg_moving); break; */
/* case '8': ledmatrix(rg_blink); break; */
- default: printf("Error(handle_stdio): unknown command %02X '%c'\n\r", cmd, cmd); return;
+ default: printf("Error(cmd): unknown command %02X '%c'\n\r", cmd, cmd); return;
}
}
@@ -99,11 +99,16 @@ void handle_card(void)
sl018_read_card_uid(&uid);
if (uid.length)
{
+ printf("Info(card): card(");
+ for (uint8_t pos=0; pos<uid.length; pos++)
+ printf("%02X",uid.buffer[uid.length-pos-1]);
+ printf(") ");
+
if(keystore_check_card(uid.buffer,uid.length)) {
- printf("Info(card): found - opening/closing door\n\r");
+ printf("found - opening/closing door\n\r");
eventqueue_push(card);
} else {
- printf("Info(card): card not found in database\n\r");
+ printf("not found - ignoring\n\r");
}
}
}
@@ -137,7 +142,7 @@ int main(void)
int16_t bytes_received = anyio_bytes_received();
if(bytes_received > 0)
- handle_stdio(fgetc(stdin));
+ handle_cmd(fgetc(stdin));
if (sl018_check_for_new_card())
handle_card();