コード例 #1
0
 public static async Task <bool> InitAll()
 {
     return(await Task <bool> .Run(() =>
     {
         Sleep(3000);
         io.Close();
         Sleep(200);
         HIOKI7012.ClosePort();
         Sleep(200);
         Hioki3239.ClosePort();
         Sleep(200);
         osc.Close();
         Sleep(200);
         WaveFormGenerator.Close();
         Sleep(200);
         FindSerialPort.GetDeviceNames();
         Sleep(500);
         Flags.StateEpx64 = General.io.InitEpx64R(0x7F);//0111 1111  ※P7入力 その他出力
         if (!Flags.StateEpx64)
         {
             return false;
         }
         Flags.State7012 = HIOKI7012.Init7012();
         if (!Flags.State7012)
         {
             return false;
         }
         Flags.State323x = Hioki3239.Init323x();
         if (!Flags.State323x)
         {
             return false;
         }
         Flags.State5107B = General.osc.Init();
         if (!Flags.State5107B)
         {
             return false;
         }
         Flags.StateWavGen = WaveFormGenerator.Initialize();
         if (!Flags.StateWavGen)
         {
             return false;
         }
         return true;
     }));
 }
コード例 #2
0
        public static void Init周辺機器()//TODO:
        {
            Flags.Initializing周辺機器 = true;

            Target.OpenPort();//COM1のため、無条件でOKとする 判定はしない

            //EPX64Sの初期化
            bool StopEpx64 = false;

            Task.Run(() =>
            {
                //IOボードの初期化
                io = new EPX64R();
                while (true)
                {
                    if (Flags.StopInit周辺機器)
                    {
                        break;
                    }

                    Flags.StateEpx64 = General.io.InitEpx64R(0x7F);//0111 1111  ※P7入力 その他出力
                    if (Flags.StateEpx64)
                    {
                        //IOボードのリセット(出力をすべてLする)
                        ResetIo();
                        break;
                    }

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

            //ファンクションジェネレータの初期化
            bool StopWavGen = false;

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

                    Flags.StateWavGen = WaveFormGenerator.Initialize();
                    if (Flags.StateWavGen)
                    {
                        break;
                    }

                    Thread.Sleep(400);
                }

                StopWavGen = true;
            });

            //HIOKI7012の初期化
            bool Stop7012 = false;

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

                    Flags.State7012 = HIOKI7012.Init7012();
                    if (Flags.State7012)
                    {
                        HIOKI7012.StopSource();
                        break;
                    }
                    Sleep(500);
                }

                Stop7012 = true;
            });

            //USBシリアル変換器を使うので、通信がかち合わないように順番に初期化を行う
            //マルチメータの初期化
            //オシロスコープの初期化
            bool Stop323x  = false;
            bool Stop5107B = false;

            osc = new DS_5107B();
            Task.Run(() =>
            {
                while (true)
                {
                    if (Flags.StopInit周辺機器 || (Flags.State323x && Flags.State5107B))
                    {
                        break;
                    }


                    if (!Flags.State323x)
                    {
                        Flags.State323x = Hioki3239.Init323x();
                    }

                    if (!Flags.State5107B)
                    {
                        Flags.State5107B = osc.Init();
                        if (Flags.State5107B)
                        {
                            osc.SetBasicConf();
                        }
                    }
                    Sleep(500);
                }
                Stop323x = Stop5107B = true;
            });

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

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

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