元派遣プログラマの自称技術系ブログです。雑記とか自作のオープンソースプロジェクトの話とか。
Javaとか組込とかできます。お仕事ください。

mbedJS リビジョン38を公開しました。

エェェェェンベッドJSを更新しました。

リビジョンは38です。
mbedJS - a mercurial repository | mbed

更新内容

f:id:nyatla:20140711122230p:plain

機能追加
  • I2C,I2CSlave,Serial,Memoryクラスを追加
  • JavascriptAPIでコールバック関数の個別指定に対応
  • JavascriptAPIにdispose関数を追加
バグ修正
  • SDカード使用時にフリーズする問題を修正


I2C,I2CSlave,Serial,Memoryクラスを追加

以下のクラスが利用できるようになります。

  • Memory
    mbedのメモリを直接読み書きするクラスです。
  • I2C
    mbed::I2Cクラスを操作します。 @ban4jpさんが加速度センサを使ったデモプログラムを書いてくださいました。
    mbedJSで加速度センサーテスト | mbed
    ※原因不明の不具合があるため、初期化コードを2度送らないと動作しない不具合があるそうです。
  • I2CSlave
    mbed::I2CSlaveクラスを操作できます。
  • Serial
    mbed::Serialクラスを操作できます。

JavascriptAPIでコールバック関数の個別指定に対応

コールバック関数を関数毎に設定できるようにしました。従来の方法と併用して使うこともできますが、その場合は個別に指定したコールバック関数だけが優先して呼び出されます。

コールバック(個別指定)

var mcu=new mbedJS.Mcu("192.168.128.39",
{
  onNew:function(){
    var pin=new mbedJS.DigitalOut(mcu,mbedJS.PinName.P0_22,function(){
        pin.write(1,function(){});
    });
  },
  onClose:function(){},
  onError:function(){alert("Error");}
});

コールバック関数を個別に指定するときは、関数の引数の最後にfunctionを設定してください。
この機能は、Mcuコンストラクタを除くすべてのコールバックハンドラを持つ関数で使えます。

JavascriptAPIにdispose関数を追加

Digitalout等のMcuに一時オブジェクトを生成するタイプのクラスに、dispose関数を追加しました。Websocketセッションの途中で不要になったオブジェクトを破棄できるようになります。


SDカード使用時にフリーズする問題を修正

FatFS使用時にスタックオーバフローが発生していたので、FatFSのTINYフラグを有効にしてHTTPスレッドのスタックサイズを1024+256+64→1024+512byteに増やしました。

この影響でワークメモリが700byteほど減少しています。


その他成果ブツなど

mbed NXP LPC1768

mbed NXP LPC1768

mbed用イーサネット接続キット

mbed用イーサネット接続キット

シリコンパワー microSDカード 60倍速 2GB 永久保証 (SDカードアダプター付) SP002GBSDT000V10

シリコンパワー microSDカード 60倍速 2GB 永久保証 (SDカードアダプター付) SP002GBSDT000V10