public static bool SetRelay(VOL_CH ch) { var cmd = ""; switch (ch) { case VOL_CH.P12V: cmd = "VCK01"; break; case VOL_CH.P5V: cmd = "VCK02"; break; case VOL_CH.P3_3V: cmd = "VCK03"; break; case VOL_CH.M5V: cmd = "VCK04"; break; } Sleep(100); return(Target.SendData(cmd)); }
public static void SetRelay(VOL_CH ch) { //7016のMeas端子に接続する処理 switch (ch) { case VOL_CH._12V: General.Set7012Meas(General.MEAS_CH._12V); break; case VOL_CH._5V: General.Set7012Meas(General.MEAS_CH._5V); break; case VOL_CH._3_3V: General.Set7012Meas(General.MEAS_CH._3_3V); break; case VOL_CH.AVDD: General.Set7012Meas(General.MEAS_CH.AVDD); break; case VOL_CH.AVCC: General.Set7012Meas(General.MEAS_CH.AVCC); break; case VOL_CH.VREF: General.Set7012Meas(General.MEAS_CH.VREF); break; case VOL_CH.AVCCD: General.Set7012Meas(General.MEAS_CH.AVCCD); break; case VOL_CH.S5V: General.Set7012Meas(General.MEAS_CH.S5V); break; } }
public static async Task <bool> CheckVolt(VOL_CH ch) { bool result = false; Double measData = 0; double Max = 0; double Min = 0; try { return(await Task <bool> .Run(() => { try { SetRelay(ch); Thread.Sleep(400); switch (ch) { case VOL_CH.P12V: Max = State.TestSpec.V12_HI; Min = State.TestSpec.V12_LO; break; case VOL_CH.P5V: Max = State.TestSpec.Vp5_HI; Min = State.TestSpec.Vp5_LO; break; case VOL_CH.P3_3V: Max = State.TestSpec.V3_3_HI; Min = State.TestSpec.V3_3_LO; break; case VOL_CH.M5V: Max = State.TestSpec.Vm5_HI; Min = State.TestSpec.Vm5_LO; break; } var tm = new GeneralTimer(5000); tm.start(); while (true) { if (tm.FlagTimeout) { return false; } if (!General._34401.GetDcVoltage()) { continue; } measData = General._34401.VoltData; if (Min < measData && measData < Max) { break; } Thread.Sleep(200); } if (!General._34401.GetDcVoltage()) { return false; } measData = General._34401.VoltData; return result = (Min < measData && measData < Max); } catch { return result = false; } })); } finally { //ビューモデルの更新 switch (ch) { case VOL_CH.P12V: State.VmTestResults.Vol12v = measData.ToString("F2") + "V"; State.VmTestResults.ColVol12v = result ? General.OffBrush : General.NgBrush; break; case VOL_CH.P5V: State.VmTestResults.VolP5v = measData.ToString("F2") + "V"; State.VmTestResults.ColVolP5v = result ? General.OffBrush : General.NgBrush; break; case VOL_CH.P3_3V: State.VmTestResults.VolP33v = measData.ToString("F2") + "V"; State.VmTestResults.ColVolP33v = result ? General.OffBrush : General.NgBrush; break; case VOL_CH.M5V: State.VmTestResults.VolM5v = measData.ToString("F2") + "V"; State.VmTestResults.ColVolM5v = result ? General.OffBrush : General.NgBrush; break; } //NGだった場合、エラー詳細情報の規格値を更新する if (!result) { //switch (ch) //{ // case VOL_CH.P12V: // State.VmTestStatus.Spec = $"規格値 : {State.TestSpec.V12_LO.ToString("F2")} ~ {State.TestSpec.V12_HI.ToString("F2")}V"; // break; // case VOL_CH.P5V: // State.VmTestStatus.Spec = $"規格値 : {State.TestSpec.Vp5_LO.ToString("F2")} ~ {State.TestSpec.Vp5_HI.ToString("F2")}V"; // break; // case VOL_CH.P3_3V: // State.VmTestStatus.Spec = $"規格値 : {State.TestSpec.V3_3_LO.ToString("F2")} ~ {State.TestSpec.V3_3_HI.ToString("F2")}V"; // break; // case VOL_CH.M5V: // State.VmTestStatus.Spec = $"規格値 : {State.TestSpec.Vm5_LO.ToString("F2")} ~ {State.TestSpec.Vm5_HI.ToString("F2")}V"; // break; //} State.VmTestStatus.Spec = $"規格値 : {Min.ToString("F2")} ~ {Max.ToString("F2")}V"; State.VmTestStatus.MeasValue = "計測値 : " + measData.ToString("F2") + "V"; } } }
public static async Task <bool> CheckVolt(VOL_CH ch) { bool result = false; Double measData = 0; double Max = 0; double Min = 0; try { return(await Task <bool> .Run(() => { try { SetRelay(ch); Thread.Sleep(400); switch (ch) { case VOL_CH._12V: Max = State.TestSpec.V12v_Max; Min = State.TestSpec.V12v_Min; break; case VOL_CH._5V: Max = State.TestSpec.V5v_Max; Min = State.TestSpec.V5v_Min; break; case VOL_CH._3_3V: Max = State.TestSpec.V3v_Max; Min = State.TestSpec.V3v_Min; break; case VOL_CH.AVDD: Max = State.TestSpec.Avdd_Max; Min = State.TestSpec.Avdd_Min; break; case VOL_CH.AVCC: Max = State.TestSpec.Avcc_Max; Min = State.TestSpec.Avcc_Min; break; case VOL_CH.VREF: Max = State.TestSpec.Vref_Max; Min = State.TestSpec.Vref_Min; break; case VOL_CH.AVCCD: Max = State.TestSpec.Avccd_Max; Min = State.TestSpec.Avccd_Min; break; case VOL_CH.S5V: Max = State.TestSpec.S5v_Max; Min = State.TestSpec.S5v_Min; break; } if (ch == VOL_CH.VREF) { HIOKI7012.MeasureDcV(HIOKI7012.MEAS_MODE.V_2_5); } else { HIOKI7012.MeasureDcV(); } measData = HIOKI7012.VoltData; return result = (Min < measData && measData < Max); } catch { return result = false; } })); } finally { //ビューモデルの更新 switch (ch) { case VOL_CH._12V: State.VmTestResults.Vol12V = measData.ToString("F2") + "V"; State.VmTestResults.ColVol12V = result ? General.OffBrush : General.NgBrush; break; case VOL_CH._5V: State.VmTestResults.Vol5V = measData.ToString("F2") + "V"; State.VmTestResults.ColVol5V = result ? General.OffBrush : General.NgBrush; break; case VOL_CH._3_3V: State.VmTestResults.Vol3_3V = measData.ToString("F2") + "V"; State.VmTestResults.ColVol3_3V = result ? General.OffBrush : General.NgBrush; break; case VOL_CH.AVDD: State.VmTestResults.VolAVDD = measData.ToString("F2") + "V"; State.VmTestResults.ColVolAVDD = result ? General.OffBrush : General.NgBrush; break; case VOL_CH.AVCC: State.VmTestResults.VolAVCC = measData.ToString("F2") + "V"; State.VmTestResults.ColVolAVCC = result ? General.OffBrush : General.NgBrush; break; case VOL_CH.VREF: State.VmTestResults.VolVREF = measData.ToString("F4") + "V"; State.VmTestResults.ColVolVREF = result ? General.OffBrush : General.NgBrush; break; case VOL_CH.AVCCD: State.VmTestResults.VolAVCCD = measData.ToString("F2") + "V"; State.VmTestResults.ColVolAVCCD = result ? General.OffBrush : General.NgBrush; break; case VOL_CH.S5V: State.VmTestResults.VolS5V = measData.ToString("F2") + "V"; State.VmTestResults.ColVolS5V = result ? General.OffBrush : General.NgBrush; break; } //NGだった場合、エラー詳細情報の規格値を更新する if (!result) { if (ch == VOL_CH.VREF) { State.VmTestStatus.Spec = $"規格値 : {Min.ToString("F4")} ~ {Max.ToString("F4")}V"; State.VmTestStatus.MeasValue = "計測値 : " + measData.ToString("F4") + "V"; } else { State.VmTestStatus.Spec = $"規格値 : {Min.ToString("F2")} ~ {Max.ToString("F2")}V"; State.VmTestStatus.MeasValue = "計測値 : " + measData.ToString("F2") + "V"; } } } }