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
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Instrukcja <strong>prog</strong>ramowania w języku <strong>ForthLogic</strong> wersja <strong>P.1.2</strong><br />
nałożenia się dwóch zadań: automatycznej odpowiedzi forth‐systemu na wejściowy SMS oraz wykonania podanego w tym<br />
wejściowym SMSie słowa DIAL, co może mieć nieprzewidywalne skutki dla pracy forth‐systemu. Problem ten można<br />
rozwiązać poprzez definicję nowego słowa, które w swoim składzie będzie zawierać słowo DIAL, a realizacja jego będzie<br />
odłożona w czasie, np. poprzez słowo TIMER! . Minimalny czas zwłoki to 1 sek.<br />
Do podjęcia połączenia głosowego służy słowo ANSWER (odpowiedz), które z bufora wyjściowego sczytuje jeden lub kilka<br />
wierszy tekstu rozdzielonych spacją. Są to numery telefonów w formacie międzynarodowym. Po słowie ANSWER<br />
podajemy słowo, które będzie wykonywane po podjęciu przez sterownik przychodzącego połączenia.<br />
Słowo ANSWER podejmuje inicjowane połączenie głosowe przez wskazane numery telefonów. Wynik wykonania słowa<br />
ANSWER kładzie się na stos jako znaczenie logiczne. Przy czym, logiczne znaczenie PRAWDA oznacza, że inicjowane<br />
połączenie głosowe zostało podjęte przez sterownik, a FAŁSZ, że na chwile wykonywania słowa ANSWER nie było<br />
inicjowane połączenie, właśnie trwa połączenie głosowe lub inicjowanie połączenia głosowego odbyło się z<br />
nieuwzględnionego numeru telefonu. Jeżeli dla słowa ANSWER nie podamy żadnego numer telefonu, to sterownik<br />
podejmie każde inicjowane połączenie niezależnie od numeru telefonu.<br />
Przykład:<br />
> : powitanie . " hello.wav " PLAY HOLD DROP ;<br />
(OK)<br />
> : wait ." +48123456789 +48987654321 ”<br />
ANSWER powitanie<br />
NOT IF 3.0 3 TIMER! wait THEN ;<br />
(OK)<br />
> wait<br />
+48123456789 +48987654321 (OK)<br />
><br />
Słowo powitanie już opisywaliśmy. Następnie definiujemy nowe słowo wait, które wykonuje następujące operacje: do<br />
bufora wyjściowego zapisane zostają numery telefonów potrzebne do wykonania słowa ANSWER. Następnie<br />
wykonywane jest słowo ANSWER (podjęcie inicjowanego połączenia głosowego ze wskazanego numeru telefonu i<br />
wykonanie słowa powitanie). Bezpośrednio po słowie ANSWER będzie dokonana analiza jego wykonania. Jeżeli wynikiem<br />
będzie FAŁSZ, to po 3 sek. znów będzie wykonane sowo wait (uruchamiając ponownie proces oczekiwania na wejściowe<br />
połączenie głosowe), a jeżeli wynikiem będzie PRAWDA, to nic nie będzie wykonane.<br />
Ilość numerów telefonów, które mają być autoryzowane przez sterownik jest ograniczona przez pojemność bufora<br />
wyjściowego. Jednak istnieje sposób, który pozwala zwiększyć liczbę numerów telefonów, na których wezwanie odpowie<br />
sterownik wykonując słowo ANSWER.<br />
Przykład:<br />
> : powitanie ." hello.wav " PLAY HOLD DROP ;<br />
(ОК)<br />
> : wait1 ." +48123456789 " ANSWER powitanie DROP<br />
3.0 1 TIMER! wait1 ;<br />
(ОК)<br />
> : wait2 ." +48987654321 " ANSWER powitanie DROP<br />
3.0 2 TIMER! wait2 ;<br />
(ОК)<br />
> wait1 wait2<br />
+48123456789 +48987654321 (ОК)<br />
><br />
Słowo powitanie już opisywaliśmy w poprzednich przykładach. Następnie definiujemy nowe słowo wait1. Z bufora<br />
wyjściowego zostaje podany numer telefonu. Następnie podajemy słowo ANSWER, które dokona próby podjęcia<br />
przychodzącego połączenia inicjowanego przez telefon o podanym wcześniej numerze. Jeżeli połączenie będzie właśnie z<br />
‐ 47 ‐