private void MetroWindow_Closed(object sender, EventArgs e) { try { while (Flags.Initializing周辺機器) { ; } Target.ClosePort(); if (Flags.StateEpx64) { General.ResetIo(); General.io.Close();//IO閉じる } if (Flags.State5107B) { General.osc.Close(); } if (Flags.State323x) { Hioki3239.ClosePort(); } if (Flags.StateWavGen) { WaveFormGenerator.Close(); } if (Flags.State7012) { HIOKI7012.ClosePort(); } if (!State.Save個別データ()) { MessageBox.Show("個別データの保存に失敗しました"); } if (!General.SaveRetryLog()) { MessageBox.Show("リトライログの保存に失敗しました"); } } catch { } }
public static bool SetFG_6Vrms() { double value = WaveFormGenerator.Flag33220 ? 0.00025 : 0.001; try { double 入力電圧初期値 = 3.020;//Vrms double OutBuff = 0; WaveFormGenerator.サイン波出力(50.0, 50.0, 入力電圧初期値, 0.0); OutBuff = 入力電圧初期値; //AGI33220A.サイン波出力(50.0, 50.0, 入力電圧初期値, 0.0); var Tm = new GeneralTimer(15000); Tm.Start(); while (true) { if (Tm.FlagTimeout || Flags.ClickStopButton) { return(false); } Hioki3239.GetAcVolt(Hioki3239.ACV_Range.R20V); if (Hioki3239.VoltData >= 6.000 && Hioki3239.VoltData <= 6.005) { break; } if (Hioki3239.VoltData < 6.000) { OutBuff += value; WaveFormGenerator.ChangeVoltage(OutBuff); //AGI33220A.ChangeVoltage(入力電圧初期値 + (0.001 * cnt)); } else if (Hioki3239.VoltData > 6.005) { OutBuff -= value; WaveFormGenerator.ChangeVoltage(OutBuff); //AGI33220A.ChangeVoltage(入力電圧初期値 - (0.001 * cnt)); } Sleep(500); } return(true); } catch { return(false); } }
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; })); }
public static bool SetFG_6_5Vrms() { try { double 入力電圧初期値 = 3.275;//Vrms WaveFormGenerator.サイン波出力(50.0, 50.0, 入力電圧初期値, 0.0); double buff = 入力電圧初期値; Tm.Stop(); Tm.Interval = 18000; FlagTimer = true; Tm.Start(); while (true) { if (!FlagTimer || Flags.ClickStopButton) { return(false); } Application.DoEvents(); Hioki3239.GetAcVolt(Hioki3239.ACV_Range.R20V); if (Hioki3239.VoltData >= 6.497 && Hioki3239.VoltData <= 6.503) { break; } if (Hioki3239.VoltData < 6.497) { buff += 0.002; WaveFormGenerator.ChangeVoltage(buff); } else if (Hioki3239.VoltData > 6.503) { buff -= 0.002; WaveFormGenerator.ChangeVoltage(buff); } Sleep(200); } return(true); } catch { return(false); } }
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; }); }