My implementation of VT100 ESC-sequence utility
Dependents: test_vt100 maze_vt100_MMA8451Q funcgen test_MAG3110 ... more
vt100.h
- Committer:
- Rhyme
- Date:
- 2015-08-02
- Revision:
- 2:b7229a9eae1c
- Parent:
- 0:94253645a02a
File content as of revision 2:b7229a9eae1c:
#ifndef VT100_H
#define VT100_H included
/** vt100 class
* Utility for handling text/letter on a terminal
* which can handle VT100 escape command sequence.
*
* Example:
* @code
* #include "mbed.h"
* #include "vt100.h"
*
* vt100 tty ;
*
* int main() {
* int count = 0 ;
* tty.cls() ;
* tty.black() ;
* tty.frame(5, 5, 15, 9) ;
* while(1) {
* tty.locate(7, 7) ;
* tty.setFG(count % 8) ;
* printf("%d\r\n", count++) ;
* wait(1.0) ;
* }
* }
* @endcode
*
* Note: I know there should be other libraries
* with similar functions, but I could not help
* writing one for myself anyway.
*/
class vt100 {
public:
/** constructor
* @param baud baud rate
*/
vt100(int baud = 115200) ;
/** destructor */
~vt100(void) ;
/** clear screen */
void cls(void) ;
/** move cursor to (x, y)
* @param x start column of the next letter
* @param y start row of the next letter
* @note no value checking is performed.
*/
void locate(int x, int y) ;
/** print a letter c at (x,y)
* @param c the letter to be written
* @param x column of the letter
* @param y row of the letter
*/
void putChar(int x, int y, char c) ;
/** print a string str from (x,y)
* @param *str c-style string to be written
* @param x column of the first letter
* @param y row of the first letter
*/
void putStr(int x, int y, char *str) ;
/** print a line of char
* @param c the letter to form the line
* @param x1 starting column
* @param y1 starting row
* @param x2 ending column
* @param y2 ending row
*/
void line(int x1, int y1, int x2, int y2, char c='*') ;
/** print a text frame
* @param x1 left column
* @param y1 top row
* @param x2 right column
* @param y2 bottom row
*/
void frame(int x1, int y1, int x2, int y2) ;
/** print a text circle
* @c the letter to form the circle
* @param x0 center column
* @param y1 center row
* @param r radius
*/
void circle(int x0, int y0, int r, char c='*') ;
/** set foreground color
* @param newFG new foreground color
* @returns previous foreground color
* @note 0 BLACK
* @note 1 RED
* @note 2 GREEN
* @note 3 YELLOW
* @note 4 BLUE
* @note 5 PURPLE
* @note 6 CIAN
* @note 7 WHITE
*/
int setFG(int newFG) ;
/** get current foreground color
* @returns current foreground color
*/
int getFG(void) ;
/** set background color
* @param newBG new background color
* @returns previous background color
*/
int setBG(int newBG) ;
/** get current background color
* @returns current background color
*/
int getBG(void) ;
/** set foreground color to black */
void black(void) ;
/** set foreground color to red */
void red(void) ;
/** set foreground color to green */
void green(void) ;
/** set foreground color to yellow */
void yellow(void) ;
/** set foreground color to blue */
void blue(void) ;
/** set foreground color to purple */
void purple(void) ;
/** set foreground color to cian */
void cian(void) ;
/** set foreground color to white */
void white(void) ;
protected:
private:
int foreground ;
int background ;
} ;
#endif /* VT100_H */