# # ukazkovy RegExp parser - soubory s priponou .rxp # ######################################################## # TITLE je nazev parseru, ktery se objevi v protokolu TITLE = ProForm ######################################################## # 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 = ^FORM\s+(\S*)\s+(\S*)\s*$ HEAD = ^FORM\s(\S*)\s*$ ######################################################## # HEAD_IX_NAME index "zapamatovaneho vyrazu" tady je vlasne nepouzite protoze v # radce HEAD je jen jeden #HEAD_IX_NAME = 1 HEAD_IX_BATT = 1 BATT1_IF=01 BATT1_THEN=Casove nabijeni BATT2_IF=02 BATT2_THEN=Casove vybijeni BATT3_IF=21 BATT3_THEN=Li_Pb nabijeni BATT4_IF=22 BATT4_THEN=Li_Pb vybijeni BATT5_IF=11 BATT5_THEN=DP nabijeni BATT6_IF=12 BATT6_THEN=DP vybijeni BATT7_IF=31 BATT7_THEN=Formovani nabijeni BATT8_IF=32 BATT8_THEN=Formovani vybijeni BATT9_IF=51 BATT9_THEN=Prodleva pred casovym nabijenim BATT10_IF=52 BATT10_THEN=Prodleva pred casovym vybijenim BATT11_IF=71 BATT11_THEN=Prodleva pred Li_Pb nabijenim BATT12_IF=72 BATT12_THEN=Prodleva pred Li_Pb vybijenim BATT13_IF=61 BATT13_THEN=Prodleva pred DP nabijenim BATT14_IF=62 BATT14_THEN=Prodleva pred DP vybijenim BATT15_IF=81 BATT15_THEN=Prodleva pred formovani nabijeni BATT16_IF=82 BATT16_THEN=Prodleva pred formovani vybijeni BATT17_IF=0 BATT17_THEN=Pripraven BATT18_IF=3 BATT18_THEN=Konec BATT19_IF=42 BATT19_THEN=Selekce vybijeni BATT20_IF=999 BATT20_THEN=Nacteny prubeh ######################################################## # 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 $ #DATA = ^f:(\d\d\d\d\d):(\d\d\d\d\d):(\d\d\d\d\d)[:-]\s*$ #DATA = ^f:(\d\d\d\d\d):(\d\d\d\d\d):(\d\d\d\d\d)[:-]00000\s*$ DATA = ^f:(\d\d\d\d\d):(\d\d\d\d\d):(\d\d\d\d\d)[:-]([\d\d\d\d\d]*)\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 DATA_EXPRESSION_U = u / 1000 DATA_EXPRESSION_I = i / 1000 DATA_EXPRESSION_R = r / 10 ###################################################### # formaty konce bloku a sekce # # jelikoz tam nejsou zadne ridici znaky (^$), hleda se vyskyt # techto slov kdekoliv v radce #TIMEOUT=5 ENDBLOCK=^\n$ ENDSESSION=^es$