示例#1
0
        /// <summary>
        /// 检测所有设备
        /// </summary>
        public void CheckAllDevice()
        {
            MsgShow.ShowWarning("正在检测设备。。。");
            MainThreadDelayAction.Run(3000, MsgShow.Clear);
            List <IDeviceInfo> deviceIdList = App.Instance.FlightBusManager.CheckDevice();

#if Test
            deviceIdList = new List <IDeviceInfo>()
            {
                new DeviceInfo()
                {
                    BoardNo = 1, BoardType = BoardType.A429
                },
                new DeviceInfo()
                {
                    BoardNo = 1, BoardType = BoardType.A1553
                }
            };
#endif

            int i = 0;
            foreach (IDeviceInfo item in deviceIdList)
            {
                DeviceUiInfo info = new DeviceUiInfo();
                info.BoardNo    = item.BoardNo;
                info.BoardType  = item.BoardType;
                info.DevID      = item.DevID;
                info.Name       = "localDevice_" + i++;
                info.IsSelected = true;
                _deviceUiInfos.Add(info);
            }
            MsgShow.ShowWarning("设备检测完毕。。。");
            MainThreadDelayAction.Run(3000, MsgShow.Clear);
        }
示例#2
0
        public void Invoke()
        {
            //下面几行暂时没有用。我的想象中,程序的打开、关闭、运行的各种时机不应该由界面Form的情况
            //来获知,(因为界面也只是程序过程的一种时机)应该由程序自身BhRuntime.Instance来响应,
            //所以有了下面几行代码。
            Form mainForm = new MainWindow();

            mainForm.Load += (o, e) =>
            {
                App.Instance.RaiseStarted();

                App.Instance.BeingInvokeEvent  += mainForm.BeginInvoke;
                App.Instance.InvokeEvent       += mainForm.Invoke;
                App.Instance.IsMainFormExisted += () => mainForm.IsHandleCreated;
            };
            mainForm.Closing += App.Instance.RaiseWindowClosing;
            mainForm.Closed  += App.Instance.RaiseWindowClosed;

            //主线程延迟调用行为的初始化
            MainThreadDelayAction.Initialize(act =>
            {
                if (mainForm.IsHandleCreated)
                {
                    if (mainForm.InvokeRequired)
                    {
                        mainForm.BeginInvoke(act);
                        return;
                    }
                }
                act();
            });
            //运行主窗口
            Application.Run(mainForm);
        }