Styk programowy MERA-MULTIX: Różnice pomiędzy wersjami

Przejdź do nawigacji Przejdź do wyszukiwania
brak opisu edycji
Nie podano opisu zmian
Nie podano opisu zmian
Linia 770: Linia 770:
|-
|-
|}
|}
= Protokoły dla SOM-3 =
Dla systemu SOM-3 przewiduje się 3 protokoły:
* nr 3  czytnik SOM
* nr 4  perforator SOM
* nr 5  monitor SOM
'''Uwaga:''' Zasady podane w części podstawowej niniejszego opisu dla protokołów 0, 1, 2 stosują się odpowiednio do protokołów 3, 4, 5, jeżeli poniżej nie podano inaczej.
== Pole sterujące "dołącz linię" ==
{| class="wikitable"
! Słowo !! Bity !! Znaczenie
|-
| 0 || 4 || wykonaj 'xon/xoff' (dla protokołu 5)
|-
| 0 || 7 || obserwuj zgłoszenie operatora
|-
| 0 || 8-15 || kod zgłoszenia operatora
|-
|}
Pole to występuje dla protokołów nr 3 i 5. Dla protokołu nr 4 polecenie dołącz linię nie korzysta z pola sterującego.
== Pole  sterujące "przesyłaj" ==
Pole zawiera w pierwszej części parametry przekazywane a w drugiej, oznaczonej kolorem - parametry zwracane. W polu tym występuje słowo "sposób zakończenia" o strukturze następującej:
{| class="wikitable"
! rowspan="2" | Bit !! rowspan="2" | Znaczenie !! colspan="3" | Stosuje się do protokołu
|-
! 3 !! 4 !! 5
|-
| 0 || timeout || tak || tak || tak
|-
| 1 || zgłoszenie operatora || tak || nie || tak
|-
| 2 || awaria urządzenia || tak || tak || tak
|-
| 3 || koniec znaków przed znakiem końca nad. || nie || tak || tak
|-
| 4 || błąd parzystości || tak || nie || tak
|-
| 5 || inny błąd transmisji || tak || nie || tak
|-
| 6 || wystąpił CAN || nie || nie || tak
|-
| 7 || wystąpił znak końca wejścia || tak || nie || tak
|-
| 8-15 || znak, który zakończył odbiór lub 255 || tak || nie || tak
|-
|}
=== Protokół nr 3 - czytnik SOM ===
{| class="wikitable"
! Słowo !! Bity || Znaczenie
|-
| rowspan="7" | 0 || 0 || nie  sprawdzaj parzystości
|-
| 1 || odd - parity
|-
| 2 || przekazuj 8 bitów do MERA
|-
| 4 || LF (#0a) jest znakiem  nagłówka
|-
| 5 || DEL (#7f) jest znakiem nagłówka
|-
| 6 || ignoruj spacje poprzedzające znak kończący
|-
| 8-15 || timeout [sek]. 1-127 lub 0.
|-
| rowspan="7" | 1 || 0-1 || nr procedury obróbki tekstu: 0=normalnie,1=bin
|-
| 3 || usuwaj LF (#0a) z tekstu odebranego
|-
| 4 || usuwaj DEL (#7f) z tekstu odebranego
|-
| 5 || odbieraj wg długości bufora MERA
|-
| 6 || BS (#08) jest znakiem nagłówka
|-
| 7 || cofnij wskaźnik bufora gdy BS
|-
| 8-15 || kod znacznika końca wejścia
|-
| 2 || 0-15 || długość bufora odbiorczego MERA [bajty]
|-
| 3 || 0-15 || adres bufora odbiorczego MERA [słowowy]
|-
| rowspan="12" | 4 || 0 || ESC (#1b) jest znakiem nagłówka
|-
| 1 || kończ odbiór gdy ESC
|-
| 2 || NUL (#00) jest znakiem nagłówka
|-
| 3 || kończ odbiór gdy NUL
|-
| 4 || CR (#0d) jest znakiem nagłówka
|-
| 5 || kończ odbiór gdy CR
|-
| 6 || CAN (#18) jest znakiem nagłówka
|-
| 7 || zeruj bufor gdy CAN
|-
| 9 || nr bajtu początkowego w buforze odbiorczym
|-
| 10 || obserwuj znacznik końca wejścia
|-
| 11 || zamię małe litery na duże
|-
| 12-15 || nr bloku bufora odbiorczego
|- style="background-color:#ffffe5;"
| 5 || 0-15 || ilość bajtów odebranych i nieprzekazanych do MERA
|- style="background-color:#ffffe5;"
| 6 || 0-15 || ilość bajtów przekazanych do MERA ostatnim poleceniem ster.
|- style="background-color:#ffffe5;"
| 7 || 0-15 || sposób zakończenia
|-
|}
=== Protokół nr 4 - perforator SOM ===
{| class="wikitable"
! Słowo !! Bity || Znaczenie
|-
| rowspan="4" | 0 || 0 || nie  generuj bitu parzystości
|-
| 1 || odd - parity
|-
| 6-7 || nr procedury obróbki tekstu: 0=normalnie, 1=bin
|-
| 8-15 || timeout [sek]. 1-127 lub 0.
|-
| rowspan="7" | 1 || 0 || nadawaj wg ilości
|-
| 1 || nadawaj do znaku kończącego wyłącznie
|-
| 2 || nadawaj do znaku kończącego włącznie
|-
| 3 || pierwszy znak w buforze jest sterujący
|-
| 4 || poprzedź nadawanie znakami CR, LF (#0d, #0a)
|-
| 5 || poprzedź nadawanie seria nul (rozbiegówka)
|-
| 6-15 || długość rozbiegówki
|-
| 2 || 0-15 || ilość znaków do nadania
|-
| 3 || 0-15 || adres bufora nadawczego MERA [słowowy]
|-
| rowspan="3" | 4 || 0-7 || znak kończący nadawanie
|-
| 9 || nr bajtu początkowego w buforze nadawczym
|-
| 12-15 || nr bloku bufora nadawczego
|- style="background-color:#ffffe5;"
| 5 || 0-15 || ilość bajtów nadanych
|- style="background-color:#ffffe5;"
| 6 || 0-15 || sposób zakończenia
|-
|}
=== Protokół nr 5 - monitor SOM ===
{| class="wikitable"
! Słowo !! Bity || Znaczenie
|-
| rowspan="9" | 0 || 0 || nie sprawdzaj i nie generuj parzystości
|-
| 1 || odd - parity
|-
| 2 || przekazuj 8 bitów do MERA
|-
| 3 || generuj echo
|-
| 4 || LF (#0a) jest znakiem  nagłówka
|-
| 5 || DEL (#7f) jest znakiem nagłówka
|-
| 6 || ignoruj spacje poprzedzające znak kończący
|-
| 7 || wysyłaj tekst zachęty przed odbiorem
|-
| 8-15 || timeout [sek]. 1-127 lub 0.
|-
| rowspan="9" | 1 || 0 || nadawaj wg ilości
|-
| 1 || nadawaj do znaku kończącego wyłącznie
|-
| 2 || nadawaj do znaku kończącego włącznie
|-
| 3 || pierwszy znak w buforze jest sterujący
|-
| 4 || poprzedź nadawanie znakami CR,LF (#0d,#0a)
|-
| 5 || odbieraj wg długości bufora MERA
|-
| 6 || BS (#08) jest znakiem nagłówka
|-
| 7 || cofnij wskaźnik bufora gdy BS
|-
| 8-15 || kod znacznika końca wejścia
|-
| 2-3 || 0-15 || tekst zachęty uzupełniony  nul-ami
|-
| 4 || 0-15 || ilość znaków do nadania
|-
| 5 || 0-15 || adres bufora nadawczego MERA [słowowy]
|-
| rowspan="5" | 6 || 0-7 || znak kończący nadawanie
|-
| 9 || nr bajtu początkowego w buforze nadawczym
|-
| 10 || usuwaj LF (#0a) z tekstu odebranego
|-
| 11 || usuwaj DEL (#7f) z tekstu odebranego
|-
| 12-15 || nr bloku bufora nadawczego
|-
| 7 || 0-15 || długość bufora odbiorczego MERA [bajty]
|-
| 8 || 0-15 || adres bufora odbiorczego MERA [słowowy]
|-
| rowspan="12" | 9 || 0 || ESC (#1b) jest znakiem nagłówka
|-
| 1 || kończ odbiór gdy ESC
|-
| 2 || NUL (#00) jest znakiem nagłówka
|-
| 3 || kończ odbiór gdy NUL
|-
| 4 || CR (#0d) jest znakiem nagłówka
|-
| 5 || kończ odbiór gdy CR
|-
| 6 || CAN (#18) jest znakiem nagłówka
|-
| 7 || zeruj bufor gdy CAN
|-
| 9 || nr bajtu początkowego w buforze odbiorczym
|-
| 10 || obserwuj znacznik końca wejścia
|-
| 11 || zamię małe litery odebrane na duże
|-
| 12-15 || nr bloku bufora odbiorczego
|- style="background-color:#ffffe5;"
| 10 || 0-15 || ilość bajtów nadanych
|- style="background-color:#ffffe5;"
| 11 || 0-15 || ilość bajtów odebranych i nieprzekazanych do MERA
|- style="background-color:#ffffe5;"
| 12 || 0-15 || ilość bajtów przekazanych do MERA ostatnim poleceniem ster.
|- style="background-color:#ffffe5;"
| 13 || 0-15 || sposób zakończenia
|-
|}
== Obróbka sekwencji odbieranej ==
Sekwencja odbierana składa się z:
* nagłówka
* tekstu
Nagłówek jest usuwany z bufora odbiorczego. Nagłówek zostaje zakończony przez dowolny znak,który nie jest zadeklarowany jako znak nagłówka. Na znakach należących do tekstu mogą być - o ile są ustawione odpowiednie bity w polu sterującym - wykonywane operacje:
* zamiana małych liter na duże
* usuwanie znaków LF, DEL
* usuwanie wszystkich odebranych znaków przed znakiem can; Ponadto dla protokołu nr 5: znak CAN nie generuje echa oraz powoduje zakończenie transmisji z przerwaniem "ITRER"
* usuwanie ostatniego znaku przed znakiem BS
* kończenie odbioru po znakach ESC, NUL, CR.
== Znaki sterujące dla nadawania ==
* + - tekst zostaje poprzedzony znakiem CR (#0d)
* 0 - tekst zostaje poprzedzony znakami CR, LF, LF (#0d, #0a, #0a)
* 1 - tekst zostaje poprzedzony znakami CR,FF (#0d, #0c)
* $ - tekst zostaje wyprowadzony bez poprzedzania dodatkowymi znakami
* Kaidy inny - tekst zostaje poprzedzony  znakami CR, LF (#0d, #0a)
Jeżeli po znaku sterującym występuje znak STX (#02) to zostaje on usunięty.

Menu nawigacyjne