public static bool CheckDemo表示() { try { var tm = new GeneralTimer(6000); tm.Start(); while (true) { if (tm.FlagTimeout || Flags.ClickStopButton) { return(false); } if (State.VmComm.RX.Contains("Program Number PFA3097\r\n\r\n>> ")) { tm.stop(); Sleep(300); ClearCommlog(); return(true); } } } catch { ClearCommlog(); return(false); } }
List <double> IOscilloscope.GetWav() { var List_Wav = new List <double>(); SetRun(); Thread.Sleep(3000); var ListByteData_換算前 = new List <byte>(); var ListDoubleData = new List <double>(); SendCommand(":WAV:DATA? CHAN1"); try { int cnt = 0; var tm = new GeneralTimer(5000); tm.Start(); while (true) { if (tm.FlagTimeout || Flags.ClickStopButton) { return(null); } if (Port.BytesToRead == 0) { continue; } var buff = Port.ReadByte(); ListByteData_換算前.Add((byte)buff); if (++cnt == 604) { //この時点で、ListByteData_換算前には波形データ(604 <4(ヘッダ) + 600(データ) = 604>)が入っている //注意1:ListByteDataの添字[0]~[3]はヘッダデータのため削除する //注意2:ListByteDataの値は生のバイナリデータであるため、別クラスで使用するためには下記の換算処理が必要となる //電圧(V) = {(125-AD 値)/25}×垂直軸レンジ - OFFSET var dataList = ListByteData_換算前.Skip(4).ToList <byte>(); double 垂直軸レンジ = Double.Parse(VerticalRange); double OFFSET = Double.Parse(VerticalOffset); dataList.ForEach(d => { List_Wav.Add((((125 - d) / 25.0) * 垂直軸レンジ) - OFFSET); }); return(List_Wav); } } } catch { return(null); } }
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> CheckPWPV(MODE mode) { try { var mess = ""; switch (mode) { case MODE.Motor_L: mess = "パルスモータが ひだり に4回転するのを確認してください\r\nA(左) → B(右)の順に回ります\r\nOKボタンを押すと回ります"; break; case MODE.Motor_R: mess = "パルスモータが みぎ に4回転するのを確認してください\r\nA(左) → B(右)の順に回ります\r\nOKボタンを押すと回ります"; break; } var dialog = new DialogPic(mess, DialogPic.NAME.その他); dialog.ShowDialog(); var re = await Task <bool> .Run(() => { //電源ONする処理 General.PowerSupply(true); if (!General.CheckDemo表示()) { return(false); } switch (mode) { case MODE.Motor_L: Target.SendData("PWPV1 800 0"); //モータA 左回転 var tm = new GeneralTimer(11000); tm.Start(); while (true) { if (tm.FlagTimeout) { return(false); } if (State.VmComm.RX.Contains(">>")) { break; } } Sleep(150); General.ClearCommlog(); Target.SendData("PWPV2 800 0"); //モータB 左回転 tm.Start(); while (true) { if (tm.FlagTimeout) { return(false); } if (State.VmComm.RX.Contains(">>")) { break; } } break; case MODE.Motor_R: Target.SendData("PWPV1 0 800"); //モータA 右回転 var tm2 = new GeneralTimer(11000); tm2.Start(); while (true) { if (tm2.FlagTimeout) { return(false); } if (State.VmComm.RX.Contains(">>")) { break; } } Sleep(150); General.ClearCommlog(); Target.SendData("PWPV2 0 800"); //モータB 右回転 tm2.Start(); while (true) { if (tm2.FlagTimeout) { return(false); } if (State.VmComm.RX.Contains(">>")) { break; } } break; } return(true); }); if (!re) { return(false); } dialog = new DialogPic("モータが正しく回転しましたか?", DialogPic.NAME.その他, soundSw: false); dialog.ShowDialog(); return(Flags.DialogReturn); } catch { return(false); } finally { General.PowerSupply(false); } }