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



Teraz jest 9 sty 2025, o 22:41


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 9 lip 2014, o 20:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lut 2013
Posty: 126
Lokalizacja: Turbia
Pomógł: 0

Witam wszystkich, od paru dni walczę z opracowaniem algorytmu do sterowania telefonem T630. Chodzi o to że nie potrafię wymyślić sensownego sposobu rozmawiania z tym telefonem.
Mam dwie koncepcje i waham sie którą wybrać, a że nigdy nie bawiłem się czymś takim to mam nie lada dylemat.

Możliwość pierwsza to wysłanie komendy AT po czym oczekiwanie delayem jakiegoś czasu i przetworzenie spodziewanej odpowiedzi. Ten sposób jest trywialnie prosty ale martwi mnie co sie stanie jak w czasie czekania przyleci inna odpowiedź niż spodziewana (np. dostanę sms a czekam na pobrany numer z sim) lub odpowiedź w ogóle nie przyjdzie

Możliwość druga to ustawienie flagi "pobieram numer" po czym wysłanie komendy i w funkcji odbiorczej w momencie odebrania czegokolwiek sprawdzanie funkcji pod flagą "pobieram numer" czy własnie dostałem numer. Jeżeli numer dotarł to zeruje flage i numer pakuje do zmiennej. Jeżeli przyszła inna odpowiedź to sprawdzam czy sms czy połaczenie odpowiednio przetwarzam i wracam do czekania na numer. Jeśli numer nadal nie przychodzi to ponawiam komendę pobrania numeru.

Oczywiście zadań komunikacyjnych będzie więcej a to tylko przykład.
Ogólnie chodzi o to że nie chcę aby sterownik zajęty czymkolwiek przegapił przychodzący sms bądź jakieś zdarzenie wywołane przerwaniem INT lub żeby zdarzenie na INT rozkraczyło przetwarzanie aktualnie odebranego smsa.

Proszę doświadczonych o podpowiedzi bo już nie mam pomysłów jak to zrealizować najprościej i najpewniej, pozdrawiam Tomek.

_________________
Zestaw ATB 1.04
Niebieska książka
Zielona książka



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 lip 2014, o 22:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 sie 2012
Posty: 245
Lokalizacja: Kielce
Pomógł: 6

Jesli chodzi o obawę o rozkraczenie funkcji przez przerwanie to możesz ustawić w programie obszar atomowy ,czyli blok programu który nie może być przerwany.

_________________
1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 lip 2014, o 22:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lut 2013
Posty: 126
Lokalizacja: Turbia
Pomógł: 0

A jak wtedy nastąpi przerwanie to zostanie wykryte?

_________________
Zestaw ATB 1.04
Niebieska książka
Zielona książka



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 lip 2014, o 22:54 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lut 2013
Posty: 126
Lokalizacja: Turbia
Pomógł: 0

A co jeśli ten blok atomowy będzie zbyt długi lub co gorsza będzie czekał na odpowiedź telefonu? Domyślam sie że niezbyt kolorowo?

_________________
Zestaw ATB 1.04
Niebieska książka
Zielona książka



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 lip 2014, o 23:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lut 2013
Posty: 126
Lokalizacja: Turbia
Pomógł: 0

No właśnie troche mnie to martwi, a jeszcze nie ogarniam na tyle c żeby wszystko przewidzieć.

_________________
Zestaw ATB 1.04
Niebieska książka
Zielona książka



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO