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) { } }
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) { } }