Move kfile interface to the io/ directory.
[bertos.git] / bertos / net / keytag.h
index b815a8b1b117328d770a347d55a5665d846887e0..2a2c5fbfe1ef3fed4bc35eae19e59547b5fe89ab 100644 (file)
  * \author Andrea Grandi <andrea@develer.com>
  *
  * \brief Tag protocol. (interface).
+ *
+ * $WIZ$ module_name = "keytag"
+ * $WIZ$ module_configuration = "bertos/cfg/cfg_keytag.h"
+ * $WIZ$ module_depends = "kfile"
+ * $WIZ$ module_hw = ""
  */
 
 #ifndef NET_KEYTAG_H
 #define NET_KEYTAG_H
 
-#include <kern/kfile.h>
-#include <drv/ser.h>
+#include <cfg/cfg_keytag.h>
 
-/**
- * Starting communication char (STX).
- */
-#define TAG_STX 0x02
+#include <io/kfile.h>
 
-/**
- * Ending communication char (ETX).
- */
-#define TAG_ETX 0x03
-
-/**
- * Max buffer lenght
- */
-#define TAG_MAX_LEN 14
-
-#define TAG_SER_PORT 0
-#define TAG_SER_BAUDRATE 9600
-
-/**
- * Max number of chars to print in the communication serial
- */
-#define TAG_MAX_PRINT_CHARS 12
 
 /**
  * Structure of a Tag packet
  */
 typedef struct TagPacket
 {
-       KFile *tag;                         ///<Tag communication channel
-       KFile *host;                ///<Host communication channel
-       bool sync;                  ///< Status flag: true if we find an STX
-       uint16_t len;               ///< Packet lenght
-       uint8_t buf[TAG_MAX_LEN];       ///< Reception buffer
+       KFile *tag;                        ///< Tag communication channel
+       KFile *host;                       ///< Host communication channel
+       bool sync;                         ///< Status flag: true if we find an STX
+       size_t len;                        ///< Packet lenght
+       uint8_t buf[CONFIG_TAG_MAX_LEN];   ///< Reception buffer
 } TagPacket;
 
 void keytag_init(struct TagPacket *pkt, struct KFile *comm, struct KFile *tag);
+int keytag_recv(struct TagPacket *pkt, uint8_t *tag, size_t len);
+
 void keytag_poll(struct TagPacket *pkt);
 
 #endif /* NET_TAG_H */