]> rtime.felk.cvut.cz Git - coffee/mt-apps.git/blobdiff - mt_gpio.h
gpio started
[coffee/mt-apps.git] / mt_gpio.h
diff --git a/mt_gpio.h b/mt_gpio.h
new file mode 100644 (file)
index 0000000..fad9390
--- /dev/null
+++ b/mt_gpio.h
@@ -0,0 +1,33 @@
+#ifndef MT_RFID_H
+#define MT_RFID_H
+
+#include <ev.h>
+
+// reader open parameters, see uFR manual
+#define UFR_READER_TYPE     1       // uFR type (1Mbps)
+#define UFR_PORT_INTERFACE  1       // serial; auto->ftdi->FAIL
+#define UFR_PORT_NAME       "/dev/ttyUSB0" // reader device
+#define UFR_ASYNC_BAUD_RATE 1000000 // 1Mbps, otherwise UFR_COMMUNICATION_BREAK
+
+#define UFR_BEEP // define this to annoy people
+
+typedef struct ev_io_ufr {
+    ev_io w;           // fd watcher
+    char uid_data[24]; // store uid here (uid is 10 bytes max)
+    char *uid;         // current position in uid_data
+    int fd;            // PORT_NAME file descriptor
+} ev_io_ufr;
+
+typedef struct mt_rfid_t {
+    ev_io_ufr w; // reader watcher
+    int fd;      // print JSON output here
+} mt_rfid_t;
+
+// connect to the reader, add self to loop and make it write to fd
+// return 0 on success, negative number otherwise
+int mt_rfid_init(mt_rfid_t *self, struct ev_loop *loop, int fd);
+
+// disconnect from reader
+void mt_rfid_deinit(mt_rfid_t *self);
+
+#endif