-------------------------------------------------------------------------------
			KONFIGURACJA HARDWARE
-------------------------------------------------------------------------------
aplikacja:	edit_trig
source: 	edit_TRIG.c

przykladowe uzycie:
			edit_trig TRIGG0001

UWAGA - uzycie edit_trig moze byc tylko kiedy CONTROLLER jest OFF !!!!!!

-------------------------------------------------------------------------------
w katalogu gdzie znajduje sie aplikacja edit_trig musi znajdowac sie skrypt
protoypu konfiguracji systemu (dotyczy tylko sprzetu)

skrypt ma nastepujaca strukture:
-------------------------------------------------------------------------------
TRIGG0001 (nzawa pliku)
-------------------------------------------------------------------------------
#Hardware System Config (prototyp)
TRIGG0001&<TRIGGxxxx&TRIGzzzz& - max. do dwoch extra redundanych trigerow>
#
#nalezy podac trigera(ewentualnie po niej "&" oraz nazwe trigera redundancji)
#UWAGA max. liczba dopuszczalnych redundantnych triggerow =3 tzn. TRIGG0001&TRIGGxxxxx&TRIGGzzzzz&
#druga linia zawiera zainstalowanych nodow
#po slowie NODE dodajemy nazwe node
#po slowie BUFF dodajemy nazwe zainstalowanego Bufora
ARCHI.config
NODE&N001&
NODE&N002&
NODE&N003&
# tu dopisujemy kolejne wezly
BUFF&B001&
#BUF&B002& 
#tu dopisujemy kolejne bufory (zazwyczaj max dwa bufory)
END
#
#zpisuje adresy zewnetrzne ip do zainstalowanych buforow
BUFFER.config
#nazwa bufora i przypisany adres ip zewnetrzny
B001&10.0.0.10
END
#
#pomoc sasiedzka (po & lista nodow swiadczacych pomoc sasiedzka)
NODES.nhelp
#tutaj przypasane I-PS do weslow pomocy sasiedzkiej
N001&N002&N003
N002&N001&N003
N003&N001&N002
END
#liczba dopuszczalnych kopii pliku przy zapisie do zasobnika
#ograniczenie dotyczy tylko pojedynczefo TRIGGxxxx
COPY=003
END
#czas on/off poszczegolnych elemtnow systemu (wartosci wpisac bez spacji)
#dane nalezy podac w sekundach (default on=120s, off=30s, rate=70MB/s)
#paramery default sa podawane przez system jesli brak jest ponizszych 
#danych lub zapis jest bledny.
time_trig_on=180;
time_trig_off=20;
time_buff_on=180
time_buff_off=20;
time_node_on=180;
time_node_off=20;
rate_sustain=80;
END


-------------------------------------------------------------------------------
-------------------------------------------------------------------------------

skrypt konfiguracyjny jest przetwrzany za pomoca edit_trig
pliki konfiguracji sprzetu znajduja sie w katalogu /home/SYSQS/TRIGGxxxx/
gdzie xxxx: 0001, 0002 ...

katalog zawieraz nastepujace pliki: SYSTEM.config, BUFFER.freespace,
NODES.freespace,TRIGGxxxx.onoff (np. TRIGG0001)
-------------------------------------------------------------------------------
			SYSTEM.config 
		skrypt po usunieciu linii z # na poczatku 
(UWAGA! linia nie moze miec wiecej niz 80 znakow opisu oraz 
nie mozna wstawiac # jako komentarz w tej samej linii co instrukcja)
Struktura pliku SYSTEM.config:

TRIGG0001&TRIGG0002& (TRIGG0002 jesli byl zainstalowany redundatny CONTROLLER)
ARCHI.config
NODE&N001&
NODE&N002&
NODE&N003&
BUFF&B001&
END
BUFFER.config
B001&10.0.0.10
END
NODES.nhelp
N001&N002&N003
N002&N001&N003
N003&N001&N002
END
COPY=003
END
time_trig_on=180;
time_trig_off=20;
time_buff_on=180
time_buff_off=20;
time_node_on=180;
time_node_off=20;
rate_sustain=70;
END
#adres IP servera SERVER-T (TRIGGER)
TSERVER_IP=10.0.0.10
END
#tu nalezy wpisac adres IP CONTROLLERa (zawsze na koncu)
#brak wpisu spowoduje podstaienie w apliakcjach defaul IP=10.0.0.10
SERVER-C_IP=10.0.0.10
END
-------------------------------------------------------------------------------
			TRIGG0001.onoff 
 		tablica on/off poszczegolnych elemtnow 

kolumna |   0   |   1   |  2   |  3   | ... | 9   | 10  | 
|--------------------------------------------------------
linia1  | TRIGG |  BUFF1|  BUF2|
linia2  | node1 |   D11 |  D12 |  ....|.....| D24 |  D25|
linia2  | node2 |   D11 |  D12 |  ....|.....| D24 |  D25| 
                ........
liniaN  | nodeN |   D11 |  D12 |  ....|.... | D24 |  D25| 
 
TRIGG - 0,1,2
BUF   - 0,1,2
node  - 0,1,2,3,4
Dxx   - 0,1,2

UWAGA "-1" - bledna dana np. nazwa lub przekroczenie zakresu niezgodne z SYSTEM.config
(-1 moze wystapic tylko przy testowaniu oprogramowania jesli zawiera ono blad
warosc ta nie moze pojawic sie przy poprawnym dzialaniu oprogrmowania)

0 - OFF
1 - ON
2 - excluded (IPS nie mozna wlaczyc)
3 - pomoc sasiedzka 1-szego sasiada
4 - pomoc sasiedzka 2-go sasiada
5 - dysk zarerwowany dla regeneracji

przykladowo plik (tablica stanu on/off) w SKZ
 /home/SYSQS/TRIGxxxx/TRIGGxxxx.onoff wyglada nastepujaca:
przykladowo plik po zamontowaniu wyglada nastepujaco dla konfiguracji
1xBUFF, 3xNODES, 1xCONTROLLER
(wszytkie sa OFF)
00
00000000005
00000000005
00000000005
(wszystko jest off, dysk zostawiony dla regeneracji ma stale wpisane 5 
  i tylko polecenie regeneracji moze zmieniac stan tego dysku 0,1,2)

Przykladowo
dla systemu 2-bufory, 3-nodes, 1-Controller(TRIGGxxxx)
tablica /home/SYSQS/TRIGxxxx/TRIGGxxxx.onoff wyglada nastepujaca:
000
00000000005
00000000005
00000000005
(wszystko wylaczone)


(UWAGA! edit_trig musi byc uzyty tylko kiedy zasobnik jest w stanie OFF)
--------------------------------------------------------------------------------
			NODES.freespace
przechowuje stan zajetosci dyskow (pokazuje wolna przestrzen)

Po kazdej operacji WRITE po & dopisana zostanie rozmiar wolnej przestrzeni 
na kazdym uzytym dysku. Brak dopisanego rozmiaru zonacza, ze caly dysk nie 
zostal jesze zapisany.Struktura pliku wyglada nastepujaco dla konfiguracji
3xNODES po 10 dyskow :
NODE&N001&FREE
D11&80000000
D12&80000000
D13&80000000
D14&80000000
D15&80000000
D21&80000000
D22&80000000
D23&80000000
D24&80000000
D25&80000000
NODE&N002&FREE
D11&80000000
D12&80000000
D13&80000000
D14&80000000
D15&80000000
D21&80000000
D22&80000000
D23&80000000
D24&80000000
D25&80000000
NODE&N003&FREE
D11&80000000
D12&80000000
D13&80000000
D14&80000000
D15&80000000
D21&80000000
D22&80000000
D23&80000000
D24&80000000
D25&80000000

-------------------------------------------------------------------------------
			BUFFER.freespace
      przechowuje stan zajetosci bufora po operacjach READ/WRITE

struktura pliku dla konfiguracji z jednym buforem:
BUFF&B001&R&<rozmiar wolnej przestrzeni bufR>
BUFF&B001&W&<rozmiar wolnej przestrzeni bufW>

dla 2xBUFF
BUFF&B001&R&<rozmiar wolnej przestrzeni bufR>
BUFF&B001&W&<rozmiar wolnej przestrzeni bufW>
-------------------------------------------------------------------------------
















