From 2ad83c11c083247d8fe7ab5ff8d21407f34c514f Mon Sep 17 00:00:00 2001
From: Arthur Coolen <coolen@astron.nl>
Date: Tue, 18 Jan 2011 12:31:36 +0000
Subject: [PATCH] Bug1365: added angle for HBA tiles to Station panels, added
 extra testprograms to Test

---
 .gitattributes                                |   8 +
 MAC/Navigator2/panels/Hardware/Station.pnl    |  42 +-
 MAC/Navigator2/panels/Test/stringTest.pnl     |  69 +++
 MAC/Navigator2/panels/Test/test2.pnl          | 110 +++++
 .../panels/Test/testDynamicPlacement.pnl      | 415 ++++++++++++++++++
 MAC/Navigator2/panels/Test/testExist.pnl      | 131 ++++++
 MAC/Navigator2/panels/Test/testHBA.pnl        | 222 ++++++++++
 MAC/Navigator2/panels/Test/testclick.pnl      | 108 +++++
 MAC/Navigator2/panels/Test/testdpnames.pnl    |  98 +++++
 MAC/Navigator2/panels/Test/testhtml.pnl       | 145 ++++++
 .../panels/objects/Hardware/Station_HBA.pnl   |  24 +-
 .../panels/objects/Hardware/Station_LBA.pnl   |  26 +-
 .../objects/navigator_viewSelection.pnl       |   2 +-
 13 files changed, 1370 insertions(+), 30 deletions(-)
 create mode 100644 MAC/Navigator2/panels/Test/stringTest.pnl
 create mode 100644 MAC/Navigator2/panels/Test/test2.pnl
 create mode 100644 MAC/Navigator2/panels/Test/testDynamicPlacement.pnl
 create mode 100644 MAC/Navigator2/panels/Test/testExist.pnl
 create mode 100644 MAC/Navigator2/panels/Test/testHBA.pnl
 create mode 100644 MAC/Navigator2/panels/Test/testclick.pnl
 create mode 100644 MAC/Navigator2/panels/Test/testdpnames.pnl
 create mode 100644 MAC/Navigator2/panels/Test/testhtml.pnl

diff --git a/.gitattributes b/.gitattributes
index 1e65316cf1d..c9d73ba5887 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1622,9 +1622,17 @@ MAC/Navigator2/panels/Processes/TBBControl.pnl -text
 MAC/Navigator2/panels/Processes/TBBDriver.pnl -text
 MAC/Navigator2/panels/Reports/LOFAR_System.pnl -text
 MAC/Navigator2/panels/Test/Event_Viewer.pnl -text
+MAC/Navigator2/panels/Test/stringTest.pnl -text
 MAC/Navigator2/panels/Test/test.pnl -text
+MAC/Navigator2/panels/Test/test2.pnl -text
 MAC/Navigator2/panels/Test/testDoubleClick.pnl -text
+MAC/Navigator2/panels/Test/testDynamicPlacement.pnl -text
+MAC/Navigator2/panels/Test/testExist.pnl -text
+MAC/Navigator2/panels/Test/testHBA.pnl -text
 MAC/Navigator2/panels/Test/testStatesetter.pnl -text
+MAC/Navigator2/panels/Test/testclick.pnl -text
+MAC/Navigator2/panels/Test/testdpnames.pnl -text
+MAC/Navigator2/panels/Test/testhtml.pnl -text
 MAC/Navigator2/panels/emptyPanel.pnl -text
 MAC/Navigator2/panels/main.pnl -text
 MAC/Navigator2/panels/navigator.pnl -text
diff --git a/MAC/Navigator2/panels/Hardware/Station.pnl b/MAC/Navigator2/panels/Hardware/Station.pnl
index 689b2f7c0e4..45ac48f85ed 100644
--- a/MAC/Navigator2/panels/Hardware/Station.pnl
+++ b/MAC/Navigator2/panels/Hardware/Station.pnl
@@ -11,8 +11,21 @@ PANEL,-1 -1 1013 750 N "_3DFace" 0
   
   baseDP=g_currentDatapoint;
   
+  if (navFunct_getRingFromStation(sysName) == \"Core\") {
+    isCore=true;
+    isRemote=false;
+    isEurope=false;
+  } else if(navFunct_getRingFromStation(sysName) == \"Remote\") {
+    isCore=false;
+    isRemote=true;
+    isEurope=false;
+  } else {
+    isCore=false;
+    isRemote=false;
+    isEurope=true;
+  }
   strPanelName    = \"antennaField\";
-  strModuleName   = myModuleName();  
+  strModuleName   = myModuleName();   
   
   // get PanelSize to determine scaling and offsets
   if ( panelSize( \"\" , mainpanel_horSize , mainpanel_vertSize) != 0 ) {
@@ -96,6 +109,13 @@ void updatePositions(string dp1, float cX,
   HBASplit=hbasplit;         
   WideLBAs=widelbas;
   
+  dpGet(sysName+\"remoteStation.HBA.HBA0.rotation\",HBA0Angle);
+  if (isCore) {
+    dpGet(sysName+\"remoteStation.HBA.HBA1.rotation\",HBA1Angle);
+  } else {
+    HBA1Angle=0;
+  }
+  
   dyn_string unsortX=dpNames(sysName+txt+\"*.deltaX;\",\"Antenna\");
   dyn_string unsortY=dpNames(sysName+txt+\"*.deltaY;\",\"Antenna\");
   dyn_string unsortZ= dpNames(sysName+txt+\"*.deltaZ;\",\"Antenna\");
@@ -137,6 +157,9 @@ void updatePositions(string dp1, float cX,
 E "#uses \"navPanel.ctl\"
 
 string baseDP=\"\";
+bool isCore=false;
+bool isRemote=false;
+bool isEurope=false;
 int mainpanel_midX;
 int mainpanel_midY;
 dyn_string refNames;
@@ -163,6 +186,8 @@ float centerZ;
 dyn_float antennaOffsetsX;
 dyn_float antennaOffsetsY;
 dyn_float antennaOffsetsZ;
+float HBA0Angle=0;
+float HBA1Angle=0;
 
 string strPanelName;
 string strModuleName;
@@ -189,6 +214,8 @@ void redraw(string mode) {
   int   xPos_AddSymbol;
   int   yPos_AddSymbol;
   string addPanelName;
+  float angle=0;
+
   
   navFunct_clearGlobalLists();
   
@@ -197,8 +224,10 @@ void redraw(string mode) {
   LOG_DEBUG(\"Station.pnl:redraw|Mode: \"+mode);
   if (strpos(mode,\"LBA\") > -1) {
     addPanelName    = \"objects/Hardware/Station_LBA.pnl\";
+    angle=0;
   } else if (strpos(mode,\"HBA\") > -1) {
     addPanelName    = \"objects/Hardware/Station_HBA.pnl\";
+    angle=HBA0Angle;
   }
   
         
@@ -211,7 +240,8 @@ void redraw(string mode) {
     if ( maxXOffsetValue < fabs(antennaOffsetsX[i]) ) maxXOffsetValue = fabs(antennaOffsetsX[i]);
     if ( maxYOffsetValue < fabs(antennaOffsetsY[i]) ) maxYOffsetValue = fabs(antennaOffsetsY[i]);
   }
-
+  
+  
   LOG_DEBUG(\"Station.pnl:redraw|mainpanel_midX: \"+mainpanel_midX);
   LOG_DEBUG(\"Station.pnl:redraw|mainpanel_midY: \"+mainpanel_midY);
   LOG_DEBUG(\"Station.pnl:redraw|maxXOffsetValue: \"+maxXOffsetValue);
@@ -257,7 +287,11 @@ void redraw(string mode) {
       YRCU = 2*i-1 - NRSP*8;
     }
       
-    string xDP=baseDP+\"_PIC_Cabinet\"+navFunct_receiver2Cabinet(XRCU)+\"_Subrack\"+
+    if (isCore && strpos(mode,\"HBA\") > -1) {
+      if (i > 24) angle=HBA1Angle;
+    }
+
+      string xDP=baseDP+\"_PIC_Cabinet\"+navFunct_receiver2Cabinet(XRCU)+\"_Subrack\"+
                navFunct_receiver2Subrack(XRCU)+\"_RSPBoard\"+navFunct_receiver2RSP(XRCU)+\"_RCU\"+XRCU;
     string yDP=baseDP+\"_PIC_Cabinet\"+navFunct_receiver2Cabinet(YRCU)+\"_Subrack\"+
                navFunct_receiver2Subrack(YRCU)+\"_RSPBoard\"+navFunct_receiver2RSP(YRCU)+\"_RCU\"+YRCU;
@@ -279,7 +313,7 @@ void redraw(string mode) {
 		                     \"$aZ:\"  + antennaOffsetsZ[i]),                  // of particular addedpanel
 		      xPos_AddSymbol,                  // Xpos of the AddedSymbol
 		      yPos_AddSymbol,                  // Ypos of the AddedSymbol
-		      0,                               // angle
+		      angle,                           // angle
 		      1    ,1                          // zoomX , zoomY
         ) < 0 ) {
 	  LOG_ERROR(\"Station.pnl:redraw|Error Appending antenna : \" + i + \" in this panel.\");
diff --git a/MAC/Navigator2/panels/Test/stringTest.pnl b/MAC/Navigator2/panels/Test/stringTest.pnl
new file mode 100644
index 00000000000..9d392f6d402
--- /dev/null
+++ b/MAC/Navigator2/panels/Test/stringTest.pnl
@@ -0,0 +1,69 @@
+V 10
+1
+LANG:1 0 
+PANEL,-1 -1 500 400 N "_3DFace" 0
+E E E E E 1 -1 -1 0  30 60
+""0  1
+E E 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 
+14 0
+"TEXT_FIELD1"
+""
+1 30 60 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+ E E
+0 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+0
+1
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 28 58 342 122
+3 "0s" 0 0 0 0 0 -1  E "main()
+{
+  const dyn_string aDS=makeDynString(\"1\",\"2\",\"3\");
+  dyn_string aNewDS;
+  dynAppend(aDS,aNewDS);
+  DebugN(\"1st:\"+aDS);
+  DebugN(\"2nd:\"+aNewDS);
+}" 0
+ E
+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
\ No newline at end of file
diff --git a/MAC/Navigator2/panels/Test/test2.pnl b/MAC/Navigator2/panels/Test/test2.pnl
new file mode 100644
index 00000000000..10b9f500b87
--- /dev/null
+++ b/MAC/Navigator2/panels/Test/test2.pnl
@@ -0,0 +1,110 @@
+V 10
+2
+LANG:1 9 panelname
+LANG:6 9 panelname
+PANEL,-1 -1 533 378 N "_3DFace" 1
+"$panel"
+"main()
+{
+    setValue(\"panelName\",\"text\",$panel);
+    setDP($panel+\"_dp\");
+}" 0
+ E E E E 1 -1 -1 0  70 100
+""0  1
+E "#uses \"test.ctl\"
+
+string itsDP;" 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 
+2
+LANG:1 0 
+LANG:6 0 
+6 0
+"RECTANGLE1"
+""
+1 70 100 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
+2
+LANG:1 0 
+LANG:6 0 
+
+1
+"dashclr"N "_Transparent"
+"main()
+{
+  setValue( \"OBJECT.TEXT\", \"text\", $panel );
+}" 0
+ E 0 1 1 2 1 E 2.857142857142857 0 4.666666666666667 -130 -366.6666666666667 1 E 70 100 140 130
+1 6 3 "" 0
+0
+2 5
+"panelName"
+""
+1 80 110 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+ E E
+4 0 0 0 0 0
+E E E
+0
+2
+LANG:1 0 
+LANG:6 0 
+
+1
+"dashclr"N "_Transparent"
+E E 0 1 1 2 1 E 1.566666666666666 0 1 -123.6666666666666 0 1 E 130 110 156 124
+0 2 2 "0s" 0 0 0 192 0 0  130 110 1
+2
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+LANG:6 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+2
+LANG:1 4 name
+LANG:6 4 name
+0
+LAYER, 1 
+2
+LANG:1 0 
+LANG:6 0 
+0
+LAYER, 2 
+2
+LANG:1 0 
+LANG:6 0 
+0
+LAYER, 3 
+2
+LANG:1 0 
+LANG:6 0 
+0
+LAYER, 4 
+2
+LANG:1 0 
+LANG:6 0 
+0
+LAYER, 5 
+2
+LANG:1 0 
+LANG:6 0 
+0
+LAYER, 6 
+2
+LANG:1 0 
+LANG:6 0 
+0
+LAYER, 7 
+2
+LANG:1 0 
+LANG:6 0 
+0
+3 3 "OBJECT"
+"Test\\testclick.pnl" 100 210 T 3 U 
+1
+"$object""$panel"
+0
\ No newline at end of file
diff --git a/MAC/Navigator2/panels/Test/testDynamicPlacement.pnl b/MAC/Navigator2/panels/Test/testDynamicPlacement.pnl
new file mode 100644
index 00000000000..97e947b4f4a
--- /dev/null
+++ b/MAC/Navigator2/panels/Test/testDynamicPlacement.pnl
@@ -0,0 +1,415 @@
+V 10
+1
+LANG:1 0 
+PANEL,-1 -1 1013 747 N "_3DFace" 0
+"main()
+{
+  
+  strPanelName    = \"antennaField\";
+  strModuleName   = myModuleName();  
+  
+  // get PanelSize to determine scaling and offsets
+  if ( panelSize( \"\" , mainpanel_horSize , mainpanel_vertSize) != 0 ) {
+    DebugN(\"Station.pnl:initialize|Error: couldn't define the size of the mainPanel : \" + strPanelName);
+  } else {
+    DebugN(\"Mainpanel Xsize: \",mainpanel_horSize);
+    DebugN(\"Mainpanel Ysize: \",mainpanel_vertSize);    
+    calcViewboxSize();
+  }  
+  
+  initValues();
+}
+  
+" 0
+ E E E E 1 -1 -1 0  0 0
+""0  1
+E "#uses \"navPanel.ctl\"
+
+string baseDP=\"\";
+int mainpanel_midX;
+int mainpanel_midY;
+dyn_string refNames;
+dyn_string arrays;
+int mainpanel_horSize; 
+int mainpanel_vertSize;
+int symbolSize=44;
+float zoomFactor=1;
+int   shiftValue=25;
+int   shiftFactorX=0;
+int   shiftFactorY=0;
+int   test=1;
+
+int NRSP=-1;
+int NTBB=-1;
+int NLBA=-1;
+int NHBA=-1;
+bool HBASplit=false;
+bool WideLBAs=false;
+float angle=0;
+
+
+float centerX;
+float centerY;
+float centerZ;
+dyn_float antennaOffsetsX;
+dyn_float antennaOffsetsY;
+dyn_float antennaOffsetsZ;
+dyn_dyn_float rotMatrix;
+float HBA0Angle=0;
+float HBA1Angle=0;
+
+string strPanelName;
+string strModuleName;
+
+void initValues() { 
+  centerX = 3826937.852669377;
+  centerY = 460938.478138958;
+  centerZ  = 5064630.668;
+
+    
+  rotMatrix[1]=makeDynFloat(-0.1195950000,-0.7919540000,0.5987530000);  
+  rotMatrix[2]=makeDynFloat(0.9928230000,-0.0954190000,0.0720990000);  
+  rotMatrix[3]=makeDynFloat(0.0000330000,0.6030780000,0.7976820000);  
+  
+     
+
+  if (test==1) {
+    antennaOffsetsX[1]=0;
+    antennaOffsetsX[2]=0;
+    antennaOffsetsX[3]=40;
+    antennaOffsetsX[4]=40;
+    antennaOffsetsY[1]=0;
+    antennaOffsetsY[2]=40;
+    antennaOffsetsY[3]=40;
+    antennaOffsetsY[4]=0; 
+    antennaOffsetsZ[1]=0;
+    antennaOffsetsZ[2]=0;
+    antennaOffsetsZ[3]=0;
+    antennaOffsetsZ[4]=0; 
+
+  } else if (test==2) {
+    antennaOffsetsX[1]=-49.183149;
+    antennaOffsetsX[2]=-45.894149;
+    antennaOffsetsX[3]=-37.254149;
+    antennaOffsetsX[4]=-33.965149;
+    antennaOffsetsY[1]=36.069080;
+    antennaOffsetsY[2]=50.681080;
+    antennaOffsetsY[3]=31.176081;
+    antennaOffsetsY[4]=45.789081; 
+    antennaOffsetsZ[1]=33.657709;
+    antennaOffsetsZ[2]=29.868709;
+    antennaOffsetsZ[3]=25.145709;
+    antennaOffsetsZ[4]=21.356709; 
+  } else if (test==3) {
+    antennaOffsetsX[1]=(rotMatrix[1][1]*-49.183149)+(rotMatrix[1][2]*36.069080)+(rotMatrix[1][3]*33.657709);
+    antennaOffsetsX[2]=(rotMatrix[1][1]*-45.894149)+(rotMatrix[1][2]*50.681080)+(rotMatrix[1][3]*29.868709);
+    antennaOffsetsX[3]=(rotMatrix[1][1]*-37.254149)+(rotMatrix[1][2]*31.176081)+(rotMatrix[1][3]*25.145709);
+    antennaOffsetsX[4]=(rotMatrix[1][1]*-33.965149)+(rotMatrix[1][2]*45.789081)+(rotMatrix[1][3]*21.356709);
+    antennaOffsetsY[1]=(rotMatrix[2][1]*-49.183149)+(rotMatrix[2][2]*36.069080)+(rotMatrix[2][3]*33.657709);
+    antennaOffsetsY[2]=(rotMatrix[2][1]*-45.894149)+(rotMatrix[2][2]*50.681080)+(rotMatrix[2][3]*29.868709);
+    antennaOffsetsY[3]=(rotMatrix[2][1]*-37.254149)+(rotMatrix[2][2]*31.176081)+(rotMatrix[2][3]*25.145709);
+    antennaOffsetsY[4]=(rotMatrix[2][1]*-33.965149)+(rotMatrix[2][2]*45.789081)+(rotMatrix[2][3]*21.356709); 
+    antennaOffsetsZ[1]=(rotMatrix[3][1]*-49.183149)+(rotMatrix[3][2]*36.069080)+(rotMatrix[3][3]*33.657709);
+    antennaOffsetsZ[2]=(rotMatrix[3][1]*-45.894149)+(rotMatrix[3][2]*50.681080)+(rotMatrix[3][3]*29.868709);
+    antennaOffsetsZ[3]=(rotMatrix[3][1]*-37.254149)+(rotMatrix[3][2]*31.176081)+(rotMatrix[3][3]*25.145709);
+    antennaOffsetsZ[4]=(rotMatrix[3][1]*-33.965149)+(rotMatrix[3][2]*45.789081)+(rotMatrix[3][3]*21.356709);
+  } else if (test==4) {
+    antennaOffsetsX[1]=(rotMatrix[1][1]/-49.183149)+(rotMatrix[1][2]/36.069080)+(rotMatrix[1][3]/33.657709);
+    antennaOffsetsX[2]=(rotMatrix[1][1]/-45.894149)+(rotMatrix[1][2]/50.681080)+(rotMatrix[1][3]/29.868709);
+    antennaOffsetsX[3]=(rotMatrix[1][1]/-37.254149)+(rotMatrix[1][2]/31.176081)+(rotMatrix[1][3]/25.145709);
+    antennaOffsetsX[4]=(rotMatrix[1][1]/-33.965149)+(rotMatrix[1][2]/45.789081)+(rotMatrix[1][3]/21.356709);
+    antennaOffsetsY[1]=(rotMatrix[2][1]/-49.183149)+(rotMatrix[2][2]/36.069080)+(rotMatrix[2][3]/33.657709);
+    antennaOffsetsY[2]=(rotMatrix[2][1]/-45.894149)+(rotMatrix[2][2]/50.681080)+(rotMatrix[2][3]/29.868709);
+    antennaOffsetsY[3]=(rotMatrix[2][1]/-37.254149)+(rotMatrix[2][2]/31.176081)+(rotMatrix[2][3]/25.145709);
+    antennaOffsetsY[4]=(rotMatrix[2][1]/-33.965149)+(rotMatrix[2][2]/45.789081)+(rotMatrix[2][3]/21.356709); 
+    antennaOffsetsZ[1]=(rotMatrix[3][1]/-49.183149)+(rotMatrix[3][2]/36.069080)+(rotMatrix[3][3]/33.657709);
+    antennaOffsetsZ[2]=(rotMatrix[3][1]/-45.894149)+(rotMatrix[3][2]/50.681080)+(rotMatrix[3][3]/29.868709);
+    antennaOffsetsZ[3]=(rotMatrix[3][1]/-37.254149)+(rotMatrix[3][2]/31.176081)+(rotMatrix[3][3]/25.145709);
+    antennaOffsetsZ[4]=(rotMatrix[3][1]/-33.965149)+(rotMatrix[3][2]/45.789081)+(rotMatrix[3][3]/21.356709);
+  } else if (test==5) {
+    antennaOffsetsX[1]=(rotMatrix[1][1]*-49.183149)+(rotMatrix[2][1]*36.069080)+(rotMatrix[3][1]*33.657709);
+    antennaOffsetsX[2]=(rotMatrix[1][1]*-45.894149)+(rotMatrix[2][1]*50.681080)+(rotMatrix[3][1]*29.868709);
+    antennaOffsetsX[3]=(rotMatrix[1][1]*-37.254149)+(rotMatrix[2][1]*31.176081)+(rotMatrix[3][1]*25.145709);
+    antennaOffsetsX[4]=(rotMatrix[1][1]*-33.965149)+(rotMatrix[2][1]*45.789081)+(rotMatrix[3][1]*21.356709);
+    antennaOffsetsY[1]=(rotMatrix[1][2]*-49.183149)+(rotMatrix[2][2]*36.069080)+(rotMatrix[3][2]*33.657709);
+    antennaOffsetsY[2]=(rotMatrix[1][2]*-45.894149)+(rotMatrix[2][2]*50.681080)+(rotMatrix[3][2]*29.868709);
+    antennaOffsetsY[3]=(rotMatrix[1][2]*-37.254149)+(rotMatrix[2][2]*31.176081)+(rotMatrix[3][2]*25.145709);
+    antennaOffsetsY[4]=(rotMatrix[1][2]*-33.965149)+(rotMatrix[2][2]*45.789081)+(rotMatrix[3][2]*21.356709); 
+    antennaOffsetsZ[1]=(rotMatrix[1][3]*-49.183149)+(rotMatrix[2][2]*36.069080)+(rotMatrix[3][3]*33.657709);
+    antennaOffsetsZ[2]=(rotMatrix[1][3]*-45.894149)+(rotMatrix[2][3]*50.681080)+(rotMatrix[3][3]*29.868709);
+    antennaOffsetsZ[3]=(rotMatrix[1][3]*-37.254149)+(rotMatrix[2][3]*31.176081)+(rotMatrix[3][3]*25.145709);
+    antennaOffsetsZ[4]=(rotMatrix[1][3]*-33.965149)+(rotMatrix[2][3]*45.789081)+(rotMatrix[3][3]*21.356709);
+  }
+  DebugN(\"X,Y,Z 1:\",antennaOffsetsX[1],\" \",antennaOffsetsY[1],\" \",antennaOffsetsZ[1]);
+  DebugN(\"X,Y,Z 2:\",antennaOffsetsX[2],\" \",antennaOffsetsY[2],\" \",antennaOffsetsZ[2]);
+  DebugN(\"X,Y,Z 3:\",antennaOffsetsX[3],\" \",antennaOffsetsY[3],\" \",antennaOffsetsZ[3]);
+  DebugN(\"X,Y,Z 4:\",antennaOffsetsX[4],\" \",antennaOffsetsY[4],\" \",antennaOffsetsZ[4]);
+  
+  redraw(\"HBA\");  
+}
+
+void clearRefNames() {
+  // remove all symbols because new ones will be added
+  for (int i=1; i <= dynlen(refNames); i++) {
+    removeSymbol(strModuleName,\"\",refNames[i]);
+  }
+  dynClear(refNames);
+}
+
+void calcViewboxSize() {
+    mainpanel_midX = floor( (mainpanel_horSize/2)-(symbolSize/2) );
+    mainpanel_midY = floor( (mainpanel_vertSize/2)-(symbolSize/2) );
+    DebugN(\"midX: \"+mainpanel_midX);
+    DebugN(\"midY: \"+mainpanel_midY);
+}
+
+void redraw(string mode) {
+  
+  float maxXOffsetValue=1.;
+  float maxYOffsetValue=1.;
+  float expandFactorX;
+  float expandFactorY;
+  int   xPos_AddSymbol;
+  int   yPos_AddSymbol;
+  string addPanelName;
+  
+  
+  DebugN(\"Station.pnl:redraw|Mode: \"+mode);
+
+  addPanelName    = \"Test/testHBA.pnl\";
+  
+        
+  if (dynlen(refNames) > 0) {
+    clearRefNames();
+  }
+   
+  // determine max values and calculate scaling factors
+  for (int i=1; i<= dynlen(antennaOffsetsX); i++) { 
+    if ( maxXOffsetValue < fabs(antennaOffsetsX[i]) ) maxXOffsetValue = fabs(antennaOffsetsX[i]);
+    if ( maxYOffsetValue < fabs(antennaOffsetsY[i]) ) maxYOffsetValue = fabs(antennaOffsetsY[i]);
+  }
+
+  DebugN(\"Station.pnl:redraw|mainpanel_midX: \"+mainpanel_midX);
+  DebugN(\"Station.pnl:redraw|mainpanel_midY: \"+mainpanel_midY);
+  DebugN(\"Station.pnl:redraw|maxXOffsetValue: \"+maxXOffsetValue);
+  DebugN(\"Station.pnl:redraw|maxYOffsetValue: \"+maxYOffsetValue);
+  
+  expandFactorX = (floor(mainpanel_midX / maxXOffsetValue))*zoomFactor;
+  expandFactorY = (floor(mainpanel_midY / maxYOffsetValue))*zoomFactor;
+  
+  DebugN(\"Station.pnl:redraw|expandFactorX: \"+expandFactorX);
+  DebugN(\"Station.pnl:redraw|expandFactorY: \"+expandFactorY);
+  
+  // To make the field a bit more square we will multiply all by the smallest expandfactor
+  if (expandFactorX > expandFactorY) {
+    expandFactorX=expandFactorY;
+  } else {
+    expandFactorY=expandFactorX;
+  }
+
+ DebugN(\"Station.pnl:redraw|Final expandfactors: \" + expandFactorX+\" \"+ expandFactorY);
+  
+  // set the hardware selectable items
+  // For this panel the Antenna's in a choosen layout should be selectable 
+  
+  // Replace the X & Y grid lines to the calculated center 
+  Yaxis.foreCol(\"STD_windows_available\");
+  Xaxis.foreCol(\"STD_windows_available\");
+  int xval=mainpanel_midX+shiftFactorX;
+  int yval=mainpanel_midY+shiftFactorY;
+  
+  Yaxis.position(xval , mainpanel_horSize );
+  Xaxis.position(0              , yval    );
+  
+  //  now start adding symbols to panel
+  int ref =   1;
+  for (int i = 1; i <= dynlen(antennaOffsetsX); i++ ) {
+    int XRCU;
+    int YRCU;
+    if (i-1 < NRSP*8/2) {
+      XRCU = 2 * (i-1);
+      YRCU = XRCU+1;
+    } else {
+      XRCU = 2*i - NRSP*8;
+      YRCU = 2*i-1 - NRSP*8;
+    }
+      
+    string xDP=baseDP+\"_PIC_Cabinet\"+navFunct_receiver2Cabinet(XRCU)+\"_Subrack\"+
+               navFunct_receiver2Subrack(XRCU)+\"_RSPBoard\"+navFunct_receiver2RSP(XRCU)+\"_RCU\"+XRCU;
+    string yDP=baseDP+\"_PIC_Cabinet\"+navFunct_receiver2Cabinet(YRCU)+\"_Subrack\"+
+               navFunct_receiver2Subrack(YRCU)+\"_RSPBoard\"+navFunct_receiver2RSP(YRCU)+\"_RCU\"+YRCU;
+    if (i-1 < NRSP*8/2) {
+      dynAppend(g_RCUList,XRCU);
+      dynAppend(g_RCUList,YRCU);
+    }
+    refNames[ref]=\"ant\"+(ref);
+    xPos_AddSymbol = (mainpanel_midX+shiftFactorX) + (antennaOffsetsX[i] * expandFactorX);
+    yPos_AddSymbol = (mainpanel_midY+shiftFactorY) - (antennaOffsetsY[i] * expandFactorY);
+      
+    if (  addSymbol(  strModuleName,                   // Stay in this modul
+                                  \"\",                  // Name of this panel
+		      addPanelName,                    // Panel to add
+		      refNames[ref],                     // Ref of the addedPanel
+		      makeDynString( \"$aNr:\" + (i-1) ,     // Define all $values
+		                     \"$aX:\" + antennaOffsetsX[i]  ,    
+		                     \"$aY:\" + antennaOffsetsY[i]  ,
+		                     \"$aZ:\"  + antennaOffsetsZ[i]),                  // of particular addedpanel
+		      xPos_AddSymbol,                  // Xpos of the AddedSymbol
+		      yPos_AddSymbol,                  // Ypos of the AddedSymbol
+		      angle,                           // angle
+		      1    ,1                          // zoomX , zoomY
+        ) < 0 ) {
+	  DebugN(\"Station.pnl:redraw|Error Appending antenna : \" + i + \" in this panel.\");
+          }
+    ref++;
+  }
+ 
+}
+" 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 
+4 0
+"Xaxis"
+""
+1 249 100 E E E 1 E 1 E N "_WindowText" E N {255,255,255} E E
+ E E
+1 0 0 0 0 0
+E E E
+0
+3
+LANG:1 0 
+LANG:6 0 
+LANG:30 0 
+
+1
+"dashclr"N "_Transparent"
+E E 0 1 1 0 1 E  0 100 1499 100
+4 1
+"Yaxis"
+""
+1 100 1250 E E E 1 E 1 E N "_WindowText" E N {255,255,255} E E
+ E E
+3 0 0 0 0 0
+E E E
+0
+3
+LANG:1 0 
+LANG:6 0 
+LANG:30 0 
+
+1
+"dashclr"N "_Transparent"
+E E 0 1 1 0 1 E  100 1000 100 1
+21 2
+"SPIN_BUTTON1"
+""
+1 880 30 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+ E E
+4 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+0
+1
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 878 28 1002 49
+0
+
+E
+"main()
+{
+  angle=this.text();
+  DebugN(\"New angle: \", angle);
+  redraw(\"HBA\");
+}" 0
+
+E
+
+N 0 360 10 0 1 1
+22 3
+"COMBO_BOX1"
+""
+1 880 10 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+ E E
+5 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+0
+1
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-*-80-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 878 8 1002 29
+5
+1
+LANG:1 10 testvalues
+
+0
+1
+LANG:1 13 direct deltas
+
+0
+1
+LANG:1 23 deltas * rotationmatrix
+
+0
+1
+LANG:1 23 deltas / ratationmatrix
+
+0
+1
+LANG:1 32 deltas * rotationmatrix top down
+
+0
+
+E
+"main()
+{
+  test=this.selectedPos();
+  DebugN(test,\" \", this.selectedText());
+  initValues();
+}" 0
+
+E
+ 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
\ No newline at end of file
diff --git a/MAC/Navigator2/panels/Test/testExist.pnl b/MAC/Navigator2/panels/Test/testExist.pnl
new file mode 100644
index 00000000000..56ad5b0f6ac
--- /dev/null
+++ b/MAC/Navigator2/panels/Test/testExist.pnl
@@ -0,0 +1,131 @@
+V 10
+1
+LANG:1 4 text
+PANEL,-1 -1 399 400 N "_3DFace" 0
+"main()
+{
+  string aDP=\"CS010:LOFAR\";
+  // Init the connection Watchdog
+  GCFCWD_Init();
+  Debug(\"Does \"+aDP+\".status.state exist?\");
+  if (dpExists(aDP+\".status.state\")) {
+    DebugN(\"---->Yes\");
+    DebugN(\"Can I connect?\");
+    if (dpConnect(\"updateState\",true,aDP + \".status.state\", aDP + \".status.state:_online.._invalid\") == -1) {
+      DebugN(\"Can connect---->No\");
+      setValue(\"stateBorder\",\"backCol\",\"_dpdoesnotexist\");
+    } else if (!navFunct_dpReachable(aDP)) {
+      DebugN(\"Can connect---->Yes, but system offline\");
+      updateState(\"\",0,\"\",true);
+    } else {
+      DebugN(\"Can connect--->Yes\");    
+    }
+  }else {
+    DebugN(\"--->No\");
+    setValue(\"stateBorder\",\"backCol\",\"_dpdoesnotexist\");
+  }
+}
+
+bool navFunct_dpReachable(string aDP) {
+  
+  // check if system is in our actibe connections. (if not dpExists should hav given false ealier...
+  int iPos = dynContains ( g_connections[ \"NAME\" ],dpSubStr(aDP,DPSUB_SYS));
+  if (iPos <= 0) {
+    return false;
+  }
+  
+  // return state of the connection
+  return g_connections[ \"UP\" ][iPos];
+}
+
+
+void updateState(string dp1, int state,
+                      string dp2, bool invalid) {
+  
+  DebugN(\"Callback with dp:\"+dp1+\" state: \" + state+ \" invalid-->\"+invalid);
+    	string SymbolCol;
+	
+  	if (invalid) {
+    	  SymbolCol = \"Lofar_invalid\";
+        }
+        if (dp1==\"\") {
+          SymbolCol= \"Lofar_dpOffline\";
+        } else if (!invalid){
+    	  SymbolCol = \"green\";
+  	}
+        setValue(\"text\", \"text\", state);
+  	setValue(\"stateBorder\", \"backCol\", SymbolCol);
+        
+}" 0
+ E E E E 1 -1 -1 0  65 35
+""0  1
+E "#uses \"GCFCWD.ctl\"" 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 
+7 0
+"stateBorder"
+""
+1 65 35 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 2.333333333333334 0 2.333333333333334 48.33333333333331 -21.66666666666667 1 E 65 35 15 15
+14 2
+"text"
+""
+1 50 60 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+ E E
+2 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+0
+1
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 48 58 122 82
+3 "0s" 0 0 0 0 0 -1  E E E
+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
\ No newline at end of file
diff --git a/MAC/Navigator2/panels/Test/testHBA.pnl b/MAC/Navigator2/panels/Test/testHBA.pnl
new file mode 100644
index 00000000000..8dcf0b0dc5e
--- /dev/null
+++ b/MAC/Navigator2/panels/Test/testHBA.pnl
@@ -0,0 +1,222 @@
+V 10
+3
+LANG:1 4 aHBA
+LANG:6 0 
+LANG:30 0 
+PANEL,-1 -1 241 145 N "_3DFace" 1
+"$aNr"
+"main()
+{
+}
+
+" 0
+ E E E E 1 0 0 0  20 20
+""0  1
+E "#uses \"navPanel.ctl\"
+
+string baseDP;
+string baseDPX;
+string baseDPY;
+string RCUXDP;
+string RCUYDP;
+
+int    cabinet;
+int    subrack;
+int    tbboard;
+int    rspboard;
+int    curXRCU;
+int    curYRCU;
+int    curHBA;
+bool   bDoubleClicked  = false;
+" 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 6 Layer1
+4 3
+"RCUX"
+""
+1 19 19 E E E 1 E 1 E N "_WindowText" E N {255,255,255} E E
+ "main()
+{
+}" 0
+ "main()
+{
+}" 0
+
+2 0 0 0 0 0
+E E E
+0
+3
+LANG:1 0 
+LANG:6 0 
+LANG:30 0 
+
+1
+"dashclr"N "_Transparent"
+E "main()
+{
+}" 0
+ 0 4 1 0 1 E  0 40 40 0
+4 2
+"RCUY"
+""
+1 19 19 E E E 1 E 1 E N "_WindowText" E N {255,255,255} E E
+ "main()
+{
+}" 0
+ "main()
+{
+}" 0
+
+1 0 0 0 0 0
+E E E
+0
+3
+LANG:1 0 
+LANG:6 0 
+LANG:30 0 
+
+1
+"dashclr"N "_Transparent"
+E "main()
+{
+}" 0
+ 0 4 1 0 1 E  40 40 0 0
+6 6
+"antennaBG"
+""
+1 60 90 E E E 1 E 1 E N "_3DText" E N "_Transparent" E E
+ "main()
+{
+}" 0
+ "main()
+{
+}" 0
+
+5 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+1
+"dashclr"N "_Transparent"
+E "main()
+{
+}" 0
+ 0 1 1 2 1 E 1 0 1 -40 -70 1 E 40 70 80 110
+6 8
+"antennaHighlight"
+""
+1 96 66 E E E 1 E 1 E N "_Transparent" E N "Lofar_highLight" E E
+ "main()
+{
+}" 0
+ "main()
+{
+}" 0
+
+7 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+1
+"dashclr"N "_Transparent"
+"main()
+{
+}
+" 0
+ "main()
+{
+}" 0
+ 0 1 1 2 1 E 1 0 1 -83 -53 1 E 90 60 116 86
+6 9
+"HBA"
+""
+1 15 15 E E E 1 E 1 E N "_Transparent" E N "White" E E
+ "main()
+{
+}" 0
+ "main()
+{
+}" 0
+
+8 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+1
+"dashclr"N "_Transparent"
+E "main()
+{
+}" 0
+ 0 1 1 2 1 E 1 0 1 -5 -5 1 E 15 15 35 35
+2 5
+"aNr"
+""
+1 8 11 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+ E E
+3 0 0 0 0 0
+E E E
+0
+3
+LANG:1 0 
+LANG:6 0 
+LANG:30 0 
+
+1
+"dashclr"N "_Transparent"
+"main()
+{
+  setValue(\"aNr\",\"text\",$aNr);
+}" 0
+ E 0 1 1 0 1 E U  0 E 14 11 26 28
+0 2 0 "0s" 0 0 0 193 0 0  20 11 1
+3
+LANG:1 87 -*-Arial-bold-r-normal-*-13-*-100-100-*-*-iso8859-1|-13,0,0,0,697,0,0,0,0,0,0,0,0,Arial
+LANG:6 105 -microsoft windows-Arial-bold-r-normal-*-*-120-100-100-*-*-iso8859-1|-13,0,0,0,700,0,0,0,0,3,2,1,34,Arial
+LANG:30 105 -microsoft windows-Arial-bold-r-normal-*-*-120-100-100-*-*-iso8859-1|-13,0,0,0,700,0,0,0,0,3,2,1,34,Arial
+0 ""
+3
+LANG:1 2 nr
+LANG:6 2 nr
+LANG:30 2 nr
+0
+LAYER, 1 
+1
+LANG:1 6 Layer2
+0
+LAYER, 2 
+1
+LANG:1 6 Layer3
+0
+LAYER, 3 
+1
+LANG:1 6 Layer4
+0
+LAYER, 4 
+1
+LANG:1 6 Layer5
+0
+LAYER, 5 
+1
+LANG:1 6 Layer6
+0
+LAYER, 6 
+1
+LANG:1 6 Layer7
+0
+LAYER, 7 
+1
+LANG:1 6 Layer8
+0
+0
\ No newline at end of file
diff --git a/MAC/Navigator2/panels/Test/testclick.pnl b/MAC/Navigator2/panels/Test/testclick.pnl
new file mode 100644
index 00000000000..46d3a96c54f
--- /dev/null
+++ b/MAC/Navigator2/panels/Test/testclick.pnl
@@ -0,0 +1,108 @@
+V 10
+2
+LANG:1 0 
+LANG:6 0 
+PANEL,-1 -1 500 408 N "_3DFace" 1
+"$object"
+E E E E E 1 -1 -1 0  50 40
+""0  1
+E "#uses \"test.ctl\"    
+    
+void rClick() {
+  DebugN(\"Object: \"+$object+ \" DP: \"+itsDP);
+}" 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 
+2
+LANG:1 0 
+LANG:6 0 
+7 0
+"ELLIPSE1"
+""
+1 50 40 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E
+ "main()
+{
+  rClick();
+}" 0
+ E
+0 0 0 0 0 0
+E E E
+0
+2
+LANG:1 0 
+LANG:6 0 
+
+1
+"dashclr"N "_Transparent"
+E "main()
+{
+  string strText;
+  
+  getValue( \"TEXT\", \"text\", strText );
+  DebugN( strText );
+}" 0
+ 0 1 1 2 1 E U  1 E 50 40 10 10
+2 2
+"TEXT"
+""
+1 90 30 E E E 1 E 0 E N "_WindowText" E N "_Window" E E
+ E E
+2 0 0 0 0 0
+E E E
+0
+2
+LANG:1 0 
+LANG:6 0 
+
+1
+"dashclr"N "_Transparent"
+E E 0 1 1 2 1 E U  1 E 90 30 150 50
+1 2 2 "0s" 0 0 0 64 0 0  90 30 1
+2
+LANG:1 99 -*-MS Shell Dlg-*-r-normal-*-*-160-100-100-*-*-iso8859-1|-21,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+LANG:6 98 -*-MS Shell Dlg-*-r-normal-*-*-80-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+2
+LANG:1 0 
+LANG:6 0 
+0
+LAYER, 1 
+2
+LANG:1 0 
+LANG:6 0 
+0
+LAYER, 2 
+2
+LANG:1 0 
+LANG:6 0 
+0
+LAYER, 3 
+2
+LANG:1 0 
+LANG:6 0 
+0
+LAYER, 4 
+2
+LANG:1 0 
+LANG:6 0 
+0
+LAYER, 5 
+2
+LANG:1 0 
+LANG:6 0 
+0
+LAYER, 6 
+2
+LANG:1 0 
+LANG:6 0 
+0
+LAYER, 7 
+2
+LANG:1 0 
+LANG:6 0 
+0
+0
\ No newline at end of file
diff --git a/MAC/Navigator2/panels/Test/testdpnames.pnl b/MAC/Navigator2/panels/Test/testdpnames.pnl
new file mode 100644
index 00000000000..f69401ca38f
--- /dev/null
+++ b/MAC/Navigator2/panels/Test/testdpnames.pnl
@@ -0,0 +1,98 @@
+V 10
+1
+LANG:1 0 
+PANEL,-1 -1 400 400 N "_3DFace" 0
+"main()
+{
+  aS = \"LOFAR_ObsSW_Observation1234_OnlineCtrl.status.state\";
+  setValue(\"TEXT_FIELD1\",\"text\",aS);
+
+}" 0
+ E E E E 1 -1 -1 0  10 20
+""0  1
+E "string aS=\"\";" 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 
+14 0
+"TEXT_FIELD1"
+""
+1 10 20 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+ E E
+0 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+0
+1
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 8 18 382 52
+3 "0s" 0 0 0 0 0 -1  E E E
+13 1
+"PUSH_BUTTON1"
+""
+1 150 130 E E E 1 E 1 E N "_ButtonText" E N "_Button" E E
+ E E
+1 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+0
+1
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 148 128 272 154
+
+T 
+1
+LANG:1 12 PUSH_BUTTON1
+"main()
+{
+  getValue(\"TEXT_FIELD1\",\"text\",aS);
+  string aS1=\"\";
+  string aS2=\"\";
+  int nr=-1;
+  string aFS = sscanf(aS,\"LOFAR_ObsSW_Observation%d_%s\",nr,aS2);
+  DebugN(\"Found:   nr: \"+nr+\"\\n aS2: \"+aS2);
+}" 0
+ E E E
+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
\ No newline at end of file
diff --git a/MAC/Navigator2/panels/Test/testhtml.pnl b/MAC/Navigator2/panels/Test/testhtml.pnl
new file mode 100644
index 00000000000..76a6599d051
--- /dev/null
+++ b/MAC/Navigator2/panels/Test/testhtml.pnl
@@ -0,0 +1,145 @@
+V 10
+1
+LANG:1 0 
+PANEL,-1 -1 986 620 N "_3DFace" 1
+"$name"
+E E E E E 1 -1 -1 0  40 40
+""0  1
+E E 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 
+14 0
+"TEXT_FIELD1"
+""
+1 20 20 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+ E E
+0 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+0
+1
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 18 18 292 52
+3 "0s" 0 0 0 0 0 -1  E E E
+13 1
+"PUSH_BUTTON1"
+""
+1 340 80 E E E 1 E 1 E N "_ButtonText" E N "_Button" E E
+ E E
+1 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+0
+1
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 338 78 442 82
+
+T 
+1
+LANG:1 12 PUSH_BUTTON1
+E E E E
+13 2
+"PUSH_BUTTON2"
+""
+1 220 90 E E E 1 E 1 E N "_ButtonText" E N "_Button" E E
+ E E
+2 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+0
+1
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 218 88 342 114
+
+T 
+1
+LANG:1 12 PUSH_BUTTON2
+E "main()
+{
+  string txt;
+  getValue(\"TEXT_FIELD1\",\"text\",txt);
+  
+  std_help(txt,true);
+  
+}" 0
+ E E
+25 3
+"TABLE1"
+""
+1 50 140 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+ E E
+3 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+0
+1
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 48 138 682 262
+EE 1 0 1 0 0 
+14 14 10 10
+1
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+0 2 1 1 7
+1 0
+1 4 0 "" 9
+0
+1 5 0 "" 11
+0
+1 6 0 "" 16
+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 0 "PANEL_REF1"
+"objects\\navigator_alerts.pnl" 0 350 T 4 U 
+1
+"$name""$name"
+0
\ No newline at end of file
diff --git a/MAC/Navigator2/panels/objects/Hardware/Station_HBA.pnl b/MAC/Navigator2/panels/objects/Hardware/Station_HBA.pnl
index fbdd13d059f..4ccde1ce6f5 100644
--- a/MAC/Navigator2/panels/objects/Hardware/Station_HBA.pnl
+++ b/MAC/Navigator2/panels/objects/Hardware/Station_HBA.pnl
@@ -192,7 +192,7 @@ LANG:1 6 Layer1
 4 3
 "RCUX"
 ""
-1 5 45 E E E 1 E 1 E N "_WindowText" E N {255,255,255} E E
+1 19 19 E E E 1 E 1 E N "_WindowText" E N {255,255,255} E E
  "main()
 {
   rClick();
@@ -216,11 +216,11 @@ E "main()
 {
   click();
 }" 0
- 0 4 1 0 1 E  5 45 45 5
+ 0 4 1 0 1 E  0 40 40 0
 4 2
 "RCUY"
 ""
-1 45 45 E E E 1 E 1 E N "_WindowText" E N {255,255,255} E E
+1 19 19 E E E 1 E 1 E N "_WindowText" E N {255,255,255} E E
  "main()
 {
   rclick();
@@ -244,11 +244,11 @@ E "main()
 {
   click();
 }" 0
- 0 4 1 0 1 E  45 45 5 5
+ 0 4 1 0 1 E  40 40 0 0
 6 6
 "antennaBG"
 ""
-1 40 70 E E E 1 E 1 E N "_3DText" E N "_Transparent" E E
+1 60 90 E E E 1 E 1 E N "_3DText" E N "_Transparent" E E
  "main()
 {
   rClick();
@@ -270,11 +270,11 @@ E "main()
 {
   click();
 }" 0
- 0 1 1 2 1 E 1 0 1 -35 -65 1 E 40 70 80 110
+ 0 1 1 2 1 E 1 0 1 -40 -70 1 E 40 70 80 110
 6 8
 "antennaHighlight"
 ""
-1 90 60 E E E 1 E 1 E N "_Transparent" E N "Lofar_highLight" E E
+1 96 66 E E E 1 E 1 E N "_Transparent" E N "Lofar_highLight" E E
  "main()
 {
   rClick();
@@ -314,7 +314,7 @@ void StationCallback(string dp1, bool aTrig) {
 {
   click();
 }" 0
- 0 1 1 2 1 E 1 0 1 -78 -48 1 E 90 60 116 86
+ 0 1 1 2 1 E 1 0 1 -83 -53 1 E 90 60 116 86
 6 9
 "HBA"
 ""
@@ -340,11 +340,11 @@ E "main()
 {
   click();
 }" 0
- 0 1 1 2 1 E U  1 E 15 15 35 35
+ 0 1 1 2 1 E 1 0 1 -5 -5 1 E 15 15 35 35
 2 5
 "aNr"
 ""
-1 24 16 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+1 8 11 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
  "main()
 {
   rClick();
@@ -372,8 +372,8 @@ LANG:30 0
 {
   click();
 }" 0
- 0 1 1 0 1 E U  0 E 18 16 30 33
-0 2 0 "0s" 0 0 0 193 0 0  24 16 1
+ 0 1 1 0 1 E U  0 E 14 11 26 28
+0 2 0 "0s" 0 0 0 193 0 0  20 11 1
 3
 LANG:1 87 -*-Arial-bold-r-normal-*-13-*-100-100-*-*-iso8859-1|-13,0,0,0,697,0,0,0,0,0,0,0,0,Arial
 LANG:6 105 -microsoft windows-Arial-bold-r-normal-*-*-120-100-100-*-*-iso8859-1|-13,0,0,0,700,0,0,0,0,3,2,1,34,Arial
diff --git a/MAC/Navigator2/panels/objects/Hardware/Station_LBA.pnl b/MAC/Navigator2/panels/objects/Hardware/Station_LBA.pnl
index c4f546bc760..289d85eb1c2 100644
--- a/MAC/Navigator2/panels/objects/Hardware/Station_LBA.pnl
+++ b/MAC/Navigator2/panels/objects/Hardware/Station_LBA.pnl
@@ -192,7 +192,7 @@ LANG:1 6 Layer1
 4 3
 "RCUX"
 ""
-1 5 45 E E E 1 E 1 E N "_WindowText" E N {255,255,255} E E
+1 20 20 E E E 1 E 1 E N "_WindowText" E N {255,255,255} E E
  "main()
 {
   rClick();
@@ -216,11 +216,11 @@ E "main()
 {
   click();
 }" 0
- 0 4 1 0 1 E  5 45 45 5
+ 0 4 1 0 1 E  0 40 40 0
 4 2
 "RCUY"
 ""
-1 45 45 E E E 1 E 1 E N "_WindowText" E N {255,255,255} E E
+1 20 20 E E E 1 E 1 E N "_WindowText" E N {255,255,255} E E
  "main()
 {
   rclick();
@@ -244,11 +244,11 @@ E "main()
 {
   click();
 }" 0
- 0 4 1 0 1 E  45 45 5 5
+ 0 4 1 0 1 E  40 40 0 0
 7 7
 "antennaHighlight"
 ""
-1 70.08811188811188 80 E E E 1 E 0 E N "_Transparent" E N "Lofar_highLight" E E
+1 64.633986013986 74.58666666666666 E E E 1 E 0 E N "_Transparent" E N "Lofar_highLight" E E
  "main()
 {
   rClick();
@@ -288,11 +288,11 @@ void StationCallback(string dp1, bool aTrig) {
 {
   click();
 }" 0
- 0 1 1 2 1 E 1.297052154195012 0 1.285714285714286 -65.83365079365082 -77.89714285714287 1 E 70 80 10 10
+ 0 1 1 2 1 E 1.297052154195012 0 1.285714285714286 -70.83365079365082 -82.89714285714287 1 E 70 80 10 10
 7 4
 "LBA"
 ""
-1 31.02623536501377 32.02623536501377 E E E 1 E 1 E N "_Transparent" E N "White" E E
+1 21.0642217630854 22.0642217630854 E E E 1 E 1 E N "_Transparent" E N "White" E E
  E "main()
 {
     dblClick();
@@ -312,11 +312,11 @@ E "main()
 {
     click();
 }" 0
- 0 1 1 0 1 E 1.003813124493654 0 1.003813124493654 -6.144542263029976 -7.14835538752363 1 E 31 32 10 10
+ 0 1 1 0 1 E 1.003813124493654 0 1.003813124493654 -11.14454226302998 -12.14835538752363 1 E 31 32 10 10
 6 6
 "antennaBG"
 ""
-1 40 70 E E E 1 E 1 E N "_Transparent" E N "_Transparent" E E
+1 60 90 E E E 1 E 1 E N "_Transparent" E N "_Transparent" E E
  "main()
 {
   rClick();
@@ -338,11 +338,11 @@ E "main()
 {
   click();
 }" 0
- 0 1 1 2 1 E 1 0 1 -35 -65 1 E 40 70 80 110
+ 0 1 1 2 1 E 1 0 1 -40 -70 1 E 40 70 80 110
 2 5
 "aNr"
 ""
-1 24 16 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+1 8 11 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
  "main()
 {
   rClick();
@@ -370,8 +370,8 @@ LANG:30 0
 {
   click();
 }" 0
- 0 1 1 0 1 E U  0 E 18 16 30 33
-0 2 0 "0s" 0 0 0 193 0 0  24 16 1
+ 0 1 1 0 1 E U  0 E 13 11 25 28
+0 2 0 "0s" 0 0 0 193 0 0  19 11 1
 3
 LANG:1 87 -*-Arial-bold-r-normal-*-13-*-100-100-*-*-iso8859-1|-13,0,0,0,697,0,0,0,0,0,0,0,0,Arial
 LANG:6 105 -microsoft windows-Arial-bold-r-normal-*-*-120-100-100-*-*-iso8859-1|-13,0,0,0,700,0,0,0,0,3,2,1,34,Arial
diff --git a/MAC/Navigator2/panels/objects/navigator_viewSelection.pnl b/MAC/Navigator2/panels/objects/navigator_viewSelection.pnl
index 94449937f7e..d4c75240458 100644
--- a/MAC/Navigator2/panels/objects/navigator_viewSelection.pnl
+++ b/MAC/Navigator2/panels/objects/navigator_viewSelection.pnl
@@ -235,7 +235,7 @@ main()
 
 EP_childPanelOn()
 {
-  if ( isdir (\"d:/data/CS20_CS010/data/configs/\")) {
+  if ( isdir (\"d:/data/CS20_CS001/data/configs/\")) {
     ChildPanelOnCentral(\"Test/Event_Viewer.pnl\",
                         \"Test Panel\",
                         makeDynString(\"\"));
-- 
GitLab