# # ukazkovy RegExp parser - soubory s priponou .rxp # ######################################################## # TITLE je nazev parseru, ktery se objevi v protokolu TITLE = Hibox ######################################################## # HEAD je format uvodni radky # # radek musi zacinat slovem "michal" # ^ vynucuje ten zacatek, kdyby tam nebyl bude se "michal" hledat kdekoliv v radku # # za slovem "michal" musi nasledovat bily znak (\s) opakovany jednou nebo vickrat (+) # # za libovolne dlohou mezeru tedy nasleduje libovolne dlouha serie (*) ne-bilych znaku (\S) # # jelikoz je \S* v zavorce, to slovo co se v radce najde se "zapamatuje" a pak se pouzije # jako nazev bloku. # # pak uz musi nasledovat bile misto \s* (* ale znamena i 0-krat tj ze tam to bile misto byt nemusi) # # a pak uz musi byt konec radku ($) #HEAD = ^xdx\s+(\S*)\s*$ HEAD = xdx\s+(\S*)\s*$ ######################################################## # HEAD_IX_NAME index "zapamatovaneho vyrazu" tady je vlasne nepouzite protoze v # radce HEAD je jen jeden HEAD_IX_NAME = 1 ######################################################## # DATA - ted to prijde # # zacatek radku ^ # bile misto nebo taky nic diky te hvezdicce \s* # "zapamatovany" vyraz v zavorce ([0-9.]+) znamena 1 nebo vice opakovani znaku 0-9 nebo tecky # pak je neprazdne bile misto \s+ # pak opet "zapamatovany" cislo # pak je neprazdne bile misto \s+ # pak opet "zapamatovany" cislo # bile misto nebo taky nic diky te hvezdicce \s* # konec radku $ #U+I reading DATA = ^\s*([0-9.]+)\s+([0-9.]+)\s+([0-9.]+)\s+([0-9.]+)\s*$ #I+RPM reading #DATA = ^\s*([0-9.]+)\s+[0-9.]+\s+([0-9.]+)\s+([0-9.]+)\s*$ #U+RPM reading #DATA = ^\s*([0-9.]+)\s+([0-9.]+)\s+[0-9.]+\s+([0-9.]+)\s*$ ######################################################## # ted nasleduji indexy "zapamatovanych" vyrazu - musime # zjistit co to vlastne byly za veliciny T,U,I DATA_IX_T = 1 DATA_IX_U = 2 DATA_IX_I = 3 DATA_IX_R = 4 ####################################################### # zjistene veliciny muzeme i prepocitat nejakym vzorcem # pokud tohle chybi, pouzijou se proste naskenovane hodnoty # jako T [sec], U [V] a I [A] DATA_EXPRESSION_T = t/10 #U+I reading DATA_EXPRESSION_U = u/100 #I reading DATA_EXPRESSION_I = i/10 #RPM reading DATA_EXPRESSION_R = r*60 ###################################################### # formaty konce bloku a sekce # # jelikoz tam nejsou zadne ridici znaky (^$), hleda se vyskyt # techto slov kdekoliv v radce ENDBLOCK = endblock ENDSESSION = endsession