X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fnet%2Fkeytag.c;h=f686a7aaa27d43c0383d66ce13df7d9ccae13c7c;hb=4c1f21207a513ed836c86143b550092bae866084;hp=1f57fdfe4509bea0415170319a1f62d9f356639e;hpb=4f46a9cf2ede20b6e6ca8948a7c719b8a64be3de;p=bertos.git diff --git a/bertos/net/keytag.c b/bertos/net/keytag.c index 1f57fdfe..f686a7aa 100644 --- a/bertos/net/keytag.c +++ b/bertos/net/keytag.c @@ -44,13 +44,24 @@ #include "keytag.h" +#include +// Define log settings for cfg/log.h +#define LOG_LEVEL CONFIG_KEYTAG_LOG_LEVEL +#define LOG_FORMAT CONFIG_KEYTAG_LOG_FORMAT +#include +#include + #include -#include -#include +/** + * Starting communication char (STX). + */ +#define TAG_STX 0x02 -#include -#include +/** + * Ending communication char (ETX). + */ +#define TAG_ETX 0x03 static void keytag_clearPkt(struct TagPacket *pkt) { @@ -77,7 +88,7 @@ void keytag_poll(struct TagPacket *pkt) { /* When STX is found a new packet begins */ if (pkt->sync) - kprintf("TAG double sync!\n"); + LOG_WARN("TAG double sync!\n"); keytag_clearPkt(pkt); pkt->sync = true; } @@ -86,17 +97,19 @@ void keytag_poll(struct TagPacket *pkt) /* Check for end of packet */ if (c == TAG_ETX) { - pkt->buf[TAG_MAX_PRINT_CHARS] = '\x0'; + /* Terminate the tag string */ + uint16_t len = MIN((uint16_t)CONFIG_TAG_MAX_LEN, pkt->len); + pkt->buf[len] = '\0'; /* Write read TAG on communication serial */ - kfile_printf(pkt->host, "tag %s", pkt->buf); + kfile_printf(pkt->host, "%s%s", CONFIG_TAG_LABEL, pkt->buf); pkt->sync = false; } else { /* Check for buffer overflow */ - if (pkt->len >= TAG_MAX_LEN) + if (pkt->len >= CONFIG_TAG_MAX_LEN) { - kprintf("TAG buffer overflow\n"); + LOG_ERR("TAG buffer overflow\n"); pkt->sync = false; } else @@ -113,7 +126,7 @@ void keytag_poll(struct TagPacket *pkt) } if (kfile_error(pkt->tag) != 0) { - kprintf("Error %08x\n", kfile_error(pkt->tag)); + LOG_ERR("Error %08x\n", kfile_error(pkt->tag)); kfile_clearerr(pkt->tag); }