@amperka/gprs-shield
Драйвер для работы с модулем GPRS Shield.
Позволяет отправлять команды и обрабатывать события модуля через последовательный порт UART.
Инициализируется функцией connect.
Возвращает новый объект Sim900r для работы с модулем через порт последовательный порт. Для модуля Iskra JS — это порт Serial3
Необязательный параметр opts задаёт характеристики соединения с модулем. Ожидается объект со свойствами:
- serialPort— объект последовательного порта. По умолчанию —- Serial3.
- serialSpeed— скорость взаимодействия по последовательному порту. По умолчанию —- 9600.
- powerPin— контакт для включения и выключения модуля. По умолчанию —- P2.
- statusPin— контакт для определения готовности модуля. По умолчанию —- P3.
var sim = require('@amperka/Sim900r').connect();
Класс для управления GPRS-модулем, работы со звонками и SMS, USSD, а так же для прямого доступа к AT-командам.
Обратите внимание, на выполнение команды модулю требуется время. Поэтому для обработки результата команды используются функции обратного вызова callback, в которые и передаются параметры ответа. Так же модуль сообщает о различных событиях: готовности к работе, входящих звонках, СМС и прочих. При возникновении события event вызывается соответствующая ему функция обратного вызова.
Управление питанием и проверка статуса готовности
Включает модуль. Не выполняется, если модуль уже включен. Включение модуля занимает порядка одной секунды, по этому необходимо слушать событие powerOn, для точного определения, когда можно с ним взаимодействовать.
Выключает модуль. Не будет выполнена, если модуль уже отключен.
Проверяет модуль на готовность к работе — взаимодействию с контроллером по последовательному порту. Функцию не следует использовать для проверки регистрации модуля в сети сотового оператора. При готовности модуля функция возвращает true, если модуль не готов или выключен — false. 
События, инициируемые модулем
Возникает после инициализации при включении модуля.
Возникает при выключении модуля.
Возникает в момент обнаружения SIM-карты.
Возникает при отсутствии SIM-карты.
- code— код ошибки, отданный модулем.
Возникает в момент регистрации модуля с SIM-картой в сети оператора.
Возникает в момент входящего звонка. При входящем звонке событие возникает приблизительно раз в три секунды, пока вы не ответите или не разорвете соединение, или это не сделает вызывающая сторона. Параметры функции обратного вызова:
- phone— телефон вызывающего абонента (если он определен) или- undefined;
- cnt— количество вызовов события- ringс начала попытки дозвона.
Возникает в момент разъединения соединения другим лицом. Если соединение разрываете вы — событие не возникает.
Возникает в момент приема SMS-сообщения. Параметры функции обратного вызова:
- phone— телефон отправителя;
- time— дата и время отправления;
- text— текст сообщения.
Возникает событие инициированное модулем, но оно отличается от вышеперечисленных. Параметры функции обратного вызова:
- event— событие генерируемое модулем;
- data— строка с данными по этому событию.
Работа с прямыми командами модуля
Отправляет команду command модему и возвращает в функции обратного вызова полученный результат. При получении ответа, вызывает функцию callback  вида function(error, data) { … } с параметрами:
- data— массив, где каждый элемент — строка отданная модулем в рамках обработки команды.
Голосовая связь
Вызывает попытку дозвона до абонента с номером phone, переданным в виде строки. Вызывает callback.
В качестве callback ожидается функция вида function(error) { … } с параметрами:
- error—- undefined, если запрос успешен, или одну из следующих ошибок:- NO DIALTONE— нет сигнала;
- NO CARRIER— звонок отклонен;
- NO ANSWER— нет ответа;
- BUSY— занято.
 
Разрывает текущее соединение. Вызывает callback при исполнении.
В качестве callback ожидается функция вида function(error) { … } с параметрами:
Ответ на входящий звонок. Вызывает callback при исполнении.
В качестве callback ожидается функция вида function(error) { … } с параметрами:
Работа с SMS-сообщениями
Отправляет SMS-сообщение. По результату, вызывает функцию callback  вида function(error) { … } с параметрами:
var sim = require('@amperka/Sim900r').connect(); sim.powerOn(); sim.smsSend("+79160001122", "hello", function(error){ console.log(error); });
Читает список SMS-сообщений, сохраненных на SIM-карте. По результату, вызывает функцию callback  вида function(error, data) { … } с параметрами:
- data— массив объектов, описывающих СМС, со свойствами:- index— индекс сообщения в памяти SIM-карты;
- phone— номер телефона отправителя;
- date— объект типа Date, с информацией о дате и времени отправки;
- text— текст сообщения;
 
Читает SMS-сообщение с индексом index, сохраненное на SIM-карте. По результату, вызывает функцию callback  вида function(error, data) { … } с параметрами:
- data— объект, описывающих СМС, со свойствами:- index— индекс сообщения в памяти SIM-карты;
- phone— номер телефона отправителя;
- date— объект типа Date, с информацией о дате и времени отправки;
- text— текст сообщения;
 
Удаляет SMS-сообщение с индексом index, сохраненное на SIM-карте. В качестве значения параметра index можно указать all, что приведет к удалению всех сообщений. По результату, вызывает функцию callback  вида function(error) { … } с параметрами:
Информация о SIM-карте и сети оператора связи
Запрашивает название оператора SIM-карты. Вызывает callback для передачи результата.
В качестве callback ожидается функция вида function(error, provider) { … } с параметрами:
- provider— название оператора сим-карты в виде строки- string.
Запрашивает информацию о регистрации в сети. Вызывает callback для передачи результата.
В качестве callback ожидается функция вида function(error, status) { … } с параметрами:
- status— статус регистрации в виде строки и имеющее одно из следующих значений:- "search"— идёт поиск сети;
- "home"— модуль зарегистрирован в домашней сети;
- "roaming"— модуль зарегистрирован в роуминговой сети;
- "error"— регистрация не удалась;
- "unknown"— другая ошибка.
 
Запрашивает информацию о качестве приема. Вызывает callback для передачи результата.
В качестве callback ожидается функция вида function(error, quality) { … } с параметрами:
- quality— качество приема в виде целого числа от 0 до 10.
Запрашивает информацию об операторе связи, в сети которого зарегистрирован модуль. Вызывает callback для передачи результата.
В качестве callback ожидается функция вида function(error, provider) { … } с параметрами:
- provider— название оператора сотовой сети.
Получение информации о модуле
Получает IMEI модуля. Вызывает callback для передачи результата.
В качестве callback ожидается функция вида function(error, imei) { … } с параметрами:
- error —undefined, если запрос успешен; Error — если произошла ошибка;
- imei — IMEI модуля в виде строкиstring.
Получает информацию о ревизии модуля. Вызывает callback для передачи результата.
В качестве callback ожидается функция вида function(error, firmware) { … } с параметрами:
- error —undefined, если запрос успешен; Error — если произошла ошибка;
- firmware — значение ревизии типаstring.
Получает дату и время на устройстве. Вызывает callback для передачи результата.
В качестве callback ожидается функция вида function(error, datetime) { … } с параметрами:
Получение информации о включении автоматического определителя номера. Вызывает callback для передачи результата.
В качестве callback ожидается функция вида function(error, enable) { … } с параметрами:
- error —undefined, если запрос успешен; Error — если произошла ошибка;
- enable — включен ли АОН (типboolean).
Настройка модуля
Устанавливает дату и время из параметра datetime, переданного в виде объекта Date.
В качестве callback ожидается функция вида function(error) { … } с параметрами:
- error —undefined, если запрос успешен; Error — если произошла ошибка.
Включение и отключение определителя номера. Параметр enable имеет булевый тип. Вызывает callback по окончанию.
В качестве callback ожидается функция вида function(error) { … } с параметрами:
- error —undefined, если запрос успешен; Error — если произошла ошибка.