@amperka/gprs-shield

Драйвер для работы с модулем GPRS.

Позволяет отправлять команды и обрабатывать события модуля через последовательный порт UART.

Инициализируется функцией connect.

connect([opts])

Возвращает новый объект Sim900r для работы с модулем через порт последовательный порт. Для модуля Iskra JS — это порт Serial3

Необязательный параметр opts задаёт характеристики соединения с модулем. Ожидается объект со свойствами:

  • serialPort — объект последовательного порта. По умолчанию — Serial3.
  • serialSpeed — скорость взаимодействия по последовательному порту. По умолчанию — 9600.
  • powerPin — контакт для включения и выключения модуля. По умолчанию — P2.
  • statusPin — контакт для определения готовности модуля. По умолчанию — P3.
var sim = require('@amperka/Sim900r').connect();

Sim900r

Класс для управления GPRS-модулем, работы со звонками и SMS, USSD, а так же для прямого доступа к AT-командам.

Обратите внимание, на выполнение команды модулю требуется время. Поэтому для обработки результата команды используются функции обратного вызова callback, в которые и передаются параметры ответа. Так же модуль сообщает о различных событиях: готовности к работе, входящих звонках, СМС и прочих. При возникновении события event вызывается соответствующая ему функция обратного вызова.

Управление питанием и проверка статуса готовности

Sim900r.powerOn()

Включает модуль. Не выполняется, если модуль уже включен. Включение модуля занимает порядка одной секунды, по этому необходимо слушать событие powerOn, для точного определения, когда можно с ним взаимодействовать.

Sim900r.powerOff()

Выключает модуль. Не будет выполнена, если модуль уже отключен.

Sim900r.isReady()

Проверяет модуль на готовность к работе — взаимодействию с контроллером по последовательному порту. Функцию не следует использовать для проверки регистрации модуля в сети сотового оператора. При готовности модуля функция возвращает true, если модуль не готов или выключен — false.

События, инициируемые модулем

Sim900r.on('powerOn', function() { ... })

Возникает после инициализации при включении модуля.

Sim900r.on('powerOff', function() { ... })

Возникает при выключении модуля.

Sim900r.on('simReady', function() { ... })

Возникает в момент обнаружения SIM-карты.

Sim900r.on('simError', function(code) { ... })

Возникает при отсутствии SIM-карты.

  • code — код ошибки, отданный модулем.

Sim900r.on('ready', function() { ... })

Возникает в момент регистрации модуля с SIM-картой в сети оператора.

Sim900r.on('ring', function(phone, cnt) { ... })

Возникает в момент входящего звонка. При входящем звонке событие возникает приблизительно раз в три секунды, пока вы не ответите или не разорвете соединение, или это не сделает вызывающая сторона. Параметры функции обратного вызова:

  • phone — телефон вызывающего абонента (если он определен) или undefined;
  • cnt — количество вызовов события ring с начала попытки дозвона.

Sim900r.on('noCarrier', function() { ... })

Возникает в момент разъединения соединения другим лицом. Если соединение разрываете вы — событие не возникает.

Sim900r.on('sms', function(phone, time, text) { ... })

Возникает в момент приема SMS-сообщения. Параметры функции обратного вызова:

  • phone — телефон отправителя;
  • time — дата и время отправления;
  • text — текст сообщения.

Sim900r.on('unknown', function(event, data) { ... })

Возникает событие инициированное модулем, но оно отличается от вышеперечисленных. Параметры функции обратного вызова:

  • event — событие генерируемое модулем;
  • data — строка с данными по этому событию.

Работа с прямыми командами модуля

Sim900r.cmd(command, callback);

Отправляет команду command модему и возвращает в функции обратного вызова полученный результат. При получении ответа, вызывает функцию callback вида function(error, data) { … } с параметрами:

  • errorundefined при успешном запросе; Error — если произошла ошибка;
  • data — массив, где каждый элемент — строка отданная модулем в рамках обработки команды.

Голосовая связь

Sim900r.call(phone, callback)

Вызывает попытку дозвона до абонента с номером phone, переданным в виде строки. Вызывает callback.

В качестве callback ожидается функция вида function(error) { … } с параметрами:

  • errorundefined, если запрос успешен, или одну из следующих ошибок:
    • NO DIALTONE — нет сигнала;
    • NO CARRIER — звонок отклонен;
    • NO ANSWER — нет ответа;
    • BUSY — занято.

Sim900r.cancel(function(error) { ... })

Разрывает текущее соединение. Вызывает callback при исполнении.

В качестве callback ожидается функция вида function(error) { … } с параметрами:

  • errorundefined, если запрос успешен; Error — если произошла ошибка.

Sim900r.answer(callback)

Ответ на входящий звонок. Вызывает callback при исполнении.

В качестве callback ожидается функция вида function(error) { … } с параметрами:

  • errorundefined, если запрос успешен; Error — если произошла ошибка.

Работа с SMS-сообщениями

Sim900r.smsSend(phone, text, function(error) { ... })

Отправляет SMS-сообщение. По результату, вызывает функцию callback вида function(error) { … } с параметрами:

  • errorundefined, если запрос успешен; Error — если произошла ошибка.

Sim900r.smsList(function(error, data) { ... })

Читает список SMS-сообщений, сохраненных на SIM-карте. По результату, вызывает функцию callback вида function(error, data) { … } с параметрами:

  • errorundefined, если запрос успешен; Error — если произошла ошибка.
  • data — массив объектов, описывающих СМС, со свойствами:
    • index — индекс сообщения в памяти SIM-карты;
    • phone — номер телефона отправителя;
    • date — объект типа Date, с информацией о дате и времени отправки;
    • text — текст сообщения;

Sim900r.smsRead(index, function(error, data) { ... })

Читает SMS-сообщение с индексом index, сохраненное на SIM-карте. По результату, вызывает функцию callback вида function(error, data) { … } с параметрами:

  • errorundefined, если запрос успешен; Error — если произошла ошибка.
  • data — объект, описывающих СМС, со свойствами:
    • index — индекс сообщения в памяти SIM-карты;
    • phone — номер телефона отправителя;
    • date — объект типа Date, с информацией о дате и времени отправки;
    • text — текст сообщения;

Sim900r.smsDelete(index, function(error) { ... })

Удаляет SMS-сообщение с индексом index, сохраненное на SIM-карте. В качестве значения параметра index можно указать all, что приведет к удалению всех сообщений. По результату, вызывает функцию callback вида function(error) { … } с параметрами:

  • errorundefined, если запрос успешен; Error — если произошла ошибка.

Информация о SIM-карте и сети оператора связи

Sim900r.netProvider(callback)

Запрашивает название оператора SIM-карты. Вызывает callback для передачи результата.

В качестве callback ожидается функция вида function(error, provider) { … } с параметрами:

  • errorundefined, если запрос успешен; Error — если произошла ошибка;
  • provider — название оператора сим-карты в виде строки string.

Sim900r.netStatus(callback)

Запрашивает информацию о регистрации в сети. Вызывает callback для передачи результата.

В качестве callback ожидается функция вида function(error, status) { … } с параметрами:

  • errorundefined, если запрос успешен; Error — если произошла ошибка;
  • status — статус регистрации в виде строки и имеющее одно из следующих значений:
    • "search" — идёт поиск сети;
    • "home" — модуль зарегистрирован в домашней сети;
    • "roaming" — модуль зарегистрирован в роуминговой сети;
    • "error" — регистрация не удалась;
    • "unknown" — другая ошибка.

Sim900r.netQuality(callback)

Запрашивает информацию о качестве приема. Вызывает callback для передачи результата.

В качестве callback ожидается функция вида function(error, quality) { … } с параметрами:

  • errorundefined, если запрос успешен; Error — если произошла ошибка;
  • quality — качество приема в виде целого числа от 0 до 10.

Sim900r.netCurrent(callback)

Запрашивает информацию об операторе связи, в сети которого зарегистрирован модуль. Вызывает callback для передачи результата.

В качестве callback ожидается функция вида function(error, provider) { … } с параметрами:

  • errorundefined, если запрос успешен; Error — если произошла ошибка;
  • provider — название оператора сотовой сети.

Получение информации о модуле

Sim900r.getImei(callback)

Получает IMEI модуля. Вызывает callback для передачи результата.

В качестве callback ожидается функция вида function(error, imei) { … } с параметрами:

  • error — undefined, если запрос успешен; Error — если произошла ошибка;
  • imei — IMEI модуля в виде строки string.

Sim900r.getFirmware(function(error, firmware) { ... })

Получает информацию о ревизии модуля. Вызывает callback для передачи результата.

В качестве callback ожидается функция вида function(error, firmware) { … } с параметрами:

  • error — undefined, если запрос успешен; Error — если произошла ошибка;
  • firmware — значение ревизии типа string.

Sim900r.getTime(callback)

Получает дату и время на устройстве. Вызывает callback для передачи результата.

В качестве callback ожидается функция вида function(error, datetime) { … } с параметрами:

  • error — undefined, если запрос успешен; Error — если произошла ошибка;
  • datetime — объект Date.

Sim900r.getCallerID(callback)

Получение информации о включении автоматического определителя номера. Вызывает callback для передачи результата.

В качестве callback ожидается функция вида function(error, enable) { … } с параметрами:

  • error — undefined, если запрос успешен; Error — если произошла ошибка;
  • enable — включен ли АОН (тип boolean).

Настройка модуля

Sim900r.setTime(datetime [, callback])

Устанавливает дату и время из параметра datetime, переданного в виде объекта Date.

В качестве callback ожидается функция вида function(error) { … } с параметрами:

  • error — undefined, если запрос успешен; Error — если произошла ошибка.

Sim900r.setCallerID(enable [, callback])

Включение и отключение определителя номера. Параметр enable имеет булевый тип. Вызывает callback по окончанию.

В качестве callback ожидается функция вида function(error) { … } с параметрами:

  • error — undefined, если запрос успешен; Error — если произошла ошибка.

Ссылки