changed to terminate the event data with a zero character instead of line feed character
This commit is contained in:
parent
d376b3fe9d
commit
a63bbe05ba
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* @(#)$Id: serial.c,v 1.1 2006/06/17 22:41:17 adamdunkels Exp $
|
* @(#)$Id: serial.c,v 1.2 2006/07/03 11:29:16 nifi Exp $
|
||||||
*/
|
*/
|
||||||
#include "serial.h"
|
#include "serial.h"
|
||||||
#include <string.h> /* for memcpy() */
|
#include <string.h> /* for memcpy() */
|
||||||
|
@ -44,8 +44,8 @@
|
||||||
#define END 0x0a
|
#define END 0x0a
|
||||||
|
|
||||||
static char buffer[BUFSIZE], appbuffer[BUFSIZE];
|
static char buffer[BUFSIZE], appbuffer[BUFSIZE];
|
||||||
static unsigned char bufwptr;
|
static volatile unsigned char bufwptr;
|
||||||
static char buffer_full = 0;
|
static volatile char buffer_full = 0;
|
||||||
|
|
||||||
PROCESS(serial_process, "Serial driver");
|
PROCESS(serial_process, "Serial driver");
|
||||||
|
|
||||||
|
@ -56,16 +56,18 @@ int
|
||||||
serial_input_byte(unsigned char c)
|
serial_input_byte(unsigned char c)
|
||||||
{
|
{
|
||||||
if(!buffer_full && !IGNORE_CHAR(c)) {
|
if(!buffer_full && !IGNORE_CHAR(c)) {
|
||||||
buffer[bufwptr] = c;
|
|
||||||
if(bufwptr < BUFSIZE) {
|
|
||||||
++bufwptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(c == END) {
|
if(c == END) {
|
||||||
|
/* terminate the string */
|
||||||
|
buffer[bufwptr++] = '\0';
|
||||||
buffer_full++;
|
buffer_full++;
|
||||||
process_poll(&serial_process);
|
process_poll(&serial_process);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* reserve space for the terminating zero character */
|
||||||
|
if(bufwptr < (BUFSIZE - 1)) {
|
||||||
|
buffer[bufwptr++] = c;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -85,8 +87,8 @@ PROCESS_THREAD(serial_process, ev, data)
|
||||||
if(buffer_full) {
|
if(buffer_full) {
|
||||||
memcpy(appbuffer, buffer, bufwptr);
|
memcpy(appbuffer, buffer, bufwptr);
|
||||||
process_post(PROCESS_BROADCAST, serial_event_message, appbuffer);
|
process_post(PROCESS_BROADCAST, serial_event_message, appbuffer);
|
||||||
buffer_full = 0;
|
|
||||||
bufwptr = 0;
|
bufwptr = 0;
|
||||||
|
buffer_full = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue