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

📄 yjbkdlg.cpp

📁 本项目是我工作时候应公司需求开发的 开发工具是EVC++4.0
💻 CPP
📖 第 1 页 / 共 4 页
字号:
//	}
	
	CloseHandle(hYjbkFile);

	CDialog::OnCancel();

}

void CYjbkDlg::OnYjbkdlgBtnFzcs() 
{
	// TODO: Add your control notification handler code here
	CFzcsYjbkDlg dlg;
	dlg.m_bFullScreen = FALSE;
	dlg.DoModal();
}

void CYjbkDlg::OnYjbkdlgBtnFind() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);

	char tempJBH[26]="";

    WideCharToMultiByte(CP_ACP, 0, m_Yjbk_sJBH, -1, tempJBH, 25, NULL, NULL); 


	if(m_Yjbk_sJBH==_T(""))
	{
		AfxMessageBox(_T("请输入局编号 "));
		return;
	}
	int i;
	for(i=0;i<YjbkTotal;i++)
	{
		if(strcmp(YjbkData[i].jbh ,tempJBH)==0)
		{				
			break;
		}
	}
	if(i==YjbkTotal)
	{
		AfxMessageBox(_T("无匹配局编号表数据!"));
	}
	else 
	{
		YjbkNum=i;
		//显示匹配数据		
		
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,YjbkData[YjbkNum].ccbh ,-1,m_Yjbk_sCCBH.GetBuffer(25),25);
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,YjbkData[YjbkNum].CT ,-1,m_Yjbk_sCTBB.GetBuffer(25),25);
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,YjbkData[YjbkNum].jbrq ,-1,m_Yjbk_sDATE.GetBuffer(25),25);
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,YjbkData[YjbkNum].dbxh ,-1,m_Yjbk_sDBXH.GetBuffer(25),25);
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,YjbkData[YjbkNum].dljr ,-1,m_Yjbk_sDLJR.GetBuffer(25),25);
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,YjbkData[YjbkNum].jbh ,-1,m_Yjbk_sJBH.GetBuffer(25),25);
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,YjbkData[YjbkNum].jdy ,-1,m_Yjbk_sJDY.GetBuffer(25),25);
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,YjbkData[YjbkNum].jxfs ,-1,m_Yjbk_sJXFS.GetBuffer(25),25);
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,YjbkData[YjbkNum].PT ,-1,m_Yjbk_sPTBB.GetBuffer(25),25);
		m_Yjbk_fDBCS=YjbkData[YjbkNum].dbcs;		
		m_Yjbk_fEDDL=YjbkData[YjbkNum].eddl;
		m_Yjbk_fEDDY=YjbkData[YjbkNum].eddy;
    	m_Yjbk_fJDDJ=YjbkData[YjbkNum].jddj;
		m_Yjbk_iJBQS=YjbkData[YjbkNum].jbqs;		
		m_Yjbk_iBL=YjbkData[YjbkNum].bl;
		UpdateData(FALSE);
	}
}

void CYjbkDlg::OnYjbkdlgBtnFrom203() 
{
	// TODO: Add your control notification handler code here 
	BYTE  buf[SENDBUFLEN]="";
	int Num=0;	
	if(serialOpen==0)
	{
		CCommSetDlg dlg;
	    dlg.m_bFullScreen = FALSE;
	    dlg.DoModal();
	}
	if(serialOpen!=1)
	{
		return;
	}
	m_Yjbk_ProBar.SetPos(0);
	UpdateWindow();
			
	
for(int i=0;i<RECBUFLEN;i++)Data232[i]=0;
for(i=0;i<SENDBUFLEN;i++)buf[i]=0;	
   int j=0; 
   buf[j++]=0x41;
   buf[j++]=0x42;
   buf[j++]=0x00;
   buf[j++]=0x07;
   buf[j++]=0x00;
   buf[j++]=0x18;
   buf[j++]=0xa2;
   buf[j++]=0x43;
   if (!serial.WritePort(buf,8))
	{
		AfxMessageBox(_T("写入串口失败"));
		return;		
	}   
   	while(flg_Yjb_hand==0)
	{
	Sleep(20);
	Num++;	
	m_Yjbk_ProBar.SetPos(Num%20);
	if(Num>=200)
	{		
		AfxMessageBox(_T("通讯失败,请重试..."));
		for(int i=0;i<RECBUFLEN;i++)
		{
			Data232[i]=0;
		}
		m_Yjbk_ProBar.SetPos(0);
		return;
	}	
	}
	flg_Yjb_hand=0;
	m_Yjbk_ProBar.SetPos(20);

	Sleep(1000);
   	//要快数
	j=0; 
    buf[j++]=0x41;
    buf[j++]=0x42;
    buf[j++]=0x00;
    buf[j++]=0x07;
    buf[j++]=0x00;
    buf[j++]=0x15;
    buf[j++]=0x9f;
    buf[j++]=0x43;
   if (!serial.WritePort(buf,8))
	{
		AfxMessageBox(_T("写入串口失败"));		
		return;		
	}	
	Num=0;
   while(flg_Yjb_Num==0)
	{
	Sleep(20);
    m_Yjbk_ProBar.SetPos(Num%20);
	Num++;	
	if(Num>=200)
		{		
		AfxMessageBox(_T("通讯失败,请重试..."));
		for(int i=0;i<RECBUFLEN;i++)
		{
			Data232[i]=0;
		}
		m_Yjbk_ProBar.SetPos(0);
	    return;
		}	
	}
   flg_Yjb_Num=0;
   m_Yjbk_ProBar.SetPos(20);

//   for(int YjbkNum=0;YjbkNum<Yjb_Num;YjbkNum++)
   for(YjbkNumTemp=0;YjbkNumTemp<Yjb_Num;YjbkNumTemp++)
   {
	    j=0;
	//	for(int i=0;i<RECBUFLEN;i++)Data232[i]=0;
	//	for(i=0;i<SENDBUFLEN;i++)buf[i]=0;		
	  buf[j++]=0x41;
	  buf[j++]=0x42;
	  buf[j++]=0x00;
	  buf[j++]=0x09;
	  buf[j++]=0x00;
	  buf[j++]=0x16;
	  buf[j++]=(YjbkNumTemp+1)/256;
	  buf[j++]=(YjbkNumTemp+1)%256;
	  buf[j]=0;
	  for(int m=0;m<j;m++)buf[j]+=buf[m];
	  buf[++j]=0x43;
      if (!serial.WritePort(buf,10))
	  {
		AfxMessageBox(_T("写入串口失败"));		
		return;		
	  }
	  Num=0;
			while(RecYjb_n_data==0)
					{
						Sleep(200);						
						Num++;	
						m_Yjbk_ProBar.SetPos(Num%20);
						if(Num>=200)
							{		
							AfxMessageBox(_T("通讯失败,请重试..."));
	//						for(int k=0;k<RECBUFLEN;k++){Data232[k]=0;}
	//						for(k=0;k<SENDBUFLEN;k++){buf[k]=0;}
							m_Yjbk_ProBar.SetPos(0);
							return;
							}	//endif
					}//end while
			RecYjb_n_data=0;
			m_Yjbk_ProBar.SetPos(20);
			///处理		   
		 Sleep(200);
   }
   
	Sleep(1000);
	
	 //发送断开命令
  j=0; 
   buf[j++]=0x42;
   buf[j++]=0x42;
   buf[j++]=0x00;
   buf[j++]=0x07;
   buf[j++]=0x00;
   buf[j++]=0x1d;
   buf[j++]=0xa7;
   buf[j++]=0x43;
   if (!serial.WritePort(buf,8))
	{
		AfxMessageBox(_T("写入串口失败"));
		return;		
	}		
	
	 AfxMessageBox(_T("接收成功!"));	
	 ////////////////////////
	 YjbkTotal=Yjb_Num;
	 YjbkNum=1;

	 ////////////////////////
	

	 ////////////////////////
	 
	 	MultiByteToWideChar(CP_ACP,MB_COMPOSITE,YjbkData[YjbkNum].ccbh ,-1,m_Yjbk_sCCBH.GetBuffer(25),25);
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,YjbkData[YjbkNum].CT ,-1,m_Yjbk_sCTBB.GetBuffer(25),25);
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,YjbkData[YjbkNum].jbrq ,-1,m_Yjbk_sDATE.GetBuffer(25),25);
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,YjbkData[YjbkNum].dbxh ,-1,m_Yjbk_sDBXH.GetBuffer(25),25);
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,YjbkData[YjbkNum].dljr ,-1,m_Yjbk_sDLJR.GetBuffer(25),25);
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,YjbkData[YjbkNum].jbh ,-1,m_Yjbk_sJBH.GetBuffer(25),25);
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,YjbkData[YjbkNum].jdy ,-1,m_Yjbk_sJDY.GetBuffer(25),25);
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,YjbkData[YjbkNum].jxfs ,-1,m_Yjbk_sJXFS.GetBuffer(25),25);
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,YjbkData[YjbkNum].PT ,-1,m_Yjbk_sPTBB.GetBuffer(25),25);		
		m_Yjbk_fDBCS=YjbkData[YjbkNum].dbcs;		
		m_Yjbk_fEDDL=YjbkData[YjbkNum].eddl;
		m_Yjbk_fEDDY=YjbkData[YjbkNum].eddy;
    	m_Yjbk_fJDDJ=YjbkData[YjbkNum].jddj;
		m_Yjbk_iJBQS=YjbkData[YjbkNum].jbqs;		
		m_Yjbk_iBL=YjbkData[YjbkNum].bl;	

	CString s;
	s.Format(_T("电表总数: %d"),YjbkTotal);
    CEdit* pEdit = (CEdit*)GetDlgItem(IDC_YJBKDLG_COUNT_INFO);
    pEdit->SetWindowText(s);
    UpdateData(FALSE);
	
	 ///////////////////////////
  //return; 
}

void CYjbkDlg::OnYjbkdlgBtnFrompc() 
{
	// TODO: Add your control notification handler code here

}

BOOL CYjbkDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	m_hbrush=CreateSolidBrush(RGB(134,171,192));
	
	// TODO: Add extra initialization here
	//数据文件初始化 
	
	DWORD dwByteRead,dwByteReadJBH;
	hYjbkFile=CreateFile(
		             YJBKPATH,
					 GENERIC_READ | GENERIC_WRITE,
					 0,
					 NULL,
					 OPEN_ALWAYS,
					 FILE_ATTRIBUTE_HIDDEN,
					 NULL);
	if(hYjbkFile==INVALID_HANDLE_VALUE)
	{
		AfxMessageBox(_T("创建或打开存储文件失败!"));
		CloseHandle(hYjbkFile);
		return FALSE;
	}
	YjbkTotal=0;
	do
	{
	           ReadFile(hYjbkFile,YjbkData[YjbkTotal].jbh,25,&dwByteReadJBH,NULL);
			   ReadFile(hYjbkFile,YjbkData[YjbkTotal].ccbh,15,&dwByteRead,NULL);
			   ReadFile(hYjbkFile,YjbkData[YjbkTotal].dbxh,15,&dwByteRead,NULL);
			   ReadFile(hYjbkFile,YjbkData[YjbkTotal].jxfs,15,&dwByteRead,NULL);
			   ReadFile(hYjbkFile,&YjbkData[YjbkTotal].eddy,4,&dwByteRead,NULL);
			   ReadFile(hYjbkFile,&YjbkData[YjbkTotal].eddl,4,&dwByteRead,NULL);
			   ReadFile(hYjbkFile,&YjbkData[YjbkTotal].dbcs,4,&dwByteRead,NULL);
			   ReadFile(hYjbkFile,&YjbkData[YjbkTotal].jbqs,2,&dwByteRead,NULL);
			   ReadFile(hYjbkFile,&YjbkData[YjbkTotal].jddj,4,&dwByteRead,NULL);
			   ReadFile(hYjbkFile,YjbkData[YjbkTotal].PT,15,&dwByteRead,NULL);
			   ReadFile(hYjbkFile,YjbkData[YjbkTotal].CT,15,&dwByteRead,NULL);
			   ReadFile(hYjbkFile,&YjbkData[YjbkTotal].bl,2,&dwByteRead,NULL);
			   ReadFile(hYjbkFile,YjbkData[YjbkTotal].jbrq,15,&dwByteRead,NULL);
			   ReadFile(hYjbkFile,YjbkData[YjbkTotal].jdy,15,&dwByteRead,NULL);
			   ReadFile(hYjbkFile,YjbkData[YjbkTotal].dljr,15,&dwByteRead,NULL);
			   ///////end  校表参数

			   ReadFile(hYjbkFile,YjbkData[YjbkTotal].sccj,15,&dwByteRead,NULL);
			   ReadFile(hYjbkFile,YjbkData[YjbkTotal].scbh,15,&dwByteRead,NULL);
			   ReadFile(hYjbkFile,YjbkData[YjbkTotal].ccrq,15,&dwByteRead,NULL);
			   ReadFile(hYjbkFile,YjbkData[YjbkTotal].azdw,15,&dwByteRead,NULL);

⌨️ 快捷键说明

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