
Das Eclipse UPM -Repository bietet Software -Treiber für eine Vielzahl von häufig verwendeten Sensoren und Aktuatoren. Diese Software -Treiber interagieren mit der zugrunde liegenden Hardwareplattform (oder Mikrocontroller) sowie mit den angehängten Sensoren durch Anrufe zu Eclipse Mraa -APIs.
Programmierer können auf die Schnittstellen für jeden Sensor zugreifen, indem sie die entsprechende Header -Datei des Sensors einbeziehen und die zugehörige Sensorklasse instanziieren. Im typischen Anwendungsfall initialisiert ein Konstruktor den Sensor basierend auf Parametern, die den Sensor identifizieren, das verwendete E/A -Protokoll und den Stiftort des Sensors. Ab UPM 2.0 kann auch die Sensorinitialisierung in den meisten Fällen über überlastete Konstruktoren durchgeführt werden, die String -Kennungen akzeptieren.
Wir unterstützen Ergänzungen, die die generischen C- und C ++ - Schnittstellen implementieren, die mit den Bibliotheken enthalten sind. Mit der Version 2.0 führt UPM die folgenden Sensorschnittstellen ein:
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.
Die Entwicklergemeinschaft ist eingeladen, neue Schnittstellen für Aktuatortypen vorzuschlagen.
Das UPM -Projekt schließt sich der Eclipse Foundation als Eclipse IoT -Projekt an. Hier können Sie mehr darüber lesen.
Es wird erwartet, dass ein Sensor/Aktuator als solches funktioniert (hier ist die MMA7660 Accelerometer -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 );
}Durchsuchen Sie die Liste aller Beispiele.
Multi-Sensor-Proben für Starter und spezialisierte Kits finden Sie im IoT-Devkit-Samples-Repository.
Unterstützte Sensorliste aus API -Dokumentation.
Das UPM-Projekt beinhaltet die Unterstützung mehrerer Sensoren, Aktuatoren, Funkgeräte, Protokolle und Standards für Industriequalität, die heute verwendet werden. Es ist auch in hohem Maße in die Eclipse IDE integriert, indem es die Partner der Stiftung hilft. Erfahren Sie mehr über Tools.
Suchen Sie sich auf dieser Seite Notizen zur Installation von UPM unter verschiedenen Betriebssystemen.
Siehe Aufbaudokumentation hier.
Bevor Sie mit der Entwicklung beginnen, werfen Sie einen Blick auf unsere Namenskonventionen. Der Name, den Sie für einen neu hinzugefügten Sensor auswählen, muss in der UPM -Bibliothek eindeutig sein.
Überprüfen Sie als nächstes den Beitragsanleitung des Projekts.
Stellen Sie sicher, dass Sie sich in jeder neuen Codedatei als Autor hinzufügen. Wenn Sie eine Lösung mit erheblichen Änderungen anbieten, können Sie sich gerne als Mitwirkender hinzufügen. Die Unterzeichnung Ihrer Commits und das Akzeptieren der ECA ist obligatorisch, um neue Beiträge zu diesem Projekt zu leisten.
Das Dokumentieren Ihres Codes ist auch ein großer Teil der Aufgabe. Wir haben eine Reihe von Tags, die zur Klassifizierung unserer Sensoren und deren Fähigkeiten verwendet werden. In unserem Abschnitt erfahren Sie, wie Sie eine Sensor -API dokumentieren.
Wenn Sie schließlich wirklich konsistent mit dem Rest der Bibliothek und den Intel-iot-devkit-Repositories im Allgemeinen sicherstellen möchten, schauen Sie sich unseren umfangreichen Autor-Leitfaden an.




Selbst wenn wir unser Bestes geben, müssen wir von Zeit zu Zeit gezwungen, unsere API auf eine Weise zu ändern, die die Kompatibilität rückwärts bricht. Wenn Sie nicht in der Lage sind, Code zu kompilieren, der vor einem Bibliotheksaktualisierung gut funktioniert, überprüfen Sie zuerst den Abschnitt API -Änderungen.
Version Changelog hier.
Liste der bekannten Einschränkungen hier.