Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:miw:miw08_prolog_javasockets [2008/06/13 14:02] miw |
pl:miw:miw08_prolog_javasockets [2019/06/27 15:50] (aktualna) |
====== Opis ====== | ====== Opis ====== |
| __**Projekt zakończony**__ |
| |
Łukasz Łysik <llysik@gmail.com> | Łukasz Łysik <llysik@gmail.com> |
| |
{{:pl:miw:prolog_javasockets_v.2.jpg|:pl:miw:prolog_javasockets_v.2.jpg}} | {{:pl:miw:prolog_javasockets_v.2.jpg|:pl:miw:prolog_javasockets_v.2.jpg}} |
| |
| ====== Sprawozdanie ====== |
| |
| Prosze o maila, jeśli coś trzeba jeszcze dodać. |
| |
| ===== Cele osiągnięte w projekcie (+ fixme) ===== |
| |
| ==== Serwer (Prolog) ==== |
| |
| - Zaimplementowanie serwera oczekującego na połączenia (dodanie pliku //varda_server.pl//). |
| - FIXME Serwer wykonuje czynności na modelu na podstawie poleceń otrzymanych z socketów. Narazie realizowane jest to przez zagnieżdzone if. Można to przerobić na ładniejszy kod. |
| - FIXME Poprawić działanie serwera, gdy klient się rozłączy. |
| - Dodanie funkcji //ard_split_2//, która różni się tym, od //ard_split//, że nie trzeba podawać drugiego argumentu (czyli tego, na co splitujemy). Jest to obliczane automatycznie na podstawie podanych połączeń ( 3 argument funkcji //ard_split//). |
| - FIXME Zweryfikować pod względem poprawności i wydajności. |
| - Dodanie odczytu informacji z pliku //svg//: nazw atrybutów i współrzędnych (dodanie pliku //varda_pipesys.pl//. |
| - Zmiany w pozostałych plikach projektu //varda// nie były dokonywane (poza dodaniem nagłówków do pliku //varda.pl//). |
| |
| ==== GUI (Java) ==== |
| |
| - Stworzenie GUI do edycji grafu. |
| - FIXME Rozpoczynanie nowego grafu (dodawanie pierwszego elementu). |
| - Możliwość finalizowania i splitowania elementów. |
| - Możliwość przemieszczania elementów (metodą drag and drop - feature jGrapha) |
====== Sprawozdanie (jeszcze niepełne)====== | - FIXME Serializacja i deserializacja obiektu widoku (pierwsza próba nieudana, ale można spróbować jeszcze raz). |
| |
===== Uruchamianie projektu ===== | ===== Uruchamianie projektu ===== |
===== Protokół komunikacyjny ===== | ===== Protokół komunikacyjny ===== |
Wymiana informacji odbywa się na zasadzie komunikacji synchronicznej. Serwer prologowy jest odpytywany przez cześć javową. W poniższej tabeli przedstawiony jest protokół komunikacji. | Wymiana informacji odbywa się na zasadzie komunikacji synchronicznej. Serwer prologowy jest odpytywany przez cześć javową. W poniższej tabeli przedstawiony jest protokół komunikacji. |
| |
FIXME Ujednolicenie i dopracowanie protokołu | FIXME Ujednolicenie i dopracowanie protokołu |
| |
^ Nazwa ^ Zapytanie (od strony javy) ^ Odpowiedź (od prologa) ^ | ^ Nazwa ^ Zapytanie (od strony javy) ^ Odpowiedź (od prologa) ^ |
| Pobieranie atrybutów finalizowalnych | <code>list_finalizeables.</code> | <code>[[el1],[el2],[el3,el4]]</code> | | | Pobieranie atrybutów finalizowalnych FIXME Poprawić | <code>list_finalizeables.</code> | <code>[[el1],[el2],[el3]]</code> | |
| | Pobieranie atrybutów splitowalnych FIXME Poprawić | <code>list_splitables.</code> | <code>[[el1a,el1b],[el2a,el2b],[el3a,el3b]]</code> | |
| | Pobieranie połączeń (zależności) | <code>list_deps.</code> | <code>[[el1]-[el2],[el2]-[el3],[el3]-[el4,el5]]</code> | |
| | Pobieranie atrybutów z pliku .svg | <code>list_items_from_svg.</code> | <code>el1@el2@el3,el4@</code> | |
| | Pobieranie współrzędnych z pliku .svg | <code>list_coords_from_svg.</code> | <code>12.5,23.4@12.0,34.5@</code> | |
| |
| FIXME Można połączyć ze sobą pobieranie atrybutów i współrzędnych. Są one pobierane z tego samego pliku za pomocą poleceń z konsolowych //cat//, //grep//, //cut//, //tr//. |
| |
| Pobieranie atrybutów: |
| <code>cat therm-model.svg | grep 'class="node"' | cut -d '>' -f3 | cut -d '<' -f1 | tr [:cntrl:] @</code> |
| |
| Pobieranie współrzędnych: |
| <code>cat therm-model.svg | grep -A1 'class="node"' | grep polygon | cut -d '"' -f4 | cut -d " " -f1 | tr [:cntrl:] @</code> |
| |
| n-ty atrybut na liście atrybutów odpowiada n-tej współrzędnej na liście współrzędnych. |
| |
====== Materiały ====== | ====== Materiały ====== |