📄 commsetdlg.cpp
字号:
// CommSetDlg.cpp : implementation file
//
#include "stdafx.h"
#include "Wonder.h"
#include "DataStruct.h"
#include "CommSetDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern CCESeries serial;
extern CYjbkData YjbkData[];
extern int YjbkNum ;
extern int YjbkTotal ;
extern BYTE Data232[];
extern int iCounter;
extern int flg_Yjb_hand;
extern int flg_Djb_hand;
extern int flg_Djb_recOK ;
extern int flg_Yjb_recOK ;
extern int serialOpen ;
extern CYjbkData YjbkBL;
extern fdlx FDLH;
extern zslx ZXLH;
extern char back[];
extern int YjbSendChose ;
extern HANDLE hYjbkFile;
extern int flg_Yjb_hand ;
extern int flg_Yjb_recOK ;
extern int flg_Yjb_Num;
extern int Yjb_Num;
extern int RecYjb_n_data;
extern float a;
extern float b;
extern float c;
extern int YjbkNumTemp;
/////////////////////////////////////////////////////////////////////////////
// CCommSetDlg dialog
CCESeries serial;
CCommSetDlg::CCommSetDlg(CWnd* pParent /*=NULL*/)
: CDialog(CCommSetDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CCommSetDlg)
m_CommBaud = 2;
m_CommNum = 0;
//}}AFX_DATA_INIT
}
void CCommSetDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CCommSetDlg)
DDX_Control(pDX, IDC_COMMSETDLG_CBX_COMNUM, m_CommNumSet);
DDX_Control(pDX, IDC_COMMSET_CBX_BAUD, m_CommBaudSet);
DDX_CBIndex(pDX, IDC_COMMSET_CBX_BAUD, m_CommBaud);
DDX_CBIndex(pDX, IDC_COMMSETDLG_CBX_COMNUM, m_CommNum);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CCommSetDlg, CDialog)
//{{AFX_MSG_MAP(CCommSetDlg)
ON_BN_CLICKED(IDC_COMMSETDLG_BTN_EXIT, OnCommsetdlgBtnExit)
ON_BN_CLICKED(IDC_COMMSETDLG_BTN_COMMOPEN, OnCommsetdlgBtnCommopen)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CCommSetDlg message handlers
void CCommSetDlg::OnCommsetdlgBtnExit()
{
// TODO: Add your control notification handler code here
//serial.ClosePort();
CDialog::OnCancel();
}
void CCommSetDlg::OnCommsetdlgBtnCommopen()
{
// TODO: Add your control notification handler code here
CString ComNum,ComBaud;
int a=m_CommNumSet.GetCurSel();//串口号
int b=m_CommBaudSet.GetCurSel();//波特率
switch(b)
{
case 0: b=1200;break;
case 1: b=2400;break;
case 2: b=4800;break;
case 3: b=9600;break;
case 4: b=19200;break;
case 5: b=38400;break;
case 6: b=57600;break;
}
int c=0;//校验位
int d=8;//数据位
int e=0;//停止位
serial.m_OnSeriesRead = OnSeriesRead;
if (!serial.OpenPort(this,a+1 ,b ,c ,d ,e ))
{
serialOpen = 0;
AfxMessageBox(L"串口打开失败!");
}
else //打开成功的话
{
serialOpen = 1;
CDialog::OnCancel();
}
}
void CCommSetDlg::OnSeriesRead(CWnd *pWnd, BYTE *buf, int bufLen)
{
int i;
int m=6;
int Length,command;
for(i=0;i<RECBUFLEN;i++)
{
Data232[i]=0;//清空存储空间
}
for(i=0;i<bufLen;i++)
{
Data232[i]=buf[i];//将串口数据转至全局
}
//通讯协议判断
if(Data232[0]!=0x41){AfxMessageBox(_T("通讯失败!"));return;}
if(Data232[1]!=0x42){AfxMessageBox(_T("通讯失败!"));return;}
Length=Data232[2]*256+Data232[3];
if(Data232[Length]!=0x43){AfxMessageBox(_T("通讯失败!"));return;}
//通讯命令校验和
int cs=0;
for(i=0;i<Length-1;i++)cs+=Data232[i];
cs%=256;
if(Data232[Length-1]!=cs){AfxMessageBox(_T("通讯失败!"));return;}
char str[51]="";
int n,x,back=0;
//通讯命令判断选择
command=Data232[4]*256+Data232[5];
switch(command)
{
case 0x0011:flg_Yjb_Num=1;
Yjb_Num=Data232[6]*256+Data232[7]; break;
case 0x0012:
RecYjb_n_data=1;
///////////////////////表参数start
m=6;
YjbkNum=YjbkNumTemp;
for(n=0,x=0;n<50;n+=2,x++)YjbkData[YjbkNum].jbh [x]=Data232[n+m+1];m=56;//jbh 50 string
for(n=0,x=0;n<50;n+=2,x++)YjbkData[YjbkNum].ccbh[x]=Data232[n+m+1];m=106;//ccbh 50 string
for(n=0,x=0;n<30;n+=2,x++)YjbkData[YjbkNum].jbrq[x]=Data232[n+m+1];m=136;//jbrq 30 string
for(n=0,x=0;n<30;n+=2,x++)YjbkData[YjbkNum].dbxh[x]=Data232[n+m+1];m=166;//dbxh 30 string
for(n=0,x=0;n<30;n+=2,x++)YjbkData[YjbkNum].jxfs[x]=Data232[n+m+1];m=198;//jxfs 30 string
FDLH.ch[3]=Data232[m];FDLH.ch[2]=Data232[m+1];FDLH.ch[1]=Data232[m+2];FDLH.ch[0]=Data232[m+3];
m=202;YjbkData[YjbkNum].eddy=FDLH.f; //eddy 4 float
FDLH.ch[3]=Data232[m];FDLH.ch[2]=Data232[m+1];FDLH.ch[1]=Data232[m+2];FDLH.ch[0]=Data232[m+3];
m=206;YjbkData[YjbkNum].eddl=FDLH.f; //eddl 4 float
FDLH.ch[3]=Data232[m];FDLH.ch[2]=Data232[m+1];FDLH.ch[1]=Data232[m+2];FDLH.ch[0]=Data232[m+3];
m=210;YjbkData[YjbkNum].dbcs=FDLH.f; //dbcs 4 float 空出2个char
ZXLH.ch[1]=Data232[m];ZXLH.ch[0]=Data232[m+1];
m=212;YjbkData[YjbkNum].jbqs=ZXLH.i; //jbqs 2 int
m=214;
FDLH.ch[3]=Data232[m];FDLH.ch[2]=Data232[m+1];FDLH.ch[1]=Data232[m+2];FDLH.ch[0]=Data232[m+3];
m=218;YjbkData[YjbkNum].jddj=FDLH.f;//m+=2; //jddj 4 float 空出2个char
for(n=0,x=0;n<30;n+=2,x++)YjbkData[YjbkNum].dljr[x]=Data232[n+m]*256|Data232[n+m+1];//dljr 30 string
m=248;
for(n=0,x=0;n<30;n+=2,x++)YjbkData[YjbkNum].PT [x]=Data232[n+m]*256|Data232[n+m+1];//PT 30 string
m=278;
for(n=0,x=0;n<30;n+=2,x++)YjbkData[YjbkNum].CT[x]=Data232[n+m]*256|Data232[n+m+1]; //CT 30 string
m=308;
ZXLH.ch[1]=Data232[m];ZXLH.ch[0]=Data232[m+1];
YjbkData[YjbkNum].bl=ZXLH.i;
m=310;
for(n=0,x=0;n<30;n+=2,x++)YjbkData[YjbkNum].jdy [x]=Data232[n+m]*256|Data232[n+m+1];m+=n;//jdy 30 string
///////////////////////表参数end
m=342;
/*测试变量结构*/
FDLH.ch[3]=Data232[m];FDLH.ch[2]=Data232[m+1];FDLH.ch[1]=Data232[m+2];FDLH.ch[0]=Data232[m+3];
m=346;YjbkData[YjbkNum].u1=FDLH.f;
FDLH.ch[3]=Data232[m];FDLH.ch[2]=Data232[m+1];FDLH.ch[1]=Data232[m+2];FDLH.ch[0]=Data232[m+3];
m=350;YjbkData[YjbkNum].u2=FDLH.f;
FDLH.ch[3]=Data232[m];FDLH.ch[2]=Data232[m+1];FDLH.ch[1]=Data232[m+2];FDLH.ch[0]=Data232[m+3];
m=354;YjbkData[YjbkNum].u3=FDLH.f;
FDLH.ch[3]=Data232[m];FDLH.ch[2]=Data232[m+1];FDLH.ch[1]=Data232[m+2];FDLH.ch[0]=Data232[m+3];
m=358;YjbkData[YjbkNum].i1=FDLH.f;
FDLH.ch[3]=Data232[m];FDLH.ch[2]=Data232[m+1];FDLH.ch[1]=Data232[m+2];FDLH.ch[0]=Data232[m+3];
m=362;YjbkData[YjbkNum].i2=FDLH.f;
FDLH.ch[3]=Data232[m];FDLH.ch[2]=Data232[m+1];FDLH.ch[1]=Data232[m+2];FDLH.ch[0]=Data232[m+3];
m=366;YjbkData[YjbkNum].i3=FDLH.f;
FDLH.ch[3]=Data232[m];FDLH.ch[2]=Data232[m+1];FDLH.ch[1]=Data232[m+2];FDLH.ch[0]=Data232[m+3];
m=370;YjbkData[YjbkNum].p1=FDLH.f;
FDLH.ch[3]=Data232[m];FDLH.ch[2]=Data232[m+1];FDLH.ch[1]=Data232[m+2];FDLH.ch[0]=Data232[m+3];
m=374;YjbkData[YjbkNum].p2=FDLH.f;
FDLH.ch[3]=Data232[m];FDLH.ch[2]=Data232[m+1];FDLH.ch[1]=Data232[m+2];FDLH.ch[0]=Data232[m+3];
m=378;YjbkData[YjbkNum].p3=FDLH.f;
FDLH.ch[3]=Data232[m];FDLH.ch[2]=Data232[m+1];FDLH.ch[1]=Data232[m+2];FDLH.ch[0]=Data232[m+3];
m=382;YjbkData[YjbkNum].q1=FDLH.f;
FDLH.ch[3]=Data232[m];FDLH.ch[2]=Data232[m+1];FDLH.ch[1]=Data232[m+2];FDLH.ch[0]=Data232[m+3];
m=386;YjbkData[YjbkNum].q2=FDLH.f;
FDLH.ch[3]=Data232[m];FDLH.ch[2]=Data232[m+1];FDLH.ch[1]=Data232[m+2];FDLH.ch[0]=Data232[m+3];
m=390;YjbkData[YjbkNum].q3=FDLH.f;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -