//更新测量项
        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;
        }
Example #6
0
        //返回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));
            }
        }