Добрый день. Разбираюсь с Amperka GPRS Shield, запускаю скетч из примеров http://wiki.amperka.ru/продукты:gprs-shield#чтение_sms Загрузка проходит нормально. Открываю монитор COM-порта Отправляю СМС на номер симки, которая вставлена в GPRS Shield и не получаю никакой реакции. Скетчи со звонками работают нормально. Подскажите, в какую сторону копать? Спасибо.
Тоже разбираюсь с этой проблемой. Попробуйте убрать вызов gprs.ifSMSNow() из примера. И чтение смс функцией void GPRS::readSMS(char *message, char *phone, char *datetime) у меня не заработало. Вместо нее работает bool GPRS::readSMS(int messageIndex, char *message,int length)
Если вставить симку в телефон, то смски приходят нормально без каких-либо задержек. Вставил опять в GPRS Shied и тишина, никакой реакции. А как с помощью bool GPRS::readSMS(int messageIndex, char *message,int length) получить номер телефона с которого пришла СМС? А если СМС нет, то функция возвращает false? Спасибо за подсказку, попробую. А какие-либо комментарии от производителя есть?
Сам пытаюсь понять как получить номер телефона. Похоже придется править библиотеку тк похоже она не совсем совместима с последней прошивкой sim900. вот кусок кода который у меня работает и читает текст смс на латинице и то не длиннее 32 символов Код (C++): messageIndex = gprs.isSMSunread(); if (messageIndex > 0) { gprs.readSMS(messageIndex, message, MESSAGE_LENGTH); Serial.println(message); }
Присоединяюсь к вопросу. Если брать код из примеров - СМС не читаются! Реально СМС приходит - если вынуть симку из шилда и вставить в телефон - все СМС-ки будут там. Метод ifSMSNow() всегда возвращает false. Код komrad работает норм. Кривая библиотека?
Проверь в настройках оповещения о получение смс самим шилдом (чипом). Скорее всего у Вас команда "AT+CNMI?" даст "CNMI=2,1,0,0,0". Замените вторую цифру на "2" и скетч заработает. (AT+CNMI=2,2,0,0,0)