コード例 #1
0
        public static void Init周辺機器()//TODO:
        {
            Flags.Initializing周辺機器 = true;

            //Targetの初期化
            bool StopTarget = false;

            Task.Run(() =>
            {
                while (true)
                {
                    if (Flags.StopInit周辺機器)
                    {
                        break;
                    }

                    Flags.StateTarget = Target.InitPort(State.Setting.ComTarget);
                    if (Flags.StateTarget)
                    {
                        //IOボードのリセット(出力をすべてLする)
                        ResetIo();
                        break;
                    }

                    Thread.Sleep(500);
                }
                StopTarget = true;
            });

            //34401Aの初期化
            bool Stop34401 = false;

            Task.Run(() =>
            {
                _34401 = new Agilent34401A();
                while (true)
                {
                    if (Flags.StopInit周辺機器)
                    {
                        break;
                    }

                    Flags.State34401 = _34401.Init(State.Setting.Com34401);
                    if (Flags.State34401)
                    {
                        break;
                    }

                    Sleep(500);
                }
                Stop34401 = true;
            });

            //IOの初期化
            bool StopIo = false;

            Task.Run(() =>
            {
                while (true)
                {
                    if (Flags.StopInit周辺機器)
                    {
                        break;
                    }

                    Flags.StateIo = LPC1768.Init();
                    if (Flags.StateIo)
                    {
                        break;
                    }

                    Sleep(500);
                }
                StopIo = true;
            });


            Task.Run(() =>
            {
                while (true)
                {
                    CheckAll周辺機器フラグ();

                    //EPX64Sの初期化の中で、K100、K101の溶着チェックを行っているが、これがNGだとしてもInit周辺機器()は終了する
                    var IsAllStopped = StopTarget && Stop34401 && StopIo;

                    if (Flags.AllOk周辺機器接続 || IsAllStopped)
                    {
                        break;
                    }
                    Sleep(400);
                }
                Flags.Initializing周辺機器 = false;
            });
        }