|  | @@ -225,20 +225,7 @@ namespace FurnaceRT.Devices
 | 
												
													
														
															|  |                  {
 |  |                  {
 | 
												
													
														
															|  |                      if (IsUnloadCompleted)
 |  |                      if (IsUnloadCompleted)
 | 
												
													
														
															|  |                      {
 |  |                      {
 | 
												
													
														
															|  | -
 |  | 
 | 
												
													
														
															|  | -                        if (_isSimulatorMode)
 |  | 
 | 
												
													
														
															|  | -                        {
 |  | 
 | 
												
													
														
															|  | -                            ConfirmRemoveCarrier();
 |  | 
 | 
												
													
														
															|  | -                        }
 |  | 
 | 
												
													
														
															|  | -                        else
 |  | 
 | 
												
													
														
															|  | -                        {
 |  | 
 | 
												
													
														
															|  | -                            var sensorFTRHomeCX = DEVICE.GetDevice<IoSensor>($"PM1.SensorFTRHomeCX");
 |  | 
 | 
												
													
														
															|  | -                            if (sensorFTRHomeCX != null && sensorFTRHomeCX.Value)
 |  | 
 | 
												
													
														
															|  | -                            {
 |  | 
 | 
												
													
														
															|  | -                                ConfirmRemoveCarrier();
 |  | 
 | 
												
													
														
															|  | -                            }
 |  | 
 | 
												
													
														
															|  | -                        }
 |  | 
 | 
												
													
														
															|  | -
 |  | 
 | 
												
													
														
															|  | 
 |  | +                        ConfirmRemoveCarrier();
 | 
												
													
														
															|  |                      }
 |  |                      }
 | 
												
													
														
															|  |                      else if (IsLoadCompleted)
 |  |                      else if (IsLoadCompleted)
 | 
												
													
														
															|  |                      {
 |  |                      {
 | 
												
											
												
													
														
															|  | @@ -332,8 +319,8 @@ namespace FurnaceRT.Devices
 | 
												
													
														
															|  |                          if (faLoadPort.LoadPortTransferStateMachine.TransferState != FACore.E87FA.LPTransferState.OUT_OF_SERVICE &&
 |  |                          if (faLoadPort.LoadPortTransferStateMachine.TransferState != FACore.E87FA.LPTransferState.OUT_OF_SERVICE &&
 | 
												
													
														
															|  |                          faLoadPort.LoadPortTransferStateMachine.TransferState != FACore.E87FA.LPTransferState.READY_TO_UNLOAD)
 |  |                          faLoadPort.LoadPortTransferStateMachine.TransferState != FACore.E87FA.LPTransferState.READY_TO_UNLOAD)
 | 
												
													
														
															|  |                          {
 |  |                          {
 | 
												
													
														
															|  | -                           
 |  | 
 | 
												
													
														
															|  | -                                FALoadPortManager.Instance.EqpInformLoadPortTransferReady(PortID, IsFoupPresent);
 |  | 
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +                            FALoadPortManager.Instance.EqpInformLoadPortTransferReady(PortID, IsFoupPresent);
 | 
												
													
														
															|  |                          }
 |  |                          }
 | 
												
													
														
															|  |                      }
 |  |                      }
 | 
												
													
														
															|  |                  }
 |  |                  }
 | 
												
											
												
													
														
															|  | @@ -360,20 +347,7 @@ namespace FurnaceRT.Devices
 | 
												
													
														
															|  |                          CarrierManager.Instance.CreateCarrier(Name, CarrierType.SD, Name);
 |  |                          CarrierManager.Instance.CreateCarrier(Name, CarrierType.SD, Name);
 | 
												
													
														
															|  |                      }
 |  |                      }
 | 
												
													
														
															|  |                  }
 |  |                  }
 | 
												
													
														
															|  | -                if (_isSimulatorMode)
 |  | 
 | 
												
													
														
															|  | -                {
 |  | 
 | 
												
													
														
															|  | -                    ConfirmAddCarrier();
 |  | 
 | 
												
													
														
															|  | -
 |  | 
 | 
												
													
														
															|  | -                }
 |  | 
 | 
												
													
														
															|  | -                else
 |  | 
 | 
												
													
														
															|  | -                {
 |  | 
 | 
												
													
														
															|  | -                    var sensorFTRHomeCX = DEVICE.GetDevice<IoSensor>($"PM1.SensorFTRHomeCX");
 |  | 
 | 
												
													
														
															|  | -                    if (sensorFTRHomeCX != null && sensorFTRHomeCX.Value)
 |  | 
 | 
												
													
														
															|  | -                    {
 |  | 
 | 
												
													
														
															|  | -                        ConfirmAddCarrier();
 |  | 
 | 
												
													
														
															|  | -                    }
 |  | 
 | 
												
													
														
															|  | -                }
 |  | 
 | 
												
													
														
															|  | -
 |  | 
 | 
												
													
														
															|  | 
 |  | +                ConfirmAddCarrier();
 | 
												
													
														
															|  |              }
 |  |              }
 | 
												
													
														
															|  |          }
 |  |          }
 | 
												
													
														
															|  |          protected virtual void ConfirmAddCarrier()
 |  |          protected virtual void ConfirmAddCarrier()
 | 
												
											
												
													
														
															|  | @@ -401,7 +375,6 @@ namespace FurnaceRT.Devices
 | 
												
													
														
															|  |                  }
 |  |                  }
 | 
												
													
														
															|  |  
 |  |  
 | 
												
													
														
															|  |                  m_CarrierOnState = CarrierOnLPState.On;
 |  |                  m_CarrierOnState = CarrierOnLPState.On;
 | 
												
													
														
															|  | -                SerializableDictionary<string, object> dvid = new SerializableDictionary<string, object>();
 |  | 
 | 
												
													
														
															|  |  
 |  |  
 | 
												
													
														
															|  |                  Singleton<FAJobController>.Instance.Eqp_NoteCarrierArrived(PortID);
 |  |                  Singleton<FAJobController>.Instance.Eqp_NoteCarrierArrived(PortID);
 | 
												
													
														
															|  |  
 |  |  
 | 
												
											
												
													
														
															|  | @@ -415,13 +388,7 @@ namespace FurnaceRT.Devices
 | 
												
													
														
															|  |                  }
 |  |                  }
 | 
												
													
														
															|  |  
 |  |  
 | 
												
													
														
															|  |  
 |  |  
 | 
												
													
														
															|  | -                dvid["PortID"] = PortID;
 |  | 
 | 
												
													
														
															|  | -                dvid["PORT_CTGRY"] = SpecPortName;
 |  | 
 | 
												
													
														
															|  | -                dvid["CarrierType"] = SpecCarrierType;
 |  | 
 | 
												
													
														
															|  | -                dvid["CarrierIndex"] = InfoPadCarrierIndex;
 |  | 
 | 
												
													
														
															|  | -                //dvid["InfoPadSensorIndex"] = InfoPadSensorIndex;
 |  | 
 | 
												
													
														
															|  | -                EV.Notify(EventCarrierArrived, dvid);
 |  | 
 | 
												
													
														
															|  | -                //EV.Notify(EventCarrierArrived1, dvid);
 |  | 
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  |                  if (_lpcallback != null)
 |  |                  if (_lpcallback != null)
 | 
												
													
														
															|  |                      _lpcallback.CarrierArrive();
 |  |                      _lpcallback.CarrierArrive();
 | 
												
													
														
															|  |                  _isMapped = false;
 |  |                  _isMapped = false;
 | 
												
											
												
													
														
															|  | @@ -485,8 +452,14 @@ namespace FurnaceRT.Devices
 | 
												
													
														
															|  |              Singleton<FAJobController>.Instance.Eqp_NoteCarrierIdRead(PortID, id);
 |  |              Singleton<FAJobController>.Instance.Eqp_NoteCarrierIdRead(PortID, id);
 | 
												
													
														
															|  |              _carrierId = id;
 |  |              _carrierId = id;
 | 
												
													
														
															|  |  
 |  |  
 | 
												
													
														
															|  | -
 |  | 
 | 
												
													
														
															|  |              SerializableDictionary<string, object> dvid = new SerializableDictionary<string, object>();
 |  |              SerializableDictionary<string, object> dvid = new SerializableDictionary<string, object>();
 | 
												
													
														
															|  | 
 |  | +            dvid["PortID"] = PortID;
 | 
												
													
														
															|  | 
 |  | +            dvid["PORT_CTGRY"] = SpecPortName;
 | 
												
													
														
															|  | 
 |  | +            dvid["CarrierType"] = SpecCarrierType;
 | 
												
													
														
															|  | 
 |  | +            dvid["CarrierIndex"] = InfoPadCarrierIndex;
 | 
												
													
														
															|  | 
 |  | +            EV.Notify(EventCarrierArrived, dvid);
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +            dvid = new SerializableDictionary<string, object>();
 | 
												
													
														
															|  |              dvid["CarrierID"] = _carrierId ?? "";
 |  |              dvid["CarrierID"] = _carrierId ?? "";
 | 
												
													
														
															|  |              dvid["CAR_ID"] = _carrierId ?? "";
 |  |              dvid["CAR_ID"] = _carrierId ?? "";
 | 
												
													
														
															|  |              dvid["PORT_ID"] = PortID;
 |  |              dvid["PORT_ID"] = PortID;
 |