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@1:29f6c660d174, 2014-11-06 (annotated)
- 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?
User | Revision | Line number | New 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 |