
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在这里。
这里已知限制列表。