mirror of
https://github.com/RobTillaart/Arduino.git
synced 2024-10-03 18:09:02 -04:00
+ refactor old sketch to lib
This commit is contained in:
parent
b812c2ca38
commit
df54800ca6
230
libraries/VT100/VT100.h
Normal file
230
libraries/VT100/VT100.h
Normal file
@ -0,0 +1,230 @@
|
||||
#ifndef VT100_h
|
||||
#define VT100_h
|
||||
//
|
||||
// FILE: VT100.h
|
||||
// AUTHOR: Rob Tillaart
|
||||
// VERSION: 0.1.00
|
||||
// PURPOSE: VT100 codes, to be sent by serial.print() et al.
|
||||
// DATE: 2013-09-30
|
||||
// URL:
|
||||
//
|
||||
// Released to the public domain
|
||||
//
|
||||
|
||||
// a sourcec of VT100 codes
|
||||
// http://ascii-table.com/ansi-escape-sequences-vt-100.php
|
||||
|
||||
|
||||
// CHAR MODES
|
||||
#define OFF "\033[0m"
|
||||
#define BOLD "\033[1m"
|
||||
#define LOWINTENS "\033[2m"
|
||||
#define UNDERLINE "\033[4m"
|
||||
#define BLINK "\033[5m"
|
||||
#define REVERSE "\033[7m"
|
||||
|
||||
// POSITIONING
|
||||
#define CLS "\033[2J" // Esc[2J Clear entire screen
|
||||
#define GOTOXY(x,y) "\033[x;yH" // Esc[Line;ColumnH
|
||||
#define HOME "\033[H"
|
||||
|
||||
#define CUD(x) "\033[xB" // Move cursor up n lines
|
||||
// Esc[ValueA Move cursor up n lines CUU
|
||||
// Esc[ValueB Move cursor down n lines CUD
|
||||
// Esc[ValueC Move cursor right n lines CUF
|
||||
// Esc[ValueD Move cursor left n lines CUB
|
||||
|
||||
|
||||
|
||||
// ADDITIONAL CODES depend on terminal if supported.
|
||||
/*
|
||||
Esc[20h Set new line mode LMN
|
||||
Esc[?1h Set cursor key to application DECCKM
|
||||
none Set ANSI (versus VT52) DECANM
|
||||
Esc[?3h Set number of columns to 132 DECCOLM
|
||||
Esc[?4h Set smooth scrolling DECSCLM
|
||||
Esc[?5h Set reverse video on screen DECSCNM
|
||||
Esc[?6h Set origin to relative DECOM
|
||||
Esc[?7h Set auto-wrap mode DECAWM
|
||||
Esc[?8h Set auto-repeat mode DECARM
|
||||
Esc[?9h Set interlacing mode DECINLM
|
||||
|
||||
Esc[20l Set line feed mode LMN
|
||||
Esc[?1l Set cursor key to cursor DECCKM
|
||||
Esc[?2l Set VT52 (versus ANSI) DECANM
|
||||
Esc[?3l Set number of columns to 80 DECCOLM
|
||||
Esc[?4l Set jump scrolling DECSCLM
|
||||
Esc[?5l Set normal video on screen DECSCNM
|
||||
Esc[?6l Set origin to absolute DECOM
|
||||
Esc[?7l Reset auto-wrap mode DECAWM
|
||||
Esc[?8l Reset auto-repeat mode DECARM
|
||||
Esc[?9l Reset interlacing mode DECINLM
|
||||
|
||||
Esc= Set alternate keypad mode DECKPAM
|
||||
Esc> Set numeric keypad mode DECKPNM
|
||||
|
||||
Esc(A Set United Kingdom G0 character set setukg0
|
||||
Esc)A Set United Kingdom G1 character set setukg1
|
||||
Esc(B Set United States G0 character set setusg0
|
||||
Esc)B Set United States G1 character set setusg1
|
||||
Esc(0 Set G0 special chars. & line set setspecg0
|
||||
Esc)0 Set G1 special chars. & line set setspecg1
|
||||
Esc(1 Set G0 alternate character ROM setaltg0
|
||||
Esc)1 Set G1 alternate character ROM setaltg1
|
||||
Esc(2 Set G0 alt char ROM and spec. graphics setaltspecg0
|
||||
Esc)2 Set G1 alt char ROM and spec. graphics setaltspecg1
|
||||
|
||||
EscN Set single shift 2 SS2
|
||||
EscO Set single shift 3 SS3
|
||||
|
||||
Esc[m Turn off character attributes SGR0
|
||||
Esc[0m Turn off character attributes SGR0
|
||||
Esc[1m Turn bold mode on SGR1
|
||||
Esc[2m Turn low intensity mode on SGR2
|
||||
Esc[4m Turn underline mode on SGR4
|
||||
Esc[5m Turn blinking mode on SGR5
|
||||
Esc[7m Turn reverse video on SGR7
|
||||
Esc[8m Turn invisible text mode on SGR8
|
||||
|
||||
Esc[Line;Liner Set top and bottom lines of a window DECSTBM
|
||||
|
||||
Esc[ValueA Move cursor up n lines CUU
|
||||
Esc[ValueB Move cursor down n lines CUD
|
||||
Esc[ValueC Move cursor right n lines CUF
|
||||
Esc[ValueD Move cursor left n lines CUB
|
||||
Esc[H Move cursor to upper left corner cursorhome
|
||||
Esc[;H Move cursor to upper left corner cursorhome
|
||||
Esc[Line;ColumnH Move cursor to screen location v,h CUP
|
||||
Esc[f Move cursor to upper left corner hvhome
|
||||
Esc[;f Move cursor to upper left corner hvhome
|
||||
Esc[Line;Columnf Move cursor to screen location v,h CUP
|
||||
EscD Move/scroll window up one line IND
|
||||
EscM Move/scroll window down one line RI
|
||||
EscE Move to next line NEL
|
||||
Esc7 Save cursor position and attributes DECSC
|
||||
Esc8 Restore cursor position and attributes DECSC
|
||||
|
||||
EscH Set a tab at the current column HTS
|
||||
Esc[g Clear a tab at the current column TBC
|
||||
Esc[0g Clear a tab at the current column TBC
|
||||
Esc[3g Clear all tabs TBC
|
||||
|
||||
Esc#3 Double-height letters, top half DECDHL
|
||||
Esc#4 Double-height letters, bottom half DECDHL
|
||||
Esc#5 Single width, single height letters DECSWL
|
||||
Esc#6 Double width, single height letters DECDWL
|
||||
|
||||
Esc[K Clear line from cursor right EL0
|
||||
Esc[0K Clear line from cursor right EL0
|
||||
Esc[1K Clear line from cursor left EL1
|
||||
Esc[2K Clear entire line EL2
|
||||
|
||||
Esc[J Clear screen from cursor down ED0
|
||||
Esc[0J Clear screen from cursor down ED0
|
||||
Esc[1J Clear screen from cursor up ED1
|
||||
Esc[2J Clear entire screen ED2
|
||||
|
||||
Esc5n Device status report DSR
|
||||
Esc0n Response: terminal is OK DSR
|
||||
Esc3n Response: terminal is not OK DSR
|
||||
|
||||
Esc6n Get cursor position DSR
|
||||
EscLine;ColumnR Response: cursor is at v,h CPR
|
||||
|
||||
Esc[c Identify what terminal type DA
|
||||
Esc[0c Identify what terminal type (another) DA
|
||||
Esc[?1;Value0c Response: terminal type code n DA
|
||||
|
||||
Escc Reset terminal to initial state RIS
|
||||
|
||||
Esc#8 Screen alignment display DECALN
|
||||
Esc[2;1y Confidence power up test DECTST
|
||||
Esc[2;2y Confidence loopback test DECTST
|
||||
Esc[2;9y Repeat power up test DECTST
|
||||
Esc[2;10y Repeat loopback test DECTST
|
||||
|
||||
Esc[0q Turn off all four leds DECLL0
|
||||
Esc[1q Turn on LED #1 DECLL1
|
||||
Esc[2q Turn on LED #2 DECLL2
|
||||
Esc[3q Turn on LED #3 DECLL3
|
||||
Esc[4q Turn on LED #4 DECLL4
|
||||
|
||||
|
||||
Codes for use in VT52 compatibility mode
|
||||
Esc< Enter/exit ANSI mode (VT52) setansi
|
||||
|
||||
Esc= Enter alternate keypad mode altkeypad
|
||||
Esc> Exit alternate keypad mode numkeypad
|
||||
|
||||
EscF Use special graphics character set setgr
|
||||
EscG Use normal US/UK character set resetgr
|
||||
|
||||
EscA Move cursor up one line cursorup
|
||||
EscB Move cursor down one line cursordn
|
||||
EscC Move cursor right one char cursorrt
|
||||
EscD Move cursor left one char cursorlf
|
||||
EscH Move cursor to upper left corner cursorhome
|
||||
EscLineColumn Move cursor to v,h location cursorpos(v,h)
|
||||
EscI Generate a reverse line-feed revindex
|
||||
|
||||
EscK Erase to end of current line cleareol
|
||||
EscJ Erase to end of screen cleareos
|
||||
|
||||
EscZ Identify what the terminal is ident
|
||||
Esc/Z Correct response to ident identresp
|
||||
|
||||
|
||||
|
||||
|
||||
VT100 Special Key Codes
|
||||
|
||||
These are sent from the terminal back to the computer when the particular key is pressed.
|
||||
Note that the numeric keypad keys send different codes in numeric mode than in alternate mode.
|
||||
See escape codes above to change keypad mode.
|
||||
|
||||
|
||||
|
||||
Function Keys:
|
||||
EscOP PF1
|
||||
EscOQ PF2
|
||||
EscOR PF3
|
||||
EscOS PF4
|
||||
|
||||
|
||||
|
||||
Arrow Keys:
|
||||
Reset Set
|
||||
up EscA EscOA
|
||||
down EscB EscOB
|
||||
right EscC EscOC
|
||||
left EscD EscOD
|
||||
|
||||
|
||||
|
||||
Numeric Keypad Keys:
|
||||
EscOp 0
|
||||
EscOq 1
|
||||
EscOr 2
|
||||
EscOs 3
|
||||
EscOt 4
|
||||
EscOu 5
|
||||
EscOv 6
|
||||
EscOw 7
|
||||
EscOx 8
|
||||
EscOy 9
|
||||
EscOm -(minus)
|
||||
EscOl ,(comma)
|
||||
EscOn .(period)
|
||||
EscOM ^M
|
||||
|
||||
|
||||
|
||||
Printing:
|
||||
Esc[i Print Screen Print the current screen
|
||||
Esc[1i Print Line Print the current line
|
||||
Esc[4i Stop Print Log Disable log
|
||||
Esc[5i Start Print Log Start log; all received text is echoed to a printer
|
||||
|
||||
*/
|
||||
|
||||
#endif
|
73
libraries/VT100/examples/vt100demo/vt100demo.ino
Normal file
73
libraries/VT100/examples/vt100demo/vt100demo.ino
Normal file
@ -0,0 +1,73 @@
|
||||
//
|
||||
// FILE: VT100.ino
|
||||
// AUTHOR: Rob Tillaart
|
||||
// VERSION: 0.1.00
|
||||
// PURPOSE: demo vt100 codes
|
||||
// DATE: 2013-09-30
|
||||
// URL:
|
||||
//
|
||||
// Released to the public domain
|
||||
//
|
||||
|
||||
#include "VT100.h"
|
||||
|
||||
void setup()
|
||||
{
|
||||
Serial.begin(115200);
|
||||
Serial.println("VT100 demo sketch");
|
||||
delay(1000);
|
||||
|
||||
Serial.print(CLS);
|
||||
Serial.println("Hello World");
|
||||
Serial.print(OFF);
|
||||
Serial.println("Goodbye");
|
||||
delay(100);
|
||||
|
||||
Serial.print(BOLD);
|
||||
Serial.println("bold - Hello World");
|
||||
Serial.print(OFF);
|
||||
Serial.println("Goodbye");
|
||||
delay(100);
|
||||
|
||||
Serial.print(LOWINTENS);
|
||||
Serial.println("lowintense - Hello World");
|
||||
Serial.print(OFF);
|
||||
Serial.println("Goodbye");
|
||||
delay(100);
|
||||
|
||||
Serial.print(UNDERLINE);
|
||||
Serial.println("underline - Hello World");
|
||||
Serial.print(OFF);
|
||||
Serial.println("Goodbye");
|
||||
delay(100);
|
||||
|
||||
Serial.print(BLINK);
|
||||
Serial.println("blink - Hello World");
|
||||
Serial.print(OFF);
|
||||
Serial.println("Goodbye");
|
||||
delay(100);
|
||||
|
||||
Serial.print(REVERSE);
|
||||
Serial.println("reverse - Hello World");
|
||||
Serial.print(OFF);
|
||||
Serial.println("Goodbye");
|
||||
delay(100);
|
||||
|
||||
// experimental section (does not work yet)
|
||||
Serial.print(CUD(3));
|
||||
Serial.println("Cursor Down 3 - Hello World");
|
||||
Serial.print(OFF);
|
||||
Serial.println("Goodbye");
|
||||
delay(100);
|
||||
|
||||
Serial.print(GOTOXY(3,3));
|
||||
Serial.println("gotoxy 3,3 - Hello World");
|
||||
Serial.print(OFF);
|
||||
Serial.println("Goodbye");
|
||||
delay(100);
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
}
|
||||
// END OF FILE
|
Loading…
Reference in New Issue
Block a user