Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 1 gru 2024, o 04:26


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 
Autor Wiadomość
PostNapisane: 31 paź 2015, o 21:21 
Offline
Użytkownik

Dołączył(a): 25 maja 2014
Posty: 92
Lokalizacja: Krosno
Pomógł: 0

Witam,
robię sobie mały projekcik z wykorzystaniem modułu GSM SIM900, coś w stylu centralka alarmowa.
Dodam, że jest to początek mojej przygody z modułami GSM.
Ale do rzeczy. Wysyłając SMS do SIM900, modem zwraca odpowiedź +CMTI: "SM",x - gdzie x to nr SMS.
Do odczytania tego SMS wysyłam rozkaz AT+CMGR=x, x to nr SMS tego który otrzymałem w +CMTI.

No i tutaj od czasu do czasu zdarza się, że modem nie zwraca treści SMS. W załączniku zrzut ekranu w czasie testów właśnie z takim przypadkiem.

Obrazek

Zrobiłem sobie podgląd lini Tx i Rx w RS232. Więc widzę co wysyłam do SIM900 i widzę co zwraca.
Wysyłane znaki oglądam również jako hex aby widzieć czy przypadkiem gdzieś nie zjadło mi ENTERA po rozkazie CMGR,
wtedy modem czekałby aż dostanie ten znak aby móc wykonać owy rozkaz. Ale takiej sytuacji nie było, więc przesył rozkazu jest OK co widać na zdjęciu.

Czy mieliście już takie przypadki??? Nie rozumiem takiego zachowania:(
Może coś robię nie tak?? może za szybko wysyłam rozkaz CMGR w stosunku do odebrania CMTI??

Szukałem wątków na tym forum związanych z tym tematem, ale nie znalazłem.

Z góry dziękuję za wszystkie sugestie i porady.

Pozdrawiam

_________________
Artur



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2015, o 22:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 20 sie 2013
Posty: 795
Lokalizacja: Poznań
Pomógł: 59

O ile dobrze pamiętam za pomocą polecenia AT+CNMI=1,1,0,0,0 (chyba takie parametry) można ustawić sim, by zaraz po odebraniu sms treśc sms była wyświetlana w terminalu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lis 2015, o 06:30 
Offline
Użytkownik

Dołączył(a): 02 lut 2014
Posty: 60
Pomógł: 1

Witam.
Ja co prawda nie znam SIMa, w swoim projekcie używam leciwego wavecoma,
ale wydaje mi się, że komenda CMTI nie podaje wcale nr SMSa,
tylko łączną ilość wiadomości w danym "buforze" pamięci, a to wcale nie to samo.
Dlatego jeśli masz taką możliwość, to tak jak kolega wyżej pisał ustaw podawanie pełnej
treści odebranej wiadomości.
Ja regularnie sprawdzam stan pamięci, a jeśli mam jakieś nie odebrane to uruchamiam funkcję, która po kolei odpytuje cały bufor.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lis 2015, o 09:37 
Offline
Użytkownik

Dołączył(a): 25 maja 2014
Posty: 92
Lokalizacja: Krosno
Pomógł: 0

Witam:)

icer_cmg napisał(a):
O ile dobrze pamiętam za pomocą polecenia AT+CNMI=1,1,0,0,0 (chyba takie parametry) można ustawić sim, by zaraz po odebraniu sms treśc sms była wyświetlana w terminalu.


Tego rozkazu nie używałem i chętnie go wypróbuję, bo faktycznie w tym urządzeniu to nawet lepiej by było od razu uzyskać treść, a nie jeszcze marnować czas na wysyłanie rozkazu CMGR.


icer_cmg napisał(a):
wydaje mi się, że komenda CMTI nie podaje wcale nr SMSa,
tylko łączną ilość wiadomości w danym "buforze" pamięci, a to wcale nie to samo.


Jeśli chodzi o odpowiedź "CMTI" z modemu, to w tej postaci : +CMTI: "SM",x (+CMTI: <mem>,<index>)
jak w moim przypadku, zwraca następujące rzeczy:
"SM" - wskazuje na pamięć w karcie SIM, no a ten numer to faktycznie ilość SMS w tej pamięci (niefortunnie użyłem nr SMS).
Rozkazem AT+CMGR=x odczytuję konkretny SMS o podanym indeksie. Czyli jeśli do modemu przyjdzie SMS i modem zwróci
+CMTI: "SM",16 to wysyłając rozkaz AT+CMGR=16 moduł zwraca mi ostatnio odebrany SMS.

I właśnie w takim przypadku mój modem nie zawsze zwraca treść odebranego SMS i nie wiem dlaczego. Zaznaczam, że zawsze na końcu rozkazu mam znak ENTER, bo bez tego modem nie wykona rozkazu.

Przy odczycie starszych wiadomości nie ma takiego problemu, występuje on tylko przy próbie odczytu ostatniego SMS :((

Po odebraniu CMTI, wyłuskuję z niego index, następnie sklejam go z rozkazem CMGR i wysyłam do modemu.
Próbowałem opóźnić trochę (100ms) wysłanie tego rozkazu względem odebrania CMTI i sklejenia rozkazu, ale to nic nie dało:(

Może jednak jest jakieś logiczne wyjaśnienie tego tematu.

Pozdrawiam

_________________
Artur



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lis 2015, o 13:18 
Offline
Użytkownik

Dołączył(a): 02 lut 2014
Posty: 60
Pomógł: 1

Z ilościadomości w danej pamięci wcale nie wynika numer odebranej wiadomości.
Wcale nie muszą być ułożone kolejno, mogą występować puste miejsca po usuniętych wcześniej Smsach.
To że jest ich 16 a Ty próbując odczytać tą z pod adresu/index 16 nie dostajesz tego co się spodziewasz, raczej potwierdza moją teorię.
Spróbuj odczytać sąsiednie indexy, a najlepiej pokolei całą pamięć, bo jeśli dostajesz CMTI to modem odebrał SMSa i zapisał go w obszarze SM, czyli jak piszesz na karcie SIM.
A tak z ciekawości modem nie zwraca przypadkiem błędu, gdy niemożesz odczytać Smsa?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lis 2015, o 15:27 
Offline
Użytkownik

Dołączył(a): 25 maja 2014
Posty: 92
Lokalizacja: Krosno
Pomógł: 0

Witam:)
Artur_26 napisał(a):
A tak z ciekawości modem nie zwraca przypadkiem błędu, gdy niemożesz odczytać Smsa?


W tym przypadku nie dostaję błędu, żadnej odpowiedzi. Dlatego załączyłem PrintScrn aby było widać co przysyła modem i co nadaję do modemu. Ten przykład co podałem to w kolejności wygląda tak:
1. Modem mówi CMTI
2. uC stwierdza : o jest nowa wiadomość
3. Z +CMTI: "SM",16 wyciągam "16"
4. Sklejam ten nr z rozkazem "AT+CMGR="
5. Wysyłam cały rozkaz AT+CMGR=16 do modemu

I teraz zdarza się co nie jest regułą, że modem nic nie odpowiada, ani jednego znaku. Właśnie po to robię sobie podsłuch
lini Tx i Rx, które mam podłączone do dwóch portów RS232 w kompie. Dzięki temu widzę na bieżąco jak ze sobą rozmawia uC z modemem:)

A normalnym zachowaniem było, że jak wysyłałem SMSy do mojego modemu to układ odczytywał je normalnie.
Np dostałem CMTI z nr10 wysłałem CMGR z nr 10 i OK mam odczyt, za chwilę wysłałem kolejny SMS i otrzymałem CMTI z nr 11 i po wysłaniu CMGR z nr 11 poprawna odpowiedź. No to następny SMS wysyłam. Modem mówi CMTI z nr 12, wysyłam CMGR z nr 12 a modem milczy:(

Jeśli chodzi o kasowanie wiadomości to usuwam na raz wszystkie wiadomości z pamięci, więc wydaję mi się, że nie ma pustych miejsc. Twoja uwaga odnośnie występowania pustych miejsc jest bardzo cenna i na pewno sprawdzę co się dzieję jeśli skasuję środkową wiadomość. Do tej pory tego nie robiłem i zawsze kasowałem wszystkie wiadomości na raz:)

Bawiąc się komunikacją z modem z poziomu terminala PC, odbierając SMSy , odczytując "ostatni" zawsze odczytałem to co wysłałem przed otrzymaniem CMTI.

Po braku odpowiedzi, przełączam się na terminal PC i wysyłając komendę CMGR z "ostatnim" nr modem milczy:(
dopiero po resecie modemu i ponownym wysłaniu CMGR modem zwraca ostatnio wysłany prze zemnie SMS

Wysyłając CMGR z numerem większym od ostatniej wiadomości modem zwraca OK.

Wniosek nasuwa mi się jeden, że będę musiał wrócić do zabawy tym modemem z poziomu PC i terminala.

Acha jeśli wyśle błędnie jakieś komendy a są zakończone enterem to modem zwraca ERROR, bo takie przypadki ćwiczyłem na PC i terminalu.

Hmmm może uda mi się dojść za Twoją i innych pomocą do przyczyny takiego zachowania, bo podsuwacie dobre pomysły:), które warto sprawdzić.

Pozdrawiam

_________________
Artur



Ostatnio edytowano 1 lis 2015, o 19:59 przez Artur_26, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lis 2015, o 19:56 
Offline
Użytkownik

Dołączył(a): 25 maja 2014
Posty: 92
Lokalizacja: Krosno
Pomógł: 0

Witam:)

icer_cmg napisał(a):
O ile dobrze pamiętam za pomocą polecenia AT+CNMI=1,1,0,0,0 (chyba takie parametry) można ustawić sim, by zaraz po odebraniu sms treśc sms była wyświetlana w terminalu.


Sprawdziłem tą komendę i fajnie działa, ale żeby jednocześnie była odwiedź z treścią SMS to trzeba dać:

AT+CNMI=2,2,0,0

Dzięki za podpowiedź.

Pozdrawiam

_________________
Artur



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lis 2015, o 20:59 
Offline
Użytkownik

Dołączył(a): 25 maja 2014
Posty: 92
Lokalizacja: Krosno
Pomógł: 0

Witam ponownie:)

Zrobiłem ponownie test czy modem nic nie odpowie. Wysłałem 21 SMSy pod rząd i za każdym razem poprawne działanie.
Po 21 skasowałem wszystkie wiadomości i wysłałem jeszcze jeden i również poprawna odpowiedź.

Nic w kodzie nie zmieniałem, po prostu włączyłem i zrobiłem test.
nie rozumiem wcześniejszego zachowania modemu.

Na zdjęciu wynik komunikacji pomiędzy uC a modemem.

Obrazek

Może jednak znajdę przyczynę, dlaczego modem nie odpowiedział:)

Pozdrawiam

_________________
Artur



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lis 2015, o 21:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8587
Pomógł: 337

trudno wyczuć ... dlaczego tak się stało
ale z doświadczenia ci powiem ze br@y nie jest dobrym terminalem
czesto mu się zdarzają dziwne zachowania , np nie wysyłanie i nie odbieranie treści
mimo że wygląda że wszystko działa ..

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lis 2015, o 21:26 
Offline
Użytkownik

Dołączył(a): 25 maja 2014
Posty: 92
Lokalizacja: Krosno
Pomógł: 0

Witam,

SunRiver terminale w tym przypadku służą jako podsłuchy nie wysyłam z nich niczego.
Dzięki nim widzę jak uC gada z modemem.

Wtedy kiedy modem "nie odpowiadał" uC też niczego nie odebrał. Właśnie o to mi chodzi.

A jaki terminal polecasz?? szczerze mówiąc to z br@y nie miałem jeszcze problemów, więc dzięki za uwagę będę miał się na baczności:)

Pozdrawiam

_________________
Artur



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lis 2015, o 21:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8587
Pomógł: 337

Artur_26 napisał(a):
A jaki terminal polecasz?? szczerze mówiąc to z br@y nie miałem jeszcze problemów, więc dzięki za uwagę będę miał się na baczności:)

no to gratuluję ... niestety mnie zawiódł kilka razy , w związku z czym szukałem czegoś lepszego czegoś co nie wywali się
przy dużych ilościach danych i takich tam .... Puttiego nie lubię , spełnił i spełnia swoją rolę świetnie sprzetowy terminal VT240 no ale
czasem potrzebuję skorzystać na kompie żeby nie nosić sprzetowego więc napisałem w końcu swój ...

czasem to najlepsze rozwiązanie

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lis 2015, o 20:00 
Offline
Użytkownik

Dołączył(a): 25 maja 2014
Posty: 92
Lokalizacja: Krosno
Pomógł: 0

Witam,
SunRiver napisał(a):
czasem potrzebuję skorzystać na kompie żeby nie nosić sprzetowego więc napisałem w końcu swój ...


Zainspirowałeś mnie:) Też się zanosiłem z zamiarem napisania własnego terminala i nawet zrobiłem przymiarki do tego. Niestety lenistwo zwyciężyło :) hihi i zaniechałem ten pomysł.
Zrobię sobie od razu obsługę dwóch portów, to będę mógł podsłuchiwać komunikację urządzeń między sobą:) tak jak to teraz robię pomiędzy uC a modemem.

A wracając do mojego problemu z brakiem odpowiedzi modemu, to na razie się przestraszył i działa normalnie.
Zmieniłem też sposób odbierania SMS, czyli skorzystałem z propozycji kolegi icer_cmg.

Jak na razie temat zamykam. Ale jeśli znajdzie się ktoś kto ma duże doświadczenia z tymi modułami to proszę o dorzucenie swoich "pięciu groszy":))

Pozdrawiam

_________________
Artur



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO