diff --git a/.gitattributes b/.gitattributes index a90577832eef179efd92e61ecb5a043b86fa5333..90aa49cc0d51a5dba65a5634398e2a4ab51cfd4c 100644 --- a/.gitattributes +++ b/.gitattributes @@ -3221,6 +3221,7 @@ MAC/Navigator2/panels/objects/Observations/lofar_Obs_state.pnl -text MAC/Navigator2/panels/objects/Processes/ObsSW_CEP.pnl -text MAC/Navigator2/panels/objects/Processes/ObsSW_Main.pnl -text MAC/Navigator2/panels/objects/Processes/ObsSW_Station.pnl -text +MAC/Navigator2/panels/objects/Processes/SWControler_small.pnl -text MAC/Navigator2/panels/objects/Processes/adder.pnl -text MAC/Navigator2/panels/objects/Processes/circularBuffer.pnl -text MAC/Navigator2/panels/objects/Processes/controller_small.pnl -text @@ -3237,6 +3238,7 @@ MAC/Navigator2/panels/objects/Test/Action.pnl -text MAC/Navigator2/panels/objects/Test/Event.pnl -text MAC/Navigator2/panels/objects/compass.pnl -text MAC/Navigator2/panels/objects/connectionBroken.pnl -text +MAC/Navigator2/panels/objects/datastreamLevel.pnl -text MAC/Navigator2/panels/objects/lofar_colors.pnl -text MAC/Navigator2/panels/objects/lofar_logger.pnl -text MAC/Navigator2/panels/objects/lofar_self_state.pnl -text @@ -3248,6 +3250,7 @@ MAC/Navigator2/panels/objects/navigator_progressBar.pnl -text MAC/Navigator2/panels/objects/navigator_typeSelector.pnl -text MAC/Navigator2/panels/objects/navigator_viewSelection.pnl -text MAC/Navigator2/panels/objects/show_legenda.pnl -text +MAC/Navigator2/panels/objects/swlevel.pnl -text MAC/Navigator2/pictures/16_empty.gif -text svneol=unset#image/gif MAC/Navigator2/pictures/16_hand_right.gif -text svneol=unset#image/gif MAC/Navigator2/pictures/253.bmp -text svneol=unset#image/bmp diff --git a/MAC/Navigator2/panels/objects/Processes/SWControler_small.pnl b/MAC/Navigator2/panels/objects/Processes/SWControler_small.pnl new file mode 100644 index 0000000000000000000000000000000000000000..6205f372621c6fd2d61c0a83cd8abd430d9202c6 --- /dev/null +++ b/MAC/Navigator2/panels/objects/Processes/SWControler_small.pnl @@ -0,0 +1,144 @@ +V 11 +1 +LANG:1 0 +PANEL,-1 -1 388 166 N "_3DFace" 2 +"$name" +"$station" +"main() +{ + station = $station; + baseDP = station+\":LOFAR_\"+$name; + + // some controllers are observationbased and are only active if there is actually an observation running + // these should be reloaded if the active observation changes, the name of the observation (temp place) will also change + // So we have to be triggered: + if ($name == \"ObservationControl\" || // MCU + $name == \"OnlineControl\" || // CCU + $name == \"PythonControl\" || // CCU + $name == \"CalibrationControl\" || // Station + $name == \"BeamControl\" || // Station + $name == \"TBBControl\") { // Station + + if (dpExists(\"MCU001:LOFAR_PermSW_MACScheduler.activeObservations\")) { + if (dpConnect(\"observationChanged\", \"MCU001:LOFAR_PermSW_MACScheduler.activeObservations:_online.._value\", + \"MCU001:LOFAR_PermSW_MACScheduler.activeObservations:_online.._invalid\") == -1) { + LOG_ERROR(\"Observation_small.pnl:main|Couldn't connect to: MCU001:LOFAR_PermSW_MACScheduler.activeObservations\"); + } + } else { + if (!isStandalone()) LOG_ERROR(\"Observation_small.pnl:main|Couldn't find DP to connect to: MCU001:LOFAR_PermSW_MACScheduler.activeObservations\"); + } + } else { + reload(); + } +} + +private void observationChanged(string dp1, dyn_string observations, + string dp2, bool invalid) { + + DebugN(\"Observations: \" + observations); + // for now the object will only show the controller for the first observation + if (dynlen(observations) >= 1) { + firstObservation = observations[1]; + // get real name from claimmanager + obsDP=claimManager_nameToRealName(\"LOFAR_ObsSW_\"+firstObservation); + baseDP = station+\":\"+obsDP+\"_\"+$name; + DebugN(\"baseDP: \"+baseDP); + reload(); + } +} + +private void reload() { + + // check if the required datapoint for this view are enabled and accessible + if (dpExists(baseDP+\".process.startTime\")) { + if (dpConnect(\"updateSWController\", baseDP +\".process.startTime:_online.._value\", + baseDP +\".process.stopTime:_online.._value\", + baseDP +\".process.stopTime:_online.._invalid\", + baseDP +\".process.startTime:_online.._invalid\") == -1) { + LOG_ERROR(\"SWControler_small.pnl:main|Couldn't connect to: \"+baseDP+\" \"+getLastError()); + } + } else { + LOG_ERROR(\"SWControler_small.pnl:main|Couldn't find DP to connect to: \"+baseDP); + setValue(\"process\", \"backCol\", \"Lofar_dpdoesnotexist\"); + + } +} + +updateSWController(string dp1, time start, + string dp2, time stop, + string dp3, bool stopInvalid, + string dp4, bool startInvalid) +{ + setValue(\"process\",\"toolTipText\",baseDP); + if (! startInvalid) { + setValue(\"process\", \"backCol\", \"_Window\"); + if (stopInvalid) { + setValue(\"process\", \"backCol\", \"green\"); + } else if (start > stop) { + setValue(\"process\", \"backCol\", \"green\"); + } else if (stop >= start) { + setValue(\"process\", \"backCol\", \"red\"); + } + } else { + setValue(\"process\", \"backCol\", \"Lofar_invalid\"); + } +}" 0 + E E E E 1 -1 -1 0 0 0 +""0 1 +E "#uses \"navPanel.ctl\" +string station = \"\"; +string baseDP=\"\"; +string obsDP=\"\"; +string firstObservation=\"\";" 0 + 2 +"CBRef" "1" +"EClose" E +"" +DISPLAY_LAYER, 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 +LAYER, 0 +1 +LANG:1 0 +6 0 +"process" +"" +1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E + E E +0 0 0 0 0 0 +E E E +0 +1 +LANG:1 0 + +1 +"dashclr"N "_Transparent" +E E 0 1 1 2 1 E 1 0 1 0 -10 1 E 0 10 14 19 +0 +LAYER, 1 +1 +LANG:1 0 +0 +LAYER, 2 +1 +LANG:1 0 +0 +LAYER, 3 +1 +LANG:1 0 +0 +LAYER, 4 +1 +LANG:1 0 +0 +LAYER, 5 +1 +LANG:1 0 +0 +LAYER, 6 +1 +LANG:1 0 +0 +LAYER, 7 +1 +LANG:1 0 +0 +0 diff --git a/MAC/Navigator2/panels/objects/datastreamLevel.pnl b/MAC/Navigator2/panels/objects/datastreamLevel.pnl new file mode 100644 index 0000000000000000000000000000000000000000..cf5f0af7e4088b966e874aa241a52434183732f3 --- /dev/null +++ b/MAC/Navigator2/panels/objects/datastreamLevel.pnl @@ -0,0 +1,396 @@ +V 11 +1 +LANG:1 0 +PANEL,-1 -1 251 88 N "_3DFace" 1 +"$station" +"main() +{ + //Point to show the datastreamlevel of a certain station + + station = $station; + + baseDP = station+\":LOFAR_PIC_StationInfo\"; + + if (dpExists(baseDP)) { + showDatastreams(); + } +}" 0 + E E E E 1 -1 -1 0 0 0 +""0 1 +E "#uses \"navPanel.ctl\" +string station = \"\"; +string baseDP=\"\"; + +int filled0=0; +int filled1=0; + + +// **************************************** +// Name: showDatastreams +// **************************************** +// Connects to the given datapoint .datastream0 && 1 it's historical data (if any) +// and logs all +// +// **************************************** +showDatastreams() +{ + LOG_TRACE(\"datastreamLevel.pnl:showLevels| Entered for DP:\" ,baseDP); + + string dpStream0 = baseDP+\".datastream0\"; + string dpStream1 = baseDP+\".datastream1\"; + string systemName = dpSubStr(dpStream0,DPSUB_SYS); + string bareDP = dpSubStr(dpStream0,DPSUB_DP_EL_CONF_DET_ATT); + + if(dpExists(dpStream0)) { + // gather the historical data: + dyn_dyn_anytype tab; + int z; + time tStart; + time tStop; + tStop = getCurrentTime(); + tStart = tStop - 15*3600; // 15 hours of history + + string query=\"\"; + + if (systemName != MainDBName) { + query = \"SELECT ALL '_original.._value','_original.._stime' FROM '\" + dpStream0 + \"' REMOTE'\"+systemName +\"' TIMERANGE(\\\"\" + + formatTime(\"%Y.%m.%d %H:%M:%S\",tStart) + \"\\\",\\\"\" + + formatTime(\"%Y.%m.%d %H:%M:%S\",tStop) + \"\\\",1,0) LAST 5\"; + } else { + query = \"SELECT ALL '_original.._value','_original.._stime' FROM '\" + dpStream0 + \"' TIMERANGE(\\\"\" + + formatTime(\"%Y.%m.%d %H:%M:%S\",tStart) + \"\\\",\\\"\" + + formatTime(\"%Y.%m.%d %H:%M:%S\",tStop) + \"\\\",1,0) LAST 5\"; + } + + LOG_DEBUG(\"datastreamLevel.pnl:showLevelsQuery: \" + query); + dpQuery(query, tab); + LOG_DEBUG(\"datastreamLevel.pnl:showLevels|Found: \" + tab + \" length: \" + dynlen(tab)); + + + for(z=2;z<dynlen(tab);z++) { + addStream(0,tab[z][2],tab[z][3]); + } + + // connect to levels + if (dpConnect(\"updateStream0\",dpStream0, + dpStream0+\":_original.._stime\", + dpStream0+\":_online.._invalid\") == -1) { + LOG_ERROR(\"datastreamLevel.pnl:showLevels|Couldn't connect to \"+dpStream0+ \" \" + getLastError()); + } + } else { + LOG_DEBUG(\"statstreamLevel.pnl:showLevels|error connecting to: \"+ dpStream0); + } + + if(dpExists(dpStream1)) { + // gather the historical data: + dyn_dyn_anytype tab; + int z; + time tStart; + time tStop; + tStop = getCurrentTime(); + tStart = tStop - 15*3600; // 15 hours of history + + string query=\"\"; + + if (systemName != MainDBName) { + query = \"SELECT ALL '_original.._value','_original.._stime' FROM '\" + dpStream1 + \"' REMOTE'\"+systemName +\"' TIMERANGE(\\\"\" + + formatTime(\"%Y.%m.%d %H:%M:%S\",tStart) + \"\\\",\\\"\" + + formatTime(\"%Y.%m.%d %H:%M:%S\",tStop) + \"\\\",1,0) LAST 5\"; + } else { + query = \"SELECT ALL '_original.._value','_original.._stime' FROM '\" + dpStream1 + \"' TIMERANGE(\\\"\" + + formatTime(\"%Y.%m.%d %H:%M:%S\",tStart) + \"\\\",\\\"\" + + formatTime(\"%Y.%m.%d %H:%M:%S\",tStop) + \"\\\",1,0) LAST 5\"; + } + + LOG_DEBUG(\"datastreamLevel.pnl:showLevelsQuery: \" + query); + dpQuery(query, tab); + LOG_DEBUG(\"datastreamLevel.pnl:showLevels|Found: \" + tab + \" length: \" + dynlen(tab)); + + + for(z=2;z<dynlen(tab);z++) { + addStream(1,tab[z][2],tab[z][3]); + } + + // connect to levels + if (dpConnect(\"updateStream1\",dpStream1, + dpStream1+\":_original.._stime\", + dpStream1+\":_online.._invalid\") == -1) { + LOG_ERROR(\"datastreamLevel.pnl:showLevels|Couldn't connect to \"+dpStream1+ \" \" + getLastError()); + } + } else { + LOG_DEBUG(\"datastreamLevel.pnl:showLevels|error connecting to: \"+ dpStream1); + } +} + +// **************************************** +// Name: updateStream0 +// **************************************** +// callback for showStreams +// +// **************************************** +updateStream0(string dp1, bool stream, + string dp2, string changed, + string dp3, bool invalid) +{ + LOG_TRACE(\"datastreamLevel.pnl:showStream0|stream: \"+stream); + addStream(0,stream,changed); +} + +// **************************************** +// Name: updateStream1 +// **************************************** +// callback for showStreams +// +// **************************************** +updateStream1(string dp1, bool stream, + string dp2, string changed, + string dp3, bool invalid) +{ + LOG_TRACE(\"datastreamLevel.pnl:showStream1|Stream: \"+stream); + addStream(1,stream,changed); +} +// **************************************** +// Name: addStream +// **************************************** +// fill the 15 timestamped datastreamLevel for this Database +// +// **************************************** +addStream(int streamnr,int stream,string changed) +{ + + LOG_TRACE(\"dataStreamLlevel.pnl:addlevel|streamnr -stream: \" + streamnr + \" - \"+stream); + + string toolTip = changed+\"<br> stream: \"+stream; + + string streamcolor=\"\"; + if (!stream) { + streamcolor=\"red\"; + } else if (stream) { + streamcolor=\"green\"; + } + + string oldstream=\"white\"; + string oldToolTip = \"\"; + if (streamnr == 0) { + for (int i=5-filled0; i< 5 ;i++) { + // get the original color and tooltip from the next right point and move it to this point + getValue(\"stream0-\"+(i+1)+\"_text\",\"backCol\",oldstream); + setValue(\"stream0-\"+(i)+\"_text\",\"backCol\",oldstream); + getValue(\"stream0-\"+(i+1)+\"_text\",\"toolTipText\",oldToolTip); + setValue(\"stream0-\"+(i)+\"_text\",\"toolTipText\",oldToolTip); + } + // set new values + setValue(\"stream0-5_text\",\"backCol\",streamcolor); + setValue(\"stream0-5_text\",\"toolTipText\",toolTip); + if (filled0 < 5) filled0++; + } else if (streamnr == 1) { + for (int i=5-filled1; i< 5 ;i++) { + // get the original color and tooltip from the next right point and move it to this point + getValue(\"stream1-\"+(i+1)+\"_text\",\"backCol\",oldstream); + setValue(\"stream1-\"+(i)+\"_text\",\"backCol\",oldstream); + getValue(\"stream1-\"+(i+1)+\"_text\",\"toolTipText\",oldToolTip); + setValue(\"stream1-\"+(i)+\"_text\",\"toolTipText\",oldToolTip); + } + // set new values + setValue(\"stream1-5_text\",\"backCol\",streamcolor); + setValue(\"stream1-5_text\",\"toolTipText\",toolTip); + if (filled1 < 5) filled1++; + } +}" 0 + 2 +"CBRef" "1" +"EClose" E +"" +DISPLAY_LAYER, 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 +LAYER, 0 +1 +LANG:1 0 +6 0 +"stream0-1_text" +"" +1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E + E E +0 0 0 0 0 0 +E E E +0 +1 +LANG:1 0 + +1 +"dashclr"N "_Transparent" +E E 0 1 1 2 1 E 1 0 1 -230 -140 1 E 230 150 234 159 +6 2 +"stream0-2_text" +"" +1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E + E E +2 0 0 0 0 0 +E E E +0 +1 +LANG:1 0 + +1 +"dashclr"N "_Transparent" +E E 0 1 1 2 1 E 1 0 1 -225 -140 1 E 230 150 234 159 +6 3 +"stream0-3_text" +"" +1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E + E E +3 0 0 0 0 0 +E E E +0 +1 +LANG:1 0 + +1 +"dashclr"N "_Transparent" +E E 0 1 1 2 1 E 1 0 1 -220 -140 1 E 230 150 234 159 +6 4 +"stream0-4_text" +"" +1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E + E E +4 0 0 0 0 0 +E E E +0 +1 +LANG:1 0 + +1 +"dashclr"N "_Transparent" +E E 0 1 1 2 1 E 1 0 1 -215 -140 1 E 230 150 234 159 +6 5 +"stream0-5_text" +"" +1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E + E E +5 0 0 0 0 0 +E E E +0 +1 +LANG:1 0 + +1 +"dashclr"N "_Transparent" +E E 0 1 1 2 1 E 1 0 1 -210 -140 1 E 230 150 234 159 +6 8 +"stream1-1_text" +"" +1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E + E E +8 0 0 0 0 0 +E E E +0 +1 +LANG:1 0 + +1 +"dashclr"N "_Transparent" +E E 0 1 1 2 1 E 1 0 1 -195 -140 1 E 230 150 234 159 +6 9 +"stream1-2_text" +"" +1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E + E E +9 0 0 0 0 0 +E E E +0 +1 +LANG:1 0 + +1 +"dashclr"N "_Transparent" +E E 0 1 1 2 1 E 1 0 1 -190 -140 1 E 230 150 234 159 +6 10 +"stream1-3_text" +"" +1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E + E E +10 0 0 0 0 0 +E E E +0 +1 +LANG:1 0 + +1 +"dashclr"N "_Transparent" +E E 0 1 1 2 1 E 1 0 1 -185 -140 1 E 230 150 234 159 +6 11 +"stream1-4_text" +"" +1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E + E E +11 0 0 0 0 0 +E E E +0 +1 +LANG:1 0 + +1 +"dashclr"N "_Transparent" +E E 0 1 1 2 1 E 1 0 1 -180 -140 1 E 230 150 234 159 +6 12 +"stream1-5_text" +"" +1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E + E E +12 0 0 0 0 0 +E E E +0 +1 +LANG:1 0 + +1 +"dashclr"N "_Transparent" +E E 0 1 1 2 1 E 1 0 1 -175 -140 1 E 230 150 234 159 +2 16 +"PRIMITIVE_TEXT1" +"" +1 70 80 E E E 1 E 1 E N "_WindowText" E N "_Window" E E + E E +16 0 0 0 0 0 +E E E +0 +1 +LANG:1 0 + +1 +"dashclr"N "_Transparent" +E E 0 1 1 2 1 E U 0 E 70 80 71 93 +0 2 2 "0s" 0 0 0 192 0 0 70 80 1 +1 +LANG:1 34 MS Shell Dlg 2,8,-1,5,50,0,0,0,0,0 +0 1 +LANG:1 0 +0 +LAYER, 1 +1 +LANG:1 0 +0 +LAYER, 2 +1 +LANG:1 0 +0 +LAYER, 3 +1 +LANG:1 0 +0 +LAYER, 4 +1 +LANG:1 0 +0 +LAYER, 5 +1 +LANG:1 0 +0 +LAYER, 6 +1 +LANG:1 0 +0 +LAYER, 7 +1 +LANG:1 0 +0 +0 diff --git a/MAC/Navigator2/panels/objects/swlevel.pnl b/MAC/Navigator2/panels/objects/swlevel.pnl new file mode 100644 index 0000000000000000000000000000000000000000..9862b8576df20dd0a7265ed36f3a32c9444bbdae --- /dev/null +++ b/MAC/Navigator2/panels/objects/swlevel.pnl @@ -0,0 +1,414 @@ +V 11 +1 +LANG:1 0 +PANEL,-1 -1 251 88 N "_3DFace" 1 +"$station" +"main() +{ + //Point to show the swlevel of a certain station + + station = $station; + station_text.text = station; + + baseDP = station+\":LOFAR_PermSW_SoftwareMonitor\"; + + if (dpExists(baseDP)) { + showLevels(); + } else { + station_text.foreCol(\"Lofar_dpdoesnotexist\"); + } +} +" 0 + E E E E 1 -1 -1 0 0 0 +""0 1 +E "#uses \"navPanel.ctl\" +string station = \"\"; +string baseDP=\"\"; + +int filled=0; + + +// **************************************** +// Name: showLogging +// **************************************** +// Connects to the given datapoint .logMsg it's historical data (if any) +// and logs all +// +// **************************************** +showLevels() +{ + LOG_TRACE(\"swlevel.pnl:showLevels| Entered for DP:\" ,baseDP); + + string dpLvl = baseDP+\".SWLevel\"; + string systemName = dpSubStr(dpLvl,DPSUB_SYS); + string bareDP = dpSubStr(dpLvl,DPSUB_DP_EL_CONF_DET_ATT); + + if(dpExists(dpLvl)) { + // gather the historical data: + dyn_dyn_anytype tab; + int z; + time tStart; + time tStop; + tStop = getCurrentTime(); + tStart = tStop - 15*3600; // 15 hours of history + + string query=\"\"; + + if (systemName != MainDBName) { + query = \"SELECT ALL '_original.._value','_original.._stime' FROM '\" + dpLvl + \"' REMOTE'\"+systemName +\"' TIMERANGE(\\\"\" + + formatTime(\"%Y.%m.%d %H:%M:%S\",tStart) + \"\\\",\\\"\" + + formatTime(\"%Y.%m.%d %H:%M:%S\",tStop) + \"\\\",1,0) LAST 15\"; + } else { + query = \"SELECT ALL '_original.._value','_original.._stime' FROM '\" + dpLvl + \"' TIMERANGE(\\\"\" + + formatTime(\"%Y.%m.%d %H:%M:%S\",tStart) + \"\\\",\\\"\" + + formatTime(\"%Y.%m.%d %H:%M:%S\",tStop) + \"\\\",1,0) LAST 15\"; + } + + LOG_DEBUG(\"swlevel.pnl:showLevelsQuery: \" + query); + dpQuery(query, tab); + LOG_DEBUG(\"swlevel.pnl:showLevels|Found: \" + tab + \" length: \" + dynlen(tab)); + + + for(z=2;z<dynlen(tab);z++) { + addLevel(tab[z][2],tab[z][3]); + } + + // connect to levels + if (dpConnect(\"updateLevel\",dpLvl, + dpLvl+\":_original.._stime\", + dpLvl+\":_online.._invalid\") == -1) { + LOG_ERROR(\"swlevel.pnl:showLevels|Couldn't connect to \"+dpLvl+ \" \" + getLastError()); + } + } else { + LOG_DEBUG(\"swlevel.pnl:showLevels|error connecting to: \"+ dpLvl); + } +} + +// **************************************** +// Name: updateLevel +// **************************************** +// callback for showLevels +// +// **************************************** +updateLevel(string dp1, int lvl, + string dp2, string changed, + string dp3, bool invalid) +{ + LOG_TRACE(\"swlevel.pnl:showLevelsg|Level: \"+lvl); + if (invalid) { + station_text.foreCol(\"Lofar_invalid\"); + } else { + station_text.foreCol(\"_WindowText\"); + addLevel(lvl,changed); + } +} + +// **************************************** +// Name: addLevel +// **************************************** +// fill the 15 timestamped SWlevels for this Database +// +// **************************************** +addLevel(int lvl,string changed) +{ + LOG_TRACE(\"swlevel.pnl:addlevel|lvl: \" + lvl); + + string toolTip = changed+\"<br> level: \"+lvl; + + string lvlcolor=\"\"; + if (lvl == 0) { + lvlcolor=\"red\"; + } else if (lvl == 1) { + lvlcolor=\"{255,170,0}\"; //orange + } else if (lvl >= 2 && lvl < 6) { + lvlcolor=\"yellow\"; + } else if (lvl == 6) { + lvlcolor=\"green\"; + } else { + lvlcolor = \"white\"; + } + + string oldlvl=\"white\"; + string oldToolTip = \"\"; + for (int i=15-filled; i< 15 ;i++) { + // get the original color and tooltip from the next right point and move it to this point + getValue(\"level\"+(i+1)+\"_text\",\"backCol\",oldlvl); + setValue(\"level\"+(i)+\"_text\",\"backCol\",oldlvl); + getValue(\"level\"+(i+1)+\"_text\",\"toolTipText\",oldToolTip); + setValue(\"level\"+(i)+\"_text\",\"toolTipText\",oldToolTip); + } + // set new values + setValue(\"level15_text\",\"backCol\",lvlcolor); + setValue(\"level15_text\",\"toolTipText\",toolTip); + if (filled < 15) filled++; +} + + +" 0 + 2 +"CBRef" "1" +"EClose" E +"" +DISPLAY_LAYER, 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 +LAYER, 0 +1 +LANG:1 0 +6 0 +"level1_text" +"" +1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E + E E +0 0 0 0 0 0 +E E E +0 +1 +LANG:1 0 + +1 +"dashclr"N "_Transparent" +E E 0 1 1 2 1 E 1 0 1 -180 -140 1 E 230 150 234 159 +2 1 +"station_text" +"" +1 10 9 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E + E E +1 0 0 0 0 0 +E E E +0 +1 +LANG:1 0 + +1 +"dashclr"N "_Transparent" +E E 0 1 1 2 1 E U 0 E 10 9 38 22 +0 2 2 "0s" 0 0 0 192 0 0 10 9 1 +1 +LANG:1 34 MS Shell Dlg 2,8,-1,5,50,0,0,0,0,0 +0 1 +LANG:1 5 cs001 +6 2 +"level2_text" +"" +1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E + E E +2 0 0 0 0 0 +E E E +0 +1 +LANG:1 0 + +1 +"dashclr"N "_Transparent" +E E 0 1 1 2 1 E 1 0 1 -175 -140 1 E 230 150 234 159 +6 3 +"level3_text" +"" +1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E + E E +3 0 0 0 0 0 +E E E +0 +1 +LANG:1 0 + +1 +"dashclr"N "_Transparent" +E E 0 1 1 2 1 E 1 0 1 -170 -140 1 E 230 150 234 159 +6 4 +"level4_text" +"" +1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E + E E +4 0 0 0 0 0 +E E E +0 +1 +LANG:1 0 + +1 +"dashclr"N "_Transparent" +E E 0 1 1 2 1 E 1 0 1 -165 -140 1 E 230 150 234 159 +6 5 +"level5_text" +"" +1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E + E E +5 0 0 0 0 0 +E E E +0 +1 +LANG:1 0 + +1 +"dashclr"N "_Transparent" +E E 0 1 1 2 1 E 1 0 1 -160 -140 1 E 230 150 234 159 +6 6 +"level6_text" +"" +1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E + E E +6 0 0 0 0 0 +E E E +0 +1 +LANG:1 0 + +1 +"dashclr"N "_Transparent" +E E 0 1 1 2 1 E 1 0 1 -155 -140 1 E 230 150 234 159 +6 7 +"level7_text" +"" +1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E + E E +7 0 0 0 0 0 +E E E +0 +1 +LANG:1 0 + +1 +"dashclr"N "_Transparent" +E E 0 1 1 2 1 E 1 0 1 -150 -140 1 E 230 150 234 159 +6 8 +"level8_text" +"" +1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E + E E +8 0 0 0 0 0 +E E E +0 +1 +LANG:1 0 + +1 +"dashclr"N "_Transparent" +E E 0 1 1 2 1 E 1 0 1 -145 -140 1 E 230 150 234 159 +6 9 +"level9_text" +"" +1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E + E E +9 0 0 0 0 0 +E E E +0 +1 +LANG:1 0 + +1 +"dashclr"N "_Transparent" +E E 0 1 1 2 1 E 1 0 1 -140 -140 1 E 230 150 234 159 +6 10 +"level10_text" +"" +1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E + E E +10 0 0 0 0 0 +E E E +0 +1 +LANG:1 0 + +1 +"dashclr"N "_Transparent" +E E 0 1 1 2 1 E 1 0 1 -135 -140 1 E 230 150 234 159 +6 11 +"level11_text" +"" +1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E + E E +11 0 0 0 0 0 +E E E +0 +1 +LANG:1 0 + +1 +"dashclr"N "_Transparent" +E E 0 1 1 2 1 E 1 0 1 -130 -140 1 E 230 150 234 159 +6 12 +"level12_text" +"" +1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E + E E +12 0 0 0 0 0 +E E E +0 +1 +LANG:1 0 + +1 +"dashclr"N "_Transparent" +E E 0 1 1 2 1 E 1 0 1 -125 -140 1 E 230 150 234 159 +6 13 +"level13_text" +"" +1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E + E E +13 0 0 0 0 0 +E E E +0 +1 +LANG:1 0 + +1 +"dashclr"N "_Transparent" +E E 0 1 1 2 1 E 1 0 1 -120 -140 1 E 230 150 234 159 +6 14 +"level14_text" +"" +1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E + E E +14 0 0 0 0 0 +E E E +0 +1 +LANG:1 0 + +1 +"dashclr"N "_Transparent" +E E 0 1 1 2 1 E 1 0 1 -115 -140 1 E 230 150 234 159 +6 15 +"level15_text" +"" +1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E + E E +15 0 0 0 0 0 +E E E +0 +1 +LANG:1 0 + +1 +"dashclr"N "_Transparent" +E E 0 1 1 2 1 E 1 0 1 -110 -140 1 E 230 150 234 159 +0 +LAYER, 1 +1 +LANG:1 0 +0 +LAYER, 2 +1 +LANG:1 0 +0 +LAYER, 3 +1 +LANG:1 0 +0 +LAYER, 4 +1 +LANG:1 0 +0 +LAYER, 5 +1 +LANG:1 0 +0 +LAYER, 6 +1 +LANG:1 0 +0 +LAYER, 7 +1 +LANG:1 0 +0 +0