App:Library:FabGL:Class:Terminal
class Terminal
ANSI-VT100互換のディスプレイ端末。
#include <terminal.h> |
ストリームを継承します。
Public Member Functions
void activate (TerminalTransition transition=TerminalTransition::None)
|
int available ()
|
int availableForWrite ()
|
bool begin (BaseDisplayController *displayController, int maxColumns=-1, int maxRows=-1, Keyboard *keyboard=nullptr)
|
Canvas * canvas ()
|
void clear (bool moveCursor=true)
|
void connectLocally ()
|
void connectSerialPort (HardwareSerial &serialPort, bool autoXONXOFF=true)
|
void connectSerialPort (uint32_t baud, uint32_t config, int rxPin, int txPin, FlowControl flowControl, bool inverted=false, int rtsPin=-1, int ctsPin=-1)
|
bool CTSStatus ()
|
void deactivate ()
|
void disableSerialPortRX (bool value)
|
void disconnectLocally ()
|
void enableCursor (bool value)
|
void end ()
|
void flowControl (bool enableRX)
|
bool flowControl ()
|
void flush (bool waitVSync)
|
void flush ()
|
int getColumns ()
|
int getRows ()
|
bool isActive ()
|
Keyboard * keyboard ()
|
void loadFont (FontInfo const *font)
|
void localInsert (uint8_t c)
|
void localWrite (uint8_t c)
|
void localWrite (char const *str)
|
int peek ()
|
void pollSerialPort ()
|
int read ()
|
int read (int timeOutMS)
|
bool RTSStatus ()
|
void send (uint8_t c)
|
void send (char const *str)
|
void setBackgroundColor (Color color, bool setAsDefault=true)
|
void setColorForAttribute (CharStyle attribute, Color color, bool maintainStyle)
|
void setColorForAttribute (CharStyle attribute)
|
void setForegroundColor (Color color, bool setAsDefault=true)
|
void setLogStream (Stream &stream)
|
void setRTSStatus (bool value)
|
oid setTerminalType (TermType value)
|
SoundGenerator * soundGenerator ()
|
TermInfo const & terminalType ()
|
void unRead (uint8_t c)
|
bool waitFor (int value, int timeOutMS=-1)
|
size_t write (const uint8_t *buffer, size_t size)
|
size_t write (uint8_t c)
|
bool XOFFStatus ()
|
Public Attributes
Delegate< char const * > onUserSequence
|
Delegate< VirtualKey *, bool > onVirtualKey
|
Delegate< VirtualKeyItem * > onVirtualKeyItem
|
Static Public Attributes
static int inputConsumerTaskStackSize = 2048
|
static int inputQueueSize = 1024
|
static int keyboardReaderTaskStackSize = 2048
|
Detailed Description
ANSI-VT100互換のディスプレイ端末。
非CSIコード(RIS、IND、DECID、DECDHLなど)など、一般的なANSI、VT52、VT100、VT200、VT300、VT420、およびVT500エスケープコードのほとんどを実装します。
CSIコード(プライベートモード、CUP、TBCなど)、CSI-SGRコード(太字、斜体、点滅など)、DCSコード(DECRQSSなど)のように。
PS / 2キーボード仮想キーからANSIまたはVTコード(キーパッド、カーソルキー、ファンクションキーなど)への変換をサポートします。
端末は、シリアルポートから表示するコードを受信することも、アプリケーションから直接制御することもできます。同様に、ターミナルはキーボードコードをシリアルポートまたはアプリケーションに直接送信できます。
デフォルトでは、640x350で80x25または132x25文字をサポートします。ただし、カスタムフォントを指定すると、任意のカスタム解像度とテキストバッファサイズがサポートされます。
カーソルのスタイルには、点滅または非点滅の3つのスタイル(ブロック、下線、バー)があります。
ターミナルはStreamを継承するため、アプリケーションはすべてのStreamおよびPrint入力および出力メソッドを使用できます。
ターミナルは、VTTEST VT100/VT102互換性テストスコアシートの95/110に合格します。
Example1:
fabgl::VGAController VGAController;
fabgl::PS2Controller PS2Controller; fabgl::Terminal Terminal; // Setup 80x25 columns loop-back terminal (send what you type on keyboard to the display) void setup() { PS2Controller.begin(PS2Preset::KeyboardPort0); VGAController.begin(); VGAController.setResolution(VGA_640x350_70HzAlt1); Terminal.begin(&VGAController); Terminal.connectLocally(); // to use Terminal.read(), available(), etc.. Terminal.enableCursor(true); } void loop() { if (Terminal.available()) { char c = Terminal.read(); switch (c) { case 0x7F: // DEL -> backspace + ESC[K Terminal.write("\b\e[K"); break; case 0x0D: // CR -> CR + LF Terminal.write("\r\n"); break; case 32 ... 126: // printable chars Terminal.write(c); break; } } } |
Example2:
fabgl::VGAController VGAController;
fabgl::PS2Controller PS2Controller; fabgl::Terminal Terminal; // Setup 80x25 columns terminal using UART2 to communicate with the server, // VGA to display output and PS2 device as keyboard input void setup() { Serial2.begin(115200); PS2Controller.begin(PS2Preset::KeyboardPort0); VGAController.begin(); VGAController.setResolution(VGA_640x350_70HzAlt1); Terminal.begin(&VGAController); Terminal.connectSerialPort(Serial2); Terminal.enableCursor(true); } void loop() { Terminal.pollSerialPort(); } |
Examples:
- Others/KeyboardScanCodes/KeyboardScanCodes.ino, Others/KeyboardVirtualKeys/KeyboardVirtualKeys.ino, SSD1306_OLED/128x32/SimpleTerminalOut/SimpleTerminalOut.ino, SSD1306_OLED/128x64/NetworkTerminal/NetworkTerminal.ino, SSD1306_OLED/128x64/RTClock/RTClock.ino, SSD1306_OLED/128x64/SimpleTerminalOut/SimpleTerminalOut.ino, ST7789_TFT/240x240/SimpleTerminalOut/SimpleTerminalOut.ino, VGA/Altair8800/Altair8800.ino, VGA/AnsiTerminal/AnsiTerminal.ino, VGA/LoopbackTerminal/LoopbackTerminal.ino, VGA/MultitaskingCPM/MultitaskingCPM.ino, VGA/NetworkTerminal/NetworkTerminal.ino, VGA/SimpleTerminalOut/SimpleTerminalOut.ino, VGA/SimpleTextTerminalOut/SimpleTextTerminalOut.ino, and VGA/Songs/Songs.ino.
Definition at line 953 of file terminal.h.
The documentation for this struct was generated from the following file:
- terminal.h
- terminal.cpp