コード例 #1
0
        /// <summary>
        /// 配置并启动机台界面
        /// </summary>
        private void InitAndSetupMachineWindow()
        {
            // 初始化应用程序配置数据
            if (InitMachineEmployeeAndParameterCode())
            {
                // 创建默认的机台页面
                InitializeDefaultMachineView();

                OnlineDataCenter.StartUseMqAsync();

                // 开启数据接收服务
                //                OnlineDataCenter.StartService();

                // 显示界面并开启接收数据
                pageContainer.Visibility = Visibility.Visible;
                checkNetGrid.Visibility  = Visibility.Collapsed;

                // 开启机台接收数据
                BaseMachine.StartLoadingData();
            }
            else
            {
                System.Windows.MessageBox.Show("从服务器中获取初始化数据"
                                               + "失败,\r\n请检查网络连接是否稳定,然后重新启动!",
                                               "出错提示", MessageBoxButton.OK, MessageBoxImage.Error);
                System.Environment.Exit(0);
            }
        }
コード例 #2
0
 /// <summary>
 /// 周期性检查网络
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void networkCheckTimer_Elapsed(object sender, EventArgs e)
 {
     if (OnlineDataCenter.IsNetwork2ServerOK())
     {
         networkCheckTimer.Stop();
         Dispatcher.Invoke(new Action(() => {
             InitAndSetupMachineWindow();
         }));
     }
 }
コード例 #3
0
        public MainWindow()
        {
            InitializeComponent();

            // 初始化主窗口
            InitializeMainWindow();

            // 设置通知栏图标
            InitailizeNotifyIcon();
            try {
                // 开发电脑上面就不用自启了
                // 设置开机自启
                if (!YUtil.GetWindowsUserName().ToUpper().Contains("SOMIAR"))
                {
                    YUtil.SetAppAutoStart("PanyuVisualSystem", true);
                }
                else
                {
                    UIMessageBox.Show("提示", "开发电脑无需自启", 5000);
                }
            } catch {
                UIMessageBox.Show("异常", "设置启动异常", 5000);
                // ignored
            }
            try {
                // 番禺的防火墙服务默认是禁用
                // 这样就会封掉所有端口,所以只能打开防火墙服务,然后关闭防火墙才行
                // 当然防火墙的状态是设置的为关闭
                YUtil.SetWinServiceStartupType("MpsSvc", ServiceStartMode.Automatic);
                YUtil.StartWinService("MpsSvc");
            } catch {
                // ignored
            }
            // 检查网络连接
            if (OnlineDataCenter.IsNetwork2ServerOK())
            {
                InitAndSetupMachineWindow();
                try {
                    // 同步服务器时间
                    var time = YUtil.GetNtpTime(Configuration.ServerIp);
                    if (Math.Abs((DateTime.Now - time).TotalSeconds) > 10)
                    {
                        YUtil.SetLoadTimeByDateTime(time);
                    }
                } catch {
                    // ignored
                }
            }
            else
            {
                Task.Run(() => {
                    SustainedNetworkTest(null);
                });
            }
        }
コード例 #4
0
        /// <summary>
        /// 绑定实时数据,更新生产数据到界面
        /// </summary>
        public override void StartLoadingData()
        {
            ApplicationStateManager.RecoveryMachineState(this);
            ApplicationStateManager.ClearApplicationStatePath();

            if (ProductionInfo == null)
            {
                ProductionInfo =
                    OnlineDataCenter.GetMachineProductionInfo(MachineName);
                if (ProductionInfo == null)
                {
                    MessageBox.Show("配置的机台名称与数据库中的不一致!",
                                    "错误提示", MessageBoxButton.OK, MessageBoxImage.Error);
                    System.Environment.Exit(0);
                }
            }
            else
            {
                OnlineDataCenter.SetMachineProductionInfo(ProductionInfo);
            }

            odChart.Upper = Configuration.OuterDiameterUpper;
            odChart.Lower = Configuration.OuterDiameterLower;

            // 绑定数据源对象
            rootGrid.DataContext = ProductionInfo;

            ProductionInfo.PdfService.ChangeProductionProcessPdf
                += PdfService_ChangeProductionProcessPdf;
            ProductionInfo.DoublePropertyChanged += cpi_DoublePropertyChanged;

            AppEventsManager.OnUpdateOuterDiameterUpperAndLower +=
                AppEventsManager_OnUpdateOuterDiameterUpperAndLower;

            // 重新加载工艺规格文件
            if (!string.IsNullOrEmpty(WorksheetNo))
            {
                Task.Run(() => {
                    updateWorkSheetInfo(WorksheetNo.Trim());
                });
            }
        }
コード例 #5
0
        /// <summary>
        /// 持续地测试与服务器的网络连接
        /// </summary>
        /// <param name="state"></param>
        private void SustainedNetworkTest(object state)
        {
            int tryTime = 0;

            while (!OnlineDataCenter.IsNetwork2ServerOK())
            {
                if (++tryTime > 10)
                {
                    networkCheckTimer          = new System.Timers.Timer();
                    networkCheckTimer.Interval = 3000;
                    networkCheckTimer.Elapsed += networkCheckTimer_Elapsed;
                    networkCheckTimer.Start();

                    this.Dispatcher.Invoke(new Action(() => {
                        spCheckNet.Visibility = Visibility.Hidden;
                        spNetTips.Visibility  = Visibility.Visible;
                    }));

                    return;
                }
                Thread.Sleep(2000);
            }
            Dispatcher.Invoke(InitAndSetupMachineWindow);
        }