E - Avtomatika
E - Avtomatika
E - Avtomatika
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
3 = sprejeto je bilo predvideno št. znakov,<br />
4 = čas sprejema je potekel.<br />
Analiza sporočila (Parse)<br />
Po sprejemu sporočila ga je potrebno preveriti, če sta format<br />
in vsebina veljavna in vsebino spremeniti v spremenljivke v<br />
krmilniku. Če je format točno določen, je to dokaj enostavno.<br />
Vendar je bolje napisati nekoliko zmogljivejšo subrutino, ki bi<br />
preprečevala, da se celo sporočilo zavrne zaradi enega slučajno<br />
dodanega presledka ali kaj podobnega.<br />
Funkcije, ki služijo analizi sporočila, so nalednje:<br />
rx_bufrd(position:int): vrne vrednost v razponu 0 - 255 za<br />
določeno mesto v sprejemnem bufferju.<br />
rx_strcmp(position:int, str:string): postane true, če je določeno<br />
zaporedje znakov enako tistemu v sprejemnem bufferju.<br />
rx_strpos(position:int, str:string): vrne išče določeno zaporedje<br />
znakov, začenši z dane pozicije v bufferju; če ga najde,<br />
vrne pozicijo prvega znaka v bufferju, sicer -1.<br />
rx_strtoi(position:int): vrne integer vrednost števila, začenši<br />
z dane pozicije; če je ta znak ali vsak naslednji presledek,<br />
nadaljuje, dokler ne najde prvega števila. Zaključi, ko najde<br />
prvi znak, ki ni število.<br />
rx_strtol(position:int): enako kot zgoraj, vendar vrne long<br />
vrednost.<br />
rx_strtor(position:int): enako kot zgoraj, vendar vrne real<br />
vrednost.<br />
Še kratek primerček analize sporočila:<br />
if rx_strpos(0,'OPEN')-1 then<br />
main_valve=1;<br />
end_if;<br />
if rx_strpos(0,'CLOSE'-1 then<br />
main_valve=0;<br />
end_if;<br />
position=rx_strpos(0, 'TEMP=');<br />
if position-1 then<br />
set_point=rx_strtoi(position+5);<br />
end_if<br />
position=rx_strpos(0,)CYCLE?);<br />
if position-1 then<br />
cycle_timer.pt=rx_strtol(position+6);<br />
end_if;<br />
A<br />
Nadaljevanje prihodnjič!<br />
30 28/2002<br />
AVTOMATIKA