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

4.11.4 Numery telefonów<br />

W poprzednich przykładach wszystkie numery telefonów były statycznie określone za pomocą wierszy. Dlatego, by móc<br />

zmieniać numery telefonów bez potrzeby przebudowy całego zadania, istnieją specjalne zmienne wierszowe do<br />

utrzymania numerów telefonów użytkowników. Służą do tego słowa: USER (użytkownik) pozwalające wykorzystywać<br />

telefoniczne numery użytkowników przy tworzeniu zadania, oraz słowo USERPHONE (telefon użytkownika) pozwalające<br />

określać i zmieniać telefoniczne numery użytkowników ‐ czyli nadawać nowe znaczenia tym specjalnym zmiennym. Liczbę<br />

zmiennych dla danej wersji sterownika określa parametr PHONE_MAX.<br />

Słowo USERPHONE zdejmuje ze stosu górne znaczenie, które może przyjmować wartości z zakresu od 1 do PHONE_MAX<br />

jako porządkowy numer telefonu użytkownika. Następnie z bufora wyjściowego sczytywany jest wiersz – numer telefonu<br />

w formacie międzynarodowym, który zapamiętany jest jako specjalna zmienna wierszowa z porządkowym numerem.<br />

Słowo USER zdejmuje ze stosu górne znaczenie, które może przyjmować wartości z zakresu od 1 do PHONE_MAX jako<br />

numer zmiennej z porządkowanym numerem telefonu użytkownika. Następnie w buforze wyjściowym i na terminalu<br />

drukuje ten numer telefonu.<br />

Pierwsze sześć zmiennych (numery 1÷6) zarezerwowane jest dla numerów telefonów, które uczestniczą w<br />

polityce bezpieczeństwa forth‐systemu. Są to pozycje, których przypisane numery telefonów są autoryzowane<br />

przez sterownik. Przy odpowiednich ustawieniach parametrów komunikatora tylko z tych telefonów można<br />

będzie dokonywać zdalnego sterowania poprzez menu głosowe i SMSy. W sterowniku typu H04 pierwsze sześć<br />

zmiennych ustala się w menu konfiguracyjnym. W sterowniku H02 za pomocą słowa CONTROL i odpowiednich<br />

stałych systemowych.<br />

Przykład aplikacji słów USER i USERPHONE:<br />

> ." +48123456789 " 1 USERPHONE<br />

+48123456789 (OK)<br />

> 1 USER<br />

+48123456789 (OK)<br />

><br />

W sterowniku typu H04 numer ten pojawi się w menu konfiguracyjnym w bloku Użytkownicy w submenu TELEFONY… w<br />

punkcie NR TEL 1>, jako ustawiony numer użytkownika nr 1.<br />

Słowo LAST zachowuje w buforze wyjściowym numer telefonu abonenta, który jako ostatni dokonał połączenia<br />

głosowego ze sterownikiem, albo jako ostatni nadesłał SMS do sterownika.<br />

Przytoczymy przykład zastosowania ostatnich dwóch słów:<br />

> 1 USER LAST<br />

+48123456789 +42987654321 (OK)<br />

><br />

Pierwszy numer telefonu został określony w poprzednim przykładzie. Drugi wydrukowany numer telefonu to numer<br />

telefonu, z jakiego dokonano ostatniego połączenia, jeżeli takie było.<br />

4.11.5 SMS<br />

Praca sterownika z telefonem za pośrednictwem SMSów określana jest trybem dialogowym zdalnym. W trybie tym ekran<br />

telefonu spełnia podobne funkcje jak okno terminalu na monitorze komputera.<br />

Wyjściowe SMSy to jeden ze sposobów powiadamiania użytkownika o zdarzeniach i parametrach. Wejściowe SMSy to<br />

słowa języka <strong>ForthLogic</strong> ‐ standardowe i zdefiniowane oraz wartości w postaci liczb i tekstów. Wszystkie wejściowe SMSy<br />

trafiają bezpośrednio do interpretatora tekstu forth‐systemu. Tam są odpowiednio interpretowane: słowa są<br />

wykonywane a wartości trafiają na szczyt odpowiedniego stosu. Długość wejściowego i wyjściowego SMSa nie może<br />

przekraczać 160 znaków wraz ze spacjami. W przypadku przekroczenia dopuszczalnej liczby znaków system<br />

‐ 51 ‐

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

Saved successfully!

Ooh no, something went wrong!