Example #1
0
 public PlayerDataManager(StorageType storageType)
 {
     StorageType = storageType;
     if (storageType == StorageType.MySql)
     {
         context = new DatasContext();
     }
     else if (storageType == StorageType.Json)
     {
         folder = Path.Combine(Starver.Instance.Config.SavePath, "PlayerDatas");
     }
 }
Example #2
0
        public void Initialize()
        {
            XiServerConfigProvider.XiServerConfig.ServerUrl =
                MachineConfigProvider.MachineConfig.PLC_OpcXiServerConfig_ServerUrl;
            XiServerConfigProvider.XiServerConfig.UserName =
                MachineConfigProvider.MachineConfig.PLC_OpcXiServerConfig_UserName;
            XiServerConfigProvider.XiServerConfig.Password =
                MachineConfigProvider.MachineConfig.PLC_OpcXiServerConfig_Password;

            var localDbInstanceName = MachineConfigProvider.MachineConfig.General_LocalDbInstanceName;

            string connectionStringForLocalDb = ConnectionStringForLocalDb.Replace("LocalDbInstanceName", localDbInstanceName);

            var dc = new DatasContext(connectionStringForLocalDb);

            Container.RegisterInstance <IDatasContext>(dc, new ContainerControlledLifetimeManager());


            TestDb();


            //return;
            string channelName = MachineConfigProvider.MachineConfig.PLC_SimulationAccessChannelEnabled
                ? AccessChannelNames.SimAccessChannelFactory
                : AccessChannelNames.AccessChannelFactory;

            EventAggregator
            .GetEvent <SplashFinishedEvent>()
            .Subscribe(async e =>
            {
                Debug.WriteLine(DateTime.Now + ": AccessChannelController.Start begin.");
                await AccessChannelController.StartAsync(channelName);

                EventAggregator
                .GetEvent <CommunicationInitializedEvent>()
                .Publish(new CommunicationInitializedEvent());

                IMachine machine = Container.Resolve <IMachineProvider>().Machine;
                int speed        = 25000;
                machine.TestME_Slider_JogSpeedDevice.Write(speed);
                machine.TestME_Slider_ScanSpeedDevice.Write(speed);
                machine.TestME_Slider_StartSpeedDevice.Write(speed);
                Debug.WriteLine(DateTime.Now + ": Speeds have been set. ");


                Observable
                .Interval(TimeSpan.FromSeconds(5))
                .ObserveOnTaskPool()
                .Subscribe(x =>
                {
                    var mp = Container.Resolve <IMachineProvider>();
                    mp.Machine.General_PlcStartedPlcEventDevice.Subscribe(
                        p =>
                    {
                        mp.Machine.General_PlcStartedPlcEventDevice.WriteTrue();
//                                               mp.Machine.TestME_Slider_JogSpeedDevice.Write(speed);
                        mp.Machine.TestME_Slider_ScanSpeedDevice.Write(speed);
//                                               mp.Machine.TestME_Slider_StartSpeedDevice.Write(speed);
//                                               Debug.WriteLine(DateTime.Now + ": Speeds have been set. ");
                    });

                    if (!_isConnected)
                    {
                        mp.Machine.General_AppStartedPcEventDevice.WriteTrue();
                        _isConnected = true;
                    }

                    if (_isStoped)
                    {
                        return;
                    }

                    mp.Machine.General_UpdateWatchdogCommandDevice.WriteTrue();
//                                       mp.Machine.TestME_Slider_JogSpeedDevice.Write(speed);
                    mp.Machine.TestME_Slider_ScanSpeedDevice.Write(speed);
//                                       mp.Machine.TestME_Slider_StartSpeedDevice.Write(speed);
                    //Debug.WriteLine(DateTime.Now + ": Speeds have been set. ");
                });

                Debug.WriteLine(DateTime.Now + ": AccessChannelController.Start end.");
            }, ThreadOption.BackgroundThread, true);

            var mvmp = Container.Resolve <IMachineViewModelProvider>();

            //            var inspectorProvider = Container.Resolve<IInspectorControllerProvider>();
            //            var productionService = Container.Resolve<IInspectionDomainService>();


            AccessChannelController
            .Config(cfg =>
            {
                cfg.ServerUrl = MachineConfigProvider.MachineConfig.PLC_OpcXiServerConfig_ServerUrl;
                cfg.UserName  = MachineConfigProvider.MachineConfig.PLC_OpcXiServerConfig_UserName;
                cfg.Password  = MachineConfigProvider.MachineConfig.PLC_OpcXiServerConfig_Password;
            });

            var xmlLocalizationService = new XmlLocalizationService();
            //            string lcidString = MachineConfigProvider.MachineConfig.Language;
            string lcidString = "zh-CN";

            xmlLocalizationService.Update(lcidString);
            LocalizationServiceLocator.Service = xmlLocalizationService;

            Container.RegisterInstance <ILocalizationService>(
                xmlLocalizationService,
                new ContainerControlledLifetimeManager());

            Application.Current.Exit += (sender, args) =>
            {
                _isStoped = true;
                AccessChannelController.Stop();
            };


            // Start watchdog.
            // Interval = 10s, PLC Timeout = 60s

            _isConnected = false;
        }