
Eclipse UPMリポジトリは、一般的に使用されるさまざまなセンサーとアクチュエーターのソフトウェアドライバーを提供します。これらのソフトウェアドライバーは、Eclipse MRAA APIへの呼び出しを通じて、基礎となるハードウェアプラットフォーム(またはマイクロコントローラー)と、取り付けられたセンサーと対話します。
プログラマーは、センサーに対応するヘッダーファイルを含め、関連するセンサークラスをインスタンス化することにより、各センサーのインターフェイスにアクセスできます。典型的なユースケースでは、コンストラクターは、センサー、使用されているI/Oプロトコル、センサーのPIN位置を識別するパラメーターに基づいてセンサーを初期化します。 UPM 2.0の時点で、センサーの初期化は、ほとんどの場合、文字列識別子を受け入れる過負荷コンストラクターを介して実行できます。
ライブラリに提供された一般的なCおよびC ++インターフェイスを実装する追加を支持します。 2.0リリースにより、UPMは次のセンサーインターフェイスを導入します。
iAcceleration, iAngle, iButton, iClock, iCollision, iDistance,
iDistanceInterrupter, iEC, iElectromagnet, iEmg, iGas, iGps, iGyroscope,
iHallEffect, iHeartRate, iHumidity, iLight, iLineFinder, iMagnetometer,
iMoisture, iMotion, iOrp, iPH, iPressure, iProximity, iTemperature, iVDiv,
iWater.
開発者コミュニティは、アクチュエータタイプの新しいインターフェイスを提案するよう招待されています。
UPMプロジェクトは、Eclipse IoTプロジェクトとしてEclipse Foundationに参加しています。これについてはこちらをご覧ください。
センサー/アクチュエータはそのように機能すると予想されます(ここにMMA7660加速度計APIはあります):
// Instantiate an MMA7660 on I2C bus 0
upm::MMA7660 *accel = new upm::MMA7660(MMA7660_DEFAULT_I2C_BUS,
MMA7660_DEFAULT_I2C_ADDR);
// place device in standby mode so we can write registers
accel-> setModeStandby ();
// enable 64 samples per second
accel-> setSampleRate (MMA7660_AUTOSLEEP_64);
// place device into active mode
accel-> setModeActive ();
while (shouldRun)
{
float ax, ay, az;
accel-> getAcceleration (&ax, &ay, &az);
cout << " Acceleration: x = " << ax
<< " g y = " << ay
<< " g z = " << az
<< " g " << endl;
usleep ( 500000 );
}すべての例のリストを参照してください。
スターターおよび専門キット用のマルチセンサーサンプルは、IoT-Devkit-Samplesリポジトリにあります。
APIドキュメントからサポートされているセンサーリスト。
UPMプロジェクトには、現在使用されている複数の産業用グレードセンサー、アクチュエーター、ラジオ、プロトコル、標準のサポートが含まれています。また、財団のパートナーの助けを借りて、Eclipse IDEと高度に統合されています。ツールの詳細をご覧ください。
このページにあるさまざまなOS'esにUPMをインストールする方法に関するメモを見つけます。
こちらの建物のドキュメントを参照してください。
開発を開始する前に、命名規則をご覧ください。新しく追加されたセンサーに選択する名前は、UPMライブラリで一意である必要があります。
次に、プロジェクトの貢献ガイドを確認します。
提出されたすべての新しいコードファイルで著者として自分自身を追加してください。大幅な変更を加えた修正を提供している場合は、貢献者として自分自身を追加してください。このプロジェクトに新たな貢献をするために、あなたのコミットとECAを受け入れることは必須です。
コードの文書化もタスクの大きな部分です。センサーとその機能を分類するために使用される厳しい一連のタグがあります。これについては、センサーAPIの文書化に関するセクションで詳しく知ることができます。
最後に、他のライブラリやIntel-otiot-devkitリポジトリとの一貫性を本当に確保したい場合は、広範な著者ガイドをご覧ください。




たとえ私たちが最善を尽くしても、たまに逆互換性を突破する方法でAPIを変更することを余儀なくされることがあります。ライブラリの更新前に正常に動作していたコードをコンパイルできない場合は、最初にAPI変更セクションを確認してください。
ここにバージョンChangelog。
ここで既知の制限のリスト。