| 
					
				 | 
			
			
				@@ -68,7 +68,7 @@ namespace FurnaceRT.Devices 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         private DOAccessor _doN2PurgeValveClose;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         private DOAccessor _doVaccumValveOpen;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         private DOAccessor _doVaccumValveClose;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private int resetTime = 500;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public DeviceStatus DockUndockStatus
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             get
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -407,13 +407,17 @@ namespace FurnaceRT.Devices 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (isDock)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _doUndock.Value = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _doDock.Value = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _doUndock.SetPulseValue(false, resetTime);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _doDock.SetPulseValue(true, resetTime);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //_doUndock.Value = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //_doDock.Value = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             else
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _doDock.Value = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _doUndock.Value = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _doUndock.SetPulseValue(true, resetTime);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _doDock.SetPulseValue(false, resetTime);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //_doDock.Value = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //_doUndock.Value = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -422,13 +426,18 @@ namespace FurnaceRT.Devices 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (isSeal)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _doRelease.Value = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _doSeal.Value = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _doRelease.SetPulseValue(false, resetTime);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _doSeal.SetPulseValue(true, resetTime);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //_doRelease.Value = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //_doSeal.Value = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             else
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _doSeal.Value = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _doRelease.Value = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _doSeal.SetPulseValue(false, resetTime);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _doRelease.SetPulseValue(true, resetTime);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //_doSeal.Value = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //_doRelease.Value = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -437,13 +446,19 @@ namespace FurnaceRT.Devices 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (isOpen)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _doDoorClose.Value = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _doDoorOpen.Value = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _doDoorClose.SetPulseValue(false, resetTime);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _doDoorOpen.SetPulseValue(true, resetTime);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //_doDoorClose.Value = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //_doDoorOpen.Value = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             else
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _doDoorOpen.Value = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _doDoorClose.Value = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _doDoorOpen.SetPulseValue(false, resetTime);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _doDoorClose.SetPulseValue(true, resetTime);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //_doDoorOpen.Value = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //_doDoorClose.Value = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -452,17 +467,27 @@ namespace FurnaceRT.Devices 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (isOn)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _doLatch1Off.Value = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _doLatch2Off.Value = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _doLatch1On.Value = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _doLatch2On.Value = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _doLatch1Off.SetPulseValue(false, resetTime);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _doLatch2Off.SetPulseValue(false, resetTime);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _doLatch1On.SetPulseValue(true, resetTime);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _doLatch2On.SetPulseValue(true, resetTime);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //_doLatch1Off.Value = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //_doLatch2Off.Value = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //_doLatch1On.Value = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //_doLatch2On.Value = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             else
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _doLatch1On.Value = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _doLatch2On.Value = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _doLatch1Off.Value = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _doLatch2Off.Value = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _doLatch1On.SetPulseValue(false, resetTime);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _doLatch2On.SetPulseValue(false, resetTime);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _doLatch1Off.SetPulseValue(true, resetTime);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _doLatch2Off.SetPulseValue(true, resetTime);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //_doLatch1On.Value = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //_doLatch2On.Value = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //_doLatch1Off.Value = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //_doLatch2Off.Value = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -471,13 +496,20 @@ namespace FurnaceRT.Devices 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (isUp)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _doCollisionAvoidanceDown.Value = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _doCollisionAvoidanceUp.Value = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _doCollisionAvoidanceDown.SetPulseValue(false, resetTime);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _doCollisionAvoidanceUp.SetPulseValue(true, resetTime);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //_doCollisionAvoidanceDown.Value = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //_doCollisionAvoidanceUp.Value = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             else
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _doCollisionAvoidanceUp.Value = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _doCollisionAvoidanceDown.Value = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _doCollisionAvoidanceUp.SetPulseValue(false, resetTime);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _doCollisionAvoidanceDown.SetPulseValue(true, resetTime);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //_doCollisionAvoidanceUp.Value = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //_doCollisionAvoidanceDown.Value = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -486,13 +518,18 @@ namespace FurnaceRT.Devices 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (isOpen)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _doN2PurgeValveClose.Value = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _doN2PurgeValveOpen.Value = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _doN2PurgeValveClose.SetPulseValue(false, resetTime);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _doN2PurgeValveOpen.SetPulseValue(true, resetTime);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //_doN2PurgeValveClose.Value = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //_doN2PurgeValveOpen.Value = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             else
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _doN2PurgeValveOpen.Value = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _doN2PurgeValveClose.Value = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _doN2PurgeValveOpen.SetPulseValue(false, resetTime);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _doN2PurgeValveClose.SetPulseValue(true, resetTime);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //_doN2PurgeValveOpen.Value = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //_doN2PurgeValveClose.Value = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -501,13 +538,19 @@ namespace FurnaceRT.Devices 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (isOpen)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _doVaccumValveClose.Value = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _doVaccumValveOpen.Value = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _doVaccumValveClose.SetPulseValue(false, resetTime);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _doVaccumValveOpen.SetPulseValue(true, resetTime);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //_doVaccumValveClose.Value = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //_doVaccumValveOpen.Value = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             else
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _doVaccumValveOpen.Value = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _doVaccumValveClose.Value = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _doVaccumValveOpen.SetPulseValue(false, resetTime);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                _doVaccumValveClose.SetPulseValue(true, resetTime);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //_doVaccumValveOpen.Value = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //_doVaccumValveClose.Value = true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }
 
			 |