//更新测量项 public void updateItem(DividerData dividerData, DividerProcess dividerProcess) { int index = dividerProcess.curNum; DividerItem item = null; switch (dividerProcess.curMode) { case EnumMode.Divider_V_DCP: item = dividerData.voltageDCPData[index]; break; case EnumMode.Divider_V_DCN: item = dividerData.voltageDCNData[index]; break; case EnumMode.Divider_V_AC: item = dividerData.voltageACData[index]; break; case EnumMode.Divider_F: item = dividerData.frequencyData[index]; break; } item.State = 1; }
public void ResetProcess(EnumMode mode, DividerData dividerData) { this.curNum = -1; this.curNumTest = -1; this.complete = EnumCaliState.INITI; this.curTotalNum = 0; this.curMode = mode; setTotalNumByType(dividerData); }
public void setTotalNumByType(DividerData dividerData) { int total = 0; switch (this.curMode) { case EnumMode.Divider_V_DCP: curModeTotal = dividerData.voltageDCPData.Count; total = dividerData.voltageDCPData.Count + dividerData.voltageDCNData.Count + dividerData.voltageACData.Count + dividerData.frequencyData.Count; break; case EnumMode.Divider_V_DCN: curModeTotal = dividerData.voltageDCNData.Count; total = dividerData.voltageDCNData.Count + dividerData.voltageACData.Count + dividerData.frequencyData.Count; break; case EnumMode.Divider_V_AC: curModeTotal = dividerData.voltageACData.Count; total = dividerData.voltageACData.Count + dividerData.frequencyData.Count; break; case EnumMode.Divider_F: curModeTotal = dividerData.frequencyData.Count; total = dividerData.frequencyData.Count; break; } //当前模式和初始模式相同时,设置总数量 if (curMode == initiMode) { //方式是全部监测 if (this.modeMeasType) { this.totalNum = total; } //方式是当前模式监测 else { this.totalNum = this.curModeTotal; } } }
//返回fluke5520输出源的命令 public string getFlukeSourceString(DividerData dividerData) { string source = ""; if (curMode == EnumMode.Divider_F) { source += "OUT "; //获取电压值 float voltage = dividerData.frequencyData[this.curNum].Source; source += voltage.ToString(); source += "KV,"; //获取频率值 float frequency = dividerData.frequencyData[this.curNum].Frequency; source += frequency.ToString(); source += "HZ"; source += ";OPER"; } return(source); }
//根据校准项的点数获取页数 private void getCurModePageCount(DividerData dividerData) { switch (this.curMode) { case EnumMode.Divider_V_DCP: this.curModeCount = dividerData.voltageDCPData.Count; break; case EnumMode.Divider_V_DCN: this.curModeCount = dividerData.voltageDCNData.Count; break; case EnumMode.Divider_V_AC: this.curModeCount = dividerData.voltageACData.Count; break; case EnumMode.Divider_F: this.curModeCount = dividerData.frequencyData.Count; break; } this.curModePageCount = (this.curModeCount % DividerGridViewModel.pageSize == 0) ? this.curModeCount / DividerGridViewModel.pageSize : this.curModeCount / DividerGridViewModel.pageSize + 1; }
//返回9920高压的值 public string getCS9920SourceString(DividerData dividerData) { if (this.curNum < this.curModeTotal) { switch (this.curMode) { case EnumMode.Divider_V_DCP: this.curSource = dividerData.voltageDCPData[this.curNum].Source; break; case EnumMode.Divider_V_DCN: this.curSource = -1 * dividerData.voltageDCNData[this.curNum].Source; break; case EnumMode.Divider_V_AC: this.curSource = dividerData.voltageACData[this.curNum].Source; break; } return(this.curSource.ToString()); } return(""); }
//保存数据到数据库 private void SaveDividerDataToSql(DividerData dividerData) { bool result = false; //判断测量种类 if (this.modeMeasType) { //全部 result = DAO.SaveDividerDataAll(dividerData); } else { //当前,保存当前测量项的数据 result = DAO.SaveDividerDataByMode(dividerData, this.initiMode); } if (result) { MessageBox.Show("保存数据成功"); } else { MessageBox.Show("保存数据出错"); } }
public DividerProcess(EnumMode mode, DividerData dividerData) { ResetProcess(mode, dividerData); }
//获取模式 public void getCurMode(DividerData dividerData, bool dataValid) { changeMode = false; //当前模式校准完成,curNum从-1开始 if (curNum == curModeTotal - 1) { if (!modeCycleSwitch) { //循环开关关闭 if (modeMeasType == false) { //测试模式是当前模式 //数据读取完整 if (dataValid) { //测试完成 this.complete = EnumCaliState.COMPLETE; //自动保存数据 if (this.modeSaveData) { SaveDividerDataToSql(dividerData); } } return; } else { //测试模式是所有模式,根据当前模式进入到下一模式 switch (curMode) { case EnumMode.Divider_V_DCP: curMode = EnumMode.Divider_V_DCN; break; case EnumMode.Divider_V_DCN: curMode = EnumMode.Divider_V_AC; break; case EnumMode.Divider_V_AC: curMode = EnumMode.Divider_F; break; case EnumMode.Divider_F: this.complete = EnumCaliState.COMPLETE; return; } } } else { //循环开关打开时 //循环测量时,默认自动保存数据 DAO.SaveDividerDataByMode(dividerData, curMode); dividerData.Reset(false, curMode); if (modeMeasType) { //测试模式是所有模式时,根据当前模式进入到下一模式 switch (curMode) { case EnumMode.Divider_V_DCP: curMode = EnumMode.Divider_V_DCN; break; case EnumMode.Divider_V_DCN: curMode = EnumMode.Divider_V_AC; break; case EnumMode.Divider_V_AC: curMode = EnumMode.Divider_F; break; case EnumMode.Divider_F: curMode = EnumMode.Divider_V_DCP; break; } } else { //测试模式是当前模式时,直接重置此模式 } ResetProcess(curMode, dividerData); } } }
//获取数据源 public void getItemsList(DividerData dividerData, BindingList <DividerItem> tempItems) { List <DividerItem> listItems = null; this.getCurModePageCount(dividerData); //翻页时判断是否需要切换模式 //下一页 if (this.curModePage >= this.curModePageCount) { if (this.curMode < EnumMode.Divider_F) { this.curMode++; this.curModePage = 0; } else { this.curModePage = this.curModePageCount - 1; } } //上一页 else if (this.curModePage < 0) { if (this.curMode > EnumMode.Divider_V_DCP) { this.curMode--; this.getCurModePageCount(dividerData); this.curModePage = this.curModePageCount - 1; } else { this.curModePage = 0; } } int beginRecord = DividerGridViewModel.pageSize * this.curModePage; int endRecord = DividerGridViewModel.pageSize * (this.curModePage + 1) - 1; switch (this.curMode) { case EnumMode.Divider_V_DCP: listItems = dividerData.voltageDCPData; this.curModeCount = dividerData.voltageDCPData.Count; break; case EnumMode.Divider_V_DCN: listItems = dividerData.voltageDCNData; this.curModeCount = dividerData.voltageDCNData.Count; break; case EnumMode.Divider_V_AC: listItems = dividerData.voltageACData; this.curModeCount = dividerData.voltageACData.Count; break; case EnumMode.Divider_F: listItems = dividerData.frequencyData; this.curModeCount = dividerData.frequencyData.Count; break; } for (int i = beginRecord; i <= endRecord; i++) { if (i >= this.curModeCount) { break; } tempItems.Add(listItems.ElementAt(i)); } }