GR-PEACH ビデオモジュール (video)

video モジュールは、WIRELESS CAMERA Shieldに接続されたカメラの制御や映像信号の取り込みを行います。

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

video.openCMOSCamera(config, callback)

CMOSカメラに接続します。処理は非同期で行われ、処理が完了または失敗すると、コールバック関数が呼び出されます。

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

使用例

var video = require('video');
var AlignedBuffer = require('aligned_buffer').AlignedBuffer;
var buf = new AlignedBuffer(480*272*2, 32);

video.openCMOSCamera({
  width: 480, height: 272, format: 'rgb565', type: 'ov7725'
}, function(err, videoSource) {
  if (err) {
    /* video.openCMOSCamera 失敗... */
    console.log(err);
    return;
  }
  /* video.openCMOSCamera 成功... */

  videoSource.start(buf, function(err) {
    if (err) {
      /* videoSource.start 失敗... */
      console.log(err);
      return;
    }
    /* videoSource.start 成功... */

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

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

      });
    });
  });
});

video.openCMOSCameraSync(config)

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

使用例

var video = require('video');
var AlignedBuffer = require('aligned_buffer').AlignedBuffer;
var buf = new AlignedBuffer(480*272*2, 32);

try {
  var videoSource = video.openCMOSCameraSync({
    width: 480, height: 272, format: 'rgb565', type: 'ov7725'
  });
  /* video.openCMOSCameraSync 成功... */

  videoSource.startSync(buf);
  /* videoSource.startSync 成功... */

  videoSource.stopSync();
  /* videoSource.stopSync 成功... */

  videoSource.closeSync();
  /* videoSource.closeSync 成功... */

} catch (err) {
  /* 失敗... */
  console.log(err);
}

VideoSourceクラス

カメラの制御や映像ソースの取り込みを行うクラスです。

videoSource.width

videoSource.height

videoSource.pixelFormat

videoSource.pixelBytes

videoSource.type

videoSource.start(buf, callback)

カメラの撮影/信号の取り込みを開始します。処理は非同期で行われ、処理が完了または失敗すると、コールバック関数が呼び出されます。

videoSource.startSync(buf)

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

videoSource.stop(callback)

カメラの撮影/信号の取り込みを停止します。処理は非同期で行われ、処理が完了または失敗すると、コールバック関数が呼び出されます。

videoSource.stopSync()

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

videoSource.close(callback)

カメラの制御/信号取り込みに関するハードウェアリソースを解放します。videoSource.start()によりカメラの撮影/信号の取り込みが開始されている場合、この関数の内部で自動的にvideoSource.stop()が呼び出されて停止されます。処理は非同期で行われ、処理が完了または失敗すると、コールバック関数が呼び出されます。

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

videoSource.closeSync()

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