Instytut telekomunikacji i akustyki
Projekt usługi w języku SDL
Temat : Funkcja „Nie przeszkadzać”
Autor: Prowadzący:
Dawid Sztachera mgr inż. Bogdan Miazga
Nr 82342
Wprowadzenie
Usługa, dla której zaprojektowałem algorytm dla języka SDL polega na umożliwieniu Abonentowi I zablokowania przychodzących połączeń od innych abonentów.
Ażeby Abonent II (przeszkadzający) nie wiedział, że Abonent I ma włączoną funkcję „Nie przeszkadzać” i nie wiedział, że w mu akurat „przeszkadza”, będzie on słyszał w słuchawce sygnał zajętości zamiast informacji o włączonej funkcji.
Kiedy Abonent I zechce „aby mu nie przeszkadzano”, w celu uruchomienia funkcji „Nie przeszkadzać” musi wybrać numer o wartości równej zmiennej `nie_przesz'.
Zmiennej `nie_przesz' możemy przypisać dowolną liczbę, która jednak nie jest numerem do innego abonenta lub usługi bądź nie zawiera w sobie takiego numeru licząc od pierwszej cyfry.
Program uwzględnia możliwość, że Abonent II może również mieć włączoną funkcję „Nie przeszkadzać”
Usługa jest bezpłatna.
Tabela stanów
Numer stanu |
Nazwa stanu |
0 |
Abonent wolny |
1 |
Zgłoszenie i odbiór cyfr |
2 |
Zajętość |
3 |
Blokada |
4 |
Wybieranie |
5 |
Wywołanie u abonenta II |
6 |
Sygnał specjalny 3 - usługa niedostępna |
7 |
Sygnał specjalny 2 - usługa włączona |
8 |
Sygnał specjalny 1 - usługa wyłączona |
9 |
Wywołanie u abonenta I |
10 |
Rozmowa |
Tabela czasów
Numer czasu |
Nazwa stanu |
t1 |
Czas oczekiwania na 1 cyfrę |
t2 |
Czas stanu zajętości abonenta |
t3 |
Czas trwania dowolnego komunikatu |
t4 |
Czas wywołania abonenta (dzwonienia) |
t5 |
Czas wywoływania abonenta |
t6 |
Sygnał specjalny 3 - usługa niedostępna |
t7 |
czas stanu zajętości abonenta |
t8 |
czas oczekiwania na kolejną cyfrę |
Krótki opis programu
Na stronie 1 - abonent I jest wolny i chce skorzystać z telefonu. Po podniesieniu słuchawki rozpatrujemy trzy możliwe posunięcia, jakie może om wykonać : wykręcić numer, odłożyć słuchawkę bądź nie robić nic
Na stronie 2 - abonent I decyduje się wykręcić numer. Każdorazowo po wybraniu kolejnej cyfry może podążyć jedną z trzech wyżej opisanych dróg. Kiedy wybierze numer, system sprawdzi czy jest to numer usługi „Nie przeszkadzać” porównując zmienną `numer' określającą wybrany numer ze zmienną `nie_przesz'. Jeżeli nie, to system sprawdzi, czy wybrany numer jest numerem istniejącego abonenta, następnie czy jest on wolny i wreszcie czy nie ma on włączonej usługi „Nie przeszkadzać”.
Na stronie 3 - abonent I zdecydował się skorzystać z usługi. Zmienna x opisuje stan włączenia bądź wyłączenia usługi odpowiednio przyjmując wartość 1 bądź 0. Jeżeli usługa przed wybraniem numeru była włączona, to poprzez wybranie numeru usługi, abonent I ją wyłączy i otrzyma komunikat 2 „Usługa wyłączona”. Jeżeli zechce uaktywnić usługę, system sprawdzi, czy ma do niej prawo. Jeżeli nie, otrzyma komunikat 3 „Usługa niedostępna”
Na stronie 4 - w górnej części mamy dokończenie strony 3, gdzie Abonent I ma prawo do skorzystania z usługi i następuje jej włączenie po czym otrzymuje on komunikat 1 „Usługa włączona”. W dolnej części mamy dokończenie ze strony 2 gdzie rozpatrujemy znane 3 możliwe posunięcia Abonenta I po wybraniu Abonenta 2
Na stronie 5 - jest opis rozmowy w której dzwoniącym jest Abonent I
Na stronie 6 - do Abonenta I dzwoni Abonent II