diff --git a/.gitattributes b/.gitattributes index aba8092dd7d7b4ad6a48ed7521807a4ec1f53d48..721bfee0f598a3a5e838a13b11f1bf00a595a0ce 100644 --- a/.gitattributes +++ b/.gitattributes @@ -3255,6 +3255,8 @@ MAC/Navigator2/panels/objects/Hardware/Station_Clock.pnl -text MAC/Navigator2/panels/objects/Hardware/Station_HBA.pnl -text MAC/Navigator2/panels/objects/Hardware/Station_LBA.pnl -text MAC/Navigator2/panels/objects/Hardware/Station_Subrack_small.pnl -text +MAC/Navigator2/panels/objects/Hardware/Station_TempAndHumidity.pnl -text +MAC/Navigator2/panels/objects/Hardware/Station_mainView.pnl -text MAC/Navigator2/panels/objects/Hardware/Station_small.pnl -text MAC/Navigator2/panels/objects/Hardware/Subrack_ClockBoard.pnl -text MAC/Navigator2/panels/objects/Hardware/Subrack_Numbers.pnl -text diff --git a/MAC/Navigator2/panels/main.pnl b/MAC/Navigator2/panels/main.pnl index ae29c504231ad211ecf740eeb1f05b58e9993df2..21e134c6d4eb9ba382b5b2a1e383de028f07cfb8 100644 --- a/MAC/Navigator2/panels/main.pnl +++ b/MAC/Navigator2/panels/main.pnl @@ -60,6 +60,7 @@ dyn_string SWLevelRefNames; dyn_string datastreamRefNames; dyn_string swCtrlRefNames; dyn_string memAndHDDRefNames; +dyn_string stationViewRefNames; string strPanelName; string strModuleName; string baseDP=\"\"; @@ -104,6 +105,13 @@ void clearMemAndHDDRefNames() { dynClear(memAndHDDRefNames); } +void clearStationViewRefNames() { + // remove all symbols because new ones will be added + for (int i=1; i <= dynlen(stationViewRefNames); i++) { + removeSymbol(strModuleName,\"\",stationViewRefNames[i]); + } + dynClear(stationViewRefNames); +} void redraw() { dynClear(station_result); dynClear(station_procList); @@ -131,6 +139,11 @@ void redraw() { if (dynlen(memAndHDDRefNames) > 0) { clearMemAndHDDRefNames(); } + + if (dynlen(stationViewRefNames) > 0) { + stationViewRefNames(); + } + addSWLevels(); addDatastreams(); @@ -139,6 +152,7 @@ void redraw() { addMemAndHDD(); + addStationView(); @@ -173,7 +187,7 @@ void addSWLevels() { 0, // angle 1 ,1 // zoomX , zoomY ) < 0 ) { - LOG_ERROR(\"swlevel.pnl:redraw|Error Appending swlevel for: \" + stationList[i] + \" in this panel.\"); + LOG_ERROR(\"swlevel.pnl:addSWLevels|Error Appending swlevel for: \" + stationList[i] + \" in this panel.\"); } yPos_AddSymbol += 10; ref++; @@ -202,7 +216,7 @@ void addDatastreams() { 0, // angle 1 ,1 // zoomX , zoomY ) < 0 ) { - LOG_ERROR(\"swlevel.pnl:redraw|Error datastream for : \" + stationList[i] + \" in this panel.\"); + LOG_ERROR(\"swlevel.pnl:addDatastreams|Error datastream for : \" + stationList[i] + \" in this panel.\"); } yPos_AddSymbol += 10; ref++; @@ -237,7 +251,7 @@ void addSWCtrlers() { 0, // angle 1 ,1 // zoomX , zoomY ) < 0 ) { - LOG_ERROR(\"swlevel.pnl:redraw|Error swCtrl for : \" + stationList[i] + \" in this panel.\"); + LOG_ERROR(\"swlevel.pnl:addSWCtrlers|Error swCtrl for : \" + stationList[i] + \" in this panel.\"); } yPos_AddSymbol += 10; ref++; @@ -316,7 +330,36 @@ void addMemAndHDD() { 0, // angle 1 ,1 // zoomX , zoomY ) < 0 ) { - LOG_ERROR(\"swlevel.pnl:redraw|Error memAndHDD for : \" + stationList[i] + \" in this panel.\"); + LOG_ERROR(\"main.pnl:addMemAndHDD|Error memAndHDD for : \" + stationList[i] + \" in this panel.\"); + } + yPos_AddSymbol += 10; + ref++; + } +} + +void addStationView() { + int xPos_AddSymbol = 665; + int yPos_AddSymbol = 28; + int ref = 1; + string addPanelName = \"objects/Hardware/Station_mainView.pnl\"; + //loop over list and prepare panel with all MainInfo + for (int i=1; i<= dynlen(stationList); i++) { + //skip CCU and MCU machines + if (strpos(stationList[i],\"MCU\") >=0 ||strpos(stationList[i],\"CCU\") >=0) continue; + + stationViewRefNames[i]=\"memAndHDD\"+(i); + + if ( addSymbol( strModuleName, // Stay in this modul + \"\", // Name of this panel + addPanelName, // Panel to add + stationViewRefNames[ref], // Ref of the addedPanel + makeDynString( \"$station:\" + stationList[i]) , // Define all $values + xPos_AddSymbol, // Xpos of the AddedSymbol + yPos_AddSymbol, // Ypos of the AddedSymbol + 0, // angle + 1 ,1 // zoomX , zoomY + ) < 0 ) { + LOG_ERROR(\"main.pnl:addStationView|Error stationView for : \" + stationList[i] + \" in this panel.\"); } yPos_AddSymbol += 10; ref++; @@ -697,22 +740,41 @@ LANG:1 18 CEPobservationView 2 44 "PRIMITIVE_TEXT16" "" -1 630 10 E E E 1 E 1 E N "_WindowText" E N "_Window" E E +1 627 10 E E E 1 E 1 E N "_WindowText" E N "_Window" E E E E 29 0 0 0 0 0 E E E 0 1 -LANG:1 0 +LANG:1 18 DiskSpace & Memory + +1 +"dashclr"N "_Transparent" +E E 0 1 1 2 1 E U 0 E 627 10 657 23 +0 2 2 "0s" 0 0 0 192 0 0 627 10 1 +1 +LANG:1 34 MS Shell Dlg 2,8,-1,5,75,0,0,0,0,0 +0 1 +LANG:1 6 D M +2 45 +"PRIMITIVE_TEXT17" +"" +1 668 10 E E E 1 E 1 E N "_WindowText" E N "_Window" E E + E E +30 0 0 0 0 0 +E E E +0 +1 +LANG:1 22 Temperature & Humidity 1 "dashclr"N "_Transparent" -E E 0 1 1 2 1 E U 0 E 630 10 654 23 -0 2 2 "0s" 0 0 0 192 0 0 630 10 1 +E E 0 1 1 2 1 E U 0 E 668 10 695 23 +0 2 2 "0s" 0 0 0 192 0 0 668 10 1 1 LANG:1 34 MS Shell Dlg 2,8,-1,5,75,0,0,0,0,0 0 1 -LANG:1 4 D M +LANG:1 6 T H 0 LAYER, 1 1 diff --git a/MAC/Navigator2/panels/objects/Hardware/Station_TempAndHumidity.pnl b/MAC/Navigator2/panels/objects/Hardware/Station_TempAndHumidity.pnl new file mode 100644 index 0000000000000000000000000000000000000000..b972cd04ce6906791f0105e3009b341ed9748bb3 --- /dev/null +++ b/MAC/Navigator2/panels/objects/Hardware/Station_TempAndHumidity.pnl @@ -0,0 +1,181 @@ +V 11 +1 +LANG:1 0 +PANEL,-1 -1 255 95 N "_3DFace" 1 +"$station" +"main() +{ + station = $station+\":\"; + + baseDP = station+\"LOFAR_PIC\"; + + reload(); +} + +private void reload() { + + // since + // check if the required datapoint for this view are enabled and accessible + if (navFunct_dpReachable(baseDP)) { + if (dpExists(baseDP+\"_Cabinet1.temperature\") ){ + if (dpConnect(\"updateStation\", baseDP +\"_Cabinet1.temperature:_online.._value\", + baseDP +\"_Cabinet1.tempMin:_online.._value\", + baseDP +\"_Cabinet1.tempMax:_online.._value\", + baseDP +\"_Cabinet1.tempMaxMax:_online.._value\", + baseDP +\"_Cabinet1.humidity:_online.._value\", + baseDP +\"_Cabinet1.humidityMax:_online.._value\", + baseDP +\"_Cabinet1.humidityMaxMax:_online.._value\", + baseDP +\"_Cabinet1.temperature:_online.._invalid\") == -1) { + setValue(\"temperature\", \"backCol\", \"Lofar_dpdoesnotexist\"); + setValue(\"humidity\", \"backCol\", \"Lofar_dpdoesnotexist\"); + } + } else { + setValue(\"temperature\", \"backCol\", \"Lofar_dpdoesnotexist\"); + setValue(\"humidity\", \"backCol\", \"Lofar_dpdoesnotexist\"); + } + } else { + setValue(\"temperature\", \"backCol\", \"Lofar_dpOffline\"); + setValue(\"humidity\", \"backCol\", \"Lofar_dpOffline\"); + + } +} + +updateStation(string dp1, float temp, + string dp2, float tempMin, + string dp3, float tempMax, + string dp4, float tempMaxMax, + string dp2, float hum, + string dp2, float humMax, + string dp2, float humMaxMax, + string dp8, bool invalid) +{ + + if (invalid) { + setValue(\"temperature\", \"backCol\", \"Lofar_invalid\"); + setValue(\"humidity\", \"backCol\", \"Lofar_invalid\"); + return; + } + // temperatures + string tempColor=\"Lofar_test\"; + if (temp > tempMin && temp < tempMax) { + tempColor = \"Lofar_operational\"; + } else if (temp >= tempMax && temp < tempMaxMax) { + tempColor = \"Lofar_suspicious\"; + } else if (temp >= tempMaxMax) { + tempColor = \"Lofar_broken\"; + } + + // humidity + string humColor=\"Lofar_test\"; + if (hum < humMax) { + humColor = \"Lofar_operational\"; + } else if (hum >= humMax && hum < humMaxMax) { + humColor = \"Lofar_suspicious\"; + } else if (hum >= humMaxMax) { + humColor = \"Lofar_broken\"; + } + + + setValue(\"temperature\",\"toolTipText\",station+\" temp \"+temp+\" C\" ); + setValue(\"temperature\", \"backCol\", tempColor); + setValue(\"humidity\",\"toolTipText\",station+\" humidity \"+hum+\" Rel%\" ); + setValue(\"humidity\", \"backCol\", humColor); + }" 0 + E E E E 1 -1 -1 0 0 0 +""0 1 +E "#uses \"navPanel.ctl\" +string station = \"\"; +string baseDP=\"\"; +string obsDP=\"\"; + +" 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 +"temperature" +"" +1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E + "main() +{ + rClick(); +}" 0 + "main() +{ + dblClick(); +}" 0 + +0 0 0 0 0 0 +E E E +0 +1 +LANG:1 0 + +1 +"dashclr"N "_Transparent" +E "main() +{ + click(); +}" 0 + 0 1 1 2 1 E 1 0 1 0 -10 1 E 0 10 14 19 +6 1 +"humidity" +"" +1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E + "main() +{ + rClick(); +}" 0 + "main() +{ + dblClick(); +}" 0 + +1 0 0 0 0 0 +E E E +0 +1 +LANG:1 0 + +1 +"dashclr"N "_Transparent" +E "main() +{ + click(); +}" 0 + 0 1 1 2 1 E 1 0 1 20 -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/Hardware/Station_mainView.pnl b/MAC/Navigator2/panels/objects/Hardware/Station_mainView.pnl new file mode 100644 index 0000000000000000000000000000000000000000..5ffb19f83e407defa6dbf2571da0fa15da89844b --- /dev/null +++ b/MAC/Navigator2/panels/objects/Hardware/Station_mainView.pnl @@ -0,0 +1,79 @@ +V 11 +1 +LANG:1 0 +PANEL,-1 -1 380 26 N "_3DFace" 1 +"$station" +"main() +{ + station = $station; +}" 0 + E E E E 1 -1 -1 0 0 0 +""0 1 +E "#uses \"navPanel.ctl\" +string station = \"\"; +string baseDP=\"\";" 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 +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 +1 17 1 "" 0 +0 +1 18 1 "" 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 +3 1 "PANEL_REF1" -1 +"objects\\Hardware\\Station_TempAndHumidity.pnl" 10 10 T 34 1 0 1 -10 -10 +1 +"$station""$station" +0 diff --git a/MAC/Navigator2/panels/objects/Hardware/diskuse_small.pnl b/MAC/Navigator2/panels/objects/Hardware/diskuse_small.pnl index 458f376306836a22800aaf1b9c3e8b83188bd5aa..25a6bebb11fb01a1ab0bba28ebfd3cfc2e9533b4 100644 --- a/MAC/Navigator2/panels/objects/Hardware/diskuse_small.pnl +++ b/MAC/Navigator2/panels/objects/Hardware/diskuse_small.pnl @@ -40,7 +40,7 @@ updateDiskUsage(string dp1, int total, string color = navFunct_giveFadedColor(0, total, current); int step = total/100; - setValue(\"diskUsage\",\"toolTipText\",\"Disk Used :\"+current/step+\"%\" ); + setValue(\"diskUsage\",\"toolTipText\",station +\" Disk Used :\"+current/step+\"%\" ); setValue(\"diskUsage\", \"backCol\", color); }" 0 E E E E 1 -1 -1 0 0 0 diff --git a/MAC/Navigator2/panels/objects/Hardware/memuse_small.pnl b/MAC/Navigator2/panels/objects/Hardware/memuse_small.pnl index 6d162045cac45f15b5afdb967e401078c3d6faf4..b450095d22b5cf477f04345ded204eb1c184be48 100644 --- a/MAC/Navigator2/panels/objects/Hardware/memuse_small.pnl +++ b/MAC/Navigator2/panels/objects/Hardware/memuse_small.pnl @@ -39,7 +39,7 @@ updateMemUsage(string dp1, int total, } int step = total/100; string color = navFunct_giveFadedColor(0, total, current); - setValue(\"memUsage\",\"toolTipText\",\"Memory used: \"+current/step+\"%\" ); + setValue(\"memUsage\",\"toolTipText\",station+\" Memory used: \"+current/step+\"%\" ); setValue(\"memUsage\", \"backCol\", color); }" 0 E E E E 1 -1 -1 0 0 0 diff --git a/MAC/Navigator2/scripts/libs/navProgressCtrl.ctl b/MAC/Navigator2/scripts/libs/navProgressCtrl.ctl index 73d9d6f70d7514b3ef38d49bc2c53013b7aa4c66..ec4168f0063b3c6f8e1c1581f1b0fb22716e972e 100644 --- a/MAC/Navigator2/scripts/libs/navProgressCtrl.ctl +++ b/MAC/Navigator2/scripts/libs/navProgressCtrl.ctl @@ -77,7 +77,9 @@ void navProgressCtrl_handleObservation(string selection){ LOG_DEBUG("navProgressCtrl.ctl:navProgressCtrl_handleObservation| stop:" +stop); - toolText=selection; + toolText=selection + + "<br> start: " + sStart+ + "<br> stop : " + sStop; int duration=period(stop) - period(start); LOG_DEBUG("navProgressCtrl.ctl:navProgressCtrl_handleObservation| Duration: "+duration); @@ -86,11 +88,16 @@ void navProgressCtrl_handleObservation(string selection){ LOG_DEBUG("navProgressCtrl.ctl:navProgressCtrl_handleObservation| percent: "+percent); int finished=period(getCurrentTime())-period(start); + LOG_DEBUG("navProgressCtrl.ctl:navProgressCtrl_handleObservation| finished: "+finished); if (percent > 0) { percentDone = finished/percent; } + if (percentDone > 100) { + LOG_ERROR("navProgressCtrl.ctl:navProgressCtrl_handleObservation| ERROR: Observation exceeds stoptime!! " + selection); + percentDone = 100; + } LOG_DEBUG("navProgressCtrl.ctl:navProgressCtrl_handleObservation| PercentDone: "+percentDone); // change progressBar dpSet(PROGRESSBARACTIONDP,"Update|"+percentDone+"|"+toolText);