X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fnet%2Fkeytag.h;fp=bertos%2Fnet%2Fkeytag.h;h=541005ea694c9fdb969cce3b637098ef186e5d3d;hb=791e167e053bdd9250d34a9a5ccae6ccde4d6679;hp=0000000000000000000000000000000000000000;hpb=faf2f6bfd5933ff75e6cc01e3d48f9277f731d8f;p=bertos.git diff --git a/bertos/net/keytag.h b/bertos/net/keytag.h new file mode 100644 index 00000000..541005ea --- /dev/null +++ b/bertos/net/keytag.h @@ -0,0 +1,82 @@ +/** + * \file + * + * + * \author Andrea Grandi + * + * \brief Tag protocol. (interface). + */ + +#ifndef NET_KEYTAG_H +#define NET_KEYTAG_H + +#include +#include + +/** + * Starting communication char (STX). + */ +#define TAG_STX 0x02 + +/** + * 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 +{ + KFileSerial *tag_ser; // Tag serial + KFileSerial *comm_ser; // Communication serial + bool sync; // Status flag: true if we find an STX + uint16_t len; // Packet lenght + uint8_t buf[TAG_MAX_LEN]; // Reception buffer +} TagPacket; + +void keytag_init(struct TagPacket *pkt); +void keytag_poll(struct TagPacket *pkt); + +#endif /* NET_TAG_H */