资源描述:
《进行数据转换的线程函数》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、//进行数据转换的线程函数UINTConvertData(LPVOIDlparam){unsignedchartempdata[5];longdattemp;double*datastr,*datastr_2;longoffset=0;charstrtemp[500];CStringstrFileName,outFileName1,outFileName2,TempCstr,TempCstr2,msg;CStringheadFileName;CStringheadFileContent;CStringADCformat=((CConvertDataDlg*)lpa
2、ram)->adparam.DataFormat;UINTADC_resolve=((CConvertDataDlg*)lparam)->adparam.ADC_resolve;UINTADC_zero=((CConvertDataDlg*)lparam)->adparam.ADC_zero;intpos,i,j;intADC_gain=1;if(((CConvertDataDlg*)lparam)->m_radio.GetCheck())//如果选中,则换算为电压ADC_gain=200;/***************yqs20070711**********
3、**********/CFileDialogFileDlg(TRUE,"*","*.*",OFN_OVERWRITEPROMPT,".*");if(FileDlg.DoModal()==IDOK){strFileName=FileDlg.GetPathName();//获得路径名((CConvertDataDlg*)lparam)->m_progress.ShowWindow(TRUE);//显示进度条((CConvertDataDlg*)lparam)->m_progress.SetPos(1);//设置进度条位置////////先从相应的头文件读取数据信息,包
4、括数据存储格式、ADC分辨率和ADC零值等///////////////headFileName=strFileName;headFileName.Replace("数据文件","头文件");headFileName.Replace(".dat",".hea");//得到相应头文件的路径ifstreamfheadin(headFileName);//以文本形式打开头文件fheadin.read(strtemp,200);headFileContent.Format("%s",strtemp);pos=headFileContent.ReverseFind(''
5、);headFileContent=headFileContent.Left(pos+1);if((pos=headFileContent.Find("11",0))!=-1)//adc分辨率为11bitADC_resolve=11;elseif((pos=headFileContent.Find("12",0))!=-1)//adc分辨率为12bitADC_resolve=12;else{AfxMessageBox("ADC分辨率未知!");fheadin.close();((CConvertDataDlg*)lparam)->m_progress.SetPos
6、(0);((CConvertDataDlg*)lparam)->m_progress.ShowWindow(FALSE);return0;}//接着获得ADC的零值pos+=3;charch[10];for(i=1;i<10;i++){ch[i-1]=headFileContent.GetAt(pos+i);if(ch[i-1]=='')break;}ch[i-1]=' ';ADC_zero=atoi(ch);//接着根据数据存储格式读数:((CConvertDataDlg*)lparam)->m_progress.SetPos(5);if(headFileCo
7、ntent.Find("212",0)!=-1)//数据以format212的格式存储{((CConvertDataDlg*)lparam)->adparam.DataFormat.Format("212");ifstreamfin(strFileName,ios::binary);fin.seekg(offset);datastr=newdouble[650000];datastr_2=newdouble[650000];if(datastr==NULL
8、
9、datastr_2==NULL)//分配内存没有成功{AfxMessageBox("内存不足!");((C
10、Conve