|  | @@ -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;
 | 
	
		
			
				|  |  |          }
 |