term.h
Go to the documentation of this file.00001 #ifndef _DEV_TERM_H_
00002 #define _DEV_TERM_H_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #include <sys/device.h>
00037
00047
00048
00049
00050
00051 #define LCD_CMDBYTE 0x0401
00052 #define LCD_CMDWORD16 0x0402
00053 #define LCD_CMDWORD32 0x0403
00054 #define LCD_DATABYTE 0x0405
00055 #define LCD_DATAWORD16 0x0406
00056 #define LCD_DATAWORD32 0x0407
00057 #define LCD_SETCOOKEDMODE 0x0413
00058 #define LCD_GETCOOKEDMODE 0x0414
00060 #ifndef TIOCGWINSZ
00061 #define TIOCGWINSZ 0x0501
00062 #endif
00063 #ifndef TIOCSWINSZ
00064 #define TIOCSWINSZ 0x0502
00065 #endif
00066
00067 #define LCD_MF_CURSORON 0x00000001UL
00068 #define LCD_MF_COOKEDMODE 0x00020000UL
00069 #define LCD_MF_INVERTED 0x10000000UL
00072 #define ESC_CHAR "\x1B"
00073
00074 #define ESC_POS ESC_CHAR "Y"
00075 #define ESC_UP ESC_CHAR "A"
00076 #define ESC_DOWN ESC_CHAR "B"
00077 #define ESC_RIGHT ESC_CHAR "C"
00078 #define ESC_LEFT ESC_CHAR "D"
00079 #define ESC_CLRHOME ESC_CHAR "E"
00080
00081 #define ESC_HOME ESC_CHAR "H"
00082 #define ESC_CLREND ESC_CHAR "J"
00083 #define ESC_CLREOL ESC_CHAR "K"
00084 #define ESC_CLRSTART ESC_CHAR "d"
00085 #define ESC_CLRSOL ESC_CHAR "o"
00086
00087 #define ESC_INSCHAR ESC_CHAR "@"
00088 #define ESC_INSLINE ESC_CHAR "L"
00089 #define ESC_DELCHAR ESC_CHAR "P"
00090 #define ESC_DELLINE ESC_CHAR "M"
00091 #define ESC_RLF ESC_CHAR "I"
00092
00093 #define ESC_CURSORON ESC_CHAR "e"
00094 #define ESC_CURSOROFF ESC_CHAR "f"
00095 #define ESC_INVERTON ESC_CHAR "i"
00096 #define ESC_INVERTOFF ESC_CHAR "n"
00097 #define ESC_SPECIALSET ESC_CHAR "F"
00098 #define ESC_DEFAULTSET ESC_CHAR "G"
00099 #define ESC_ACTIVE ESC_CHAR "R"
00100 #define ESC_SLEEP ESC_CHAR "S"
00101
00106 #define ESC_CLR ESC_CLRHOME
00107
00108
00109
00110
00111 typedef struct _WINSIZE WINSIZE;
00112
00113 struct _WINSIZE {
00114 uint16_t ws_row;
00115 uint16_t ws_col;
00116 uint16_t ws_xpixel;
00117 uint16_t ws_ypixel;
00118 };
00119
00123 typedef struct _TERMDCB TERMDCB;
00124
00129 struct _TERMDCB {
00130
00133 void (*dss_init)(NUTDEVICE*);
00134
00137 void (*dss_write)(uint8_t);
00138
00141 void (*dss_command)(uint8_t, uint8_t);
00142
00145 void (*dss_clear)(void);
00146
00149 void (*dss_set_cursor)(uint8_t);
00150
00153 void (*dss_cursor_home)(void);
00154
00157 void (*dss_cursor_left)(void);
00158
00161 void (*dss_cursor_right)(void);
00162
00165 void (*dss_cursor_mode)(uint8_t);
00166
00169 uint32_t dcb_modeflags;
00170
00173 uint8_t dcb_ctlseq;
00174
00178 uint8_t dcb_nrows;
00179
00183 uint8_t dcb_ncols;
00184
00188 uint8_t dcb_vcols;
00189
00192 uint8_t dcb_row;
00193
00196 uint8_t dcb_col;
00197
00200 uint8_t *dcb_smem;
00201
00204 uint8_t *dcb_sptr;
00205 };
00206
00209 extern int TermInit(NUTDEVICE * dev);
00210 extern int TermIOCtl(NUTDEVICE * dev, int req, void *conf);
00211 extern int TermWrite(NUTFILE * fp, CONST void *buffer, int len);
00212 #ifdef __HARVARD_ARCH__
00213 extern int TermWrite_P(NUTFILE * fp, PGM_P buffer, int len);
00214 #endif
00215 extern NUTFILE *TermOpen(NUTDEVICE * dev, CONST char *name, int mode, int acc);
00216 extern int TermClose(NUTFILE * fp);
00217
00218 #endif