public bool ExcecuteEESGetCar(EESData objEESData) { bool success = false; int printCounter = 0; if (objQueueControllerService == null) { objQueueControllerService = new QueueControllerImp(); } using (OpcOperationsService opcd = new OpcOperationsImp(OpcConnection.GetOPCServerConnection())) { do { success = opcd.WriteTag <bool>(objEESData.machineChannel, objEESData.machineCode, objEESData.command, true); System.Threading.Thread.Sleep(1000); printCounter += 1; if (printCounter > 3) { //checking transaction deleted or not objQueueControllerService.CancelIfRequested(objEESData.queueId); Logger.WriteLogger(GlobalValues.PARKING_LOG, "Queue Id:" + objEESData.queueId + ":--Failed to excecute get car for EES" + objEESData.machineCode); printCounter = 0; } } while (!IsDoneExcecuteEESGetCar(objEESData)); } return(success); }
public void ProcessTransfer(QueueData objQueueData) { if (objParkingControllerService == null) { objParkingControllerService = new ParkingControllerImp(); } if (objQueueControllerService == null) { objQueueControllerService = new QueueControllerImp(); } List <PathDetailsData> lstPathDetails = null; // lstPathDetails = new List<PathDetailsData>(); try { bool needIteration = false; do { /**checking transaction deleted or not****/ objQueueControllerService.CancelIfRequested(objQueueData.queuePkId); /******/ do { lstPathDetails = GetAllocatePath(objQueueData.queuePkId); if (lstPathDetails == null) { Thread.Sleep(1500); } /**checking transaction deleted or not****/ objQueueControllerService.CancelIfRequested(objQueueData.queuePkId); /******/ } while (lstPathDetails == null); objParkingControllerService.ExcecuteCommands(objQueueData); needIteration = objParkingControllerService.GetIterationStatus(objQueueData.queuePkId); } while (needIteration); UpdateAfterTransfer(objQueueData.queuePkId); } catch (OperationCanceledException errMsg) { Logger.WriteLogger(GlobalValues.PARKING_LOG, "Queue Id:" + objQueueData.queuePkId + " --TaskCanceledException 'ProcessTransfer':: " + errMsg.Message); } catch (Exception errMsg) { Logger.WriteLogger(GlobalValues.PARKING_LOG, "Queue Id:" + objQueueData.queuePkId + ":--Exception 'ProcessTransfer':: " + errMsg.Message); } finally { } }
public bool ConfirmReachedAtFloor(VLCData objVLCData) { Logger.WriteLogger(GlobalValues.PARKING_LOG, "Queue Id:" + objVLCData.queueId + ":--Entering 'ConfirmReachedAtFloor' "); if (objVLCDaoService == null) { objVLCDaoService = new VLCDaoImp(); } VLCData confirmVLCData = new VLCData(); bool vlcConfirmed = false; if (objQueueControllerService == null) { objQueueControllerService = new QueueControllerImp(); } try { confirmVLCData.machineCode = objVLCData.machineCode; confirmVLCData = objVLCDaoService.GetVLCDetails(objVLCData); confirmVLCData.destFloor = objVLCData.destFloor; confirmVLCData.queueId = objVLCData.queueId; while (VLCAtFloor(confirmVLCData) != confirmVLCData.destFloor) { VLCMove(confirmVLCData); /**checking transaction deleted or not****/ objQueueControllerService.CancelIfRequested(confirmVLCData.queueId); /******/ Thread.Sleep(500); } vlcConfirmed = true; } catch (OperationCanceledException errMsg) { Logger.WriteLogger(GlobalValues.PARKING_LOG, "Queue Id:" + objVLCData.queueId + ": VLC=" + objVLCData.machineCode + " --TaskCanceledException 'ConfirmReachedAtFloor':: " + errMsg.Message); throw new OperationCanceledException(); } catch (Exception errMsg) { Logger.WriteLogger(GlobalValues.PARKING_LOG, "Queue Id:" + objVLCData.queueId + ": VLC=" + objVLCData.machineCode + " --Exception 'ConfirmReachedAtFloor':: " + errMsg.Message); if (errMsg is TaskCanceledException) { throw new Exception(); } } Logger.WriteLogger(GlobalValues.PARKING_LOG, "Queue Id:" + objVLCData.queueId + ":--Exitting 'ConfirmReachedAtFloor' "); return(vlcConfirmed); }
public void Dispose() { try { RequestStop(); if (objQueueControllerService == null) { objQueueControllerService = new QueueControllerImp(); } PalletManagerService objPalletManagerService = new PalletManagerImp(); objQueueControllerService.Dispose(); //if (MoveIdealCMToHomePosition != null) //{ // OPCNotification.isApplicationExitReq = true; // opcnotification.Dispose(); // MoveIdealCMToHomePosition.Abort(); //} objPalletManagerService.RequestStop(); //if (triggerClickTransfer != null) //{ // ClickTransferManager.isApplicationExitReq = true; // triggerClickTransfer.Abort(); //} //if (triggerGeneratorMode != null) //{ // GeneratorMode.startGeneraterModeScan.Stop(); // triggerGeneratorMode.Abort(); //} System.Threading.Thread.Sleep(5000); OpcConnection.StopOPCServer(); } finally { } }
public bool ProcessWashPath(QueueData objQueueData) { if (objParkingControllerService == null) { objParkingControllerService = new ParkingControllerImp(); } if (objQueueControllerService == null) { objQueueControllerService = new QueueControllerImp(); } List <PathDetailsData> lstPathDetails = null; // QueueData objQueueData = new QueueData(); try { lstPathDetails = new List <PathDetailsData>(); do { lstPathDetails = FindCarWashingPathFirst(objQueueData.queuePkId); if (lstPathDetails == null) { Thread.Sleep(1500); } /**checking transaction deleted or not****/ objQueueControllerService.CancelIfRequested(objQueueData.queuePkId); /******/ } while (lstPathDetails == null); //objQueueData.queuePkId = washQId; objParkingControllerService.ExcecuteCommands(objQueueData); if (!IsSameFloorTravel(lstPathDetails)) { lstPathDetails = new List <PathDetailsData>(); do { lstPathDetails = FindCarWashingPathSecond(objQueueData.queuePkId); if (lstPathDetails == null) { Thread.Sleep(1500); } /**checking transaction deleted or not****/ objQueueControllerService.CancelIfRequested(objQueueData.queuePkId); /******/ } while (lstPathDetails == null); // objQueueData.queuePkId = washQId; objParkingControllerService.ExcecuteCommands(objQueueData); } objCarWashDaoService.updateAfterProcessing(objQueueData.queuePkId); } catch (OperationCanceledException errMsg) { Logger.WriteLogger(GlobalValues.PARKING_LOG, "Queue Id:" + objQueueData.queuePkId + " --TaskCanceledException 'ProcessWashPath':: " + errMsg.Message); } catch (Exception errMsg) { Logger.WriteLogger(GlobalValues.PARKING_LOG, "Queue Id:" + objQueueData.queuePkId + ":--Exception 'ProcessWashPath':: " + errMsg.Message); } finally { } return(true); }
public void DoInitializeEngine(GlobalValues.engineStartMode startMode) { if (OnToDisplayMessage != null) { OnToDisplayMessage("Initialization.....", null); } /** * 1. set all global variables(including path of display xml) * 2. update machine values to DB * 3. update status of car at EES to DB: this included in EES machine value updation * 4. call engine reset procedure * 5. initiate notification from opc * 6. initiate home position * 7. initiate mode changing of ees * 8. initiate pallet management * 9. initiate click transfer listener * 10.initiate generator mode listener * 11.start machine values updation trigger * 12.call queue manager */ try { //1. set all global variables(including path of display xml) SetAllGlobalVariables(); if (objParkingControllerService == null) { objParkingControllerService = new ParkingControllerImp(); } if (objPalletManagerService == null) { objPalletManagerService = new PalletManagerImp(); } if (objParkingControllerService == null) { objParkingControllerService = new ParkingControllerImp(); } #region OPC and Oracle Initialization //checking opc server connection established or not if (OnToDisplayMessage != null) { OnToDisplayMessage("Initialization.....", null); } OpcServer opc = null; while (!OpcConnection.IsOpcServerConnectionAvailable()) { if (OnToDisplayMessage != null) { OnToDisplayMessage("OPC Initialization failed.....", null); } Thread.Sleep(1000); } if (OnToDisplayMessage != null) { OnToDisplayMessage("OPC Initialization success.....", null); } //checking database connection established or not OracleConnection con = null; do { con = new DBConnection().getDBConnection(); if (con.State == ConnectionState.Closed) { if (OnToDisplayMessage != null) { OnToDisplayMessage("Oracle Initialization failed.....", null); } } Thread.Sleep(1000); }while(con.State == ConnectionState.Closed); if (OnToDisplayMessage != null) { OnToDisplayMessage("Oracle Initialization success.....", null); } #endregion //2. update machine values to DB //11.start machine values updation trigger #region Synchind OPC data and reset or resume engine if (OnToDisplayMessage != null) { OnToDisplayMessage("Synching data.....", null); } UpdateMachineValues(); if (OnToDisplayMessage != null) { OnToDisplayMessage("Synching data finished.....", null); } Thread threadUpdateMachineStatus = new Thread(delegate() { updateMachineValuesTimer(); }); threadUpdateMachineStatus.IsBackground = true; threadUpdateMachineStatus.Start(); //4. call engine reset procedure if (startMode == GlobalValues.engineStartMode.restart) { objParkingControllerService.CallResetProcedure(); } else { objParkingControllerService.CallResumeProcedure(); } #endregion //5. initiate notification from opc #region OPC Notification CommonServicesForMachines objCommonService; objCommonService = new CMControllerImp(); objCommonService.AsynchReadSettings(); objCommonService = new EESControllerImp(); objCommonService.AsynchReadSettings(); objCommonService = new PSControllerImp(); objCommonService.AsynchReadSettings(); ////objCommonService = new PSTControllerImp(); ////objCommonService.AsynchReadSettings(); ////objCommonService = new PVLControllerImp(); ////objCommonService.AsynchReadSettings(); objCommonService = new VLCControllerImp(); objCommonService.AsynchReadSettings(); if (OnToDisplayMessage != null) { OnToDisplayMessage("initialized OPC notifications.....", null); } #endregion //6. initiate home position if (GlobalValues.PARKING_ENABLED) { #region Home Position MoveIdealCMToHomePosition = new Thread(delegate() { objParkingControllerService.HomePositionMoveTrigger(); }); MoveIdealCMToHomePosition.IsBackground = true; MoveIdealCMToHomePosition.Start(); #endregion } // * 7. initiate mode changing of ees //* 8. initiate pallet management if (GlobalValues.PMS_ENABLED) { #region PMS triggerESSModeChange = new Thread(delegate() { objPalletManagerService.StartModeScanning(); }); triggerESSModeChange.IsBackground = true; triggerESSModeChange.Start(); triggerGetPalletForESS = new Thread(delegate() { objPalletManagerService.StartPMSProcessing(); }); triggerGetPalletForESS.IsBackground = true; triggerGetPalletForESS.Start(); #endregion } // * 9. initiate click transfer listener // * 10.initiate generator mode listener #region Listening new parking request // * 12.call queue manager objQueueControllerService = new QueueControllerImp(); if (startMode == GlobalValues.engineStartMode.resume) { objQueueControllerService.DoResumeEngine(); } objQueueControllerService.CreateDispalyXML(); objQueueControllerService.RequestListener(); #endregion //13. iterate queueEntries if (GlobalValues.PARKING_ENABLED) { InitializeParkingQueue(); } //Delete all old images #region Delete all old images Thread threadForDeleteImages = new Thread(delegate() { DeleteOldRecords(); }); threadForDeleteImages.IsBackground = true; threadForDeleteImages.Name = "DeleteImages"; threadForDeleteImages.Start(); #endregion if (OnToDisplayMessage != null) { OnToDisplayMessage("initialization completed succesfully.....", null); } //MessageBox.Show("Car type checking disabled"); } catch (Exception errMsg) { if (OnToDisplayMessage != null) { OnToDisplayMessage("Error....." + errMsg.Message, null); } MessageBox.Show(errMsg.Message); } finally { } }
public bool CheckVLCCommandDone(Model.VLCData objVLCData) { Logger.WriteLogger(GlobalValues.PARKING_LOG, "Queue Id:" + objVLCData.queueId + ":--Entering 'CheckVLCCommandDone' "); bool result = false; bool isWaitingForCmdDoneOn = false; int counter = 1; OpcOperationsService opcd = null; if (objQueueControllerService == null) { objQueueControllerService = new QueueControllerImp(); } if (objErrorControllerService == null) { objErrorControllerService = new ErrorControllerImp(); } if (objErrorDaoService == null) { objErrorDaoService = new ErrorDaoImp(); } bool triggerAlreadyEnabled = false; TriggerData objTriggerData = null; try { opcd = new OpcOperationsImp(OpcConnection.GetOPCServerConnection()); Thread.Sleep(3000); result = false; //TimeSpan startTime = System.DateTime.Now.TimeOfDay; do { triggerAlreadyEnabled = objErrorControllerService.GetTriggerActiveStatus(objVLCData.machineCode); if (!triggerAlreadyEnabled) { objTriggerData = NeedToShowTrigger(objVLCData); } if (triggerAlreadyEnabled || objTriggerData.TriggerEnabled) { if (!triggerAlreadyEnabled) { objErrorDaoService.UpdateTriggerActiveStatus(objTriggerData); } while (objErrorControllerService.GetTriggerActiveStatus(objVLCData.machineCode)) { /**checking transaction deleted or not****/ objQueueControllerService.CancelIfRequested(objVLCData.queueId); /******/ Thread.Sleep(1000); } if (objQueueControllerService.NeedToOptimizePath(objVLCData.queueId)) { break; } if (objErrorControllerService.GetTriggerAction(objVLCData.machineCode) == 1) { VLCMove(objVLCData); Thread.Sleep(2000); } } result = opcd.ReadTag <bool>(objVLCData.machineChannel, objVLCData.machineCode, OpcTags.VLC_CP_Done); if (counter > 3) { counter = 1; /**checking transaction deleted or not****/ objQueueControllerService.CancelIfRequested(objVLCData.queueId); /******/ Thread.Sleep(700); } counter += 1; } while (!result); } catch (OperationCanceledException errMsg) { Logger.WriteLogger(GlobalValues.PARKING_LOG, "Queue Id:" + objVLCData.queueId + ": CM=" + objVLCData.machineCode + " --TaskCanceledException 'CheckVLCCommandDone':: " + errMsg.Message); throw new OperationCanceledException(); } catch (Exception errMsg) { Logger.WriteLogger(GlobalValues.PARKING_LOG, "Queue Id:" + objVLCData.queueId + ":--Exception 'CheckVLCCommandDone':: " + errMsg.Message); if (errMsg is TaskCanceledException) { throw new Exception(); } } finally { if (opcd != null) { opcd.Dispose(); } } Logger.WriteLogger(GlobalValues.PARKING_LOG, "Queue Id:" + objVLCData.queueId + ":--Exitting 'CheckVLCCommandDone' "); return(result); }
public bool VLCMove(Model.VLCData objVLCData) { Logger.WriteLogger(GlobalValues.PARKING_LOG, "Queue Id:" + objVLCData.queueId + ":--Entering 'VLCMove' "); bool isCMHealthy = false; bool success = false; if (objQueueControllerService == null) { objQueueControllerService = new QueueControllerImp(); } if (objErrorDaoService == null) { objErrorDaoService = new ErrorDaoImp(); } do { /**checking transaction deleted or not****/ objQueueControllerService.CancelIfRequested(objVLCData.queueId); /******/ try { TriggerData objTriggerData = NeedToShowTrigger(objVLCData); if (objTriggerData.TriggerEnabled) { objErrorDaoService.UpdateTriggerActiveStatus(objTriggerData); break; } isCMHealthy = CheckVLCHealthy(objVLCData); if (!isCMHealthy) { Thread.Sleep(200); continue; } using (OpcOperationsService opcd = new OpcOperationsImp(OpcConnection.GetOPCServerConnection())) { objVLCData.floor = opcd.ReadTag <Int32>(objVLCData.machineChannel, objVLCData.machineCode, OpcTags.VLC_At_Floor); if (objVLCData.floor != objVLCData.destFloor) { opcd.WriteTag <int>(objVLCData.machineChannel, objVLCData.machineCode, OpcTags.VLC_DestFloor, objVLCData.destFloor); success = opcd.WriteTag <bool>(objVLCData.machineChannel, objVLCData.machineCode, objVLCData.command, true); } else { success = opcd.WriteTag <bool>(objVLCData.machineChannel, objVLCData.machineCode, objVLCData.command, true); success = true; } } } catch (OperationCanceledException errMsg) { Logger.WriteLogger(GlobalValues.PARKING_LOG, "Queue Id:" + objVLCData.queueId + ": CM=" + objVLCData.machineCode + " --TaskCanceledException 'VLCMove':: " + errMsg.Message); throw new OperationCanceledException(); } catch (Exception ex) { Logger.WriteLogger(GlobalValues.PARKING_LOG, "Queue Id:" + objVLCData.queueId + ":--Exception 'VLCMove':: " + ex.Message); /**checking transaction deleted or not****/ objQueueControllerService.CancelIfRequested(objVLCData.queueId); /******/ if (ex is TaskCanceledException) { throw new Exception(); } success = false; } } while (!success); Logger.WriteLogger(GlobalValues.PARKING_LOG, "Queue Id:" + objVLCData.queueId + ":--Exitting 'VLCMove' "); return(success); }