Class Index | File Index

Classes


Class mbedJS.I2C


Defined in: mbed.I2C.js.

Class Summary
Constructor Attributes Constructor Name and Description
 
mbedJS.I2C(i_mcu, i_params, i_handler)
I2Cクラスです。 mbed::I2Cと同等の機能を持ちます。
Method Summary
Method Attributes Method Name and Description
 
MCUに生成されているオブジェクトを破棄します。
 
frequency(i_hz)
Hz単位でバスの速度を指定します。 関数の完了時にonFrequencyイベントが発生します。 Generatorモードの時は、yieldと併用して完了を待機できます。
 
read()
バスから値を読み出します。 関数の完了時にonReadイベントが発生します。 Generatorモードの時は、yieldと併用して完了を待機できます。
 
read:1(address, length, repeated)
引数が3個の場合
 
read:2(ack)
引数が1個の場合
 
I2Cバスを開始状態にします。 関数の完了時にonStartイベントが発生します。 Generatorモードの時は、yieldと併用して完了を待機できます。
 
stop()
I2Cバスを停止状態にします。 関数の完了時にonStopイベントが発生します。 Generatorモードの時は、yieldと併用して完了を待機できます。
 
Generatorモードのときに使用する関数です。 Generatorモードの時は、yieldと併用してnew I2C()の完了を待ちます。
 
バスに値を書き込みます。 関数の完了時にonWriteイベントが発生します。 Generatorモードの時は、yieldと併用して完了を待機できます。
 
write:1(address, data, repeated)
引数が3個の場合
 
write:2(data)
引数が1個の場合
Class Detail
mbedJS.I2C(i_mcu, i_params, i_handler)
I2Cクラスです。 mbed::I2Cと同等の機能を持ちます。
//Callback
var st=0;
var mcu=new mbedJS.Mcu("192.168.128.39",
{
  onNew:function(){
    var i2c=new mbedJS.I2C(mcu,[mbedJS.PinName.p28,mbedJS.PinName.p27],{
    onNew:function(){
      i2c.frequency(100000);
    },
    onFrequency:function()
    {
      i2c.start();
    },
    onStart:function(){
      st=0;
      i2c.write(1);
    },
    onWrite:function(v){
      if(st==0){
        i2c.write(0,[1,2,3],false);
        st++;
      }else{
        i2c.read(1);
        st=0;
      }
    },
    onRead:function(v){
      if(st==0){
        i2c.read(1,2,false);
        st++;
      }else{
        i2c.stop();
        }
    },
    onStop:function(){
      mcu.close();
    }
    });
  },
  onClose:function(){
  },
  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 i2c=new mbedJS.I2C(mcu,[mbedJS.PinName.p28,mbedJS.PinName.p27],g);
  yield i2c.waitForNew();
  yield i2c.frequency(100000);
  yield i2c.start();
  yield i2c.write(1);
  yield i2c.write(0,[1,2,3],false);
  yield i2c.read(1);
  yield i2c.read(1,2,false);
  yield i2c.stop();
  yield mcu.close();
}catch(e){
  mcu.shutdown();
  alert(e);
  throw e;
}
}();
g.next();
Parameters:
{mbedJS.Mcu} i_mcu
インスタンスをバインドするMCUオブジェクトです。
{[PinName|PinName]} i_params
i2Cバスを構成するピンIDを指定します。sda,sclの順番です。
{HashMap|Generator|function} i_handler
非同期イベントの共通ハンドラの連想配列,Generator,個別コールバック関数の何れかを指定します。

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

  • onNew:function() - インスタンスが使用可能になった時に呼び出されます。
  • onFrequency:function() - frequency関数が完了したときに呼び出されます。
  • onRead:function(ret,data) - read関数が完了したときに呼び出されます。
    • ret:int - 成功/失敗フラグを返します。read.1とread.2の場合で意味が異なります。 read.1の場合、 0:ACK(成功),1:NACK(失敗)です。read.2の場合、読みだした値です。
    • data:byte[] - 読みだしたデータの配列です。read.1の場合のみ有効です。
  • onWrite:function(ret)- write関数が完了したときに呼び出されます。
    • ret:int - 成功/失敗フラグを返します。write.1とwrite.2の場合で意味が異なります。 write.1の場合、ACK:0(成功),NACK:それ以外です。write.2の場合、ACKを受信すると1を返します。
  • onStart:function() - start関数が完了したときに呼び出されます。
  • onStop:function() - stop関数が完了したときに呼び出されます。

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

{function} コールバック関数を指定した場合、RPCが完了したときにonNew相当のコールバック関数が呼び出されます。 メンバ関数のイベントハンドラは個別に設定してください。

Returns:
{mbedJS.I2C}
Method Detail
dispose()
MCUに生成されているオブジェクトを破棄します。

{int} frequency(i_hz)
Hz単位でバスの速度を指定します。 関数の完了時にonFrequencyイベントが発生します。 Generatorモードの時は、yieldと併用して完了を待機できます。
Parameters:
{int} i_hz
Hz単位のバス速度です。
Returns:
{int} Callbackモードの時はRPCメソッドのインデクスを返します。

read()
バスから値を読み出します。 関数の完了時にonReadイベントが発生します。 Generatorモードの時は、yieldと併用して完了を待機できます。
Parameters:
...
詳細はmbedJS.I2C#read:Nを参照してください。

{int, HashMap} read:1(address, length, repeated)
引数が3個の場合
Parameters:
{int} address
8ビットのI2CSlaveアドレスです。
{int} length
読み出すデータの長さです。256未満の値を指定してください。
{boolean} repeated
Repeated start, true - do not send stop at end Optionalです。省略時はfalseです。
Returns:
{int} Callbackモードの時はRPCメソッドのインデクスを返します。
{HashMap} {ret:int,data:[byte]} Generatorの場合は戻り値オブジェクトを返します。
  • ret:int - 成功フラグ 0:ACK(成功),1:NACK(失敗)
  • data:byte[] - 読みだしたデータ

{int, int} read:2(ack)
引数が1個の場合
Parameters:
{int} ack
indicates if the byte is to be acknowledged (1 = acknowledge)
Returns:
{int} Callbackモードの時はRPCメソッドのインデクスを返します。
{int} Generatorモードの時は読みだした値を返します。

{int} start()
I2Cバスを開始状態にします。 関数の完了時にonStartイベントが発生します。 Generatorモードの時は、yieldと併用して完了を待機できます。
Returns:
{int} Callbackモードの時はRPCメソッドのインデクスを返します。

{int} stop()
I2Cバスを停止状態にします。 関数の完了時にonStopイベントが発生します。 Generatorモードの時は、yieldと併用して完了を待機できます。
Returns:
{int} Callbackモードの時はRPCメソッドのインデクスを返します。

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

write()
バスに値を書き込みます。 関数の完了時にonWriteイベントが発生します。 Generatorモードの時は、yieldと併用して完了を待機できます。
Parameters:
...
詳細はmbedJS.I2C#write:Nを参照してください。

{int, int} write:1(address, data, repeated)
引数が3個の場合
Parameters:
{int} address
8ビットのI2CSlaveアドレスです。
{byte[]} data
送信するデータを格納したバイト配列です。
{boolean} repeated
Repeated start, true - do not send stop at end Optionalです。省略時はfalseです。
Returns:
{int} Callbackモードの時はRPCメソッドのインデクスを返します。
{int} Generatorモードの時は成功/失敗フラグを返します。ACK:0(成功),NACK:それ以外です。

{int, int} write:2(data)
引数が1個の場合
Parameters:
{int} data
送信データを指定します。
Returns:
{int} Callbackモードの時はRPCメソッドのインデクスを返します。
{int} Generatorモードの時は成功/失敗フラグを返します。ACKを受信すると1を返します。

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