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

Committer:
kamilion
Date:
Thu Nov 06 01:57:54 2014 +0000
Revision:
1:29f6c660d174
Parent:
0:5d5265391846
trying to make telnetserver repo public

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kamilion 0:5d5265391846 1 #pragma once
kamilion 0:5d5265391846 2 // TCP Echo server
kamilion 0:5d5265391846 3 // 02/09/2011
kamilion 0:5d5265391846 4
kamilion 0:5d5265391846 5
kamilion 0:5d5265391846 6 /*
kamilion 0:5d5265391846 7
kamilion 0:5d5265391846 8 Hi there!
kamilion 0:5d5265391846 9
kamilion 0:5d5265391846 10 */
kamilion 0:5d5265391846 11
kamilion 0:5d5265391846 12 #ifndef _LINE_UTIL_H
kamilion 0:5d5265391846 13 #define _LINE_UTIL_H
kamilion 0:5d5265391846 14
kamilion 0:5d5265391846 15
kamilion 0:5d5265391846 16 #define LINE_MAX_LEN 100
kamilion 0:5d5265391846 17 #define NUM_LINES 51
kamilion 0:5d5265391846 18
kamilion 0:5d5265391846 19
kamilion 0:5d5265391846 20 #include <time.h>
kamilion 0:5d5265391846 21
kamilion 0:5d5265391846 22
kamilion 0:5d5265391846 23 typedef enum
kamilion 0:5d5265391846 24 {
kamilion 0:5d5265391846 25 LINE_SRC_INVALID, // 0 - Invalid Source
kamilion 0:5d5265391846 26 LINE_SRC_DEBUG, // 1 - Internal DEBUG Source
kamilion 0:5d5265391846 27 LINE_SRC_HOST, // 2 - HOST USB Port Source
kamilion 0:5d5265391846 28 LINE_SRC_GPS, // 3 - GPS TTL Port Source
kamilion 0:5d5265391846 29 LINE_SRC_IMU, // 4 - IMU TTL Port Source
kamilion 0:5d5265391846 30 LINE_SRC_WHEEL, // 5 - Wheel Source (serial encoder or QEI)
kamilion 0:5d5265391846 31 LINE_SRC_BUTTONS, // 6 - GPIO Buttons Source
kamilion 0:5d5265391846 32 LINE_SRC_NONE,
kamilion 0:5d5265391846 33 LINE_SRC_COUNT, // 9 - Invalid source
kamilion 0:5d5265391846 34 }LINE_SRC_T;
kamilion 0:5d5265391846 35
kamilion 0:5d5265391846 36
kamilion 0:5d5265391846 37 extern const char* const LINE_SRC_NAMES[LINE_SRC_COUNT];
kamilion 0:5d5265391846 38
kamilion 0:5d5265391846 39
kamilion 0:5d5265391846 40 // This is a type to store a timestamp for each line.
kamilion 0:5d5265391846 41 typedef struct _LINE_T
kamilion 0:5d5265391846 42 {
kamilion 0:5d5265391846 43 LINE_SRC_T source; // Keep track of who's talking
kamilion 0:5d5265391846 44 time_t timestamp; // 32bit unsigned unix epochtime
kamilion 0:5d5265391846 45 uint32_t usec; // 32 bit unsigned microsecond counter
kamilion 0:5d5265391846 46 uint16_t len; // length of line
kamilion 0:5d5265391846 47 char line[LINE_MAX_LEN+1]; // Add an extra index to null-terminate.
kamilion 0:5d5265391846 48 }LINE_T;
kamilion 0:5d5265391846 49
kamilion 0:5d5265391846 50
kamilion 0:5d5265391846 51 unsigned int strip_crlf(char* src);
kamilion 0:5d5265391846 52
kamilion 0:5d5265391846 53
kamilion 0:5d5265391846 54 unsigned int SLines_get_fill();
kamilion 0:5d5265391846 55
kamilion 0:5d5265391846 56
kamilion 0:5d5265391846 57 unsigned int SLines_get_capacity();
kamilion 0:5d5265391846 58
kamilion 0:5d5265391846 59
kamilion 0:5d5265391846 60 LINE_T* SLine_put(LINE_T* line);
kamilion 0:5d5265391846 61
kamilion 0:5d5265391846 62
kamilion 0:5d5265391846 63 LINE_T* SLine_get();
kamilion 0:5d5265391846 64
kamilion 0:5d5265391846 65
kamilion 0:5d5265391846 66 void SLine_remove();
kamilion 0:5d5265391846 67
kamilion 0:5d5265391846 68
kamilion 0:5d5265391846 69 void SLine_clear();
kamilion 0:5d5265391846 70
kamilion 0:5d5265391846 71
kamilion 0:5d5265391846 72 void SLine_put_control(bool ctrl);
kamilion 0:5d5265391846 73
kamilion 0:5d5265391846 74
kamilion 0:5d5265391846 75 #endif