Exemplo n.º 1
0
        /// <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();
                    }
                }
            }));
        }
Exemplo n.º 2
0
        /// <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();
                    }
                }
            }));
        }
Exemplo n.º 3
0
        /// <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();
                    }
                }
            }));
        }
Exemplo n.º 4
0
        /// <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();
                    }
                }
            }));
        }
Exemplo n.º 5
0
        /// <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);
            }
        }
Exemplo n.º 6
0
 /// <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;
         }
     }
 }
Exemplo n.º 7
0
        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");
            }));
        }
Exemplo n.º 8
0
 /// <summary>
 /// 模拟输入获取事件
 /// </summary>
 /// <param name="aiModeData"></param>
 private void USB4704_AiEvent(AiModeType aiModeData)
 {
     AdData = aiModeData;
 }
Exemplo n.º 9
0
 public void ActiveEventAi(AiModeType aiModeData)
 {
     EventAi?.Invoke(aiModeData);
 }