04-06-2018, 15:59
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ę "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:
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?
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?