Contributing a binding意訳
Iot.Device.Bindingsにデバイス追加してみようかなー、などと思っています。
そういうわけで、Contributingのお作法を確認しましょう。
Contributing a bindings
誰でもコントリブートできるよ。
Mcp23xxxやMcp3xxxを参考にしてね。
テンプレートあるよ。
- ライブラリの.NET Coreプロジェクト含めて。
- READMEで説明して。Frizingも。
- 全ての機能を実装していなかったら、実装しているものとしていないものを教えてね。
- 複数のメーカーのリンク付けて。
- ビルドできるサンプル含めて。
- サンプルが全ての関数、プロパティをカバーしていると最高。
- センサーができること全てを見れるといいなぁ。
- System.Device APIを使え。
- ユニットテスト用プロジェクトはオプションです。
フォルダはこんな感じ。
iot/ src/ devices/ Foo/ Foo.csproj Foo.cs README.md samples/ Foo.Sample.csproj Foo.Sample.cs tests/ <-- Tests are optional, but if present they should be layed out like this. Foo.Tests.csproj Foo.Tests.cs
作るときはC#コーディングスタイルとかコーディングガイドラインに沿ってね。
名前は分かりやすいものに。略語はダメ。デバイス規約を確認してね。
単位はUnitsNetにある型を使おう。
public void SetEnvironmentData(Temperature temperature, Ratio humidity)
値の範囲はXMLコメントに書いてね。
/// <param name="equivalentCO2">The equivalent CO2 (eCO2) output range for CCS811 is from 400ppm up to 29206ppm.</param>
機能の命名。
先頭にTryを付けるとか、
操作をともなうときは動詞にするとか、
Set/Getならプロパティを使うとか、
略称はダメとか、
XMLコメントの
どうしてそうしたのか分かるドキュメントへの参照を書いおくなど。
あと、Dispose実装ややこしいからコード例見ろよ。
100%ポータブルじゃない、ネイティブコードを使ったものは受け入れない。
ライセンスはMITか、相当のもので。