From 0ce5c0c206c20414692b7309488e8ea26264af30 Mon Sep 17 00:00:00 2001 From: Maurizio Porrato Date: Fri, 14 Dec 2018 10:13:06 +0000 Subject: [PATCH] Use ring buffer for packet decoding in frame parser tool --- .gitignore | 4 +++ tools/frame-parser.c | 60 +++++++++++++++++++++++++++++++------------- 2 files changed, 46 insertions(+), 18 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2fa30bd --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +*~ +*% +*.swp +*.py[co] diff --git a/tools/frame-parser.c b/tools/frame-parser.c index bf3aeb1..176150c 100644 --- a/tools/frame-parser.c +++ b/tools/frame-parser.c @@ -10,7 +10,6 @@ struct packet_s { char status; char options[4]; char eol[2]; - char eos; }; enum unit_e { @@ -91,26 +90,51 @@ int parse_packet(struct packet_s *packet) { return 0; } -int read_packet(struct packet_s *packet) { - char *r; +void log_packet(struct packet_s *packet) { int i; - int valid; + char *c = (char *)packet; - while (1) { - r = fgets((char *)packet, sizeof(*packet), stdin); - if (r == NULL) + for (i=0; ieol[0] != '\r' || packet->eol[1] != '\n') - continue; - // All fields must be encoded as 0x3X - for (valid=1, i=0; i 0) ? shift - 1 : 0; + } } }