Obs?uga transmisji fax

Sep 20, 2006 0 Replies

Witam. Mam urządzenie składające się z procesora (ATmega) oraz dwóch modemów: jeden to fax-modem analogowy podłączony do lini abonenckiej, drugi to moduł GSM z obsługą fax. Zadaniem procesora jest przesłanie faxu odebranego za pomocą modemu analogowego na inny fax za pomocą modułu GSM. Obydwa modemy mogą pracować w klasie 2 (i tak też je ustawiam). Niestety nie moge zbuforować faxu, tzn. odebrać w całości fax przez modem analogowy, a następnie przesłać go przez moduł GSM. Więc musze to zrobić "on-line". I tu pojawia się dla mnie problem. Po uprzednim skonfigurowaniu modemu analogowego, odbieram przychodzące połączenie (ATA), w odpowiedzi dostaje łańcuch identyfikacyjny faxu dzwoniącego, oraz parametry faxu (jego rozdzielczość +FDCS .... ). Następnie musze zgłosić gotowość odbioru danych : AT+FDR, jeśli tego nie zrobie w ciągu kilku sekund fax dzwoniący rozłączy się. Po wydaniu tej komendy fax dzwoniący przesyła dane jednak nie dostaje ich od razu, ponieważ modem buforuje te dane i dopiero po odebraniu całej strony "wypluwa" dane przez port szeregowy. Po odebraniu strony ponownie wydaje AT+FDR i otrzymuje kolejną strone lub informacje, że nie ma więcej stron do przesłania. Natomiast po stronie "nadawczej" (moduł GSM) po odpowiednim skonfigurowaniu modułu, ustawiam dane faxu (jego rozdzielczość), wybieram numer docelowy o czekuje na zgłoszenie się faxu wywoływanego. Gdy fax się zgłosi wydaje polecenie AT+FDT informujące, że chce przesłać dane, jeśli nie wydam tego polecenia w ciągu kilku sekund, fax wywoływany rozłączy się, tak samo po wydaniu tego polecenia mam kilka sekund na rozpoczęcie transmisji danych, jeśli to nie nastąpi to tak jak poprzednio fax wywoływany rozłączy się (timeout ?). Pytanie moje jest następujące : jak sterować faxami, aby te dłużej czekały na możliwość przesyłu danych/dane otrzymywane ? Chciał bym doprowadzić do sytuacji, gdzie:



- odbieram połączenie modemem analogowym i otrzymuje informacje o przesyłanym faxie;



- następnie każe mu czekać (w jaki sposób ??) więcej niż te kilka sekund i w tym momencie ustawiam parametry dla modułu GSM , wybieram numer i czekam na zgłoszenie się faxu;



- następnie każe faxowi "wywoływanemu" czekać na dane dłużej niż kilka sekund i wracam do faxu dzwoniącego, zezwalając mu na przesył danych, gdy dane nadejdą, przesyłam je bezpośrednio do modułu GSM i tym samym do faxu "wywoływanego" (oczywiście zakładam, że będzie potrzebne "drobne" buforowanie, ze względu na różnice prędkości przesyłu danych faxowych; analog max 14400; GSM max 9600);



- po przesłaniu strony odbieram potwierdzenie z modułu GSM i przekazuje je do modemu analogowego;



- i tak do przesłania wszystkich stron faxu. Troche to długie i może nie do końca jasne, ale może ktoś pracował nad podobnym problemem ? Może coś przeoczyłem, lub wręcz źle robie ? Za wszelką pomoc z góry dziękuje, Jacek.


Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required