예제 #1
0
        /// <summary>
        /// 重新启动所有可临时中断的服务。
        /// </summary>
        public void RestartSafelyServices()
        {
            LocalSettings localSettings = new XmlSerializerWrapper <LocalSettings>().Entity;

            //停止所有可临时中断的服务
            this.StopRunningStatusRefreshThread();

            PickAreaService.Instance.Stop();
            ProductAreaService.Instance.Stop();
            InitService.Instance.Stop();

            HistoryRecordsRemover.Instance.Stop();

            AssortResultWriteBack.Instance.Stop();
            CartFindingDeliveryResultWriteBack.Instance.Stop();
            AssembleResultWriteBack.Instance.Stop();

            AssortingExecutorLoader.Instance.Stop();
            CartFindingExecutor.Instance.Stop();
            IndicatingExecutorLoader.Instance.Stop();

            ServiceHosts.Close();

            //启动所有可临时中断的服务
            ServiceHosts.Open(localSettings.ServiceIP, localSettings.ServicePort);

            AssortingExecutorLoader.Instance.Start();
            CartFindingExecutor.Instance.Start();
            IndicatingExecutorLoader.Instance.Start();

            AssortResultWriteBack.Instance.Start(localSettings.PtlToLesServiceUrl);
            CartFindingDeliveryResultWriteBack.Instance.Start(localSettings.PtlToLesServiceUrl);
            AssembleResultWriteBack.Instance.Start(localSettings.PtlToMesServiceUrl);

            HistoryRecordsRemover.Instance.Start(localSettings.HistoryHoldingDays);

            //启动AGV配送任务发送业务
            PickAreaService.Instance.Start(localSettings.PtlToAgvServiceUrl);
            ProductAreaService.Instance.Start(localSettings.PtlToAgvServiceUrl);
            InitService.Instance.Start(localSettings.PtlToAgvServiceUrl);

            this.StartRunningStatusRefreshThread();
        }
예제 #2
0
        /// <summary>
        /// 停止所有服务。
        /// </summary>
        public void StopServices()
        {
            this.StopRunningStatusRefreshThread();

            PickAreaService.Instance.Stop();
            ProductAreaService.Instance.Stop();
            InitService.Instance.Stop();

            Ptl.Device.Log.Logger.HoldingPeriodInDays = int.MaxValue;
            HistoryRecordsRemover.Instance.Stop();

            AssortResultWriteBack.Instance.Stop();
            CartFindingDeliveryResultWriteBack.Instance.Stop();
            AssembleResultWriteBack.Instance.Stop();

            AssortingExecutorLoader.Instance.Stop();
            CartFindingExecutor.Instance.Stop();
            IndicatingExecutorLoader.Instance.Stop();

            CartPtlHost.Instance.Stop();
            ChannelPtlHost.Instance.Stop();

            //关闭PickZone通讯
            PickZoneHost.Instance.Stop();
            //关闭FeedZone通讯(分装工位)
            FeedZoneHost.Instance.Stop();
            CacheRegionHost.Instance.Stop();
            AssemblySectionHost.Instance.Stop();

            //关闭MarketZone通讯
            MarketZoneHost.Instance.Stop();

            ServiceHosts.Close();

            this.DeviceOnLineStatusReset();
        }