API

Модели линейки SR-1640: проблемы, советы, решения
Ответить
Аватара пользователя
rexx
Сообщения: 5
Зарегистрирован: 12 дек 2017, 00:52

API

Сообщение rexx » 12 дек 2017, 01:01

Добрый день. А где можно посмотреть API для удаленного управления данным устройством?

Аватара пользователя
Nikita
Администратор
Сообщения: 228
Зарегистрирован: 11 дек 2017, 18:11

Re: API

Сообщение Nikita » 12 дек 2017, 12:34

Список команд здесь http://intellectadvert.ru/doc/com.html
Команды подаются либо через GET или POST запрос к устройству по адресу его IP плюс заданный путь, например: 192.168.1.2/com
либо устройство обращается с заданной периодичностью на указанный URL в Интернете для получения очередной команды.
SIM Roulette — Must Have!

Аватара пользователя
rexx
Сообщения: 5
Зарегистрирован: 12 дек 2017, 00:52

Re: API

Сообщение rexx » 19 дек 2017, 13:31

Честно говоря не совсем понятна эта документация из-за отсутствующего примера (((
Еще не вижу как проверить, что пришла СМС и прочитать содержимое ее.
Хотелось бы в документации видеть приблизительно:

ЗВУК:

стандартный звук:
http://192.168.1.2/sound/beep

звук ошибки:
http://192.168.1.2/sound/error

фрагмент «Имперского марша» из к/ф «Star Wars»:
http://192.168.1.2/sound/alarm

Если же это постом отправляется, то хотелось бы знать: на какой адрес отправляются данные, формат и какие данные отсылать. Например:

Установка параметра звука:
Адрес: http://192.168.1.2/
Формат данных: json
Данные: sound :"beep

Если же не используется JSON:
Адрес: http://192.168.1.2/
POST: sound=beep

Ну и желательно конечно какой-то кусок небольшого кода как получить СМС и вставить сим карточку.

Заранее спасибо.

Аватара пользователя
rexx
Сообщения: 5
Зарегистрирован: 12 дек 2017, 00:52

Re: API

Сообщение rexx » 24 дек 2017, 15:57

Спасибо большое, за ответ. Повторно пишу еще раз проблему:
1) Не понятно как получить\принять СМС. В этих командах ничего про это нету.
2) Хотелось бы увидеть пример кода. Потому как отправку методом POST можно осуществить как минимум 3-мя способами (json, multipart/form-data и просто внутри тела сообщения в виде GET запроса: key1=val1&key2=val2 ...). Вообщем там есть куча ньюансов, которые хотелось бы прояснить. Самый лучший способ предоставить часть кода, который отправляет данные и принимает.

Заранее спасибо.

Аватара пользователя
Nikita
Администратор
Сообщения: 228
Зарегистрирован: 11 дек 2017, 18:11

Re: API

Сообщение Nikita » 24 дек 2017, 16:39

Есть 2 варианта связи с устройством (SR):

1). Отправление SR get или post запросов. Например, http://192.168.1.98/port?data=token||step||command
Здесь:
|| - разделитель
token - кодовое слово заданное через WEB-интерфейс
step - порядковый номер запроса (шаг)
command - та самая команда, которая описана в документации
Пример: http://192.168.1.98/port?data=12345||123||sound:beep

Ответ сервер возвращает в текстовом виде. Пример: step#!#data
Здесь:
#!# - разделитель
step - ответ на запрос с номером (шаг)
data - результат выполнения команды (для большинства команд 1-удача, NULL-неудача), также, в зависимости от команды, это может быть число либо текст. 0 всегда кодируется как NULL.

2). Обращение SR с get запросом по указанному в WEB-интерфейсе адресу. Например, http://site.ru/sim/io.php
SR передает параметры:
step - ответ на запрос с номером (шаг)
data - результат выполнения команды

и забирает следующую команду в виде текста:
{data}step!#!data

Частота обращения к серверу регулируется через WEB-интерфейс либо командой


Взаимодействие с GSM-модулем очень простое, кроме команд аппаратного включения/выключение все делается через команду
sim_com, например, набрать номер - sim_com:ATD+79031234567. Ну и так далее, все с помощью обычных для телефонии команд с префиксом AT. Если на GSM модуль приходит SMS или USSD - он присылает это в виде обычного ответа SR со step=0.
SIM Roulette — Must Have!

Аватара пользователя
Nikita
Администратор
Сообщения: 228
Зарегистрирован: 11 дек 2017, 18:11

Re: API

Сообщение Nikita » 24 дек 2017, 17:09

Вот неплохая инструкция по работе с GSM-модулем http://alex-exe.ru/radio/wireless/gsm-sim900-gprs/
SIM Roulette — Must Have!

Аватара пользователя
rexx
Сообщения: 5
Зарегистрирован: 12 дек 2017, 00:52

Re: API

Сообщение rexx » 26 дек 2017, 14:16

Ошибка в документации:

drv_get_x: — установка параметров двигателя X (перемещение карты на каретке)
Пример: drv_set_x:f100

В примере: drv_SET_x, а в списке комманд: drv_GET_x

Аватара пользователя
Nikita
Администратор
Сообщения: 228
Зарегистрирован: 11 дек 2017, 18:11

Re: API

Сообщение Nikita » 26 дек 2017, 14:26

Тут ошибка. Должно быть
drv_set_x: — установка параметров двигателя X (перемещение карты на каретке)
Пример: drv_set_x:f100
SIM Roulette — Must Have!

Аватара пользователя
rexx
Сообщения: 5
Зарегистрирован: 12 дек 2017, 00:52

Re: API

Сообщение rexx » 27 дек 2017, 15:30

Возникли еще вопросы:
1. Как определить, что банк пустой.
2. Как определить, что банк переполнен.

Я так понимаю, что если пустой, то команда:
func_bank_get:h
вернет: step#!#null

тогда возникает вопрос. как определить, что банк куда складываются карточки заполнен полностью? Что вернет эта команда для банка с максимальным кол-вом карточек.

Заранее спасибо.

Аватара пользователя
Nikita
Администратор
Сообщения: 228
Зарегистрирован: 11 дек 2017, 18:11

Re: API

Сообщение Nikita » 27 дек 2017, 16:06

Вообщем правильно, но определить, что банк пуст нельзя.
При высоте стопки меньше определенного лимита точное определение высоты невозможно.
В этом случае надо делать попытку забора карты.
А то, насколько банк наполнен, можно определить по значению, которое возвращает команда func_bank_get:h
Если банк сильно переполнен, то высоту определить уже не получится, датчик будет ниже верха стопки.
SIM Roulette — Must Have!

Ответить