<?xml version='1.0' encoding='UTF-8'?> <macro name="egen_brille" version="1.0"> <resume language="lua"> out = '' if ( getValue('brillemaaler.mangler.odxt') == '' ) then out = out .. 'Egen brille, o.dxt: ' .. getValue('brillemaaler.sf.odxt') .. ' sf' if ( getValue('brillemaaler.cyl.odxt') ~= '' ) then out = out .. ', ' .. getValue('brillemaaler.cyl.odxt') .. ' cyl' end if ( getValue('brillemaaler.grader.odxt') ~= '' ) then out = out .. ', ' .. getValue('brillemaaler.grader.odxt') .. ' grader\n' else out = out .. '\n' end end if ( getValue('brillemaaler.mangler.osin') == '' ) then out = out .. 'Egen brille, o.sin: ' .. getValue('brillemaaler.sf.osin') .. ' sf' if ( getValue('brillemaaler.cyl.osin') ~= '' ) then out = out .. ', ' .. getValue('brillemaaler.cyl.osin') .. ' cyl' end if ( getValue('brillemaaler.grader.osin') ~= '' ) then out = out .. ', ' .. getValue('brillemaaler.grader.osin') .. ' grader\n' else out = out .. '\n' end end return out </resume> <queries> <query class="lensmeter" ttl="100000"/> <query service="pracro" class="missing_eye_odxt" ttl="1000000"/> <query service="pracro" class="missing_eye_osin" ttl="1000000"/> </queries> <maps> <map name="missing_eye_odxt_map"> value = 0 timestamp = 0 source = '' if( missing_eye_odxt ) then if( missing_eye_odxt.value and missing_eye_odxt.value == '' ) then value = '' timestamp = missing_eye_odxt.timestamp source = missing_eye_odxt.source else value = 'mangler' timestamp = missing_eye_odxt.timestamp source = missing_eye_odxt.source end end return value, timestamp, source </map> <map name="missing_eye_osin_map"> value = 0 timestamp = 0 source = '' if( missing_eye_osin ) then if( missing_eye_osin.value and missing_eye_osin.value == '' ) then value = '' timestamp = missing_eye_osin.timestamp source = missing_eye_osin.source else value = 'mangler' timestamp = missing_eye_osin.timestamp source = missing_eye_osin.source end end return value, timestamp, source </map> <map name="brillemaaler.sf.osin"> -- Returning 0, 0 invalidates the result value = 0 timestamp = 0 source = 0 if(lensmeter and brillemaaler.osin and brillemaaler.sf.osin and brillemaaler.sf.value.osin and brillemaaler.sf.timestamp.osin) then value = brillemaaler.sf.value.osin -- convert . to , value = string.gsub(value, '[.]', ',') timestamp = brillemaaler.sf.timestamp.osin source = brillemaaler.sf.source.osin end return value, timestamp, source </map> <map name="brillemaaler.cyl.osin"> -- Returning 0, 0 invalidates the result value = 0 timestamp = 0 source = 0 if(lensmeter and brillemaaler.osin and brillemaaler.cyl.osin and brillemaaler.cyl.value.osin and brillemaaler.cyl.timestamp.osin) then value = brillemaaler.cyl.value.osin -- convert . to , value = string.gsub(value, '[.]', ',') timestamp = brillemaaler.cyl.timestamp.osin source = brillemaaler.cyl.source.osin end return value, timestamp, source </map> <map name="brillemaaler.sf.odxt"> -- Returning 0, 0 invalidates the result value = 0 timestamp = 0 source = 0 if(lensmeter and brillemaaler.odxt and brillemaaler.sf.odxt and brillemaaler.sf.value.odxt and brillemaaler.sf.timestamp.odxt) then value = brillemaaler.sf.value.odxt -- convert . to , value = string.gsub(value, '[.]', ',') timestamp = brillemaaler.sf.timestamp.odxt source = brillemaaler.sf.source.odxt end return value, timestamp, source </map> <map name="brillemaaler.cyl.odxt"> -- Returning 0, 0 invalidates the result value = 0 timestamp = 0 source = 0 if(lensmeter and brillemaaler.odxt and brillemaaler.cyl.odxt and brillemaaler.cyl.value.odxt and brillemaaler.cyl.timestamp.odxt) then value = brillemaaler.cyl.value.odxt -- convert . to , value = string.gsub(value, '[.]', ',') timestamp = brillemaaler.cyl.timestamp.odxt source = brillemaaler.cyl.source.odxt end return value, timestamp, source </map> </maps> <scripts> <script language="lua" name="lt20gt-25"> if(value == '') then return false end value = string.gsub(value, ',', '.') if(tonumber(value) >= -25 and tonumber(value) <= 20) then return true else return false end </script> <script language="lua" name="lt10gt-15"> if(value == '') then return true end value = string.gsub(value, ',', '.') if(tonumber(value) >= -15 and tonumber(value) <= 10) then return true else return false end </script> <script language="lua" name="lt359gt0"> if(value == '') then return true end value = string.gsub(value, ',', '.') if(tonumber(value) >= 0 and tonumber(value) <= 359) then return true else return false end </script> <script language="lua" name="right_eye"> if ( value == 'mangler' ) then disable('right_eye_frame') else enable('right_eye_frame') end return true </script> <script language="lua" name="left_eye"> if ( value == 'mangler' ) then disable('left_eye_frame') else enable('left_eye_frame') end return true </script> </scripts> <widgets caption="Egen brille (B.2.2.2)" layout="vbox"> <frame layout="hbox"> <!-- o.dxt --> <frame layout="vbox"> <checkbox caption="Der er ikke målt på o.dxt" name="brillemaaler.mangler.odxt" script="right_eye" map="missing_eye_odxt_map" truevalue="mangler" falsevalue="" value=""/> <frame name="right_eye_frame" caption="o.dxt" layout="hbox"> <frame layout="vbox"> <label caption="Sf:"/> <lineedit name="brillemaaler.sf.odxt" map="brillemaaler.sf.odxt" regexp="[+-]{0,1}\d{1,2},\d{2}" script="lt20gt-25" value=""/> </frame> <frame layout="vbox"> <label caption="Cyl:"/> <lineedit name="brillemaaler.cyl.odxt" map="brillemaaler.cyl.odxt" regexp="|[+-]{0,1}\d{1,2},\d{2}" script="lt10gt-15" value=""/> </frame> <frame layout="vbox"> <label caption="Grader:"/> <lineedit name="brillemaaler.grader.odxt" map="brillemaaler.grader.odxt" regexp="|[\d]+" script="lt359gt0" value=""/> </frame> </frame> </frame> <!-- o.sin --> <frame layout="vbox"> <checkbox caption="Der er ikke målt på o.sin" name="brillemaaler.mangler.osin" script="left_eye" map="missing_eye_osin_map" truevalue="mangler" falsevalue="" value=""/> <frame name="left_eye_frame" caption="o.sin" layout="hbox"> <frame layout="vbox"> <label caption="Sf:"/> <lineedit name="brillemaaler.sf.osin" map="brillemaaler.sf.osin" regexp="[+-]{0,1}\d{1,2},\d{2}" script="lt20gt-25" value=""/> </frame> <frame layout="vbox"> <label caption="Cyl:"/> <lineedit name="brillemaaler.cyl.osin" map="brillemaaler.cyl.osin" regexp="|[+-]{0,1}\d{1,2},\d{2}" script="lt10gt-15" value=""/> </frame> <frame layout="vbox"> <label caption="Grader:"/> <lineedit name="brillemaaler.grader.osin" map="brillemaaler.grader.osin" regexp="|[\d]+" script="lt359gt0" value=""/> </frame> </frame> </frame> </frame> <!-- Knapper --> <frame layout="hbox"> <spacer /> <button caption="Gem" action="commit"/> </frame> </widgets> </macro>