App:Library:FabGL:Class:Terminal

提供: robot-jp wiki
ナビゲーションに移動検索に移動

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)
UARTを使用してリモートホストを接続します。
bool CTSStatus ()
現在のCTS信号ステータスを報告します。
void deactivate ()
この端末を非アクティブにします。
void disableSerialPortRX (bool value)
シリアルポートRXを無効/有効にします。
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 ()
現在のRTS信号ステータスを報告します。
void send (uint8_t c)
localWrite()と同様ですが、接続されている場合はシリアルポートにも送信します。
void send (char const *str)
localWrite()と同様ですが、接続されている場合はシリアルポートにも送信します。
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)
RTS信号のステータスを設定します。
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 ()
TXがアクティブかどうかを報告します。

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
キーボードからキーを読み取り、ANSI/VTコードをTerminalの出力ストリームに送信するタスクのスタックサイズです。

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



戻る