This application will buffer and send lines from up to three serial devices and USB host when connected to via TCP, with telnet or netcat. Written, 02/10/2011-2/14/2011 by Graham Cantin & Special Guest Appearance from Sasha Jevtic (mostly Sasha)
Dependencies: EthernetNetIf MODDMA MODGPS MODSERIAL NTPClient mbed
line_util.h
- Committer:
- kamilion
- Date:
- 2014-11-06
- Revision:
- 1:29f6c660d174
- Parent:
- 0:5d5265391846
File content as of revision 1:29f6c660d174:
#pragma once // TCP Echo server // 02/09/2011 /* Hi there! */ #ifndef _LINE_UTIL_H #define _LINE_UTIL_H #define LINE_MAX_LEN 100 #define NUM_LINES 51 #include <time.h> typedef enum { LINE_SRC_INVALID, // 0 - Invalid Source LINE_SRC_DEBUG, // 1 - Internal DEBUG Source LINE_SRC_HOST, // 2 - HOST USB Port Source LINE_SRC_GPS, // 3 - GPS TTL Port Source LINE_SRC_IMU, // 4 - IMU TTL Port Source LINE_SRC_WHEEL, // 5 - Wheel Source (serial encoder or QEI) LINE_SRC_BUTTONS, // 6 - GPIO Buttons Source LINE_SRC_NONE, LINE_SRC_COUNT, // 9 - Invalid source }LINE_SRC_T; extern const char* const LINE_SRC_NAMES[LINE_SRC_COUNT]; // This is a type to store a timestamp for each line. typedef struct _LINE_T { LINE_SRC_T source; // Keep track of who's talking time_t timestamp; // 32bit unsigned unix epochtime uint32_t usec; // 32 bit unsigned microsecond counter uint16_t len; // length of line char line[LINE_MAX_LEN+1]; // Add an extra index to null-terminate. }LINE_T; unsigned int strip_crlf(char* src); unsigned int SLines_get_fill(); unsigned int SLines_get_capacity(); LINE_T* SLine_put(LINE_T* line); LINE_T* SLine_get(); void SLine_remove(); void SLine_clear(); void SLine_put_control(bool ctrl); #endif