GSM Shield(SIM 900) - запросить баланс
- Войдите на сайт для отправки комментариев
Вс, 10/01/2016 - 15:40
Джентельмены, прошу пояснить азы запроса баланса (МТС).
В телефоне набираю *100#
получаю: Баланс : 129,91р,Лимит0.01
В ардуине пишу:
resp = modemAccess.writeModemCommand("AT+CUSD=1,\"*100#\"", 20000); Serial.print("Responce(OK/ERROR):["); Serial.print(resp); Serial.print("]"); Serial.println();
получаю:
AT+CUSD=1,"*100#"%13%%10%Responce(OK/ERROR):[]
т.е. пустую строку
а если запросить время:
resp = modemAccess.writeModemCommand("AT+CCLK?", 20000);
то получаю ответ:
AT+CCLK?%13%%10%Responce(time):[
+CCLK: "00/01/01,01:51:10+00"
]K
т.е. "+CCLK: "00/01/01,01:51:10+00""
Во, у меня такая же беда. Не могу реализовать запрос баланса.
у меня работают оба варианта на МТС (Москва)
Валера, прошу пояснить.
gprs - это какой класс?
И как вы читаете из него?
readSerial(???);
я работаю без библиотеки, это имя присвоенное SoftwareSerial
вам главное команды и строки инициализации модема, мои вот
Таки да.
С меня пиво.
Скиньте номер телефона на почту, я вам счёт пополню.
dmitron1036()mail.ru
Следующий вопрос: как с sim900 пообщаться через встроенные функции библиотеки GSM?
чего-то я потерял доверие к удобной команде modemAccess.writeModemCommand(). может зря?
Таки да.
С меня пиво.
Скиньте номер телефона на почту, я вам счёт пополню.
dmitron1036()mail.ru
Спасибо, не надо
Следующий вопрос: как с sim900 пообщаться через встроенные функции библиотеки GSM?
чего-то я потерял доверие к удобной команде modemAccess.writeModemCommand(). может зря?
Здесь я вам не помогу, всегда пытаюсь работать без библиотек
Ещё вопрос:
Хочу запросить отчёт по последним расходам.
в телефоне набираю: *152*1#
или *152# а потом 1
a в SIM900:
вместо первой звездочки решетку попробуйте
Думаю он отвечает тебе на русском а значит закодировано в PDU
У меня декодер показал вот что User Data (decoded): [7;79780146953;SMS. исх. 耠Моб. ΰ̐ΰ䑠䍐䏐䌀Π̐ˠ]
декодер можно взять тут
Хотя работает видимо немного некорректно, но копайте в сторону расшифровки PDU
Или как вариант раньше у оператора можно было получать все уведомления транслитом. Тогда будет приходить текст латинскими символами. Если используется русский то сообщение однозначно кодируется в PDU
Не стал плодить темы. Почти реализовал запрос баланса. После команды ATD*100# на модуль приходит строка типа такой
+CUSD: 0,"Balans:76,20r,Limit:0,01r Novinki khit-paradov i su
получилось, но коряво. При отправке на модуль команды на запрос баланса, на модуль строка USSD с балансом приходит, но отсылать мне её обратно на телефон не хочет, только если я отправлю любую смс (с любым текстом) на GSM модуль. Как будто в приходящей USD строке не находит символа перевода каретки. Можно ли сделать всё таки, чтобы модуль сразу отсылал массив со строкой USD мне обратно?
Ну помогите ктонить найти косяк в , как это называется, в парсинге. Строка с 23 по 60. При наполнении массива String строкой с балансом которая начинается с +CUSD модуль почему то не видит перевод каретки.
По команде #100# тоже самое
вам на телефон тоже приходит баланс с мусором: Novinki khit-paradov i su...
Мне кажется проблема тут. Не....может вы конечно что-то в настройках не настроили.