Исходные данные (Android part)
Bluetooth belts Polar H7 - http://www.polar.com/us-en/products/accessories/H7_heart_rate_sensor.
Это пояс с сенсором, который позволяет считывать данные о сердечном ритме. Каждый сигнал от сердца считывается этим устройством.
Есть пример для считывания данных - http://developer.polar.com/wiki/H6_and_H7_Heart_rate_sensors
И есть исходный код предыдущего разработчика, который не закончил проект (будет предоставлен).
Что нужно?
Приложение на Android, которое может считывать данные с пояса (bluetooth) и отсылать его на сервер с помощью REST web сервиса (обычный http POST запрос на сервер).
По пунктам:
- Polar H7
- Android > 4.3
- возможность считывать данные с 7-8 поясов одновременно
- считывать каждый сигнал от сенсора без усреднений
- отправка данных пакетами, собрали данные за 1-5 секунд и отправили
- сохранять логи в текстовый файл
Бизнес-процесс:
- соединение с сервером и получения списка допустимых поясов-сенсоров по id (уже сделано предыдущим разработчиком в приложении, которое будет отправлено позже) В будущем могут быть добавлены другие параметры для конфигурации приложения. Если соединение успешно – мы в режиме online, если нет - offline
- если используется режим online, то мы работаем с поясами из списка. Частично сделано предыдущим разработчиком
- в режиме offline мы можем считывать данные и сохранять в файл (логи). Частично сделано предыдущим разработчиком
- устанавливаем соединение с сенсором (может быть в самом начале). Частично сделано предыдущим разработчиком
- получаем данные с сенсора и отображаем на экране (список из нескольких поясов, имя, которое присылает сервер и пульс). Обновление данных на экране – 1-5 сек.
ВАЖНО! В реальности будет приходить несколько сигналов в секунду, все их нужно сохранять без искажений, но отображать на экране можно усредненные данные.
- собранные за 1-5 секунд данные отправляются на сервер пакетом. Если получен ответ – success, продолжаем работу, если нет сохраняем временно данные и пытаемся отправить следующий раз. Если несколько раз повторяется ошибка – выводим уведомление. В любом случае данные сохраняются в логах на мобильном.
Дополнительные требования
- авторизация на сервере, ограничение действий пользователя
- проверить соединение\разорвать соединение с сервером\сенсором
- табличный вид представления данных (или другой на выбор разработчика) для отображения дополнительных данных (статус пояса, имя пользователя пояса, пульс, средний пульс, минимальное, максимальное значение… возможно некоторые дополнительные параметры)