Class Index | File Index

Classes


Class mbedJS.Memory


Defined in: mbed.Memory.js.

Class Summary
Constructor Attributes Constructor Name and Description
 
mbedJS.Memory(i_mcu, i_handler)
Memoryクラスです。 mbed::Memoryと同等の機能を持ちます。
Method Summary
Method Attributes Method Name and Description
 
read(i_addr, i_size)
1バイト単位でメモリから読み込みます。 関数の完了時にonReadイベントが発生します。 Generatorモードの時は、yieldと併用して完了を待機できます。
 
read32(i_addr, i_size)
4バイト単位でメモリから読み込みます。 関数の完了時にonRead32イベントが発生します。 Generatorモードの時は、yieldと併用して完了を待機できます。
 
Generatorモードのときに使用する関数です。 Generatorモードの時は、yieldと併用してnew Memory()の完了を待ちます。
 
write(i_addr, i_v)
1バイトをメモリへ書き込みます。 関数の完了時にonWriteイベントが発生します。 Generatorモードの時は、yieldと併用して完了を待機できます。
 
write32(i_addr, i_v)
32bit unsigned intをメモリへ書き込みます。 関数の完了時にonWrite32イベントが発生します。 Generatorモードの時は、yieldと併用して完了を待機できます。
Class Detail
mbedJS.Memory(i_mcu, i_handler)
Memoryクラスです。 mbed::Memoryと同等の機能を持ちます。
//Callback
var s=0;
var mcu=new mbedJS.Mcu("192.168.128.39",
{
  onNew:function(){
    var mem=new mbedJS.Memory(mcu,{
    onNew:function(){
      s=0;
      mem.write(0x20080000,1);
    },
    onWrite:function(){
      log("[PASS]onWrite:"+s);
      switch(s){
      case 0:
        mem.read(0x20080000,1);
        break;
      case 1:
        mem.read(0x20080001,1);
        break;
      case 2:
        mem.read(0x20080000,8);
        break;
      }
    },
    onRead:function(v){
      log("[PASS]onRead:"+s);
      switch(s){
      case 0:
        mem.write(0x20080001,[2]);
        break;
      case 1:
        mem.write(0x20080004,[10,20,30]);
        break;
      case 2:
        mem.write32(0x20080000,0xff);
        s=-1;
      }
      s++;
    },
    onWrite32:function(){
      log("[PASS]onWrite32:"+s);
      switch(s){
      case 0:
        mem.read32(0x20080000);
        break;
      case 1:
        mem.read32(0x20080004,4);
        break;
      case 2:
        mem.read32(0x20080000,16);
        break;
      }
    },
    onRead32:function(v){
      log("[PASS]onRead32:"+s);
      switch(s){
      case 0:
        mem.write32(0x20080004,[2]);
        break;
      case 1:
        mem.write32(0x20080004,[10,20,30]);
        break;
      case 2:
        mcu.close();
      }
      s++;
    }      
    });
  },
  onClose:function(){
    log("[PASS]onClose");
  },
  onError:function(){
    alert("Error");
  }
});
//Generator
var g=function*(){
try{
	var v;
	var mcu=new mbedJS.Mcu("192.168.128.39",g);
	yield mcu.waitForNew();
	var mem=new mbedJS.Memory(mcu,g);
	yield mem.waitForNew();
	yield mem.write(0x20080000,1);
	log("[PASS]onWrite:");
	v=yield mem.read(0x20080000,1);
	log("[PASS]onRead:"+v);
	v=yield mem.read(0x20080001,1);
	log("[PASS]onRead:"+v);
	v=yield mem.read(0x20080000,8);
	log("[PASS]onRead:"+v);
	yield mem.write(0x20080001,[2]);
	log("[PASS]onWrite:");
	yield mem.write(0x20080004,[10,20,30]);
	log("[PASS]onWrite:");
	yield mem.write32(0x20080000,0xff);
	log("[PASS]onWrite32:");
	v=yield mem.read32(0x20080000);
	log("[PASS]onRead32:"+v);
	v=yield mem.read32(0x20080004,4);
	log("[PASS]onRead32:"+v);
	v=yield mem.read32(0x20080000,16);
	log("[PASS]onRead32:"+v);
	yield mem.write32(0x20080004,[2]);
	log("[PASS]onWrite32:");
	yield mem.write32(0x20080004,[10,20,30]);
	log("[PASS]onWrite32:");
	mcu.close();
	}catch(e){
	mcu.shutdown();
	alert(e);
	throw e;
}
}();
g.next();
Parameters:
{mbedJS.Mcu} i_mcu
インスタンスをバインドするMCUオブジェクトです。
{HashMap|Generator|function} i_handler
非同期イベントの共通ハンドラの連想配列,Generator,個別コールバック関数の何れかを指定します。

{HashMap} 非同期イベントの共通イベントハンドラです。

  • onNew:function() - インスタンスが使用可能になった時に呼び出されます。
  • onRead:function(v) - read関数が完了した時に呼び出されます。
    • {byte[]} v - 読みだしたバイト値を格納した配列です。
  • onRead32:function(v) - read32関数が完了した時に呼び出されます。
    • v:int[] - 読みだしたuint32値を格納した配列です。
  • onWrite:function() - write関数が完了した時に呼び出されます。
  • onWrite32:function() - write32関数が完了した時に呼び出されます。

{Generator} Generatorを指定した場合、コールバック関数の引数はyiledの戻り値として取得できます。

コールバック関数を指定した場合、RPCが完了したときに呼び出されます。メンバ関数のイベントハンドラは個別に設定する必要があります。

Returns:
{mbedJS.Memory}
Method Detail
{int, int[]} read(i_addr, i_size)
1バイト単位でメモリから読み込みます。 関数の完了時にonReadイベントが発生します。 Generatorモードの時は、yieldと併用して完了を待機できます。
Parameters:
{int} i_addr
メモリアドレス
{int} i_size
(Optional) 読出しサイズです。省略時は1です。
Returns:
{int} Callbackモードの時はRPCメソッドのインデクスを返します。
{int[]} Generatorモードの時はメモリ値を格納した配列を返します。

{int, int[]} read32(i_addr, i_size)
4バイト単位でメモリから読み込みます。 関数の完了時にonRead32イベントが発生します。 Generatorモードの時は、yieldと併用して完了を待機できます。
Parameters:
{int} i_addr
メモリアドレス
{int} i_size
(Optional) 読出しサイズです。省略時は4です。4の倍数を指定してください。
Returns:
{int} Callbackモードの時はRPCメソッドのインデクスを返します。
{int[]} Generatorモードの時はメモリ値を格納した配列を返します。

waitForNew()
Generatorモードのときに使用する関数です。 Generatorモードの時は、yieldと併用してnew Memory()の完了を待ちます。

{int} write(i_addr, i_v)
1バイトをメモリへ書き込みます。 関数の完了時にonWriteイベントが発生します。 Generatorモードの時は、yieldと併用して完了を待機できます。
Parameters:
{int} i_addr
書き込み先のメモリアドレスを指定します。
{int|int[]} i_v
書き込むbyte配列、または数値を指定します。 数値の場合は1バイトを書き込みます。最大長さは200byteくらいです。
Returns:
{int} Callbackモードの時はRPCメソッドのインデクスを返します。

{int} write32(i_addr, i_v)
32bit unsigned intをメモリへ書き込みます。 関数の完了時にonWrite32イベントが発生します。 Generatorモードの時は、yieldと併用して完了を待機できます。
Parameters:
{int} i_addr
書き込み先のメモリアドレスを指定します。
{int|int[]} i_v
書き込むbyte配列、または数値を指定します。 数値の場合は1バイトを書き込みます。最大長さは200byteくらいです。
Returns:
{int} Callbackモードの時はRPCメソッドのインデクスを返します。

Documentation generated by JsDoc Toolkit 2.4.0 on Fri Sep 12 2014 09:40:44 GMT+0900 (JST)