protected override QState StateRunInit(IQEvent qEvent) { LogStateInfo(_processName, System.Reflection.MethodBase.GetCurrentMethod().Name, qEvent); _retryCount = 0; _currentInputCarrier = null; _currentInputCarrierSettings = null; HGADetectionAtInputTurnStationProcessCycleTimeStopWatch = new Stopwatch(); InputCameraHGADetectionAtInputTurnStationProcessCycleTimeStopWatch = new Stopwatch(); BoatLeavesInputTurnStationProcessCycleTimeStopWatch = new Stopwatch(); HSTMachine.Workcell.InputTurnStationBoatPositionError = false; CommonFunctions.Instance.StopMachineRunDueToTICError = false; if (qEvent.IsSignal(SigStateJob)) { TransitionTo(stateStandbyInputTurnSection); return(null); } return(base.StateRunInit(qEvent)); }
public void Configuration(IAppBuilder app) { #region read settings // JsonHelpersLibrary.SettingsLocator.Locator.DefaultFolderLocation = System.Web.Hosting.HostingEnvironment.MapPath("~"); var _Settings = new CarrierSettings(); _Settings.ViewModelLayerSettings.AdminRepositoryFunc = () => { return(new Galcon.GSI.Systems.GSI.DAL.DataAccessLayer.Repositories.AdminRepository.T_SQL.TSQLAdminRepository("GSI-Group_AdminDB")); }; //_Settings.ViewModelLayerSettings.AgricultureRepositoryFunc = () => //{ // return new Galcon.GSI.Systems.XCIGroup.BL.Bulks.AgricultureData.ES.ESAgricultureRepository(new ElasticSettings()); //}; #endregion AreaRegistration.RegisterAllAreas(); // GlobalConfiguration.Configure(CommonWebApiConfig.Register); App_Start.FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); #region DependencyResolver var _DependencyResolver = new BaseControllerDependencyResolver(_Settings.ViewModelLayerSettings); GlobalConfiguration.Configuration.DependencyResolver = _DependencyResolver; #endregion #region Authetication providers // app.UseGSICommonAuthSettings(); #endregion }
private QState StateVisionInspectCarrierAfterLoad(IQEvent qEvent) { bool carrierLoadedInWrongDirection = false; LogStateInfo(_processName, System.Reflection.MethodBase.GetCurrentMethod().Name, qEvent); InputCameraHGADetectionAtInputTurnStationProcessCycleTimeStopWatch.Start(); if (qEvent.IsSignal(SigRecover)) { if (errorMessage != null) { ErrorButton response = (ErrorButton)(((QEvent)qEvent).EventObject); switch (response) { case ErrorButton.Reject: { BoatLeavesInputTurnStationProcessCycleTimeStopWatch.Start(); _currentInputCarrier.IsRejectedCarrier = true; Log.Info(this, "{0}, ProcessName:{1}, StateVisionInspectCarrierAfterLoad, Carrier rejected by user", LoggerCategory.StateTransition, _processName); CommonFunctions.Instance.InputCarriers.Enqueue(_currentInputCarrier); TransitionTo(stateWaitForSigInputStationReady); } break; case ErrorButton.OK: { _retryCount = 0; } break; default: errorMessage = null; System.Windows.Forms.MessageBox.Show(string.Format("Unhandled Button: {0}", response.ToString()), response.ToString()); return(null); } return(null); } } if (qEvent.IsSignal(SigStateJob)) { try { if (HSTMachine.Workcell.HSTSettings.Install.OperationMode == OperationMode.Simulation || HSTMachine.Workcell.HSTSettings.Install.OperationMode == OperationMode.DryRun) { CarrierSettings carrierSettings = SimulatedInputCarriersSettingsQueue.Dequeue(); Mapper.CreateMap <CarrierSettings, Carrier>(); _currentInputCarrier = Mapper.Map <Carrier>(carrierSettings); _currentInputCarrierSettings = carrierSettings; if (_currentInputCarrier == null) { throw new Exception("Failed to find valid input carrier object to be assigned with the read RFID data."); } } else if (HSTMachine.Workcell.HSTSettings.Install.OperationMode == OperationMode.Bypass && HSTMachine.Workcell.HSTSettings.Install.BypassVisionAtInputTurnStation == true) { _currentInputCarrier = new Carrier(); _currentInputCarrier.Hga1.Hga_Status = HGAStatus.HGAPresent; _currentInputCarrier.Hga2.Hga_Status = HGAStatus.HGAPresent; _currentInputCarrier.Hga3.Hga_Status = HGAStatus.HGAPresent; _currentInputCarrier.Hga4.Hga_Status = HGAStatus.HGAPresent; _currentInputCarrier.Hga5.Hga_Status = HGAStatus.HGAPresent; _currentInputCarrier.Hga6.Hga_Status = HGAStatus.HGAPresent; _currentInputCarrier.Hga7.Hga_Status = HGAStatus.HGAPresent; _currentInputCarrier.Hga8.Hga_Status = HGAStatus.HGAPresent; _currentInputCarrier.Hga9.Hga_Status = HGAStatus.HGAPresent; _currentInputCarrier.Hga10.Hga_Status = HGAStatus.HGAPresent; } else { Thread.Sleep(HSTMachine.Workcell.SetupSettings.Delay.InputTurnTableFullyStopDelay); _currentInputCarrier = _workcell.Process.InputEEProcess.Controller.VisionInspect(); if (CommonFunctions.Instance.visionError != "NoError") { HSTException.Throw(HSTErrors.InputDetectionCameraError, new Exception("Failed to run tool block: " + CommonFunctions.Instance.visionError)); } if (_currentInputCarrier.IsLoadedInWrongDirection) { carrierLoadedInWrongDirection = true; Log.Info(this, "{0}, ProcessName:{1}, StateVisionInspectCarrierAfterLoad, Input HGADetection camera detected carrier loaded in wrong direction. Reject this carrier."); HSTException.Throw(HSTErrors.InputDetectionCameraCarrierLoadedInWrongDirection, new Exception("Input Camera detected current carrier was loaded in wrong direction.")); } if (HSTMachine.Workcell.HSTSettings.Install.EnableDebugLog) { Log.Info(this, "{0}, ProcessName:{1}, StateVisionInspectCarrierAfterLoad, Input HGADetection camera result Carrier ID:{2}, " + "HGA1:{3}, HGA2:{4}, HGA3:{5}, HGA4:{6}, HGA5:{7}, " + "HGA6:{8}, HGA7:{9}, HGA8:{10}, HGA9:{11}, HGA10:{12}", LoggerCategory.StateTransition, _processName, "Unknown", _currentInputCarrier.Hga1.Hga_Status, _currentInputCarrier.Hga2.Hga_Status, _currentInputCarrier.Hga3.Hga_Status, _currentInputCarrier.Hga4.Hga_Status, _currentInputCarrier.Hga5.Hga_Status, _currentInputCarrier.Hga6.Hga_Status, _currentInputCarrier.Hga7.Hga_Status, _currentInputCarrier.Hga8.Hga_Status, _currentInputCarrier.Hga9.Hga_Status, _currentInputCarrier.Hga10.Hga_Status); } } _currentInputCarrier.CarrierCurrentLocation = CarrierLocation.InputTurnStation; lock (CommonFunctions.Instance.InputCarriersLock) { CommonFunctions.Instance.InputCarriers.Enqueue(_currentInputCarrier); } _currentInputCarrier.IsCarrierEmpty = IsCarrierEmpty.Empty; if (_currentInputCarrier.Hga1.Hga_Status >= HGAStatus.HGAPresent || _currentInputCarrier.Hga2.Hga_Status >= HGAStatus.HGAPresent || _currentInputCarrier.Hga3.Hga_Status >= HGAStatus.HGAPresent || _currentInputCarrier.Hga4.Hga_Status >= HGAStatus.HGAPresent || _currentInputCarrier.Hga5.Hga_Status >= HGAStatus.HGAPresent || _currentInputCarrier.Hga6.Hga_Status >= HGAStatus.HGAPresent || _currentInputCarrier.Hga7.Hga_Status >= HGAStatus.HGAPresent || _currentInputCarrier.Hga8.Hga_Status >= HGAStatus.HGAPresent || _currentInputCarrier.Hga9.Hga_Status >= HGAStatus.HGAPresent || _currentInputCarrier.Hga10.Hga_Status >= HGAStatus.HGAPresent) { _currentInputCarrier.IsCarrierEmpty = IsCarrierEmpty.NotEmpty; } InputCameraHGADetectionAtInputTurnStationProcessCycleTimeStopWatch.Stop(); if (HSTMachine.Workcell.HSTSettings.Install.EnableDebugLog) { CommonFunctions.Instance.LogProcessCycleTime("Input Camera HGA Detection At Input Turn Station Process Cycle Time.csv", InputCameraHGADetectionAtInputTurnStationProcessCycleTimeStopWatch.ElapsedTime); } BoatLeavesInputTurnStationProcessCycleTimeStopWatch.Start(); TransitionTo(stateWaitForSigInputStationReady); } catch (Exception ex) { bool skipRetry = carrierLoadedInWrongDirection ? true : false; if (_retryCount < 3 && !skipRetry) { Log.Error(this, "Failed to perform vision inspection. Retry count: {0}, Exception: {1}, StateName: {2}", _retryCount, ex.Message, this.CurrentStateName); TransitionTo(this.targetState); } else { ButtonList btnlst; if (carrierLoadedInWrongDirection) { btnlst = new ButtonList(ErrorButton.Reject, ErrorButton.Stop, ErrorButton.NoButton); } else { btnlst = new ButtonList(ErrorButton.Retry, ErrorButton.Reject, ErrorButton.Stop); } TransitionToErrorState(btnlst, ex); } _retryCount++; } return(null); } return(stateRun); }