diff --git a/.gitattributes b/.gitattributes
index b5524a2d2102108be095e73e291b84fdb4650aa4..89a16978b4301fec5b8960c3f5fcf680c57239d4 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -502,6 +502,8 @@ MAC/Navigator2/panels/navigator.pnl -text
 MAC/Navigator2/panels/nopanel.pnl -text
 MAC/Navigator2/panels/objects/FRENKM_STATION.pnl -text
 MAC/Navigator2/panels/objects/Hardware/AntenneSymbol.pnl -text
+MAC/Navigator2/panels/objects/Hardware/Cabinet_Top.pnl -text
+MAC/Navigator2/panels/objects/Hardware/Cabinet_control_settings.pnl -text
 MAC/Navigator2/panels/objects/Hardware/RCU_ADC_Component.pnl -text
 MAC/Navigator2/panels/objects/Hardware/RCU_Attenuating.pnl -text
 MAC/Navigator2/panels/objects/Hardware/RCU_Component.pnl -text
diff --git a/MAC/Navigator2/panels/objects/Hardware/Cabinet_Top.pnl b/MAC/Navigator2/panels/objects/Hardware/Cabinet_Top.pnl
new file mode 100644
index 0000000000000000000000000000000000000000..1854c9bf6d6e44a9d23b521d956dd3900c60212c
--- /dev/null
+++ b/MAC/Navigator2/panels/objects/Hardware/Cabinet_Top.pnl
@@ -0,0 +1,687 @@
+V 10
+1
+LANG:1 0 
+PANEL,-1 -1 512 400 N "_3DFace" 1
+"$CabinetNr"
+"main()
+{
+  
+  dyn_string dpAr= strsplit(dpSubStr(g_currentDatapoint,DPSUB_DP),\"_\");
+  if (strpos(dpAr[dynlen(dpAr)],\"Cabinet\") > -1) {
+    cNr = substr(dpAr[dynlen(dpAr)],7,strlen(dpAr[dynlen(dpAr)]));
+    baseDP = g_currentDatapoint;
+  } else {
+    cNr = $CabinetNr;
+    baseDP = g_currentDatapoint+\"_Cabinet\"+ cNr;
+  }
+  
+  if (! dpExists(baseDP)) {
+    dpSet(\"cabinet_top\",\"backCol\",\"_dpdoesnotexist\");
+  }
+  
+  
+  // connect to the various databpoints that show the state of the cabinet
+  
+  // back and front door
+  if (dpExists(baseDP + \".frontDoorOpen\")) {
+    dpConnect(\"showDoor\", baseDP + \".frontDoorOpen\",
+                          baseDP + \".backDoorOpen\",
+                          baseDP + \".doorControl\",
+	                  baseDP + \".frontDoorOpen:_online.._invalid\");
+  }
+    
+  // back and front Inner and Outer fans
+  if (dpExists(baseDP + \".frontFanInner\")) {
+    dpConnect(\"showFan\", baseDP + \".frontFanInner\",
+                         baseDP + \".frontFanOuter\",
+                         baseDP + \".frontAirflow\",
+                         baseDP + \".backFanInner\",
+                         baseDP + \".backFanOuter\",
+                         baseDP + \".backAirflow\",
+	                 baseDP + \".frontFanInner:_online.._invalid\");
+  }
+ 
+  
+  // temperature issues
+  if (dpExists(baseDP + \".temperature\")) {
+    dpConnect(\"updateTemp\", baseDP + \".temperature\",
+                            baseDP + \".temperatureSensor\",
+                            baseDP + \".tempAlarm\",
+	                    baseDP + \".temperature:_online.._invalid\");
+  }
+  
+  
+  // humidity issues
+  if (dpExists(baseDP + \".humidity\")) {
+    dpConnect(\"updateHumidity\", baseDP + \".humidity\",
+                                baseDP + \".humidityControl\",
+                                baseDP + \".humidityAlarm\",
+	                        baseDP + \".humidity:_online.._invalid\");
+  }
+    
+  // mode issues
+  if (dpExists(baseDP + \".controlMode\")) {
+    dpConnect(\"updateControlMode\", baseDP + \".controlMode\",
+	                           baseDP + \".controlMode:_online.._invalid\");
+  }
+}
+
+void updateTemp(string dp1, float temperature,
+                string dp2, bool sensor,
+                string dp3, int alarm,
+                string dp4, bool invalid) {
+  
+  string alarmColor=\"Lofar_off\";
+  if (!invalid) {
+    setValue(\"temperature\",\"text\",temperature);
+    if (alarm==0){
+      alarmColor=\"Lofar_operational\";
+    } else if (alarm==-1) {
+      alarmColor=\"cyan\";
+    } else if (alarm==1) {
+      alarmColor=\"Lofar_suspicious\";
+    } else if (alarm==2) {
+      alarmColor=\"red\";
+    }
+    
+    setValue(\"tempAlarm\",\"backCol\",alarmColor);
+    
+    if (sensor) {
+      setValue(\"temperatureSensor\",\"backCol\",\"Lofar_operational\");
+    } else {
+      setValue(\"temperatureSensor\",\"backCol\",\"Lofar_broken\");
+    }
+      
+        
+      
+  } else {
+    setValue(\"temperature\",\"text\",\"????\");
+    setValue(\"tempAlarm\",\"backCol\",\"Lofar_off\");
+    setValue(\"temperatureSensor\",\"backCol\",\"Lofar_off\");
+  }
+}
+                
+void updateHumidity(string dp1, float humidity,
+                    string dp2, bool control,
+                    string dp3, int alarm,
+                    string dp4, bool invalid) {
+  string alarmColor=\"Lofar_off\";
+  if (!invalid) {
+    setValue(\"humidity\",\"text\",humidity);
+    if (alarm==0){
+      alarmColor=\"Lofar_operational\";
+    } else if (alarm==1) {
+      alarmColor=\"Lofar_suspicious\";
+    } else if (alarm==2) {
+      alarmColor=\"red\";
+    }
+
+    setValue(\"humidityAlarm\",\"backCol\",alarmColor);
+
+    if (control) {
+      setValue(\"humidityControl\",\"backCol\",\"Lofar_operational\");
+    } else {
+      setValue(\"humidityControl\",\"backCol\",\"Lofar_broken\");
+    }
+
+  } else {
+    setValue(\"humidity\",\"text\",\"????\");
+    setValue(\"humidityAlarm\",\"backCol\",\"Lofar_off\");
+    setValue(\"humidityControl\",\"backCol\",\"Lofar_off\");
+  }
+}
+
+void showDoor(string dp1, bool frontDoorOpen,
+              string dp2, bool backDoorOpen,
+              string dp3, bool control,
+              string dp4, bool invalid) {
+  
+  
+  if(!invalid) {
+    if(backDoorOpen) { 
+      setValue(\"backDoor_open\"  , \"visible\"    , TRUE);
+      setValue(\"backDoor_closed\" , \"visible\"    , FALSE);
+    } else {
+      setValue(\"backDoor_open\"  , \"visible\"    , FALSE);
+      setValue(\"backDoor_closed\" , \"visible\"    , TRUE);
+    }
+    if(frontDoorOpen) { 
+      setValue(\"frontDoor_open\"  , \"visible\"    , TRUE);
+      setValue(\"frontDoor_closed\" , \"visible\"    , FALSE);
+    } else {
+      setValue(\"frontDoor_open\"  , \"visible\"    , FALSE);
+      setValue(\"frontDoor_closed\" , \"visible\"    , TRUE);
+    }
+    if (control) {
+      setValue(\"doorControl\",\"backCol\",\"Lofar_operational\");
+    } else {
+      setValue(\"doorControl\",\"backCol\",\"Lofar_broken\");
+    }
+
+  } else {
+    setValue(\"backDoor_open\"  , \"visible\"    , FALSE);
+    setValue(\"backDoor_closed\" , \"visible\"    ,FALSE);
+    setValue(\"frontDoor_open\"  , \"visible\"    , FALSE);
+    setValue(\"frontDoor_closed\" , \"visible\"    ,FALSE);
+    setValue(\"doorControl\",\"backCol\",\"Lofar_off\");
+  }
+}
+
+void showFan(string dp1, bool frontFanInner,
+             string dp2, bool frontFanOuter,
+             string dp3, bool frontAirflow,
+             string dp4, bool backFanInner,
+             string dp5, bool backFanOuter,
+             string dp6, bool backAirflow,
+             string dp7, bool invalid) {
+  
+  
+  if(!invalid) {
+    if (frontAirflow) {
+      setValue(\"frontFanInner\",\"foreCol\",\"_Transparent\");
+      setValue(\"frontFanOuter\",\"foreCol\",\"_Transparent\");
+    } else {
+      setValue(\"frontFanInner\",\"foreCol\",\"Lofar_broken_came\");
+      setValue(\"frontFanOuter\",\"foreCol\",\"Lofar_broken_came\");
+    }
+        
+    if (backAirflow) {
+      setValue(\"backFanInner\",\"foreCol\",\"_Transparent\");
+      setValue(\"backFanOuter\",\"foreCol\",\"_Transparent\");
+    } else {
+      setValue(\"backFanInner\",\"foreCol\",\"Lofar_broken_came\");
+      setValue(\"backFanOuter\",\"foreCol\",\"Lofar_broken_came\");
+    }
+    
+    
+    if(frontFanInner) { 
+      setValue(\"frontFanInner\",\"fill\",\"[pattern,[fit,gif,ventilator_ani.gif]]\");
+    } else {
+      setValue(\"frontFanInner\",\"fill\",\"[pattern,[fit,gif,ventilation_static.gif]]\");
+    }
+    if(frontFanOuter) { 
+      setValue(\"frontFanOuter\",\"fill\",\"[pattern,[fit,gif,ventilator_ani.gif]]\");
+    } else {
+      setValue(\"frontFanOuter\",\"fill\",\"[pattern,[fit,gif,ventilation_static.gif]]\");
+    }
+    if(backFanInner) { 
+      setValue(\"backFanInner\",\"fill\",\"[pattern,[fit,gif,ventilator_ani.gif]]\");
+    } else {
+      setValue(\"backFanInner\",\"fill\",\"[pattern,[fit,gif,ventilation_static.gif]]\");
+    }
+    if(backFanOuter) { 
+      setValue(\"backFanOuter\",\"fill\",\"[pattern,[fit,gif,ventilator_ani.gif]]\");
+    } else {
+      setValue(\"backFanOuter\",\"fill\",\"[pattern,[fit,gif,ventilation_static.gif]]\");
+    }
+  } else {
+    setValue(\"frontFanInner\" , \"visible\"    , FALSE);
+    setValue(\"frontFanOuter\" , \"visible\"    , FALSE);
+    setValue(\"backFanInner\" , \"visible\"    , FALSE);
+    setValue(\"backFanOuter\" , \"visible\"    , FALSE);
+  }
+}
+
+void updateControlMode(string dp1, int mode,
+                       string dp2, bool invalid) {
+  
+  if (!invalid) {
+    string modeStr=\"\";
+    if (mode==0){
+      modeStr=\"off\";
+    } else if (mode==1) {
+      modeStr=\"on\";
+    } else if (mode==2) {
+      modeStr=\"auto\";
+    } else if (mode==3) {
+      modeStr=\"manual\";
+    } else if (mode==4) {
+      modeStr=\"startup\";
+    }
+    
+    setValue(\"controlMode\",\"text\",modeStr);
+    
+  } else {
+    setValue(\"controlMode\",\"text\",\"????\");
+  }
+}
+" 0
+ E E E E 1 -1 -1 0  0 0
+""0  1
+E "#uses \"navPanel.ctl\"
+string  baseDP          = \"\";
+string  cNr             = \"\";" 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
+"cabinet_top"
+""
+1 50 580 E E E 1 E 1 E N {0,0,0} E N "_3DFace" 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 1 0 0.7333333333333333 -50 -385.3333333333333 1 E 50 580 200 730
+4 13
+"backDoor_open"
+""
+1 0 40 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 2 1 2 1 E  0 40 150 10
+4 15
+"backDoor_closed"
+""
+1 150 40 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 2 1 2 1 E  150 40 0 40
+4 16
+"frontDoor_closed"
+""
+1 150 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 2 1 2 1 E  150 150 0 150
+4 18
+"frontDoor_open"
+""
+1 150 180 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 2 1 2 1 E  150 180 0 150
+6 19
+"backFanInner"
+""
+1 280 50 E E E 1 E 1 E N "_Transparent" E N "_3DFace" 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 0 1 2 1 E 1 0 1 60 0 2  1 0  "pictures/ventilator_ani.gif" 4294967295 E 60 40 80 60
+6 20
+"backFanOuter"
+""
+1 280 50 E E E 1 E 1 E N "_Transparent" E N "_3DFace" 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 0 1 2 1 E 1 0 1 60 -22 2  1 0  "pictures/ventilator_ani.gif" 4294967295 E 60 40 80 60
+6 21
+"frontFanInner"
+""
+1 280 50 E E E 1 E 1 E N "_Transparent" E N "_3DFace" E E
+ E E
+17 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+1
+"dashclr"N "_Transparent"
+E E 0 0 1 2 1 E 1 0 1 60 88 2  1 0  "pictures/ventilator_ani.gif" 4294967295 E 60 40 80 60
+6 22
+"frontFanOuter"
+""
+1 280 50 E E E 1 E 1 E N "_Transparent" E N "_3DFace" E E
+ E E
+19 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+1
+"dashclr"N "_Transparent"
+E E 0 0 1 2 1 E 1 0 1 60 110 2  1 0  "pictures/ventilator_ani.gif" 4294967295 E 60 40 80 60
+7 24
+"tempAlarm"
+""
+1 255 115.1111111111111 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E
+ E E
+21 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 -181.1111111111111 -43.11111111111113 1 E 255 115 5 5
+2 25
+"PRIMITIVE_TEXT1"
+""
+1 17 65 E E E 1 E 1 E N "_WindowText" E N "_3DFace" E E
+ E E
+22 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  1 E 17 65 48 79
+0 2 2 "0s" 0 0 0 192 0 0  17 65 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
+LANG:1 4 Temp
+2 26
+"temperature"
+""
+1 117.9375371802499 65 E E E 1 E 1 E N "_WindowText" E N "_3DFace" E E
+ E E
+23 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 0.926829268292683 0 1 38.36585365853658 0 1 E 52 65 89 79
+0 2 2 "0s" 0 0 0 194 0 0  89 65 1
+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 ""
+1
+LANG:1 7 tempval
+2 27
+"PRIMITIVE_TEXT3"
+""
+1 121 65 E E E 1 E 1 E N "_WindowText" E N "_3DFace" E E
+ E E
+25 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  1 E 121 65 129 79
+0 2 2 "0s" 0 0 0 192 0 0  121 65 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
+LANG:1 1 C
+7 28
+"temperatureSensor"
+""
+1 255 115.1111111111111 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E
+ E E
+27 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 -246.0000000000001 -43.00000000000003 1 E 255 115 5 5
+2 29
+"PRIMITIVE_TEXT4"
+""
+1 4 50 E E E 1 E 1 E N "_WindowText" E N "_3DFace" E E
+ E E
+28 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  1 E 4 50 33 64
+0 2 2 "0s" 0 0 0 192 0 0  4 50 1
+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 ""
+1
+LANG:1 6 on/off
+7 30
+"humidityAlarm"
+""
+1 255 115.1111111111111 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E
+ E E
+30 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 -181.1111111111111 -26.11111111111113 1 E 255 115 5 5
+2 31
+"PRIMITIVE_TEXT5"
+""
+1 17 83 E E E 1 E 1 E N "_WindowText" E N "_3DFace" E E
+ E E
+32 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  1 E 17 83 65 97
+0 2 2 "0s" 0 0 0 192 0 0  17 83 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
+LANG:1 8 Humidity
+2 32
+"humidity"
+""
+1 114.3079612890121 125 E E E 1 E 1 E N "_WindowText" E N "_3DFace" E E
+ E E
+34 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 0.926829268292683 0 1 38.36585365853658 18 1 E 52 65 89 79
+0 2 2 "0s" 0 0 0 194 0 0  89 65 1
+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 ""
+1
+LANG:1 7 tempval
+2 33
+"PRIMITIVE_TEXT7"
+""
+1 121 83 E E E 1 E 1 E N "_WindowText" E N "_3DFace" E E
+ E E
+36 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  1 E 121 83 148 97
+0 2 2 "0s" 0 0 0 192 0 0  121 83 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
+LANG:1 3 %RH
+7 34
+"humidityControl"
+""
+1 255 115.1111111111111 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E
+ E E
+38 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 -246.0000000000001 -26.00000000000003 1 E 255 115 5 5
+7 35
+"doorControl"
+""
+1 255 115.1111111111111 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E
+ E E
+40 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 -246.0000000000001 -8.000000000000028 1 E 255 115 5 5
+2 36
+"PRIMITIVE_TEXT8"
+""
+1 17 101 E E E 1 E 1 E N "_WindowText" E N "_3DFace" E E
+ E E
+42 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  1 E 17 101 84 115
+0 2 2 "0s" 0 0 0 192 0 0  17 101 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
+LANG:1 11 DoorControl
+2 38
+"PRIMITIVE_TEXT9"
+""
+1 17 120 E E E 1 E 1 E N "_WindowText" E N "_3DFace" E E
+ E E
+45 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  1 E 17 120 48 134
+0 2 2 "0s" 0 0 0 192 0 0  17 120 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
+LANG:1 4 Mode
+2 39
+"controlMode"
+""
+1 119.8536585365854 65 E E E 1 E 1 E N "_WindowText" E N "_3DFace" E E
+ E E
+47 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  1 E 70 120 95.85365853658536 134
+0 2 2 "0s" 0 0 0 194 0 0  95.85365853658536 120 1
+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 ""
+1
+LANG:1 4 mode
+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/objects/Hardware/Cabinet_control_settings.pnl b/MAC/Navigator2/panels/objects/Hardware/Cabinet_control_settings.pnl
new file mode 100644
index 0000000000000000000000000000000000000000..f112c267f4a5a327c34f4a62d476172393419859
--- /dev/null
+++ b/MAC/Navigator2/panels/objects/Hardware/Cabinet_control_settings.pnl
@@ -0,0 +1,414 @@
+V 10
+1
+LANG:1 0 
+PANEL,-1 -1 500 400 N "_3DFace" 1
+"$CabinetNr"
+"main()
+{
+    
+  dyn_string dpAr= strsplit(dpSubStr(g_currentDatapoint,DPSUB_DP),\"_\");
+  if (strpos(dpAr[dynlen(dpAr)],\"Cabinet\") > -1) {
+    cNr = substr(dpAr[dynlen(dpAr)],7,strlen(dpAr[dynlen(dpAr)]));
+    baseDP = g_currentDatapoint;
+  } else {
+    cNr = $CabinetNr;
+    baseDP = g_currentDatapoint+\"_Cabinet\"+ cNr;
+  }
+  
+  if (! dpExists(baseDP)) {
+    dpSet(\"cabinet_top\",\"backCol\",\"_dpdoesnotexist\");
+  }
+  
+  
+  // connect to the various databpoints that show the state of the cabinet
+  
+  // back and front door
+  if (dpExists(baseDP + \".tempMin\")) {
+    dpConnect(\"updateMinMax\", baseDP + \".tempMin\",
+                              baseDP + \".tempMax\",
+                              baseDP + \".tempMaxMax\",
+                              baseDP + \".humidityMax\",
+                              baseDP + \".humidityMaxMax\",
+	                      baseDP + \".tempMin:_online.._invalid\");
+  }
+}
+
+void updateMinMax(string dp1, float tempMin,
+                  string dp2, float tempMax,
+                  string dp3, float tempMaxMax,
+                  string dp4, float humidityMax,
+                  string dp5, float humidityMaxMax,
+                  string dp6, bool invalid) {
+  
+  if (!invalid) {
+    setValue(\"tempMin\",\"text\",tempMin);
+    setValue(\"tempMax\",\"text\",tempMax);
+    setValue(\"tempMaxMax\",\"text\",tempMaxMax);
+    setValue(\"humMax\",\"text\",humidityMax);
+    setValue(\"humMaxMax\",\"text\",humidityMaxMax);
+    
+  } else {
+    setValue(\"tempMin\",\"text\",\"????\");
+    setValue(\"tempMax\",\"text\",\"????\");
+    setValue(\"tempMaxMax\",\"text\",\"????\");
+    setValue(\"humMax\",\"text\",\"????\");
+    setValue(\"humMaxMax\",\"text\",\"????\");
+  }
+}" 0
+ E E E E 1 -1 -1 0  10 10
+""0  1
+E "#uses \"navPanel.ctl\"
+string  baseDP          = \"\";
+string  cNr             = \"\";" 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
+"RECTANGLE1"
+""
+1 10 10 E E E 1 E 1 E N {0,0,0} E N "_3DFace" 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 -10 -10 1 E 10 10 210 120
+2 1
+"PRIMITIVE_TEXT1"
+""
+1 3 2 E E E 1 E 1 E N "_WindowText" E N "_3DFace" 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  1 E 3 2 62 16
+0 2 2 "0s" 0 0 0 192 0 0  3 2 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
+LANG:1 9 Temp. Min
+2 2
+"PRIMITIVE_TEXT2"
+""
+1 3 25 E E E 1 E 1 E N "_WindowText" E N "_3DFace" 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 U  1 E 3 25 65 39
+0 2 2 "0s" 0 0 0 192 0 0  3 25 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
+LANG:1 9 Temp. Max
+2 3
+"PRIMITIVE_TEXT3"
+""
+1 3 48 E E E 1 E 1 E N "_WindowText" E N "_3DFace" 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 U  1 E 3 48 88 62
+0 2 2 "0s" 0 0 0 192 0 0  3 48 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
+LANG:1 12 Temp. MaxMax
+2 4
+"PRIMITIVE_TEXT4"
+""
+1 5 72 E E E 1 E 1 E N "_WindowText" E N "_3DFace" 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 U  1 E 5 71 65 85
+0 2 2 "0s" 0 0 0 192 0 0  5 71 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
+LANG:1 9 Hum.  Max
+2 5
+"PRIMITIVE_TEXT5"
+""
+1 5 95 E E E 1 E 1 E N "_WindowText" E N "_3DFace" 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 U  1 E 5 94 88 108
+0 2 2 "0s" 0 0 0 192 0 0  5 94 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
+LANG:1 12 Hum.  MaxMax
+2 6
+"tempMin"
+""
+1 110 2 E E E 1 E 1 E N "_WindowText" E N "_3DFace" 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 U  1 E 110 2 148 16
+0 2 2 "0s" 0 0 0 192 0 0  110 2 1
+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 ""
+1
+LANG:1 7 degrees
+2 7
+"tempMax"
+""
+1 112 25 E E E 1 E 1 E N "_WindowText" E N "_3DFace" 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 U  1 E 112 25 150 39
+0 2 2 "0s" 0 0 0 192 0 0  112 25 1
+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 ""
+1
+LANG:1 7 degrees
+2 8
+"tempMaxMax"
+""
+1 112 48 E E E 1 E 1 E N "_WindowText" E N "_3DFace" 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 U  1 E 112 48 150 62
+0 2 2 "0s" 0 0 0 192 0 0  112 48 1
+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 ""
+1
+LANG:1 7 degrees
+2 9
+"humMax"
+""
+1 112 71 E E E 1 E 1 E N "_WindowText" E N "_3DFace" 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  1 E 112 71 150 85
+0 2 2 "0s" 0 0 0 192 0 0  112 71 1
+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 ""
+1
+LANG:1 8 humidity
+2 10
+"humMaxMax"
+""
+1 112 94 E E E 1 E 1 E N "_WindowText" E N "_3DFace" E E
+ E E
+18 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  1 E 112 94 150 108
+0 2 2 "0s" 0 0 0 192 0 0  112 94 1
+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 ""
+1
+LANG:1 8 humidity
+2 12
+"PRIMITIVE_TEXT11"
+""
+1 170 2 E E E 1 E 1 E N "_WindowText" E N "_3DFace" E E
+ E E
+22 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  1 E 170 2 178 16
+0 2 2 "0s" 0 0 0 192 0 0  170 2 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
+LANG:1 1 C
+2 13
+"PRIMITIVE_TEXT12"
+""
+1 170 25 E E E 1 E 1 E N "_WindowText" E N "_3DFace" E E
+ E E
+24 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  1 E 170 25 178 39
+0 2 2 "0s" 0 0 0 192 0 0  170 25 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
+LANG:1 1 C
+2 14
+"PRIMITIVE_TEXT13"
+""
+1 170 48 E E E 1 E 1 E N "_WindowText" E N "_3DFace" E E
+ E E
+26 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  1 E 170 48 178 62
+0 2 2 "0s" 0 0 0 192 0 0  170 48 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
+LANG:1 1 C
+2 15
+"PRIMITIVE_TEXT7"
+""
+1 170 71 E E E 1 E 1 E N "_WindowText" E N "_3DFace" E E
+ E E
+28 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  1 E 170 71 197 85
+0 2 2 "0s" 0 0 0 192 0 0  170 71 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
+LANG:1 3 %RH
+2 16
+"PRIMITIVE_TEXT14"
+""
+1 170 94 E E E 1 E 1 E N "_WindowText" E N "_3DFace" E E
+ E E
+30 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  1 E 170 94 197 108
+0 2 2 "0s" 0 0 0 192 0 0  170 94 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
+LANG:1 3 %RH
+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