eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › komendy AT - ustawienie zajętości linii GSM
Ilość wypowiedzi w tym wątku: 25

  • 11. Data: 2013-01-01 17:57:02
    Temat: Re: komendy AT - ustawienie zajętości linii GSM
    Od: Atlantis <m...@w...pl>

    W dniu 2013-01-01 13:59, Anerys pisze:

    > Nasunął mi się taki pomysł - nie porównywać całości, ale po pojedynczym
    > znaku.

    Przyszło mi do głowy jeszcze jedno rozwiązanie. Poszczególne
    przychodzące znaki można by analizować bezpośrednio po odebraniu, w
    przerwaniu RX USART-a. Każdy zgodny znak przesuwa wskaźnik do przodu,
    mylny zeruje go. Po dotarciu do końca badanego ciągu ostatnia instrukcja
    warunkowa, która sprawdza czy słuchawka jest podniesiona. Jeśli tak -
    wysyła "ATH\r", jeśli nie - uruchamia dzwonek.
    Oczywiście każdy znak przeanalizowany w przerwaniu byłby nadal dostępny
    dla procedury odczytującej bufor (nie przesuwałbym wskaźnika odczytu).

    Jedną z największych zalet byłaby możliwość uśpienia uC, ponieważ ten
    nie musiałby ciągle sprawdzać w głównej pętli programu, czy ktoś nie
    dzwoni. Widełki również można by spiąć z linią obsługującą przerwanie
    sprzętowe. Mam jednak kilka wątpliwości...

    1) Czy dopuszczalne jest wysyłanie jakichkolwiek znaków przez USART w
    przerwaniu obsługującym obiór znaków? Szczególnie jestem ciekaw jaki
    byłby efekt, gdyby było włączone echo...
    2) Chyba musiałbym zastosować linię DTR, aby powstrzymać modem od
    wysyłania kolejnych znaków np. podczas tej całej operacji?

    To dobry kierunek, czy raczej gra niewarta świeczki?


  • 12. Data: 2013-01-01 18:16:16
    Temat: Re: komendy AT - ustawienie zajętości linii GSM
    Od: Atlantis <m...@w...pl>

    W dniu 2013-01-01 16:44, J.F. pisze:

    > A moze sie nie przejmowac ? Sytuacja na tyle rzadka, ze mozna odebrac.

    Zależy mi jednak na stabilnym i przewidywalnym działaniu programu...


    > Do sprawdzenia - a co bedzie jesli w takim stanie wyslesz normalna
    > komende ATDnnn; ? Nie uda sie zadzwonic bo "linia zajeta" czy wlasnie
    > polaczy, a nie odbierze ?

    Nie uda się zadzwonić, zwraca "NO CARRIER".


    > No nie przesadzajmy - sprawdzenie bufora to pare, moze parenascie rozkazow.

    Problem polegał na tym, że nieopatrznie skorzystałem z gotowej,
    standardowej procedury oczekiwania na pojawienie się danego komunikatu w
    buforze. Działa ona w ten sposób, że przez zadany okres czasu czeka na
    pojawienie się oczekiwanego ciągu. Jeśli ciąg się pojawi - zwraca
    wartość prawdziwą. Jeśli czas upłynie - zwraca fałsz. Niestety przez ten
    czas procek jest zajęty.

    Teraz wypróbuję inne podejście. W każdej iteracji głównej pętli
    procedury wybierania numeru będę sprawdzał jeden znak. Jeśli będzie się
    zgadzał - wskaźnik++. Jeśli nie - wskażnik = 0 (sprawdzanie od nowa).
    Gdy dojdzie do końca badanego ciągu (wykrycie komunikatu "RING"), wyślę
    "ATH".


    > I wcale nie wiadomo czy chcesz sprawdzac w czasie krecenia - rozsadne
    > byloby wlaczyc dzwonek, i niech uzytkownik decyduje - naciska widelki,
    > podnosi i odbiera, czy kreci dalej - a pod koniec sprawdzasz czy nic nie
    > czeka.

    Odpada. Program ma dokładnie naśladować zachowanie starego telefonu, bo
    (że tak powiem) będzie działał w starym telefonie. ;) Chodzi o
    zabudowanie urządzenia GSM w obudowie starego, bakelitowego telefonu
    RWT, z mikrosterownikiem pośredniczącym w komunikacji z widełkami,
    tarczą numerową i elektromechanicznym dzwonkiem. ;)


    > A w ogole jest jakies polecenie do odrzucenia ? ATH nie wiem czy zadziala.

    "ATH" działa.
    Tak BTW jaka jest różnica między "ATH" a "AT+CHUP"? Dokumentacja modułu
    podaje lakoniczne wyjaśnienie jego działania jako "hangs up call". Jak
    dla mnie dokładnie to samo robi "ATH"... Dwa redundantne polecenia?


  • 13. Data: 2013-01-01 20:37:05
    Temat: Re: komendy AT - ustawienie zajętości linii GSM
    Od: Marek <f...@f...com>

    On Tue, 01 Jan 2013 18:16:16 +0100, Atlantis <m...@w...pl>
    wrote:
    > Tak BTW jaka jest różnica między "ATH" a "AT+CHUP"? Dokumentacja
    modułu
    > podaje lakoniczne wyjaśnienie jego działania jako "hangs up call".
    Jak
    > dla mnie dokładnie to samo robi "ATH"... Dwa redundantne polecenia?

    Ath nie rozlaczysz połączenia przychodzącego, jeszcze nie odebranego.
    Tym drugim - owszem.

    --
    Marek


  • 14. Data: 2013-01-01 20:40:00
    Temat: Re: komendy AT - ustawienie zajętości linii GSM
    Od: Atlantis <m...@w...pl>

    W dniu 2013-01-01 20:37, Marek pisze:

    > Ath nie rozlaczysz połączenia przychodzącego, jeszcze nie odebranego.
    > Tym drugim - owszem.

    A to dziwne, bo obecnie w programie używam właśnie "ATH" we wszystkich
    sytuacjach, kiedy trzeba zakończyć połączenie. Działa równie dobrze w
    przypadku połączeń odebranych, jak i tych, które trzeba odrzucić...


  • 15. Data: 2013-01-01 20:46:21
    Temat: Re: komendy AT - ustawienie zajętości linii GSM
    Od: "Anerys" <s...@s...pl>


    Użytkownik "Atlantis" <m...@w...pl> napisał w wiadomości
    news:kbv5l4$4tj$1@portraits.wsisiz.edu.pl...
    > Gdy dojdzie do końca badanego ciągu (wykrycie komunikatu "RING"), wyślę
    > "ATH".

    Coś mi mówi, że powinieneś dociągnąć do znaków CR-LF, jakoś nie bardzo mogę
    sobie wyobrazić znaków dawanych pod wlos... Ale zastanawiam się, czy nie
    przeszło by - po stwierdzeniu, że "RING", zakombinowaniem ze stanem linii
    kontrolnych... Ale jak pisałem, nie znam modemów GSMowych, jednak jeśli
    szybciej było by zrzucić połaczenie zamiast ATH, to ustawieniem/skasowaniem
    którejś z linii kontrolnych, to nie lepiej?

    --
    Pod żadnym pozorem nie zezwalam na wysyłanie mi jakichkolwiek reklam,
    ogłoszeń, mailingów, itd., ani nawet zapytań o możliwość ich wysyłki.
    Nie przyjmuję ŻADNYCH tłumaczeń, że mój adres e-mail jest ogólnodostępny
    i nie został ukryty. Wszelkie próby takich wysyłek potraktuję jako stalking.


  • 16. Data: 2013-01-01 20:52:47
    Temat: Re: komendy AT - ustawienie zajętości linii GSM
    Od: Marek <f...@f...com>

    On Tue, 01 Jan 2013 20:40:00 +0100, Atlantis <m...@w...pl>
    wrote:
    > A to dziwne, bo obecnie w programie używam właśnie "ATH" we
    wszystkich
    > sytuacjach, kiedy trzeba zakończyć połączenie. Działa równie dobrze
    w
    > przypadku połączeń odebranych, jak i tych, które trzeba odrzucić...

    A to widać moduł modułowi nie równy :-), ja musiałem at+chup bo ath
    nie działało dla nieodebranych.

    --
    Marek


  • 17. Data: 2013-01-01 21:12:17
    Temat: Re: komendy AT - ustawienie zajętości linii GSM
    Od: Atlantis <m...@w...pl>

    W dniu 2013-01-01 20:46, Anerys pisze:

    > Coś mi mówi, że powinieneś dociągnąć do znaków CR-LF, jakoś nie bardzo
    > mogę sobie wyobrazić znaków dawanych pod wlos...

    Oczywiście znaki kontrolne też uwzględniam, tutaj pominąłem dla
    uproszczenia. Zresztą problem z pominięciem tych znaków miałem tylko
    wtedy, gdy zaraz po odczytaniu komunikatu trzeba było wysłać jakieś
    polecenie - wówczas moduł otrzymywał nowe znaki, gdy poprzedni komunikat
    jeszcze był wysyłany. Prowadziło to do powstania błędu (przychodził
    "krzaczek").

    Gdy jedynie trzeba sprawdzić, czy dany ciąg wystąpił (i nic nie jest
    zaraz potem wysyłane) ten problem nie występuje. Funkcja zwróci wartość
    prawdziwą, gdy wystąpi ostatni znak poszukiwanego ciągu. Znaki kontrolne
    zostaną po prostu zapisane do bufora. Przy następnym wywołaniu funkcji
    sprawdzającej zostaną pominięte (a właściwie będą resetowały
    sprawdzanie, dopóki nie pojawi się pasujący znak, albo nie upłynie
    zadany czas).


    > jednak jeśli szybciej było by zrzucić połaczenie zamiast ATH, to
    > ustawieniem/skasowaniem którejś z linii kontrolnych, to nie lepiej?

    Aż takie niuanse nie są wyprowadzone na osobne linie niestety. Jest
    komplet linii rs232, do karty SIM, włączenia zasilania itp.


  • 18. Data: 2013-01-02 08:40:41
    Temat: Re: komendy AT - ustawienie zajętości linii GSM
    Od: g...@s...invalid (Adam Wysocki)

    Atlantis <m...@w...pl> wrote:

    > Zbadanie zawartości bufora zajmuje na tyle dużo czasu, że jeśli taka
    > konieczność zajdzie w momencie kręcenia tarczą, program może przeoczyć
    > część impulsów,

    W jaki sposób rozpoznajesz impuls z tarczy?

    --
    Gof
    http://www.chmurka.net/


  • 19. Data: 2013-01-02 19:11:22
    Temat: Re: komendy AT - ustawienie zajętości linii GSM
    Od: Atlantis <m...@w...pl>

    W dniu 2013-01-02 08:40, Adam Wysocki pisze:

    > W jaki sposób rozpoznajesz impuls z tarczy?

    Chyba w najprostszy z możliwych sposobów. Starszą wersję kodu znajdziesz
    tutaj:

    http://www.elektroda.pl/rtvforum/topic2440230.html

    Od tamtego czasu nauczyłem się paru rzeczy, rozwiązałem kilka problemów
    i poprawiłem parę błędów. Sama procedura wybierania numeru (make_call)
    nie zmieniła się jednak prawie wcale, a część odpowiedzialna za
    odczytywanie tarczy jest praktycznie taka sama.



  • 20. Data: 2013-01-02 20:52:52
    Temat: Re: komendy AT - ustawienie zajętości linii GSM
    Od: g...@s...invalid (Adam Wysocki)

    Atlantis <m...@w...pl> wrote:

    >> W jaki sposób rozpoznajesz impuls z tarczy?
    >
    > Chyba w najprostszy z możliwych sposobów. Starszą wersję kodu znajdziesz
    > tutaj:

    Chodzi mi o to, w którym miejscu. Mam wrażenie, że nie robisz tego
    w przerwaniu, tylko w głównej pętli, między innymi funkcjami, które
    mogą być blokujące...

    --
    Gof
    http://www.chmurka.net/

strony : 1 . [ 2 ] . 3


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: