NETMF : GR ファミリー用のクラスライブラリを公開しました

GR ファミリー (GR-PEACH / GR-SAKURA) 用のクラスライブラリを公開しました。
GR-PEACH だけだともったいないので(?)、GR-SAKURA 用のライブラリも一緒に公開です。PinKit のセンサーボードのライブラリも入れました。

https://github.com/netmf-lib-grfamily/GrFamilyLibrary

ベースは3月の IoT ALGYAN キックオフイベント用のコンテンツとして提供したソースコード。
それをクラスライブラリ化したものの、PEACH の諸々の状況からなかなか公開に至らなかったという不遇なソースコードです。
そこから数ヶ月メンテナンスしておらずファーストリリースの勢い(ノリ)のままで整理できていないのですが、もったいないので公開することにしました。
本当の理由は、これを使ったプログラミング例を紹介したいので(こっち絡みで)、ライブラリも公開せざるを得なくなったということだったりします。(素の NETMF のコードをゴリゴリ書くのが辛い /笑)

現在の公開では、実は一点問題が残ってまして。
ライブラリ部分はVisual Studio 2013 でビルドしなければなりません。2015 でビルドすると、ライブラリを利用するアプリケーションの実行時にエラーが発生して、アプリが動作しません。
ライブラリさえ Visual Studio 2013 でビルドすれば、それを利用するアプリケーションは Visual Studio 2015 で開発しても問題ありません。
ビルドオプションの変更で解決できるのかなと思っていますが、ここの調査はこれからです。まずは As-Is で公開してしまいました。 (Visual Studio 2015 でビルドできるようになってます)


せっかく .NET / C# / Visual Studio を使った開発ができるのだから、マイコンボードでもそれっぽいコードを書きたいわけです。
展示会の説明員をしていてデモをすると一番食いつきがいいのがイベントハンドラー。それから VS のデバッグ機能です。
マイコンボードも C# っぽいコーディングができるようにとクラスライブラリを作りました。

マイコンボードのプログラミングは、比較的定型的なコードがたくさん出てきます。ソースを見ていただけると分かるとおり、超簡単なコードです。それでも、

var debugLed = new OutputPort(なんちゃら~); // ハードウェア固有の値
debugLed.Write(true);
Thread.Sleep(100);
debugLed.Write(false);

と書くよりは、

var _peach = new Peach(); // ハードウェア固有の値は Peach クラスに隠蔽
_peach.PulseDebugLed(100);

と書きたいわけです。

入力だって、Thread.Sleep しながらポーリングするコードを書くよりは、

_peach.Button.ButtonPressed += Button_ButtonPressed;

と書きたいわけです。


IoT 開発の際にはぜひこれを活用して、自分の実現したいデバイス・ガジェットに集中してください。
ハードウェアの初期化やポーリングのためのコーディングは少しでも減らして、メインの部分に注力していただけるとうれしいです。

たくさんの人がたくさんのデバイスを開発して、IoT 界隈が賑やかになればいいなと思っています。ライブラリはこれからも少しずつ整備していきます。
小さなライブラリですが、IoT 発展の一助になればうれしいです。