private void GetCorrugationWaveOneChannel(int channelID, string sFile, string citFileNew, int fs, double thresh_tii, int len_win, InvalidDataProcessing.CalculateCorrugationClass calculateCorrugation) { var header = citHelper.GetDataInfoHead(sFile); int bytesneed = header.iChannelNumber * 2 * 16000000; long startPos = citHelper.GetSamplePointStartOffset(header.iChannelNumber, channelID); long citFileLength = citHelper.GetFileLength(sFile); int count = Convert.ToInt32((citFileLength - startPos) / bytesneed); string channelName = citHelper.GetChannelNameEn(channelID, citFileNew); string excelPath = this.textBoxFileDirectory.Text + "\\" + channelName + "Info.csv"; if (!File.Exists(excelPath)) { MessageBox.Show("路径下不存在" + excelPath + "该文件,请提取波磨信息后再进行提取波磨波形", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } List <CorrugationInfoModel> listModels = calculateCorrugation.GetCorrugationInfoList(excelPath); string citFileWave = sFile.Substring(0, sFile.Length - 4) + "corrugationWave.cit"; CreateWaveCitHeader(citFileWave, header); for (int i = 0; i < count; i++) { long endPos = startPos + bytesneed; var data_miles = citHelper.GetMilesData(sFile, startPos, endPos); var data_speed = citHelper.GetSingleChannelData(sFile, 3, startPos, endPos); //轴箱左垂 var channelData = citHelper.GetSingleChannelData(sFile, channelID, startPos, endPos); //提取波磨波形 MWNumericArray bmWaveArray = calculateCorrugation.GetCorrugationWaveProcess(listModels, data_miles, data_speed, channelData, fs, thresh_tii, len_win); List <double[]> listResult = calculateCorrugation.GetCorrugationWave(bmWaveArray); CreateCitData(citFileWave, listResult); startPos = endPos; } }
private void GetCorrugationWaveAllDataOneChannel(int channelID, string sFile, string citFileNew, int fs, double thresh_tii, int len_win, InvalidDataProcessing.CalculateCorrugationClass calculateCorrugation) { string channelName = citHelper.GetChannelNameEn(channelID, citFileNew); string excelPath = this.textBoxFileDirectory.Text + "\\" + channelName + "Info.csv"; List <CorrugationInfoModel> listModels = calculateCorrugation.GetCorrugationInfoList(excelPath); var data_miles = citHelper.GetMilesData(sFile); var data_speed = citHelper.GetSingleChannelData(sFile, 3); //轴箱左垂 var channelData = citHelper.GetSingleChannelData(sFile, channelID); //提取波磨波形 MWNumericArray bmWaveArray = calculateCorrugation.GetCorrugationWaveProcess(listModels, data_miles, data_speed, channelData, fs, thresh_tii, len_win); //波磨波形结果 List <double[]> listResult = calculateCorrugation.GetCorrugationWave(bmWaveArray); }