📄 yjbkdlg.cpp
字号:
// }
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 + -