• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
M590E+Arduino Nano v3
#1
Posiadam system zbudowany w oparciu o te elementy. Założone funkcje wykonuje poprawnie, za wyjątkiem sprawdzenia salda karty SIM zamontowanej w systemie. Jeżeli wyśle z telefonu do systemu zapytanie o saldo karty, to wprawdzie otrzymuję na telefon odpowiedź ze stanem karty i jeszcze dodatkowo - trochę śmieci. Dzieje się tak, bo nie potrafię  Angry "obciąć" przychodzącego do systemu stringa.

Po moim zapytaniu o saldo i wysłaniu przez system kodu USSD, system odbiera komunikat od operatora, opracowuje go i wysyła na telefon SMS ze stanem konta. Za tą funkcję odpowiada kod:
Kod:
if(val.indexOf(F("+CUSD:")) > -1) { // jeśli przyszło saldo
       int p1 = val.indexOf(F("\""));         // początek linii
       int p2 = val.lastIndexOf(F("\"."));     // koniec linii
       val = val.substring(p1+1,p2);
       Serial.println("");
       Serial.println(F("Input string:"));    // wpisz do portu linię przychodzącą
       Serial.println(val);
Serial.println("");
sms("SIM " + val + "\n", 0);    // sms dla ostatniego rozmówcy

W monitorze portu otrzymuję (np): 

Input string:
Pozostalo Ci 1,00zl do wykorzystania do 2018-10-21 23:59:59. Dodatkowo w ramach srd oyy s00loyrsn  "5K

Na telefon wysyłany jest SMS:

SMS send 48xxxxxxxxx
SIM Pozostalo Ci 1,00zl do wykorzystania do 2018-10-21 23:59:59. Dodatkowo w ramach srd oyy s00loyrsn  "5K

Mnie interesuje tylko : Pozostalo Ci 1,00zl do wykorzystania do 2018-10-21 23:59:59. , ale SMS przychodzi z całą treścią. Końcówka jest mało czytelna i zbędna.

Pytanie do bardziej doświadczonych: jak z bufora pobrać tylko interesującą mnie część odpowiedzi od operatora, lub w jaki sposób "skrócić" wysyłany na  telefon SMS?
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości