
Eclipse UPM存儲庫為各種常用的傳感器和執行器提供了軟件驅動程序。這些軟件驅動程序通過呼叫Eclipse MRAA APIS與基礎硬件平台(或微控制器)以及附件傳感器進行互動。
程序員可以通過包括傳感器的相應標頭文件並實例化關聯的傳感器類,訪問每個傳感器的接口。在典型的用例中,構造函數根據識別傳感器,所使用的I/O協議和傳感器的銷釘位置的參數初始化傳感器。從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 Foundation作為Eclipse IoT項目。您可以在此處閱讀有關此信息的更多信息。
預計傳感器/執行器將其工作(以下是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'E上安裝UPM的註釋。
請參閱此處的建築文檔。
在開始開發之前,請看一下我們的命名慣例。您選擇的新添加傳感器的名稱需要在UPM庫中是唯一的。
接下來,查看項目的貢獻指南。
確保在提交的每個新代碼文件中添加自己為作者。如果您正在提供重大更改的修復程序,請隨時添加自己作為貢獻者。簽署您的承諾並接受ECA是必須為該項目做出新貢獻的必要條件。
記錄您的代碼也是任務的重要組成部分。我們有一套嚴格的標籤來對我們的傳感器及其功能進行分類。您可以在我們的部分記錄傳感器API的部分中找到有關此的更多信息。
最後,如果您真的想確保與圖書館的其餘部分以及一般的Intel-iot-Devkit存儲庫保持一致,請查看我們的廣泛作者指南。




即使我們盡力不這樣做,偶爾,我們也會被迫以一種將向後兼容的方式修改API。如果您發現自己無法編譯在庫更新之前正常工作的代碼,請確保首先檢查API更改部分。
版本ChangElog在這裡。
這裡已知限制列表。