Документация HTTP SDK для игрушек Enjox
Обзор
Сторонние приложения могут использовать Enjox HTTP SDK, чтобы получить возможность управлять игрушками.
Функциональность HTTP SDK предоставляет приложение EnjoxRemote. Оно работает как прокси Bluetooth ↔ HTTP и позволяет тебе легко управлять всеми игрушками на том же телефоне (или в той же сети Wi-Fi) по стандартному протоколу HTTP. Чтобы использовать HTTP SDK, пользователю нужно сначала запустить приложение EnjoxRemote, а уже затем — твоё приложение.

Архитектура: твоё приложение общается с приложением EnjoxRemote через HTTP SDK, а приложение EnjoxRemote общается с игрушками Enjox по Bluetooth.
Примечание: при доступе через сеть Wi-Fi замени 127.0.0.1 на IP-адрес устройства, на котором запущено приложение EnjoxRemote. Порт по умолчанию — 8089.
Способ вызова
http://127.0.0.1:8089/{command}?param=value[&token=xxx]
Метод запроса
GET, POST
Параметры запроса
| Параметр | Описание | Значения |
|---|---|---|
| command | Команда | vibrate, rotate, preset, pattern |
| param | Параметры | Зависят от команды |
| token | Токен | Фиксированное значение: 6b9a21fb055343f8b10113a1b78b7229 (сейчас фиксировано, может потребоваться в будущих версиях) |
Формат ответа
{"ret": 0, "data": 0}
| ret | data | Описание |
|---|---|---|
| 0 | - | Успех |
| 1 | 10 | Неизвестная ошибка |
| 1 | 11 | Игрушка не подключена |
| 1 | 12 | Низкий заряд батареи игрушки |
Простой API
Вибрация игрушки
http://127.0.0.1:8089/vibrate?speed=num&time=msec
Функция
Заставляет игрушку вибрировать в течение msec миллисекунд
Метод запроса
GET
Параметры запроса
| Параметр | Описание | Значения |
|---|---|---|
| speed | Скорость | 0-100, 0 — остановка, 100 — максимальная интенсивность |
| time | Время | Миллисекунды |
Пример
http://127.0.0.1:8089/vibrate?speed=20&time=1000
Ограничение
Минимальный интервал между двумя командами — 100 мс
Вращение игрушки
http://127.0.0.1:8089/rotate?speed=num&time=msec
Функция
Заставляет игрушку вращаться в течение msec миллисекунд
Метод запроса
GET
Параметры запроса
| Параметр | Описание | Значения |
|---|---|---|
| speed | Скорость | 0-100, 0 — остановка, 100 — максимальная интенсивность |
| time | Время | Миллисекунды |
Пример
http://127.0.0.1:8089/rotate?speed=20&time=1000
Остановка игрушки
http://127.0.0.1:8089/stop
Функция
Останавливает все действия игрушки
Метод запроса
GET
Параметры запроса
Нет
API паттернов
Готовые паттерны
http://127.0.0.1:8089/preset?id=num
Функция
Заставляет игрушку вибрировать по заранее заданным паттернам
Метод запроса
GET
Параметры запроса
| Параметр | Описание | Значения |
|---|---|---|
| id | ID паттерна | 1 Pulse, 2 Wave, 3 Firework, 4 Earthquake |
Пример
http://127.0.0.1:8089/preset?id=1
Примечания
Игрушку можно в любой момент остановить с помощью простого API. Если её не остановить, игрушка будет бесконечно повторять паттерн, пока не разрядится батарея.
Поток паттерна
http://127.0.0.1:8089/pattern
Функция
Отправляет игрушке серию команд
Метод запроса
POST
Параметры запроса
| Параметр | Описание | Значения |
|---|---|---|
| data | Поток паттерна | Строка потока паттерна (в теле запроса) |
Пример
http://127.0.0.1:8089/pattern
Тело запроса
Content-Type: application/x-www-form-urlencoded
data=V:1;F:v,r;S:100;#0,0;2,0;4,3;5,5;6,6;
Примечания
Потоки паттернов можно написать вручную или записать в приложении EnjoxRemote, проводя пальцем по экрану.
Формат потока паттерна
Поток паттерна состоит из заголовка паттерна и данных паттерна, разделённых символом #. Описание заголовка паттерна приведено в таблице ниже. Данные паттерна — это строка из пар чисел, разделённых запятыми, при этом пары отделяются точкой с запятой, и каждая пара соответствует типам действий из заголовка паттерна (например, для F=v,r каждая пара содержит значения для вибрации и вращения).
| Ключевое слово | Содержимое | Описание |
|---|---|---|
| V | 1 | Номер версии |
| F | v,r | Типы действий: v = вибрация, r = вращение, p = сжатие |
| S | 100 | Интервал времени в миллисекундах |