Terminal Emulator.
[Device Driver API.Display device drivers.]


Detailed Description

Virtual terminal emulator.

The virtual terminal driver allows to use a LC or VF display for standard I/O. It supports VT52 control codes.


Data Structures

struct  _TERMDCB
 Terminal device control block structure. More...
struct  _TERMDCB
 Terminal device control block structure. More...
struct  _WINSIZE

Defines

#define ESC_ACTIVE   ESC_CHAR "R"
#define ESC_CHAR   "\x1B"
#define ESC_CLR   ESC_CHAR "E"
#define ESC_CLREND   ESC_CHAR "J"
#define ESC_CLREOL   ESC_CHAR "K"
#define ESC_CLRHOME   ESC_CHAR "H"
#define ESC_CLRSOL   ESC_CHAR "o"
#define ESC_CLRSTART   ESC_CHAR "d"
#define ESC_CURSOROFF   ESC_CHAR "f"
#define ESC_CURSORON   ESC_CHAR "e"
#define ESC_DEFAULTSET   ESC_CHAR "G"
#define ESC_DELCHAR   ESC_CHAR "P"
#define ESC_DELLINE   ESC_CHAR "M"
#define ESC_DOWN   ESC_CHAR "B"
#define ESC_INSCHAR   ESC_CHAR "@"
#define ESC_INSLINE   ESC_CHAR "L"
#define ESC_LEFT   ESC_CHAR "D"
#define ESC_POS   ESC_CHAR "Y"
#define ESC_RIGHT   ESC_CHAR "C"
#define ESC_RLF   ESC_CHAR "I"
#define ESC_SLEEP   ESC_CHAR "S"
#define ESC_SPECIALSET   ESC_CHAR "F"
#define ESC_UP   ESC_CHAR "A"
#define LCD_CMDBYTE   0x0401
#define LCD_CMDWORD16   0x0402
#define LCD_CMDWORD32   0x0403
#define LCD_DATABYTE   0x0405
#define LCD_DATAWORD16   0x0406
#define LCD_DATAWORD32   0x0407
#define LCD_GETCOOKEDMODE   0x0414
 Query raw mode.
#define LCD_MF_COOKEDMODE   0x00020000UL
 Control character interpretation on flag.
#define LCD_MF_CURSORON   0x00000001UL
 Cursor on flag.
#define LCD_SETCOOKEDMODE   0x0413
 Set raw mode.
#define TIOCGWINSZ   0x0501
#define TIOCSWINSZ   0x0502

Typedefs

typedef _TERMDCB TERMDCB
typedef _WINSIZE WINSIZE

Functions

int TermClose (NUTFILE *fp)
 Close a device or file.
int TermInit (NUTDEVICE *dev)
 Initialize the terminal device.
int TermIOCtl (NUTDEVICE *dev, int req, void *conf)
 Perform special LCD control functions.
NUTFILETermOpen (NUTDEVICE *dev, CONST char *name, int mode, int acc)
 Write data from program space to a terminal device.Open a terminal device.
void TermRefresh (TERMDCB *dcb)
int TermWrite (NUTFILE *fp, CONST void *buffer, int len)
 Write data to a terminal device.


Define Documentation

#define TIOCGWINSZ   0x0501

Gets the window size

#define TIOCSWINSZ   0x0502

Sets the window size


Typedef Documentation

typedef struct _TERMDCB TERMDCB

Terminal device control block type.


Function Documentation

int TermClose ( NUTFILE fp  ) 

Close a device or file.

Application should not call this function directly, but use the stdio interface.

Parameters:
fp Pointer to a previously opened NUTFILE structure.
Returns:
0 if the device was successfully closed or –1 to indicate an error.

int TermInit ( NUTDEVICE dev  ) 

Initialize the terminal device.

Prepares the device for subsequent writing.

Application should not call this function directly, but use the stdio interface.

Parameters:
dev Identifies the device to initialize.
Returns:
0 on success, -1 otherwise.

int TermIOCtl ( NUTDEVICE dev,
int  req,
void *  conf 
)

Perform special LCD control functions.

Parameters:
dev Identifies the device that receives the device-control function.
req Requested control function. May be set to one of the following constants:
  • LCD_CMDBYTE Send command byte to display. Parameter conf points to an u_char value containing the command byte.
  • LCD_CMDWORD16 Send 16 bit command word to display. Parameter conf points to an u_short value containing the command bytes. The most significant byte is send first.
  • LCD_CMDWORD32 Send 32 bit command byte to display. Parameter conf points to an u_long value containing the command bytes. The most significant bytes are send first.
  • LCD_DATABYTE Send raw data byte to display. Parameter conf points to an u_char value containing the data byte.
  • LCD_DATAWORD16 Send 16 bit raw data word to display. Parameter conf points to an u_short value containing the data bytes. The most significant byte is send first.
  • LCD_DATAWORD32 Send 32 bit raw data word to display. Parameter conf points to an u_long value containing the data bytes. The most significant bytes are send first.
  • LCD_SETCOOKEDMODE Set terminal control character mode. Parameter conf points to an u_long value containing 0 (off) or 1 (on).
  • LCD_GETCOOKEDMODE Query terminal control character mode. Parameter conf points to an u_long value receiving 0 (off) or 1 (on).
conf Points to a buffer that contains any data required for the given control function or receives data from that function.
Returns:
0 on success, -1 otherwise.

NUTFILE* TermOpen ( NUTDEVICE dev,
CONST char *  name,
int  mode,
int  acc 
)

Write data from program space to a terminal device.Open a terminal device.

Application should not call this function directly, but use the stdio interface.

Parameters:
dev Pointer to device information structure.
name Filename. Not used with terminal devices.
mode Operation mode. May be any of the following:
  • _O_BINARY Raw mode, no control character interpretation.
  • _O_TEXT Text mode. Control characters are interpreted and tranlated to LCD commands.
acc Access mode. Not used with terminal devices.
Returns:
Pointer to a NUTFILE structure or –1 to indicate an error.

int TermWrite ( NUTFILE fp,
CONST void *  buffer,
int  len 
)

Write data to a terminal device.

Application should not call this function directly, but use the stdio interface.

The data may contain special character sequences, which are interpreted by the terminal device to control specific display functions:

In addition a superset of VT52 control sequences are interpreted. Each sequence starts with an ESC character (ASCII 27):

(*) Not a VT52 command.

Parameters:
fp File pointer to a previously opened device.
buffer Pointer to the data bytes to be written.
len Number of bytes to write.
Returns:
The number of bytes written.
Todo:
TAB should be interpreted.
Bug:
Switching from graphic mode back to text mode will not work, because all escape sequences are ignored as soon as the graphic mode has been enabled. Applications should use _ioctl() functions to switch modes.


Generated on Tue Jan 23 21:12:29 2007 for BTnut System Software by doxygen 1.4.7