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
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 ‐