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



Teraz jest 2 mar 2025, o 19:50


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
Autor Wiadomość
PostNapisane: 27 sie 2015, o 11:29 
Offline
Nowy

Dołączył(a): 08 wrz 2014
Posty: 15
Pomógł: 0

Witajcie,
mam do skomunikowania z atmegą 328p moduł GSM (Fibocom G510). Problem polega na "nieregularnych" odpowiedziach modułu. Nie mam pomysłu jak określać w którym momencie ustawiać flagę, informującą że rozkaz jest gotowy do przesłania. Opierając się na "bluebooku" kombinowałem ze zliczaniem LF i/lub CR ale czasem w komendzie zwrotnej dostaję 2, 3 a czasem nawet 4 razu te znaki. Długość komend/ilość odebranych znaków też nie wchodzi w grę bo ta waha się między 8 a 75. Zastanawiam się nad jakąś formą czasowego wyzwalania flagi (np 400ms od pierwszego znaku). Nie zależy mi na bardzo szybkiej komunikacji. Komendy będą wysyłane "w godzinach szczytu" raz na 1s. Mógłby ktoś podpowiedzieć w jaki sposób wrzucić zliczanie czasowe do przerwania (pamiętam że w blubooku było WYRAŹNIE napisane żeby nie wrzucać do przerwań _delay'ów) lub może jest jakaś inna metoda?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 sie 2015, o 13:54 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2014
Posty: 1089
Pomógł: 34

A mógłbyś proszę opisać jak charakteryzują się odpowiedzi tego modułu? Jest wzór jakiego można się zaczepic? Np ze komenda kończy idę na LF+CR?

Jak juz opracuje się coś takiego to można wtedy łatwo dopasować rozwiązanie :)

Sent from my GT-I9506 using Tapatalk

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 sie 2015, o 14:06 
Offline
Nowy

Dołączył(a): 08 wrz 2014
Posty: 15
Pomógł: 0

No właśnie nie bardzo bo kombinacja LF+CR pojawia się czasem i 3 razy na komendę a trochę zależy mi by tego nie rozbijać
(np. dostaję: +CMT: "+48665142300",,"15/08/17,11:25:40+02" < LF+CR> system_on <LF+CR>, kiedy mam to w jednym buforze spokojnie rozpoznaję smsa). Zaraz postaram się przygotować kilka komend które otrzymuję (w ASCII i HEX). :)


Komunikat o błędnej komendzie:
ASCII:
Kod:
at+cps?                                                                         
ERROR 

HEX:
Kod:
                     
61 74 2B 63 70 73 3F 0D 0D 0A 45 52 52 4F 52 0D 0A

Komunikat o znakach które nawet komendą nie są:
ASCII:
Kod:
dddd                                                                           
ERROR

HEX:
Kod:
64 64 64 64 0D 0D 0A 45 52 52 4F 52 0D 0A 0A

Komunikat o przyjęciu komendy: (Występuje powtórzenie komendy (tutaj at) a następnie dodanie reszty)
ASCII:
Kod:
at                                                                             
OK                                                                             
   

HEX:
Kod:
61 74 0D 0D 0A 4F 4B 0D 0A


Komunikat o wiadomości SMS:
ASCII:
Kod:
+CMT: "+48665142300",,"15/08/27,15:12:26+02"                                   
CHE                                                                             
 

HEX:
Kod:
0D 0A 2B 43 4D 54 3A 20 22 2B 34 38 36 36 35 31 34 32 33 30 30 22 2C 2C
22 31 35 2F 30 38 2F 32 37 2C 31 35 3A 31 33 3A 30 30 2B 30 32 22 0D 0A
43 48 45 0D 0A     

Komunikat o ustawieniach sieci:
ASCII:
Kod:
at+cops?                                                                       
+COPS: 0,0,"Plus"                                                               
                                                                               
OK                       


HEX:
Kod:
61 74 2B 63 6F 70 73 3F 0D 0D 0A 2B 43 4F 50 53 3A 20 30 2C 30 2C 22 50
6C 75 73 22 0D 0A 0D 0A 4F 4B 0D 0A



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 sie 2015, o 17:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2014
Posty: 1089
Pomógł: 34

No i fajnie - popatrz ze możesz rozpoznać poprawna komendę

Każda kończy (poprawna na 0D 0A ?) Się wg mnie określonym ciągiem znaków wiec na tej podstawie możesz zacząć budować logikę ?

Sent from my GT-I9506 using Tapatalk

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 sie 2015, o 18:23 
Offline
Użytkownik

Dołączył(a): 25 cze 2015
Posty: 123
Pomógł: 4

Toż to nic innego jak para CR LF w Green Booku masz gotowe rozwiązanie, ewentualnie poszukaj na forum, były też na necie biblioteki które odbierają stringa. Zasada podobna.

_________________
"O sygnałach bez całek" Czesław Frąc



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 sie 2015, o 20:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2014
Posty: 1089
Pomógł: 34

No tak :) ja chciałem kolegę naprowadzic na trop :) aby szczęśliwie mógł sam dojść do rozwiązania bo wtedy większą frajda

Sent from my GT-I9506 using Tapatalk

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 sie 2015, o 09:28 
Offline
Nowy

Dołączył(a): 08 wrz 2014
Posty: 15
Pomógł: 0

Ale pary 0D 0A mam też w środku komend (różna ilość w różnych komendach) co mi by je rozbijało. Zastanawiałem się nad innym rozwiązaniem nieopierającym się na ustawianiu flagi przy obecności 0D 0A.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 wrz 2015, o 18:14 
Offline
Użytkownik

Dołączył(a): 13 lut 2015
Posty: 99
Pomógł: 6

Z tego co widzę to podane komunikaty kończą się na "CHE" "OK" "ERROR", więc można by prowadzić odczyty i analizę pojedyńczych lini aż do trafienia na te komunikaty.

_________________
AVR-UART-lib
AVR-FAST-ENCODER
RFM7x-lib



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: 8 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO