⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eubrsdlg.cpp

📁 cypress, signal collection 68013
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		if(TimeCount < TimeSample)
		{
			sprintf(strr,"%d",TimeCount);			
			m_map = "Sampling";
	        m_lab = strr;//"Sampling";
			m_lab = m_lab + "Sec";
        	UpdateData(FALSE) ;
		}			
		TimeCount = TimeCount - 1;
		if(TimeCount <= 0)
        {			
			bool flagstop = false;
			if( !app->FindParamOutpt )
			{
				MessageBox("未发现端口!","Warning!");
			}
			else
			{
				unsigned char *str = app->com_str  ;
				 // 获取各个设置
				canrec = false;
				str[0] = 0x42 ;
				str[1] = 0x53 ;		
				str[2] = 0x4A ;
				app->ParamOutEndpt->TimeOut = 200;
				flagstop = app->SendParam (str,3) ;
				m_SStart.EnableWindow(FALSE);
				m_Stop.EnableWindow(FALSE);
				m_Delete.EnableWindow(FALSE);
				Sleep(500);
				//StopSample();
				PostMessage(WM_DATASAVE,0,0);
				KillTimer(1);			
			}
			if(flagstop)
			{
				m_commstate = "配置成功,已经成功停止采样过程.";
				UpdateData(FALSE) ;		
			//	DeleteBuffer();
				m_lab = "";//TimeCount;
				m_map = "Stop";
				UpdateData(FALSE) ;					
			}
			else
			{			
				m_commstate = "配置失败,请检查硬件然后重新启动程序.";
				UpdateData(FALSE) ;
			}			
		}
	}
    if(nIDEvent == 2)
	{	
		if(canrec)
		{
			app->ParamInEndpt->XferData(&(RecBuf[0]),RecLen);		
			if(RecLen >=1)
			{  			
				for(TimerCount=0;TimerCount<RecLen;TimerCount++)
				{
					this ->InQuene(RecBuf[TimerCount]);
				}
				pCount = pCount + 1;
				if(pCount>30)
					pCount = 0;
				m_pp.SetPos(pCount);
			}	
			SolveData();
		}
	}
	 if(nIDEvent == 1234)
	 {
		 if((app->FindParamInpt)&&(app->FindParamOutpt))
		 {
			 KillTimer(1234);
			 MessageBox("设备连接正常");
		 }
		 else
		 { 
			 KillTimer(1234);	
			 MessageBox("设备检测错误,请重新连接USB设备重新检测");
		 }
	 }
	CDialog::OnTimer(nIDEvent);
}
void CEUBRSDlg::OnBUTTONDeleteData() 
{	
	pFile[0] = fopen("1","wb");
	fclose(pFile[0]);
	pFile[1] = fopen("2","wb");
	fclose(pFile[1]);
	pFile[2] = fopen("3","wb");
	fclose(pFile[2]);
	pFile[3] = fopen("4","wb");
	fclose(pFile[3]);
	pFile[4] = fopen("5","wb");
	fclose(pFile[4]);
	pFile[5] = fopen("6","wb");
	fclose(pFile[5]);
	pFile[6] = fopen("7","wb");
	fclose(pFile[6]);
	pFile[7] = fopen("8","wb");
	fclose(pFile[7]);
	m_commstate = "数据清楚成功!";
	UpdateData(FALSE) ;		
}
void CEUBRSDlg::InitQuene()
{
	Front = 0;
	Rear = 0;
	Count = 0;
}
bool CEUBRSDlg::InQuene(unsigned char datain)
{
	if((Rear+1)%MaxSize ==  Front)
		return false;
	else 
		DataQuene[Rear] = datain;
	Rear = (Rear+1)%MaxSize;
	Count = Count + 1;
	return true;
}
unsigned char CEUBRSDlg::OutQuene()
{
	unsigned char e;
	if(Front == Rear)
		return 0;
	e = DataQuene[Front];
	Front = (Front+1)%MaxSize;
	Count = Count -1;
	return e;
}
int CEUBRSDlg::GetCount()
{
	int c;
	c = this->Count;
	return c;
}

void CEUBRSDlg::SolveData()
{
	while(GetCount()>19)
		{	
		    int SolveCount;
			outchar = OutQuene();
			if((outchar==0x40))				
            {   
				//while(GetCount()<=18);
				for(SolveCount=0;SolveCount<18;SolveCount++)
					DataSolve[SolveCount] = (long)OutQuene();
				if(DataSolve[17]==0x23)
				{
					switch(DataSolve[0])
					{
					case 1:	
						ch1datasolve();
						break;
					case 2:					
						ch2datasolve();
						break;
					case 3:					
						ch3datasolve();			
						break;
					case 4:						
						ch4datasolve();
						break;
					case 5:	
	                    ch5datasolve();
						break;
					case 6:
						ch6datasolve();
						break;
					case 7:	
						ch7datasolve();
						break;
					case 8:	
						ch8datasolve();
						break;							
					}
				}				
            }
		}    
}

void CEUBRSDlg::ch1datasolve()
{
	int ch1count;
	double ch1temp;
	for(ch1count=1;ch1count<=13;ch1count=ch1count+4)
	{
		ch1temp = DataSolve[ch1count]*256+DataSolve[ch1count+1];
		if(m_scanmethod == 1)
			ch1temp = (ch1temp*4.096/4095.0)-2.048;
		else
		{
			ch1temp = (ch1temp*m_intervalit);
			ch1temp = ch1temp/1000.0;
		}
		DA[0] = ch1temp;

		ch1temp = DataSolve[ch1count+2]*256+DataSolve[ch1count+3];
		ch1temp = ch1temp/65536.0;
		ch1temp = (ch1temp*20);
		ch1temp = ch1temp - 10;
		AD[0] = ch1temp;		
		DataSaving[0][DataSavingCount[0]++] = DA[0];
		DataSaving[0][DataSavingCount[0]++] = AD[0];
	}
}

void CEUBRSDlg::ch2datasolve()
{
	int ch2count;
	double ch2temp;
	for(ch2count=1;ch2count<=13;ch2count=ch2count+4)
	{							
		ch2temp = DataSolve[ch2count]*256+DataSolve[ch2count+1];
		if(m_scanmethod == 1)
			ch2temp = (ch2temp*4.096/4095.0)-2.048;
		else
			ch2temp = (ch2temp*m_intervalit)/1000.0;
		DA[1] = ch2temp;
		ch2temp = DataSolve[ch2count+2]*256+DataSolve[ch2count+3];
		ch2temp = ch2temp/65536.0;
		ch2temp = (ch2temp*20);
		ch2temp = ch2temp - 10;
		AD[1] = ch2temp;
		DataSaving[1][DataSavingCount[1]++] = DA[1];
		DataSaving[1][DataSavingCount[1]++] = AD[1];
	}			
}

void CEUBRSDlg::ch3datasolve()
{
	int ch3count;
	double ch3temp;
	for(ch3count=1;ch3count<=13;ch3count=ch3count+4)
	{							
		ch3temp = DataSolve[ch3count]*256+DataSolve[ch3count+1];
		if(m_scanmethod == 1)
			ch3temp = (ch3temp*4.096/4095.0)-2.048;
		else
			ch3temp = (ch3temp*m_intervalit)/1000.0;
		DA[2] = ch3temp;
		ch3temp = DataSolve[ch3count+2]*256+DataSolve[ch3count+3];
		ch3temp = ch3temp/65536.0;
		ch3temp = (ch3temp*20);
		ch3temp = ch3temp - 10;
		AD[2] = ch3temp;
        DataSaving[2][DataSavingCount[2]++] = DA[2];
		DataSaving[2][DataSavingCount[2]++] = AD[2];
	}
}

void CEUBRSDlg::ch4datasolve()
{
	int ch4count;
	double ch4temp;
	for(ch4count=1;ch4count<=13;ch4count=ch4count+4)
	{							
		ch4temp = DataSolve[ch4count]*256+DataSolve[ch4count+1];
		if(m_scanmethod == 1)
			ch4temp = (ch4temp*4.096/4095.0)-2.048;
		else
			ch4temp = (ch4temp*m_intervalit)/1000.0;
		DA[3] = ch4temp;
		ch4temp = DataSolve[ch4count+2]*256+DataSolve[ch4count+3];
		ch4temp = ch4temp/65536.0;
		ch4temp = (ch4temp*20);
		ch4temp = ch4temp - 10;
		AD[3] = ch4temp;
        DataSaving[3][DataSavingCount[3]++] = DA[3];
		DataSaving[3][DataSavingCount[3]++] = AD[3]; 
	}
}

void CEUBRSDlg::ch5datasolve()
{
	int ch5count;
	double ch5temp;
	for(ch5count=1;ch5count<=13;ch5count=ch5count+4)
	{
		ch5temp = DataSolve[ch5count]*256+DataSolve[ch5count+1];
		if(m_scanmethod == 1)
			ch5temp = (ch5temp*4.096/4095.0)-2.048;
		else
			ch5temp = (ch5temp*m_intervalit)/1000.0;
		DA[4] = ch5temp;
		ch5temp = DataSolve[ch5count+2]*256+DataSolve[ch5count+3];
		ch5temp = ch5temp/65536.0;
		ch5temp = (ch5temp*20);
		ch5temp = ch5temp - 10;
		AD[4] = ch5temp;
        DataSaving[4][DataSavingCount[4]++] = DA[4];
		DataSaving[4][DataSavingCount[4]++] = AD[4]; 
	}
}

void CEUBRSDlg::ch6datasolve()
{
	int ch6count;
	double ch6temp;
	for(ch6count=1;ch6count<=13;ch6count=ch6count+4)
	{							
		ch6temp = DataSolve[ch6count]*256+DataSolve[ch6count+1];
		if(m_scanmethod == 1)
			ch6temp = (ch6temp*4.096/4095.0)-2.048;
		else
			ch6temp = (ch6temp*m_intervalit)/1000.0;
		DA[5] = ch6temp;
		ch6temp = DataSolve[ch6count+2]*256+DataSolve[ch6count+3];
		ch6temp = ch6temp/65536.0;
		ch6temp = (ch6temp*20);
		ch6temp = ch6temp - 10;
		AD[5] = ch6temp;
        DataSaving[5][DataSavingCount[5]++] = DA[5];
		DataSaving[5][DataSavingCount[5]++] = AD[5]; 
	}
}

void CEUBRSDlg::ch7datasolve()
{
	int ch7count;
	double ch7temp;
	for(ch7count=1;ch7count<=13;ch7count=ch7count+4)
	{							
		ch7temp = DataSolve[ch7count]*256+DataSolve[ch7count+1];
		if(m_scanmethod == 1)
			ch7temp = (ch7temp*4.096/4095.0)-2.048;
		else
			ch7temp = (ch7temp*m_intervalit)/1000.0;
		DA[6] = ch7temp;
		ch7temp = DataSolve[ch7count+2]*256+DataSolve[ch7count+3];
		ch7temp = ch7temp/65536.0;
		ch7temp = (ch7temp*20);
		ch7temp = ch7temp - 10;
		AD[6] = ch7temp;
        DataSaving[6][DataSavingCount[6]++] = DA[6];
		DataSaving[6][DataSavingCount[6]++] = AD[6];													
	}				
}

void CEUBRSDlg::ch8datasolve()
{
	int ch8count;
	double ch8temp;
	for(ch8count=1;ch8count<=13;ch8count=ch8count+4)
	{
		ch8temp = DataSolve[ch8count]*256+DataSolve[ch8count+1];
		if(m_scanmethod == 1)
			ch8temp = (ch8temp*4.096/4095.0)-2.048;
		else
			ch8temp = (ch8temp*m_intervalit)/1000.0;
		DA[7] = ch8temp;
		ch8temp = DataSolve[ch8count+2]*256+DataSolve[ch8count+3];
		ch8temp = ch8temp/65536.0;
		ch8temp = (ch8temp*20);
		ch8temp = ch8temp - 10;
		AD[7] = ch8temp;		
        DataSaving[7][DataSavingCount[7]++] = DA[7];
		DataSaving[7][DataSavingCount[7]++] = AD[7];												
	}					
}

void CEUBRSDlg::OnBUTTONStopSample() 
{	// TODO: Add your control notification handler code here
	CEUBRSApp *app = (CEUBRSApp *)AfxGetApp(); 	
	bool flagstop = false;
	if( !app->FindParamOutpt )
	{
		MessageBox("未发现端口!","Warning!");
	}
	else
	{
		unsigned char *str = app->com_str  ;
		canrec = false;
		 // 获取各个设置
		str[0] = 0x42 ;
		str[1] = 0x53 ;		
		str[2] = 0x4A ;
		app->ParamOutEndpt->TimeOut = 200;
		flagstop = app->SendParam (str,3) ;	
		KillTimer(1);
		Sleep(20);
    }
	if(flagstop)
	{
		m_SStart.EnableWindow(FALSE);
		m_Stop.EnableWindow(FALSE);
		m_Delete.EnableWindow(FALSE);
		m_commstate = "配置成功,已经成功停止采样过程.";
	    UpdateData(FALSE) ;
	    m_lab = "";//TimeCount;
		m_map = "Stop";
        UpdateData(FALSE) ;	
		Sleep(500);
		//StopSample();
		PostMessage(WM_DATASAVE,0,0);
	}
	else
	{			
		m_commstate = "配置失败,请检查硬件然后重新启动程序.";
	    UpdateData(FALSE) ;
	}	
}
void CEUBRSDlg::StopSample()
{
	int Stopi,Stopj;
	int block;
	CString strfile;		
	double DataSavingTemp;
	m_SStart.EnableWindow(TRUE);
	m_Stop.EnableWindow(FALSE);
	m_Delete.EnableWindow(TRUE);
	for(Stopi=0;Stopi<8;Stopi++)
	{
		strfile.Format("%d",Stopi+1);	
		//strfile = strfile + ".txt";
		pFile[Stopi] = fopen(strfile,"ab"); 
	}	
	block = 0;
	for(Stopi=0;Stopi<8;Stopi++)
	{  	
		if(DataSavingCount[Stopi]>2)
		{ 
			DataSavingTemp = DataSavingCount[Stopi]-2;
			for(Stopj=0;Stopj<DataSavingTemp;)
			{	
				block = block + 1;
				if(block > 50)
				{
					block = 0;
					fclose(pFile[0]);
					pFile[0] = fopen("1","ab");
					fclose(pFile[1]);
					pFile[1] = fopen("2","ab");
					fclose(pFile[2]);
					pFile[2] = fopen("3","ab");
					fclose(pFile[3]);
					pFile[3] = fopen("4","ab");
					fclose(pFile[4]);
					pFile[4] = fopen("5","ab");
					fclose(pFile[5]);
					pFile[5] = fopen("6","ab");
					fclose(pFile[6]);
					pFile[6] = fopen("7","ab");
					fclose(pFile[7]);
					pFile[7] = fopen("8","ab");
				}
				DAstr.Format("%.3f",DataSaving[Stopi][Stopj++]);
				ADstr.Format("%.4f",DataSaving[Stopi][Stopj++]);				
				fwrite(DAstr,1,strlen(DAstr),pFile[Stopi]);
				fwrite("    ",1,strlen("    "),pFile[Stopi]);
				fwrite(ADstr,1,strlen(ADstr),pFile[Stopi]);
				fwrite("\r\n",1,strlen("\r\n"),pFile[Stopi]);
				//fwrite("gxy\n",1,strlen("gxy\n"),pFile[Stopi]);
			}	
			//fwrite(DataSaving[Stopi],sizeof(double),DataSavingTemp,pFile[Stopi]);		    
			fclose(pFile[Stopi]);
			block = 0;
			Sleep(20);
		}
	}
}
void CEUBRSDlg::GetBuffer()
{
	DataSaving[0] = new double[50000];
	DataSaving[1] = new double[50000];
	DataSaving[2] = new double[50000];
	DataSaving[3] = new double[50000];
	DataSaving[4] = new double[50000];
	DataSaving[5] = new double[50000];
	DataSaving[6] = new double[50000];
	DataSaving[7] = new double[50000];
}

void CEUBRSDlg::DeleteBuffer()
{
	delete DataSaving[0];
	delete DataSaving[1];
	delete DataSaving[2];
	delete DataSaving[3];
	delete DataSaving[4];
	delete DataSaving[5];
	delete DataSaving[6];	
	delete DataSaving[7];
}

void CEUBRSDlg::OnDataSave(WPARAM w,LPARAM l)
{
	StopSample();	
}

void CEUBRSDlg::OnBUTTONDetecting() 
{
	// TODO: Add your control notification handler code here
	CEUBRSApp *app = (CEUBRSApp *)AfxGetApp();
	app->FindParamOutpt = FALSE ;
	app->USBDevice = new CCyUSBDevice(m_hWnd);   // Create an instance of CCyUSBDevice
	app->GetPort();
	SetTimer(1234,1000,NULL);
}

HBRUSH CEUBRSDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
	
	// TODO: Change any attributes of the DC here
	if(pWnd->GetDlgCtrlID()==IDC_STATIC_map)
		pDC->SetTextColor(RGB(255,0,0));
    if(pWnd->GetDlgCtrlID()==IDC_STATIC_Message)
		pDC->SetTextColor(RGB(255,0,0));
    if(pWnd->GetDlgCtrlID()==IDC_STATIC_COMMSTATE)
		pDC->SetTextColor(RGB(255,0,0));
	// TODO: Return a different brush if the default is not desired
	return hbr;
}

void CEUBRSDlg::OnCHECKChannel1() 
{
	// TODO: Add your control notification handler code here
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -