OutputCurrent.cs 4.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Windows.Forms;
  7. using PowerTestDemo.com;
  8. using AppLibs.Devices;
  9. using System.Threading;
  10. namespace PowerTestDemo.models
  11. {
  12. /// <summary>
  13. /// 增益测试测试模板,继承自指标测试模板基类
  14. /// </summary>
  15. public class OutputCurrent : BaseModel
  16. {
  17. /// <summary>
  18. /// 测试模板名称,测试指标配置表中的模板名称源自这个参数
  19. /// </summary>
  20. public OutputCurrent()
  21. {
  22. //首先要定义模板名称,excel 自动测试项总表中的指标测试模板的名称要和这个名称一致
  23. TemplateName = "输出电流模板";
  24. }
  25. /// <summary>
  26. /// 重写的Run方法,当执行到这个测试指标项时,Run会被调用
  27. /// </summary>
  28. /// <param name="parameters"></param>
  29. /// <returns></returns>
  30. public override bool Run(TestNode parameters)
  31. {
  32. ////检查当前指标需要的仪器是否OK,
  33. //var sig = this.tps.GetDevice("信号源1");
  34. //var spe = this.tps.GetDevice("频谱仪");
  35. //if(sig == null || spe == null)
  36. //{
  37. // ShowMessage(MsgType.Error, string.Format("仪器不齐全,{0}/{1}无法运行",parameters.Channel,parameters.Name));
  38. // return false;
  39. //}
  40. int ch = parameters.Parameters.GetParameter<int>("板卡通道");
  41. double[] ratedThreshold = parameters.Parameters.GetParameterToArray<double>("+15V1空载阈值");
  42. double[] downThreshold = parameters.Parameters.GetParameterToArray<double>("下拉偏阈值");
  43. double[] upThreshold = parameters.Parameters.GetParameterToArray<double>("上拉偏阈值");
  44. if (ratedThreshold == null)
  45. {
  46. ShowMessage(MsgType.Error, string.Format("配置文件中频率参数为空,{0}/{1}无法运行",parameters.Channel,parameters.Name));
  47. return false;
  48. }
  49. //开始测试
  50. Thread.Sleep(50);
  51. Random rd = new Random();
  52. double result = 0;
  53. result =rd.NextDouble();
  54. result = double.Parse(String.Format("{0:F1}", result));
  55. if (parameters.Channel == "+15V1")
  56. this.tps.SetTestTableCellValue(7, 1, true, result + 2.2);
  57. else if (parameters.Channel == "-15V1")
  58. this.tps.SetTestTableCellValue(7, 2, true, result + 0.6);
  59. else if (parameters.Channel == "+5V1")
  60. this.tps.SetTestTableCellValue(7, 3, true, result + 6.5);
  61. else if (parameters.Channel == "-5V")
  62. this.tps.SetTestTableCellValue(7, 4, false, result + 0.8);
  63. else if (parameters.Channel == "+12V")
  64. this.tps.SetTestTableCellValue(7, 5, true, result + 1.4);
  65. else if (parameters.Channel == "+15V2")
  66. this.tps.SetTestTableCellValue(7, 6, false, result + 0.7);
  67. else if (parameters.Channel == "-15V2")
  68. this.tps.SetTestTableCellValue(7, 7, false, result + 0.8);
  69. else if (parameters.Channel == "+5V2")
  70. this.tps.SetTestTableCellValue(7, 8, true, result + 6.5);
  71. else if (parameters.Channel == "+50V")
  72. this.tps.SetTestTableCellValue(7, 9, false, (result/10) + 0.1);
  73. else if (parameters.Channel == "+25V")
  74. this.tps.SetTestTableCellValue(7, 10, true, result + 1.0);
  75. else if (parameters.Channel == "+28V")
  76. this.tps.SetTestTableCellValue(7, 11, true,0.01);
  77. //当测试过程比较久时,要走合适的地方检测IsRuning
  78. if (IsRuning == false)
  79. {
  80. //过程中如果IsRunning为false,表示按了停止测试按钮,要退出程序运行
  81. return false;
  82. }
  83. return true;
  84. }
  85. }
  86. }