projects
/
bertos.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Refactor all module. Clean up. Fix comments. Some patch to work with preemtive kernel...
[bertos.git]
/
bertos
/
net
/
keytag.c
diff --git
a/bertos/net/keytag.c
b/bertos/net/keytag.c
index 861169b488a9360561727e7e139def414d08cb4e..1f57fdfe4509bea0415170319a1f62d9f356639e 100644
(file)
--- a/
bertos/net/keytag.c
+++ b/
bertos/net/keytag.c
@@
-58,17
+58,19
@@
static void keytag_clearPkt(struct TagPacket *pkt)
pkt->len = 0;
}
pkt->len = 0;
}
- void keytag_init(struct TagPacket *pkt)
- {
- keytag_clearPkt(pkt);
- }
+void keytag_init(struct TagPacket *pkt, struct KFile *comm, struct KFile *tag)
+{
+ keytag_clearPkt(pkt);
+ pkt->host = comm;
+ pkt->tag = tag;
+}
-
void keytag_poll(struct TagPacket *pkt)
+void keytag_poll(struct TagPacket *pkt)
{
int c;
/* Get all chars from buffer */
{
int c;
/* Get all chars from buffer */
- while ((c = kfile_getc(
&pkt->tag_ser->fd
)) != EOF)
+ while ((c = kfile_getc(
pkt->tag
)) != EOF)
{
/* Search for STX char in received chars */
if (c == TAG_STX)
{
/* Search for STX char in received chars */
if (c == TAG_STX)
@@
-86,7
+88,7
@@
static void keytag_clearPkt(struct TagPacket *pkt)
{
pkt->buf[TAG_MAX_PRINT_CHARS] = '\x0';
/* Write read TAG on communication serial */
{
pkt->buf[TAG_MAX_PRINT_CHARS] = '\x0';
/* Write read TAG on communication serial */
- kfile_printf(
&pkt->comm_ser->fd
, "tag %s", pkt->buf);
+ kfile_printf(
pkt->host
, "tag %s", pkt->buf);
pkt->sync = false;
}
else
pkt->sync = false;
}
else
@@
-109,4
+111,10
@@
static void keytag_clearPkt(struct TagPacket *pkt)
}
}
}
}
}
}
+ if (kfile_error(pkt->tag) != 0)
+ {
+ kprintf("Error %08x\n", kfile_error(pkt->tag));
+ kfile_clearerr(pkt->tag);
+ }
+
}
}