Пример #1
0
        /// <summary>
        /// 初始化系统
        /// </summary>
        public void InitSystem()
        {
            messager = Singleton.GetMessager;
            speaker  = Singleton.GetSpeaker;
            if (Currentversion.IsPlayBackgroundMusic)
            {
                speaker.InitLoopPlyaMediaTimer();
            }
            if (Currentversion.masterBoxVersion == MasterControlBoxVersion.USB)
            {
                if (!OpenSerial())
                {
                    Toast.MakeText(this, "串口初始化失败,请就检查串口是否连接正常!", ToastLength.Long).Show();
                }
            }
            switch (Currentversion.masterBoxVersion)
            {
            case MasterControlBoxVersion.SimulatedData:
                Task.Run(() => { Bootstrapper.InitializeSignalAsyncTest(messager, this, DBNAME); }).ContinueWith((task) => { var examItemCreator = Singleton.GetProviderFactory; });
                break;

            case MasterControlBoxVersion.WifiTcp:
            case MasterControlBoxVersion.WifiUdp:
                //数据库加载后,进行提前加载灯光项目
                Task.Run(() => { Bootstrapper.InitializeSignalUDPAsync(messager, this, DBNAME); }).ContinueWith((task) => { var examItemCreator = Singleton.GetProviderFactory; });
                break;

            case MasterControlBoxVersion.Bluetooth:
                Task.Run(() => { Bootstrapper.InitializeSignalAsyncBluetooth(messager, this, DBNAME); }).ContinueWith((task) => { var examItemCreator = Singleton.GetProviderFactory; });
                break;

            case MasterControlBoxVersion.USB:
                Task.Run(() => { Bootstrapper.InitializeSignalAsyncUSBSerial(messager, this, DBNAME); }).ContinueWith((task) => { var examItemCreator = Singleton.GetProviderFactory; });
                break;

            case MasterControlBoxVersion.Serial:
                Task.Run(() => { Bootstrapper.InitializeSignalAsyncSerial(messager, this, DBNAME); }).ContinueWith((task) => { var examItemCreator = Singleton.GetProviderFactory; });
                break;

            default:
                Task.Run(() => { Bootstrapper.InitializeSignalUDPAsync(messager, this, DBNAME); }).ContinueWith((task) => { var examItemCreator = Singleton.GetProviderFactory; });
                break;
            }
        }
Пример #2
0
        /// <summary>
        /// 初始化系统
        /// </summary>
        public void InitSystem()
        {
            messager = Singleton.GetMessager;
            speaker  = Singleton.GetSpeaker;
            if (Currentversion.IsPlayBackgroundMusic)
            {
                speaker.InitLoopPlyaMediaTimer();
            }

            //TODO:这段是自己通过分辨率判断手动选择界面,建议通过layout多个分辨率实现,如果某个版本出现显示Bug可以考虑打开屏蔽
            //TODO:编写界面的时候最好是使用百分比布局。我们界面比较简单基本能够适应大多数分辨率
            // GetSystemUITypeByScreenDisplayMetrics();
            //TODO;考虑到代码的美观,可以考虑把这段代码移到Bootstrapper 中InitializeSignalAsyncUSBSerial 方法中
            if (Currentversion.masterBoxVersion == MasterControlBoxVersion.USB)
            {
                //TODO:其实简单的判断就可以了 没有必要用IsOpen和OpenSerial全局变量
                //TODO:经过实际测试,串口有问题,重复打开多次也是没有用的
                //while (!isOpen && OpenSerialCount < 1)
                //{
                //    isOpen = OpenSerial();
                //    OpenSerialCount++;
                //}
                //if (!isOpen)
                //{
                //    Toast.MakeText(this, "串口初始化失败,请就检查串口是否连接正常!", ToastLength.Long).Show();
                //}
                //TODO:这样优化后就简单多了
                if (!OpenSerial())
                {
                    Toast.MakeText(this, "串口初始化失败,请就检查串口是否连接正常!", ToastLength.Long).Show();
                }
            }
            //TODO:这个Switc Case 应该可以去掉的
            //可以考虑使用反射加依赖注入完成
            //每一个枚举上面配置对应的信号处理类

            switch (Currentversion.masterBoxVersion)
            {
            case MasterControlBoxVersion.SimulatedData:
                Task.Run(() => { Bootstrapper.InitializeSignalAsyncTest(messager, this, DBNAME); }).ContinueWith((task) => { var examItemCreator = Singleton.GetProviderFactory; });
                break;

            case MasterControlBoxVersion.WifiTcp:
            case MasterControlBoxVersion.WifiUdp:
                //数据库加载后,进行提前加载灯光项目
                Task.Run(() => { Bootstrapper.InitializeSignalUDPAsync(messager, this, DBNAME); }).ContinueWith((task) => { var examItemCreator = Singleton.GetProviderFactory; });
                break;

            case MasterControlBoxVersion.Bluetooth:
                Task.Run(() => { Bootstrapper.InitializeSignalAsyncBluetooth(messager, this, DBNAME); }).ContinueWith((task) => { var examItemCreator = Singleton.GetProviderFactory; });
                break;

            case MasterControlBoxVersion.USB:
                Task.Run(() => { Bootstrapper.InitializeSignalAsyncUSBSerial(messager, this, DBNAME); }).ContinueWith((task) => { var examItemCreator = Singleton.GetProviderFactory; });
                break;

            case MasterControlBoxVersion.Serial:
                Task.Run(() => { Bootstrapper.InitializeSignalAsyncSerial(messager, this, DBNAME); }).ContinueWith((task) => { var examItemCreator = Singleton.GetProviderFactory; });
                break;

            default:
                Task.Run(() => { Bootstrapper.InitializeSignalUDPAsync(messager, this, DBNAME); }).ContinueWith((task) => { var examItemCreator = Singleton.GetProviderFactory; });
                break;
            }
        }