16.06.2015 Views

ForthLogic inst prog H P.1.2 120113.pdf - F&F

ForthLogic inst prog H P.1.2 120113.pdf - F&F

ForthLogic inst prog H P.1.2 120113.pdf - F&F

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Instrukcja <strong>prog</strong>ramowania w języku <strong>ForthLogic</strong> wersja <strong>P.1.2</strong><br />

sygnał, który odpowiada temu przyciskowi.<br />

Za słowem WAITKEY podajemy trzy słowa. Podczas połączenia głosowego naciśniecie dowolnego przycisku telefonu<br />

komórkowego spowoduje wykonanie pierwszego słowa. W przypadku, kiedy nie zostanie podany żaden sygnał w ciągu 60<br />

sek., zostanie wykonane drugie słowo. W przypadku, kiedy połączenie zostanie przerwane przez użytkownika zostanie<br />

wykonane trzecie słowo.<br />

Wynik wykonania słowa WAITKEY kładzie się na stos jako znaczenie logiczne. Przy czym znaczenie logicznie PRAWDA<br />

oznacza, że proces rejestrowania podanych słów (typu callback) zakończył się i są one gotowe do ewentualnego<br />

wykonania, a FAŁSZ, że pojawiły się problemy (np.: w danej chwili nie ma żadnego przychodzącego połączenia<br />

głosowego). Podamy przykład prostego menu głosowego składającego się z jednego punktu:<br />

> : analiza 1 = IF ." true.wav " PLAY HOLD<br />

ELSE ." by.wav " PLAY HOLD THEN DROP ;<br />

(OK)<br />

> : wait WAITKEY analiza HOLD STOP DROP<br />

2 TONE ;<br />

(OK)<br />

> : powitanie ." hello.wav " PLAY wait DROP ;<br />

(OK)<br />

> : menu_glosowe<br />

." +48123456789 " DIAL powitanie STOP DROP ;<br />

(OK)<br />

> menu_glosowe<br />

+48123456789 (OK)<br />

><br />

Zdefiniowaliśmy nowe słowo analiza, które będzie porównywało kod ostatniego otrzymanego sygnału DTMF z 1. Jeżeli<br />

wynikiem porównania będzie logiczne znaczenie PRAWDA, to zostanie odtworzony plik "true.wav". W przeciwnym<br />

wypadku zostanie odtworzony plik "by.wav". W każdym przypadku, zostanie również wykonane słowo DROP, żeby<br />

wykasować ze stosu wynik wykonania słów PLAY, ponieważ go nie analizujemy. Następnie definiujemy nowe słowo wait,<br />

które ustala wymaganą reakcję forth‐systemu na sygnały DTMF: przy naciśnięciu któregokolwiek przycisku zostanie<br />

wykonane słowo analiza. Poza tym, przy wykonaniu słowa wait (po wysłuchaniu pliku dźwiękowego hallo) użytkownik<br />

usłyszy w telefonie sygnał, który informuje go o gotowości przyjęcia przez sterownik sygnału DTMF. W sytuacji, kiedy<br />

minie ustawiony czas reakcji 60 sekund, forth‐system zakończy połączenie, a w sytuacji, kiedy połączenie zostanie<br />

przerwane przez użytkownika, nie będzie żadnej reakcji. Następnie zdefiniowaliśmy nowe słowo powitanie, które<br />

odtwarza plik "hello.wav", a następnie wykonuje słowo wait. Ostatecznie zdefiniowaliśmy główne słowo menu_glosowe,<br />

które wykonuje połączenie głosowe na wskazany numer telefonu i wykonuje słowo powitanie. Wykonanie głównego<br />

słowa w następnej linii rozpoczyna proces inicjacji połączenia i odtworzenia menu głosowego .<br />

Za słowem WAITPW podajemy trzy słowa. Podczas połączenia głosowego podanie właściwego hasła spowoduje<br />

wykonanie pierwszego słowa (każdą kolejną cyfrę należy wprowadzać wyłącznie po sygnale [bip]). Wprowadzanie hasła<br />

należy zakończyć symbolem # (przykład: „Podaj hasło”[bip] 1[bip] 2[bip] 3[bip] 4[bip] # [1234]). W przypadku<br />

załączenia funkcji NODTMFCOMFIRM hasło wprowadzamy ciągiem, bez oczekiwania na sygnały potwierdzające.<br />

W przypadku, kiedy nie zostanie podany żaden sygnał w ciągu 60 sek. lub podane hasło jest niepoprawne, zostanie<br />

wykonane drugie słowo. W przypadku, kiedy połączenie zostanie przerwane przez użytkownika zostanie wykonane trzecie<br />

słowo.<br />

Wynik wykonania słowa WAITPW kładzie się na stos jako znaczenie logiczne. Przy czym znaczenie logicznie PRAWDA<br />

oznacza, że proces rejestrowania podanych słów (typu callback) zakończył się i są one gotowe do ewentualnego<br />

wykonania, a FAŁSZ, że zaistniał problem (np.: w danej chwili nie ma żadnego przychodzącego połączenia głosowego).<br />

Zmienimy poprzedni przykład menu głosowego, wprowadzając hasło (zmiany zaznaczono pomarańczowym kolorem):<br />

> : analiza 1 = IF ." true.wav " PLAY HOLD<br />

ELSE ." by.wav " PLAY HOLD THEN DROP ;<br />

(OK)<br />

> : czekac WAITKEY analiza HOLD STOP DROP<br />

2 TONE ;<br />

‐ 49 ‐

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!