API SR-1640

Взаимодействие с SIM Roulette
Термины и определения
Управляющие команды SIM Roulette SR-1640
СИМ-банки
СИМ-карты
Модемы
Экран
Звук
Двигатели
Сенсоры
Буфер
Настройки
Настройки механики
Мониторинг
Ошибки
Статусы
Интеграция SIM Roulette в ваш проект


Варианты взаимодействия с SIM Roulette


1). Прямой ввод команды через терминал WEB-интерфейса SIM Roulette.

2). Формирование через WEB-интерфейс SIM Roulette списков команд (Макросов) и последующее их выполнение устройством.

3). GET или POST запрос к SIM Roulette вида http://XXX.XXX.XXX.XXX/port?data=token||step||command

XXX.XXX.XXX.XXX — IP-адрес SIM Roulette
|| — разделитель
token — кодовое слово заданное через WEB-интерфейс агрегатора
step — порядковый номер команды (шаг)

Важно! Шаг может быть любым в диапазоне 1 — 4294967295, при этом есть одно ограничение — 2 соседних шага не должны повторяться.

command — команда

Важно! При GET запросе URL должен быть закодирован на стороне клиента функцией urlencode.

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

Пример:
запрос: http://192.168.1.2/port?data=12345||123||sound:beep
ответ: 122#!#1шаг_предыдущего_запроса#!#результат_выполнения_запроса

4). Обращение SIM Roulette к серверу (вашему WEB-сайту) с GET запросом по указанному в WEB-интерфейсе адресу.
Например, http://site.ru/sr/io.php

SIM Roulette передает GET-параметры:
step — ответ на запрос с номером (шаг)
data — результат выполнения команды
и получает с сервера следующую команду в виде текста: {data}step#!#command
Важно! {data} — необходимый префикс для того, чтобы Sim Roulette понимал что сервер возвращает корректные данные.

URL сервера указывается в WEB-интерфейсе либо задается командой server_url, частота обращения к серверу регулируется через WEB-интерфейс либо командой server_fr.

Термины и определения


Ответы SIM Roulette отдает асинхронно.
Каждый ответ содержит номер (шаг) команды.
Буфер ответов SIM Roulette динамический, может содержать результаты десятка команд.
0 всегда кодируется как NULL.
Большинство команд возвращают: 1 — удача, NULL — неудача.

Далее по тексту:
D — число
W — слово
H — шестнадцатеричное число
X — числовые либо символьные данные
(в скобках) указывается необязательный параметр команды


Управляющие команды SIM Roulette SR-1640


СИМ-БАНКИ

bank_select: D — выбор банка сим-карт
D — диапазон банков 0 – 15 (по часовой стрелке)
Пример: bank_select:0

bank:X — настройка параметров банков сим-карт
X:
? — номер текущего сим-банка (-1 если устройство только стартовало и номер текущего банка не определен)
r — текущая позиция банка (поворот) по оси R / r=D — задать поворот
b — высота картоприемника (если в сим-банке установлен картоприемник)
h — измерить относительную высоту стопы сим-карт в текущем банке
Пример: bank:r=100



СИМ-КАРТЫ

card_get — забор карты сверху стопы в текущем банке
см. СТАТУСЫ, ОШИБКИ

card_put — выброс карты наверх стопы в текущем банке
см. СТАТУСЫ, ОШИБКИ

card_out — выброс карты через выходное отверстие

card_insert(:D) — вставка карты в картоприемник
D — номер сим-банка с установленным картоприемником (для 0-го банка номер можно не указывать)
Примеры:
card_insert card_insert:2

card_retract(:D) — извлечение карты из картоприемника с предварительным опусканием контактов SIM-карты (для 0-го банка номер можно не указывать)
Примеры:
card_retract
card_retract:4



МОДЕМ

modem[D]:rate — скорость передачи данных в модем (D – номер банка , кроме 0) / modem_rate=D — задать скорость

modem[D]:name — имя картоприемника (D – номер банка , кроме 0) / modem[D]:name=W — ввести 4х символьное имя ранее прилинкованного картоприемника (link:BRCST>id)

modem[D]:ping — PING картоприемника (D – номер банка , кроме 0), в ответ должно вернуться "pong", допустИм запрос ping:w

modem[D]:step — количество шагов привода картоприемника необходимое для поднятия/опускания контактов / modem[D]:step=D — задать количество шагов

modem:on — включить модем
(для картоприемника отличного от 0-го надо указать номер банка. Пример: modem[2]:on)

modem:off — выключить модем
(для картоприемника отличного от 0-го надо указать номер банка. Пример: modem[2]:off)

modem:up — поднять (подключить) контакты SIM-карты
(для картоприемника отличного от 0-го надо указать номер банка. Пример: modem[2]:up)

modem:down — опустить (отключить) контакты SIM-карты
(для картоприемника отличного от 0-го надо указать номер банка. Пример: modem[2]:down)

modem:write=AT… — подать команду модему (таким образом модему передаются стандартные AT-команды)
(для картоприемника отличного от 0-го надо указать номер банка. Пример: modem[2]:write=AT)
Пример: modem:ATD*110*10# (получить SMS с номером телефона SIM-карты у Билайна)

modem[D]:read — ответа модема (D – номер банка) (для 0-го картоприемника команда не нужна, все данные полученные от модема сразу же возвращаются со step=0)



УПРАВЛЕНИЕ ДВИГАТЕЛЯМИ

drv_move:yX — управление двигателем Y (вертикальное перемещение каретки)
X — диапазон -20000 — 20000 (перемещение вверх/вниз, самая нижняя позиция = 0)
или >fix — зафиксировать ось двигателя
или >nofix — отключить фиксацию оси двигателя
Примеры:
drv_move:y-1000
drv_move:y>fix

drv_move:rX — управление двигателем R (радиальное перемещение каретки)
X — диапазон -1000 — 1000 (перемещение вперед/назад)
>fix — зафиксировать ось двигателя
>nofix — отключить фиксацию оси двигателя
Пример: drv_move:100

drv_move:xD — управление двигателем X (перемещение карты на каретке)
D — 1 из каретки / -1 в каретку / 0 остановить
Пример: drv_move:x-1

drv_move:mD — управление магнитом на каретке
D — 1 включить / 0 остановить
Пример: drv_move:0



НАСТРОЙКИ МЕХАНИКИ

drv_y:X — настройка параметров двигателя Y (вертикальное перемещение каретки)
X:
p — текущая позиция / p=1 — задать текущую позицию
re — текущий статус реверса / re=1 — включить реверс / re=0 — выключить реверс
sd — скорость при движении вниз / sd=D — задать скорость
su — скорость при движении вверх / su=D — задать скорость
up — отступ от датчика до верха стопы при движении вверх / up=D — задать отступ
dw — отступ от датчика до верха стопы при движении вниз / dw=D — задать отступ
to — подъем над стопой при выбросе карты (card_put) / to=D — задать подъем
ho — низ стопы карт (ниже этой высоты датчик не видит карт) / ho=D — задать низ
w — высота рабочего положения / w=D — задать высоту
e — высота отверстия для выброса карты / e=D — задать высоту
m — максимальная высота подъема / to=D — задать высоту
t — допуск движения по оси Y с незафиксированной картой / t=D — задать допуск
r — сдвиг по оси Y при повторной попытке забрать карту (card_get) / r=D — задать сдвиг
f — временная задержка в миллисекундах для фиксации оси Y при обращении к соответствующему двигателю / f=D — задать задержку
Примеры:
drv_y:to
drv_y:to=1000

drv_r:X — настройка параметров двигателя R (радиальное перемещение каретки)
X:
p — текущая позиция / p=1 — задать текущую позицию
re — текущий статус реверса / re=1 — включить реверс / re=0 — выключить реверс
sh — высокая скорость / sh=D — задать скорость
sl — низкая скорость / sl=D — задать скорость
or — сдвиг вправо при позиционировании над датчиком 0 / or=D — задать сдвиг
ol — сдвиг влево при позиционировании над датчиком 0 / ol=D — задать сдвиг
o — cдвиг при возврате каретки к датчику 0 / o=D — задать сдвиг
r — максимальный поворот / r=D — задать сдвиг
f — временная задержка в миллисекундах для фиксации радиального движения при обращении к двигателю R / f=D — задать задержку
Пример: drv_r:f=5000

drv_x:X — получение параметров двигателя X (перемещение карты на каретке)
X:
re — текущий статус реверса / re=1 — включить реверс / re=0 — выключить реверс
g — получить текущий статус (0 / 1 / -1 см. drv_move:x)
f — время одной итерации при движении вперед / f=D — задать время
b — время одной итерации при обратном ходе (аналог ABS на автомобиле, помогает при проскальзывании) / b=D — задать время
i — количество попыток установки карты в картоприемник / выброса карты (card_insert / card_put) / i=D — задать время
r — количество попыток забора карты из картоприемника / банка (card_retract / card_get) / r=D — задать время
s — амплитуда раскачки при вставке и заборе карты / s=D — задать амплитуду
Пример: drv _x:s

drv_m — получение статуса магнита на каретке (0 / 1 см. drv_move:m)
Пример: drv_m



СЕНСОРЫ

sensor: W — получение параметров сенсоров
W:
y1 — нижний сенсор двигателя Y (вертикальное перемещение каретки)
y2 — сенсор фиксирующий верхний край стопы карт
r1 — сенсор двигателя R (радиальное перемещение каретки)
x1 — сенсор фиксации двигателя X на каретке
x2 — сенсор фиксации карты на каретке
x3 — сенсор забора карты на каретке
Пример: sensor:y1



ЭКРАН

lcd_mode:X
X:
c — очистить экран
1 — включить подсветку
0 — выключить подсветку
Пример: lcd_mode:c

lcd_msg:W — вывод на экран текста до 32 символов
W:
[текст]
Пример: lcd_msg:My text

lcd_txt:W — вывод на экран текста произвольной длины (только латиница)
W:
[текст]
Пример: lcd_txt:My text



ЗВУК

sound:beep — короткий отрывистый звук

sound:error — продолжительный звук

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

БУФЕР

buffer_client:clear — очистка буфера результатов выполнения команд SIM Roulette



НАСТРОЙКИ

carrier_time — время (в секундах) простоя SIM Roulette между командами, по окончании времени SIM Roulette заново подключается к сети / carrier_time=D — задать время
Пример: carrier_time=60

connect_interval — время (в миллисекундах) между запросами к удаленному серверу / connect_interval=D — установка времени
Пример: connect_interval=1000

error — код ошибки (см. card_get, card_put)

report — статус выполнения команды (см. card_get, card_put)

version — версия ПО сопроцессора механики

main_rate — скорость соединения процессора-сопроцессора механики со стороны процессора / mate_rate=D — задать скорость

mate_rate — скорость соединения процессора-сопроцессора механики со стороны сопроцессора / mate_rate=D — задать скорость

answer — формат ответа / answer=D — задать формат:
0 — NULL/1(TRUE/FALSE)
1 — 0/1(TRUE/FALSE)
2 — эхо введенных данных

debug=D включить(1) / выключить(0) дебагер

load_default — загрузить заводские настройки механики

reset — Soft reset механики

restart:W — перезагрузка
W:
main — Soft-reset главного процессора
mate — Hard-eset сопроцессора механики
Пример: restart:main

carrier_time — таймер ожидания связи c хостом (по истечении происходит переподключение к Интернет) / carrier_time=D — задать время

port_rate — скорость передачи интерфейса RS-485 / port_rate=D — задать скорость



МОНИТОРИНГ

request — команда для получения ответа (результата выполнения предыдущих команд) от устройства (команда никаких действий не производит)



ОШИБКИ

При получении NULL в ряде случаев можно запросить дополнительную информацию об ошибке (команда error):

Ошибки при заборе карты (см. card_get)
201 — на момент выполнения команды карта на каретке не полностью
202 — в результате выполнения команды карта на каретке не полностью
203 — в результате выполнения команды механизм не убран на каретку, дальнейшее движение каретки в любом направлении невозможно
204 — карта не взята, каретка свободна

Ошибки при выбросе карты (см. card_put)
301 — не удалось отпозиционировать каретку по верху стопы
302 — карту не удалось выбросить



СТАТУСЫ

При успешном выполнении некоторых команд можно запросить подробности (команда report):

Статусы при заборе карты (см. card_get)
201 — на момент выполнения команды карта уже взята
202 — забор карты прошел в штатном режиме
203 — карта взята, но понадобилась дополнительная попытка
204 — карта взята, но понадобилось две дополнительные попытки (рекомендуется проверить настройки и при необходимости произвести калибровку движения каретки по вертикальной оси)
205 — карта взята, но возникли некие сложности при заборе (рекомендуется визуально проконтроллировать процесс забора карты)

Статусы при выбросе карты (см. card_put)
301 — на момент выполнения команды карта каретка уже пуста
302 — выброс карты прошел в штатном режиме
303 — карта выброшена, но понадобился дополнительный поворот каретки по часовой стрелке
304 — карта выброшена, но понадобился дополнительный поворот каретки против часовой стрелки (рекомендуется проверить настройки и при необходимости произвести калибровку движения каретки по горизонтальной оси)
305 — карта выброшена, но понадобилось два дополнительный поворота каретки против часовой стрелки


Интеграция SIM Roulette в ваш проект

Мы надеемся, что изложенная выше информация поможет без проблем интегровать SIM Roulette в ваш проект.
Для упрощения задачи рекомендуем использовать WEB-панель SR-Navigator и API для взаимодействия с вашим ПО.
И конечно, вы всегда можете воспользоваться услугами наших программистов.



Новости SIM Roulette

Анонсы новых девайсов и софта, информацию об акциях и скидках мы публикуем только в соцсетях: