using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using PowerTestDemo.com;
using AppLibs.Devices;
namespace PowerTestDemo.models
{
///
/// 增益测试测试模板,继承自指标测试模板基类
///
public class InputRipple : BaseModel
{
///
/// 测试模板名称,测试指标配置表中的模板名称源自这个参数
///
public InputRipple()
{
//首先要定义模板名称,excel 自动测试项总表中的指标测试模板的名称要和这个名称一致
TemplateName = "输入纹波模板";
}
///
/// 重写的Run方法,当执行到这个测试指标项时,Run会被调用
///
///
///
public override bool Run(TestNode parameters)
{
//检查当前指标需要的仪器是否OK,
var sig = this.tps.GetDevice("信号源1");
var spe = this.tps.GetDevice("频谱仪");
if(sig == null || spe == null)
{
ShowMessage(MsgType.Error, string.Format("仪器不齐全,{0}/{1}无法运行",parameters.Channel,parameters.Name));
return false;
}
int[] values = parameters.Parameters.GetParameterToArray("频率");
int delay = parameters.Parameters.GetParameter("通道延迟");
if (values == null)
{
ShowMessage(MsgType.Error, string.Format("配置文件中频率参数为空,{0}/{1}无法运行",parameters.Channel,parameters.Name));
return false;
}
//开始测试
this.tps.SetTestTableCellValue(0, 4, values[0]);
this.tps.SetTestTableCellValue(0, 5, values[1]);
this.tps.SetTestTableCellValue(0, 6, values[2]);
tps.SetManualTableCellValue(0, 2, delay);
//当测试过程比较久时,要走合适的地方检测IsRuning
if (IsRuning == false)
{
//过程中如果IsRunning为false,表示按了停止测试按钮,要退出程序运行
return false;
}
return true;
}
}
}