private void ExportProc()
        {
            try
            {
                exportTotal = 0;
                exportedSize = 0;
                for (int i = 0; i < MaxSrcs; i++)
                {
                    if (selectChannels[i] != null)
                    {
                        exportTotal += selectChannels[i].File.Length;
                    }
                }
                for (int i = 0; i < MaxSrcs; i += PropChannelNum)
                {

                    if (selectChannels[i] != null)
                    {
                        exportFile = selectChannels[i].File;
                        if (i > 0 && (selectChannels[i - PropChannelNum] != null))
                        {
                            exportedSize += selectChannels[i - PropChannelNum].File.Length;
                        }
                        SignalChannel sigChannel = selectChannels[i].File.Channels[selectChannels[i].Channel-1];

                        int srcIndex = i / PropChannelNum;

                        sigChannel.DecodeFM = false;
                        sigChannel.DecodeCurve = 0;
                        sigChannel.DecodeAngle = false;

                        sigChannel.DecodeFM=selectDevice.DevGroup.SourceGroups[srcIndex].AllowFM;
                        int allowCurve=selectDevice.DevGroup.SourceGroups[srcIndex].AllowCurve;
                        sigChannel.DecodeCurve = allowCurve;
                        bool allowAngle = selectDevice.DevGroup.SourceGroups[srcIndex].AllowAngle;
                        sigChannel.DecodeAngle = allowAngle;
                        if (allowAngle && selectChannels[i + 1] != null) //参考相位
                        {
                            SignalChannel sigChannel1 = selectChannels[i + 1].File.Channels[selectChannels[i + 1].Channel - 1];
                            sigChannel1.DecodeAngle = true;
                            sigChannel1.IsReference = true;
                            selectChannels[i + 1].File.SignalArgsChanged += new EventHandler<RecordAnalyse.Signal.SignalArgs>(FormDataWizard_SignalArgsChanged);
                        }
                        else if (allowCurve>0) //解码道岔曲线
                        {
                           HHDeviceProperty devBindProp= selectDevice.GetProperty(selectDevice.DevGroup.SourceGroups[srcIndex].Properties[0]);
                            DevCurve devCurve= devBindProp.Curves[0];
                            sigChannel.TimeInterval = devCurve.TimeInterval;

                            if (devCurve.MonitorType == Common.SignalType.SignalDCCurve)
                            {
                                sigChannel.DecodeCurve = 2;
                            }
                            else
                            {
                                sigChannel.DecodeCurve = 1;
                            }

                            if ((selectChannels[i + 1] == null) && (selectChannels[i + 2] == null)) //单相
                            {
                                sigChannel.SignalArgsChanged += new EventHandler<RecordAnalyse.Signal.SignalArgs>(FormDataWizard_SignalArgsChanged);
                            }
                            else
                            {
                                curveGrp = new Common.CurveGroup(3, devCurve.Group.Type, devCurve.Index);

                                sigChannel.SignalArgsChanged += new EventHandler<RecordAnalyse.Signal.SignalArgs>(FormDataWizard_SignalArgsChangedA);

                                if (selectChannels[i + 1] != null)
                                {
                                    selectChannels[i + 1].File.Channels[selectChannels[i + 1].Channel - 1].SignalArgsChanged += new EventHandler<RecordAnalyse.Signal.SignalArgs>(FormDataWizard_SignalArgsChangedB); //B相
                                }
                                if (selectChannels[i + 2] != null)
                                {
                                    selectChannels[i + 2].File.Channels[selectChannels[i + 2].Channel - 1].SignalArgsChanged += new EventHandler<RecordAnalyse.Signal.SignalArgs>(FormDataWizard_SignalArgsChangedC); //C相
                                }
                            }
                        }
                        else
                        {
                            sigChannel.SignalArgsChanged += new EventHandler<RecordAnalyse.Signal.SignalArgs>(FormDataWizard_SignalArgsChanged);
                        }
                        exportSrcIndex = srcIndex;
                        selectChannels[i].File.Export();
                        if (allowAngle && selectChannels[i + 1] != null) //参考相位
                        {
                            SignalChannel sigChannel1 = selectChannels[i + 1].File.Channels[selectChannels[i + 1].Channel - 1];
                            sigChannel1.DecodeAngle = true;
                            sigChannel1.SignalArgsChanged -= new EventHandler<RecordAnalyse.Signal.SignalArgs>(FormDataWizard_SignalArgsChanged);
                        }
                        else if ((allowCurve>0) && ((selectChannels[i + 1] != null) || (selectChannels[i + 2] != null))) //有2条以上曲线
                        {
                            HHDeviceProperty devBindProp = selectDevice.GetProperty(selectDevice.DevGroup.SourceGroups[srcIndex].Properties[0]);
                            DevCurve devCurve = devBindProp.Curves[0];

                            sigChannel.SignalArgsChanged -= new EventHandler<RecordAnalyse.Signal.SignalArgs>(FormDataWizard_SignalArgsChangedA);
                            if (selectChannels[i + 1] != null)
                            {
                                selectChannels[i + 1].File.Channels[selectChannels[i + 1].Channel - 1].SignalArgsChanged -= new EventHandler<RecordAnalyse.Signal.SignalArgs>(FormDataWizard_SignalArgsChangedB); //B相
                            }
                            if (selectChannels[i + 2] != null)
                            {
                                selectChannels[i + 2].File.Channels[selectChannels[i + 2].Channel - 1].SignalArgsChanged -= new EventHandler<RecordAnalyse.Signal.SignalArgs>(FormDataWizard_SignalArgsChangedC); //C相
                            }

                        }
                        else
                        {
                            sigChannel.SignalArgsChanged -= new EventHandler<RecordAnalyse.Signal.SignalArgs>(FormDataWizard_SignalArgsChanged);
                        }

                    }
                }

                exportOK = true;
            }
            catch (Exception)
            {

            }
        }
Example #2
0
        private void ExportProc()
        {
            try
            {
                exportTotal  = 0;
                exportedSize = 0;
                for (int i = 0; i < MaxSrcs; i++)
                {
                    if (selectChannels[i] != null)
                    {
                        exportTotal += selectChannels[i].File.Length;
                    }
                }
                for (int i = 0; i < MaxSrcs; i += PropChannelNum)
                {
                    if (selectChannels[i] != null)
                    {
                        exportFile = selectChannels[i].File;
                        if (i > 0 && (selectChannels[i - PropChannelNum] != null))
                        {
                            exportedSize += selectChannels[i - PropChannelNum].File.Length;
                        }
                        SignalChannel sigChannel = selectChannels[i].File.Channels[selectChannels[i].Channel - 1];

                        int srcIndex = i / PropChannelNum;


                        sigChannel.DecodeFM    = false;
                        sigChannel.DecodeCurve = 0;
                        sigChannel.DecodeAngle = false;

                        sigChannel.DecodeFM = selectDevice.DevGroup.SourceGroups[srcIndex].AllowFM;
                        int allowCurve = selectDevice.DevGroup.SourceGroups[srcIndex].AllowCurve;
                        sigChannel.DecodeCurve = allowCurve;
                        bool allowAngle = selectDevice.DevGroup.SourceGroups[srcIndex].AllowAngle;
                        sigChannel.DecodeAngle = allowAngle;
                        if (allowAngle && selectChannels[i + 1] != null) //参考相位
                        {
                            SignalChannel sigChannel1 = selectChannels[i + 1].File.Channels[selectChannels[i + 1].Channel - 1];
                            sigChannel1.DecodeAngle = true;
                            sigChannel1.IsReference = true;
                            selectChannels[i + 1].File.SignalArgsChanged += new EventHandler <RecordAnalyse.Signal.SignalArgs>(FormDataWizard_SignalArgsChanged);
                        }
                        else if (allowCurve > 0) //解码道岔曲线
                        {
                            HHDeviceProperty devBindProp = selectDevice.GetProperty(selectDevice.DevGroup.SourceGroups[srcIndex].Properties[0]);
                            DevCurve         devCurve    = devBindProp.Curves[0];
                            sigChannel.TimeInterval = devCurve.TimeInterval;

                            if (devCurve.MonitorType == Common.SignalType.SignalDCCurve)
                            {
                                sigChannel.DecodeCurve = 2;
                            }
                            else
                            {
                                sigChannel.DecodeCurve = 1;
                            }

                            if ((selectChannels[i + 1] == null) && (selectChannels[i + 2] == null)) //单相
                            {
                                sigChannel.SignalArgsChanged += new EventHandler <RecordAnalyse.Signal.SignalArgs>(FormDataWizard_SignalArgsChanged);
                            }
                            else
                            {
                                curveGrp = new Common.CurveGroup(3, devCurve.Group.Type, devCurve.Index);


                                sigChannel.SignalArgsChanged += new EventHandler <RecordAnalyse.Signal.SignalArgs>(FormDataWizard_SignalArgsChangedA);

                                if (selectChannels[i + 1] != null)
                                {
                                    selectChannels[i + 1].File.Channels[selectChannels[i + 1].Channel - 1].SignalArgsChanged += new EventHandler <RecordAnalyse.Signal.SignalArgs>(FormDataWizard_SignalArgsChangedB); //B相
                                }
                                if (selectChannels[i + 2] != null)
                                {
                                    selectChannels[i + 2].File.Channels[selectChannels[i + 2].Channel - 1].SignalArgsChanged += new EventHandler <RecordAnalyse.Signal.SignalArgs>(FormDataWizard_SignalArgsChangedC); //C相
                                }
                            }
                        }
                        else
                        {
                            sigChannel.SignalArgsChanged += new EventHandler <RecordAnalyse.Signal.SignalArgs>(FormDataWizard_SignalArgsChanged);
                        }
                        exportSrcIndex = srcIndex;
                        selectChannels[i].File.Export();
                        if (allowAngle && selectChannels[i + 1] != null) //参考相位
                        {
                            SignalChannel sigChannel1 = selectChannels[i + 1].File.Channels[selectChannels[i + 1].Channel - 1];
                            sigChannel1.DecodeAngle        = true;
                            sigChannel1.SignalArgsChanged -= new EventHandler <RecordAnalyse.Signal.SignalArgs>(FormDataWizard_SignalArgsChanged);
                        }
                        else if ((allowCurve > 0) && ((selectChannels[i + 1] != null) || (selectChannels[i + 2] != null))) //有2条以上曲线
                        {
                            HHDeviceProperty devBindProp = selectDevice.GetProperty(selectDevice.DevGroup.SourceGroups[srcIndex].Properties[0]);
                            DevCurve         devCurve    = devBindProp.Curves[0];


                            sigChannel.SignalArgsChanged -= new EventHandler <RecordAnalyse.Signal.SignalArgs>(FormDataWizard_SignalArgsChangedA);
                            if (selectChannels[i + 1] != null)
                            {
                                selectChannels[i + 1].File.Channels[selectChannels[i + 1].Channel - 1].SignalArgsChanged -= new EventHandler <RecordAnalyse.Signal.SignalArgs>(FormDataWizard_SignalArgsChangedB); //B相
                            }
                            if (selectChannels[i + 2] != null)
                            {
                                selectChannels[i + 2].File.Channels[selectChannels[i + 2].Channel - 1].SignalArgsChanged -= new EventHandler <RecordAnalyse.Signal.SignalArgs>(FormDataWizard_SignalArgsChangedC); //C相
                            }
                        }
                        else
                        {
                            sigChannel.SignalArgsChanged -= new EventHandler <RecordAnalyse.Signal.SignalArgs>(FormDataWizard_SignalArgsChanged);
                        }
                    }
                }

                exportOK = true;
            }
            catch (Exception)
            {
            }
        }