public bool ProcessPST100Request(bool isStore) { // Logger.WriteLogger(GlobalValues.PMS_LOG, "Entered ProcessPVLRequest : PVL=" + objPVLData.machineCode + ", isStore=" + objPVLData.isStore); int pathId = 0; if (objPSTDaoService == null) { objPSTDaoService = new PSTDaoImp(); } QueueData objQueueData = new QueueData(); if (objParkingControllerService == null) { objParkingControllerService = new ParkingControllerImp(); } pathId = objPSTDaoService.GetPST100PathId(isStore); bool processStatus = false; if (pathId != 0) { objQueueData.pathPkId = pathId; objParkingControllerService.ExcecuteCommandsForPMS(objQueueData); objPSTDaoService.UpdateAfterPST100Task(pathId); processStatus = true; } //Logger.WriteLogger(GlobalValues.PMS_LOG, "Exitting ProcessPVLRequest : PVL=" + objPVLData.machineCode + ", isStore=" + objPVLData.isStore // + ", processStatus=" + processStatus + ", pathId=" + pathId); return(processStatus); }
public bool ProcessPVLRequest(PVLData objPVLData) { Logger.WriteLogger(GlobalValues.PMS_LOG, "Entered ProcessPVLRequest : PVL=" + objPVLData.machineCode + ", isStore=" + objPVLData.isStore); int pathId = 0; QueueData objQueueData = new QueueData(); if (objParkingControllerService == null) { objParkingControllerService = new ParkingControllerImp(); } List <PathDetailsData> lstPathDetails = null; pathId = InsertQueueForPalletBundle(objPVLData); bool processStatus = false; if (pathId != 0) { objPVLData.queueId = pathId; lstPathDetails = GetSlotAndPathForPVL(objPVLData.queueId); objQueueData.pathPkId = objPVLData.queueId; objParkingControllerService.ExcecuteCommandsForPMS(objQueueData); TaskAfterPvlProcess(objPVLData); processStatus = true; } Logger.WriteLogger(GlobalValues.PMS_LOG, "Exitting ProcessPVLRequest : PVL=" + objPVLData.machineCode + ", isStore=" + objPVLData.isStore + ", processStatus=" + processStatus + ", pathId=" + pathId); return(processStatus); }
public List <PathDetailsData> GetSlotAndPathForPVL(int pathId) { if (objParkingControllerService == null) { objParkingControllerService = new ParkingControllerImp(); } return(objParkingControllerService.GetPathDetails(0, pathId)); }
public List <PathDetailsData> FindCarWashingPathFirst(int washQId) { if (objCarWashDaoService == null) { objCarWashDaoService = new CarWashDaoImp(); } if (objParkingControllerService == null) { objParkingControllerService = new ParkingControllerImp(); } objCarWashDaoService.FindCarWashingPathFirst(washQId); return(objParkingControllerService.GetPathDetails(washQId)); }
public List <PathDetailsData> GetInitialTransferPath(int queueId) { if (objClickTransferDaoService == null) { objClickTransferDaoService = new ClickTransferDaoImp(); } if (objParkingControllerService == null) { objParkingControllerService = new ParkingControllerImp(); } objClickTransferDaoService.GetInitialTransferPath(queueId); return(objParkingControllerService.GetPathDetails(queueId)); }
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 List <PathDetailsData> FindCarWashingPathSecond(int washQId) { if (objCarWashDaoService == null) { objCarWashDaoService = new CarWashDaoImp(); } if (objParkingControllerService == null) { objParkingControllerService = new ParkingControllerImp(); } int pathId = 0; pathId = objCarWashDaoService.FindCarWashingPathSecond(washQId); return(pathId > 0?objParkingControllerService.GetPathDetails(washQId, pathId):null); }
public List <PathDetailsData> GetDynamicTransferPath(int queueId) { if (objClickTransferDaoService == null) { objClickTransferDaoService = new ClickTransferDaoImp(); } if (objParkingControllerService == null) { objParkingControllerService = new ParkingControllerImp(); } int pathId = 0; pathId = objClickTransferDaoService.GetDynamicTransferPath(queueId); return(objParkingControllerService.GetPathDetails(queueId, pathId)); }
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 void ReadQueueEntryData() { if (objQueueDaoService == null) { objQueueDaoService = new QueueDaoImp(); } if (objParkingControllerService == null) { objParkingControllerService = new ParkingControllerImp(); } if (objClickTransferService == null) { objClickTransferService = new ClickTransferImp(); } if (objCarWashControllerService == null) { objCarWashControllerService = new CarWashControllerImp(); } int queueId = 0; try { queueEntryReader.Stop(); queueId = objQueueDaoService.GetPendingQueueDataForProcessing(); if (queueId != 0) { Model.QueueData objQueueData = new Model.QueueData(); objQueueData = objQueueDaoService.GetQueueData(queueId); CancellationTokenSource tokenSource = new CancellationTokenSource(); if (objQueueData.requestType == 1) { Task.Factory.StartNew(() => objParkingControllerService.EntryCarProcessing(objQueueData), tokenSource.Token); } else if (objQueueData.requestType == 0) { Task.Factory.StartNew(() => objParkingControllerService.ExitCarProcessing(objQueueData), tokenSource.Token); } else if (objQueueData.requestType == 3 || objQueueData.requestType == 4 || objQueueData.requestType == 5 || objQueueData.requestType == 6 || objQueueData.requestType == 7 || objQueueData.requestType == 8) { objParkingControllerService.AddRequestIntoQueue(objQueueData); } objQueueDaoService.SetQueueStatus(queueId, 2); } } catch (Exception errMsg) { Logger.WriteLogger(GlobalValues.PARKING_LOG, ":--Exception 'ReadQueueEntryData ':: " + errMsg.Message); } finally { removeFinishedThread(); queueEntryReader.Interval = 3000; queueEntryReader.Start(); } }
public void ReadExitKioskData() { if (objQueueDaoService == null) { objQueueDaoService = new QueueDaoImp(); } if (objParkingControllerService == null) { objParkingControllerService = new ParkingControllerImp(); } try { exitKioskReader.Stop(); if (Directory.Exists(GlobalValues.GLOBAL_EXIT_XML_PATH) == false) { return; } string[] xmlfiles = Directory.GetFiles(GlobalValues.GLOBAL_EXIT_XML_PATH + @"\", "*.xml"); XmlDocument xml = new XmlDocument(); string xmlFile = ""; //if no input kiosk found return. if (xmlfiles == null || xmlfiles.Length < 1) { return; } for (int i = 0; i < xmlfiles.Length; i++) { xmlFile = xmlfiles[i]; FileInfo f = new FileInfo(xmlFile); if (f.IsReadOnly) { continue; } string newFileName = "Exit_" + System.DateTime.Now.ToFileTime().ToString(); if (Directory.Exists(GlobalValues.GLOBAL_BACKUP_XML_PATH + @"\")) { f.CopyTo(GlobalValues.GLOBAL_BACKUP_XML_PATH + @"\" + newFileName + ".xml"); } xml.Load(xmlFile); XmlNodeList xnList = xml.SelectNodes("/OPCXMLData/OPCTagNode"); //Iterate OPC XML file (come from the kiosk) foreach (XmlNode xn in xnList) { QueueData objQueueData = null; objQueueData = new QueueData(); objQueueData.customerId = Convert.ToString(xn["Card_ID"].InnerText); objQueueData.isEntry = false; objQueueData.requestType = objQueueData.isEntry ? 1 : 0; if (xn["Location"] != null) { objQueueData.kioskId = Convert.ToString(xn["Location"].InnerText); } else { objQueueData.kioskId = "SMS"; objQueueData.retrievalType = 1; } objQueueData.procStartTime = System.DateTime.Now; objQueueData = objQueueDaoService.InsertQueue(objQueueData); if (OnToDisplayMessage != null) { OnToDisplayMessage("Exit request received with card ID " + objQueueData.customerId, null); } if (File.Exists(xmlFile) == true) { File.Delete(xmlFile); } //if (objQueueData.queuePkId != 0) //{ // CancellationTokenSource tokenSource = new CancellationTokenSource(); // GlobalValues.threadsDictionary.Add(objQueueData.queuePkId, tokenSource); // if (OnToDisplayMessage != null) // OnToDisplayMessage("Exit request recieved with card ID " + objQueueData.customerId, null); // Task.Factory.StartNew(() => objParkingControllerService.ExitCarProcessing(objQueueData), GlobalValues.threadsDictionary[objQueueData.queuePkId].Token); //} } }// for loop end } catch (Exception errMsg) { Logger.WriteLogger(GlobalValues.PARKING_LOG, ":--Exception 'ReadExitKioskData ':: " + errMsg.Message); } finally { exitKioskReader.Interval = 2000; exitKioskReader.Start(); } }
public void ReadEntryKioskData() { if (objQueueDaoService == null) { objQueueDaoService = new QueueDaoImp(); } if (objParkingControllerService == null) { objParkingControllerService = new ParkingControllerImp(); } try { entryKioskReader.Stop(); if (Directory.Exists(GlobalValues.GLOBAL_ENTRY_XML_PATH) == false) { return; } string[] xmlfiles = Directory.GetFiles(GlobalValues.GLOBAL_ENTRY_XML_PATH + @"\", "*.xml"); XmlDocument xml = new XmlDocument(); string xmlFile = ""; //if no input kiosk found return. if (xmlfiles == null || xmlfiles.Length < 1) { return; } for (int i = 0; i < xmlfiles.Length; i++) { xmlFile = xmlfiles[i]; FileInfo f = new FileInfo(xmlFile); if (f.IsReadOnly) { continue; } string newFileName = "Entry_" + System.DateTime.Now.ToFileTime().ToString(); if (Directory.Exists(GlobalValues.GLOBAL_BACKUP_XML_PATH + @"\")) { f.CopyTo(GlobalValues.GLOBAL_BACKUP_XML_PATH + @"\" + newFileName + ".xml"); } xml.Load(xmlFile); XmlNodeList xnList = xml.SelectNodes("/Patron"); //Iterate OPC XML file (come from the kiosk) foreach (XmlNode xn in xnList) { QueueData objQueueData = null; objQueueData = new QueueData(); objQueueData.customerId = Convert.ToString(xn["card_ID"].InnerText); int eesNumber = 0; int.TryParse(xn["EES"].InnerText.ToString(), out eesNumber); objQueueData.eesNumber = eesNumber; objQueueData.patronName = Convert.ToString(xn["Name"].InnerText); objQueueData.plateNumber = Convert.ToString(xn["Car_ID"].InnerText); objQueueData.needWash = Convert.ToString(xn["Carwash"].InnerText) == "True" ? true :false; // objEESControllerService = new EESControllerImp(); // objQueueData.isHighCar = objEESControllerService.IsHighCar(objQueueData.eesNumber) ? 2 : 1; objQueueData.carType = GlobalValues.CAR_TYPE.low; objQueueData.isEntry = true; objQueueData.requestType = objQueueData.isEntry ? 1:2; objQueueData.procStartTime = System.DateTime.Now; objQueueData = objQueueDaoService.InsertQueue(objQueueData); if (OnToDisplayMessage != null) { OnToDisplayMessage("Entry request received from " + objQueueData.eesNumber + " with card ID " + objQueueData.customerId, null); } if (File.Exists(xmlFile) == true) { File.Delete(xmlFile); } //CancellationTokenSource tokenSource = new CancellationTokenSource(); //GlobalValues.threadsDictionary.Add(objQueueData.queuePkId, tokenSource); //if (OnToDisplayMessage != null) // OnToDisplayMessage("Entry request recieved from EES" + objQueueData.eesNumber + " with card ID " + objQueueData.customerId, null); //Task.Factory.StartNew(() => objParkingControllerService.EntryCarProcessing(objQueueData), GlobalValues.threadsDictionary[objQueueData.queuePkId].Token); } // } //if (File.Exists(filePath) == true) // File.Delete(filePath); }// for loop end } catch (Exception errMsg) { Logger.WriteLogger(GlobalValues.PARKING_LOG, ":--Exception 'ReadEntryKioskData ':: " + errMsg.Message); //Console.WriteLine(errMsg.Message); } finally { entryKioskReader.Interval = 2000; entryKioskReader.Start(); } }