TWETerm_M5_Console
M5Stack用のLcd描画ターミナル
M5Stack の 320x240 LCD 用のターミナルの実装です。ITerm
を実装しています。
本クラスはnamespace TWEARD
内に定義されます。
メソッド
TWETerm_M5_Console - コンストラクタ
TWETerm_M5_Console(
uint8_t u8c, uint8_t u8l,
Rect drawArea, M5Stack& _M5)
TWETerm_M5_Console(
uint8_t u8c, uint8_t u8l,
TWETERM::SimpBuf_GChar* pAryLines, TWETERM::GChar* pBuff,
Rect drawArea, M5Stack& _M5)
ITerm
のコンストラクタにdrawArea
と_M5
のパラメータが追加されています。
drawArea
は、LCD内のターミナル描画エリアを決めます。Rect
構造体で指定しx,y,w,hを指定します。(x,y)は領域の左上の座標、(w,h)は領域の幅と高さです。
_M5
は、M5Stackのグローバルインスタンス M5
を指定します。
例:
TWETerm_M5_Console the_screen(64, 20, { 0, 16, 320, 192 }, M5);
カラム最大値を64、行数の最大値を20、左上座標を (0, 16)、領域サイズを (320, 192) として the_screen
オブジェクトを構築します。
メソッド
refresh()
ITerm::refresh()
の実装です。この関数により画面の描画を行います。loop()
関数内で定期的に呼び出します。
本実装では、パフォーマンスの向上のため、原則として描画変更の必要にある行のみを上書きします。画面全領域を再描画したい場合はforce_refresh()
メソッドを呼び出します。
以下の例では32msごとに描画を行います。
void loop() {
static uint32_t u32mills;
uint32_t u32now = millis();
if (u32now - u32mills > 32) {
the_screen.refresh();
u32mills = u32now;
}
}
set_font()
void set_font(uint8_t u8id, uint8_t u8col_request = 0, uint8_t u8row_request = 0)
フォントを指定します。
u8id
はフォントIDを指定します。
u8col_request
は、設定したいカラム数を指定します。指定した数値が領域サイズに対して大きい場合は指定領域に入るように値が丸められます。0を指定した場合は、領域サイズから計算できる最大のカラム数に設定されます。
u8row_request
は、設定したい行数を指定します。指定した数値が領域サイズに対して大きい場合は指定領域に入るように値が丸められます。0を指定した場合は、領域サイズから計算できる最大の行数に設定されます。
font_width(), font_height(), font_id()
uint8_t font_id()
uint8_t font_width()
uint8_t font_height()
font_id()
は、指定したフォントのIDを返します。
font_width()
は、指定したフォントの幅をピクセル数で返します。ダブル幅のピクセル数は、この値の2倍になります。
font_height()
は、指定したフォントの高さをピクセル数で返します。
set_color()
void set_color(uint16_t color, uint16_t bgcolor = 0)
ターミナルの文字色と背景色を指定します。
color
は文字色を指定します。
bgcolor
は背景色を指定します。
白色は ALMOST_WHITE
で指定します。color565(255,255,255) または WHITE を指定すると描画が崩れます。
set_color_table()
void set_color_table(const uint16_t* ptbl)
ターミナルで使用できる8色のテーブルを指定します。ptbl
はuint16_t
型の配列で8つの要素が必要です。
例
static const uint16_t COLTBL_MAIN[8] = {
BLACK,
RED,
GREEN,
YELLOW,
color565(127, 127, 255), // BLUE,
color565(255, 0, 142), // MAGENTA,
CYAN,
ALMOST_WHITE
};
the_screen.set_color_table(COLTBL_MAIN);
上記の例では青とマゼンダの色調を変えたテーブルを指定し、ターミナルオブジェクト the_screen
に指定しています。
ユーティリティ関数
color565()
constexpr uint16_t color565(uint8_t r, uint8_t g, uint8_t b)
r, g, b
を指定して、565形式の色コードを生成します。
最終更新