/// <summary> /// 选择电池4V,放电电流4A,模拟电池短路,检查短路USB电压0V。 /// </summary> /// <param name="aiModeData"></param> private void TestCheckShortUsbVoltage(AiModeType aiModeData) { double vol = aiModeData.Avg[AI_AD3]; string log = string.Format("Usb输出电压AD3 = {0:0.000}", vol); Console.WriteLine(log); LogHelper.LogInfo("\t\t" + log); int index = nowTestItem; this.Invoke(new Action(() => { if (GetListViewItemStatus(listViewStatus, index) == enumTestStatus.Run) { if (vol < 1.5) { SelectDichargingCurrent(enumTestDischargingCurrent.Cur_0A); SelectBatteryVoltage(enumTestBatteryVoltage.Vol4_0); SelectPower(enumTestPower.Charging); USB4704.IDevice.StopAiMode(); SetSuccessStatus(nowTestItem); LogHelper.LogInfo("结束测试" + (index + 1) + "\t通过。"); NextTest(); } } })); }
/// <summary> /// 选择电池3.7V,检查空载USB电压5V。 /// </summary> /// <param name="aiModeData"></param> private void TestCheckVoidUsbVoltage(AiModeType aiModeData) { double vol = aiModeData.Avg[AI_AD3]; double vol1 = aiModeData.Avg[AI_AD4]; double vol2 = aiModeData.Avg[AI_AD5]; string log = string.Format("Usb输出电压AD3、AD4、AD5 = {0:0.000}\t{1:0.000}\t{2:0.000}", vol, vol1, vol2); Console.WriteLine(log); LogHelper.LogInfo("\t\t" + log); int index = nowTestItem; this.Invoke(new Action(() => { if (GetListViewItemStatus(listViewStatus, index) == enumTestStatus.Run) { if ((vol > 5.0 && vol < 5.2) && (vol1 > 2.1 && vol1 < 2.3) && (vol2 > 1.5 && vol2 < 1.7)) { USB4704.IDevice.StopAiMode(); SetSuccessStatus(nowTestItem); LogHelper.LogInfo("结束测试" + (index + 1) + "\t通过。"); NextTest(); } } })); }
/// <summary> /// 选择电池4.4V,充满电池,检查绿灯电压3.12V。 /// </summary> /// <param name="aiModeData"></param> private void TestCheckGreenLignt(AiModeType aiModeData) { double vol = aiModeData.Avg[AI_AD0] - aiModeData.Avg[AI_AD7]; double green = aiModeData.Avg[AI_AD1]; string log = string.Format("电池电压AD0-AD7 = {0:0.000}\t绿灯电压AD1 = {1:0.000}", vol, green); Console.WriteLine(log); LogHelper.LogInfo("\t\t" + log); int index = nowTestItem; this.Invoke(new Action(() => { if (GetListViewItemStatus(listViewStatus, index) == enumTestStatus.Run) { if (green > 2.6 && green < 3.3) // 3.1-3.3 { SelectChargingCurrent(enumTestChargingCurrent.Cur_0A); USB4704.IDevice.StopAiMode(); SetSuccessStatus(nowTestItem); LogHelper.LogInfo("结束测试" + (index + 1) + "\t通过。"); NextTest(); } } })); }
/// <summary> /// 选择电池3.7V,充电电流1A,检查红灯电压2.2V与电池电压3.7V。 /// </summary> /// <param name="aiModeData"></param> private void TestCheck1ABatteryVoltage(AiModeType aiModeData) { double vol = aiModeData.Avg[AI_AD0] - aiModeData.Avg[AI_AD7]; double red = aiModeData.Avg[AI_AD1]; string log = string.Format("电池电压AD0-AD7 = {0:0.000}\t红灯电压AD1 = {1:0.000}", vol, red); Console.WriteLine(log); LogHelper.LogInfo("\t\t" + log); int index = nowTestItem; this.Invoke(new Action(() => { if (GetListViewItemStatus(listViewStatus, index) == enumTestStatus.Run) { if ((vol < 4.2 && vol > 3.7) && (red > 2.1 && red < 2.3)) { //SelectChargingCurrent(enumTestChargingCurrent.Cur_0A); USB4704.IDevice.StopAiMode(); SetSuccessStatus(nowTestItem); LogHelper.LogInfo("结束测试" + (index + 1) + "\t通过。"); NextTest(); } } })); }
/// <summary> /// 设置模拟输入模式 /// </summary> /// <param name="e">事件入口</param> /// <param name="timers">检测时间(秒)</param> /// <param name="isAutoReset">是否循环获取</param> public void StartAiMode(DAQNaviHelper.DelegateAiEvent e, double timers = 1, bool isAutoReset = false) { try { aiModeData = new AiModeType(); EventAi = e; numTimeAi = (timers > 0.3) ? Convert.ToInt32(timers * 1000) : 300; queueAiData.Clear(); timerAi.Interval = numTimeAi; timerAi.AutoReset = isAutoReset; timerAi.Enabled = true; ErrorCode err = waveformAiCtrlUsb4704.Prepare(); if (err == ErrorCode.Success) { err = waveformAiCtrlUsb4704.Start(); } if (err != ErrorCode.Success) { ActiveEventError("设置模拟输入功能开启失败:" + err.ToString()); return; } } catch (Exception error) { ActiveEventError("设置模拟输入模式失败:" + error.Message); } }
/// <summary> /// 检测喷雾峰值电压(AD6) /// </summary> /// <param name="aiModeData"></param> private void TestCheckSprayVoltage(AiModeType aiModeData) { if (!isTestCheckSprayVoltage) { double vol = aiModeData.Max[AI_AD6] * 11; double blue = aiModeData.Avg[AI_AD2]; double bat = aiModeData.Avg[AI_AD0] - aiModeData.Avg[AI_AD7]; string log = string.Format("喷雾峰值电压AD6*11 = {0:0.000}\t蓝灯电压AD2 = {1:0.000}\t电池电压AD0-AD7 = {2:0.000}", vol, blue, bat); Console.WriteLine(log); LogHelper.LogInfo("\t\t" + log); if ((vol < 45 && vol > 11) && (blue < 2.3 && blue > 1.0)) // 30 - 45 / 1.0 - 2.3 { isTestCheckSprayVoltage = true; } } }
private void USB4704_AiEvent(AiModeType aiModeData) { Console.WriteLine(aiModeData); string strDataMax = "最大电压:"; string strDataMin = "最小电压:"; string strDataAvg = "平均电压:"; for (int i = 0; i < aiModeData.Max.Length; i++) { strDataMax += aiModeData.Max[i].ToString("f2") + " "; strDataMin += aiModeData.Min[i].ToString("f2") + " "; strDataAvg += aiModeData.Avg[i].ToString("f2") + " "; } this.Invoke(new Action(() => { txtAiData.Clear(); txtAiData.AppendText(strDataMax + "\r\n"); txtAiData.AppendText(strDataMin + "\r\n"); txtAiData.AppendText(strDataAvg + "\r\n"); })); }
/// <summary> /// 模拟输入获取事件 /// </summary> /// <param name="aiModeData"></param> private void USB4704_AiEvent(AiModeType aiModeData) { AdData = aiModeData; }
public void ActiveEventAi(AiModeType aiModeData) { EventAi?.Invoke(aiModeData); }