
Репозиторий Eclipse UPM предоставляет драйверы программного обеспечения для широкого разнообразия часто используемых датчиков и приводов. Эти программные драйверы взаимодействуют с базовой аппаратной платформой (или микроконтроллером), а также с прикрепленными датчиками, посредством вызовов API Eclipse MRAA.
Программисты могут получить доступ к интерфейсам для каждого датчика, включив соответствующий файл заголовка датчика и создав создание соответствующего класса датчика. В типичном варианте использования конструктор инициализирует датчик на основе параметров, которые идентифицируют датчик, используемый протокол ввода/вывода и расположение 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 как проект Eclipse IOT. Вы можете прочитать больше об этом здесь.
Ожидается, что датчик/привод будет работать как таковой (вот API MMA7660 Accelerometer):
// 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-девкит-сампл.
Поддерживаемый список датчиков из документации API.
Проект UPM включает в себя поддержку нескольких датчиков промышленного уровня, приводов, радиоприемников, протоколов и стандартов, используемых сегодня. Он также сильно интегрирован с Eclipse IDE с помощью партнеров фонда. Узнайте больше о инструментах.
Найдите заметки о том, как установить UPM на различных ОС на этой странице.
Смотрите документацию по строительству здесь.
Прежде чем начать развитие, взгляните на наши соглашения об именах. Имя, которое вы выберете для недавно добавленного датчика, должно быть уникальным в библиотеке UPM.
Далее просмотрите руководство по вкладу проекта.
Убедитесь, что вы добавили себя в качестве автора в каждом представленном новом файле кода. Если вы предоставляете исправление со значительными изменениями, не стесняйтесь добавлять себя в качестве участника. Подписание ваших коммитов и принятие ECA обязательно для внесения новых вкладов в этот проект.
Документирование вашего кода также является большой частью задачи. У нас есть строгий набор тегов, используемых для классификации наших датчиков и их возможностей. Вы можете узнать больше об этом в нашем разделе о документировании датчика API.
Наконец, если вы действительно хотите обеспечить согласованность с остальной частью библиотеки и репозитории Intel-iot-devkit в целом, посмотрите на наше обширное руководство автора.




Даже если мы стараемся не делать этого, время от времени мы вынуждены модифицировать наш API таким образом, чтобы это сломалось назад. Если вы не можете скомпилировать код, который работал нормально перед обновлением библиотеки, убедитесь, что вы сначала проверили раздел API -изменений.
Версия ChangeLog здесь.
Список известных ограничений здесь.