GR-PEACH ディスプレイモジュール (display)

display モジュールは、GR-PEACH 4.3inch LCD Shield に搭載された液晶の制御を行います。

画像の出力は、マイコンに搭載されたハードウェアリソース(VDC5)を用いてプログラムとは非同期に実行されます。

display.openLCD(config, callback)

LCDディスプレイに接続します。処理は非同期で行われ、処理が完了または失敗すると、コールバック関数が呼び出されます。

注意: ハードウェアリソースを排他で使用するため、複数のLcdインスタンスを同時に使用することはできません。別のLCDに接続する場合は、先に生成されたインスタンスに対してclose()を実行してください。

使用例

var display = require('display');
var AlignedBuffer = require('aligned_buffer').AlignedBuffer;

var buf1 = new AlignedBuffer(480 * 272 * 2, 32);
var buf2 = new AlignedBuffer(480 * 272 * 2, 32);

display.openLCD({
  type: '4.3inch'
}, function(err, lcd) {
  if (err) {
    /* display.openLCD 失敗... */
    console.log(err);
    return;
  }
  /* display.openLCD 成功... */

  lcd.start(0, buf1, 'rgb565', function(err) {
    if (err) {
      /* lcd.start 失敗... */
      console.log(err);
      return;
    }
    /* lcd.start 成功... */

    lcd.update(0, buf2, function(err) {
      if (err) {
        /* lcd.update 失敗... */
        console.log(err);
        return;
      }
      /* lcd.update 成功... */

      lcd.stop(0, function(err) {
        if (err) {
          /* lcd.stop 失敗... */
          console.log(err);
          return;
        }
        /* lcd.stop 成功... */

        lcd.close(function (err) {
          if (err) {
            /* lcd.close 失敗... */
            console.log(err);
          }
          /* lcd.close 成功... */
        });
      });
    });
  });
});

display.openLCDSync(config)

display.openLCD()の同期版です。処理は同期で行われ、処理が完了するとLcdクラスのインスタンスを返却します。失敗すると例外をスローします。

使用例

var display = require('display');
var AlignedBuffer = require('aligned_buffer').AlignedBuffer;

var buf1 = new AlignedBuffer(480 * 272 * 2, 32);
var buf2 = new AlignedBuffer(480 * 272 * 2, 32);

try {
  var lcd = display.openLCDSync({ type: '4.3inch' });
  /* display.openLCDSync 成功... */

  lcd.startSync(0, buf1, 'rgb565');
  /* lcd.startSync 成功... */

  lcd.updateSync(0, buf2);
  /* lcd.updateSync 成功... */

  lcd.stopSync(0);
  /* lcd.stopSync 成功... */

  lcd.closeSync();
  /* lcd.closeSync 成功... */
} catch (err) {
  console.log(err);
}

Lcdクラス

LCDの制御、画像データの出力を行うクラスです。

lcd.type

lcd.width

lcd.height

lcd.start(layer, buf, format, callback)

画像の出力を開始します。処理は非同期で行われ、処理が完了または失敗すると、コールバック関数が呼び出されます。

lcd.startSync(layer, buf, format)

lcd.start()の同期版です。処理は同期で行われ、処理が完了すると呼び出し元に戻ります。失敗すると例外をスローします。

lcd.stop(layer, callback)

画像の出力を停止します。処理は非同期で行われ、処理が完了または失敗すると、コールバック関数が呼び出されます。

lcd.stopSync(layer)

lcd.stop()の同期版です。処理は同期で行われ、処理が完了すると呼び出し元に戻ります。失敗すると例外をスローします。

lcd.update(layer, buf, callback)

LCDに表示するフレームバッファを更新(置き換え)します。 フレームバッファはlcd.start()formatで指定したフォーマットである必要があります。 処理は非同期で行われ、処理が完了または失敗すると、コールバック関数が呼び出されます。

lcd.updateSync(layer, buf)

lcd.update()の同期版です。処理は同期で行われ、処理が完了すると呼び出し元に戻ります。失敗すると例外をスローします。

lcd.close(callback)

画像出力に関するハードウェアリソースを解放します。lcd.start()により画像の出力が開始されている場合、この関数の内部で自動的にlcd.stop()が呼び出されて停止されます。処理は非同期で行われ、処理が完了または失敗すると、コールバック関数が呼び出されます。

注意: この関数を呼んだ後には、このLcdインスタンスに対していかなる操作も行えません。このとき各プロパティの返す値は未定義であり、各関数の呼び出しを行うとエラーが発生します。

lcd.closeSync()

lcd.close()の同期版です。処理は同期で行われ、処理が完了すると呼び出し元に戻ります。失敗すると例外をスローします。