📄 基于单片机基站的串口通讯dlg.cpp
字号:
for(int j=0;j<10000;j++)
for(int a=0;a<10000;a++);
switch(i)
{
case 0:
iPortNew=1;
PortSet();break;
case 1:
iPortNew=2;
PortSet();break;
case 2:
iPortNew=3;
PortSet();break;
case 3:
iPortNew=4;
PortSet();break;
}
}
void CMyDlg::OnChangeSendEdit()
{
// TODO: If this is a RICHEDIT control, the control will not
// send this notification unless you override the CDialog::OnInitDialog()
// function and call CRichEditCtrl().SetEventMask()
// with the ENM_CHANGE flag ORed into the mask.
// TODO: Add your control notification handler code here
}
void CMyDlg::OnSelchangebyte()
{
// TODO: Add your control notification handler code here
int i=m_byte.GetCurSel();
if(m_mscom.GetPortOpen())
m_mscom.SetPortOpen(false);
switch(i)
{
case 0:
byte=2;PortSet();break;
case 1:
byte=1;PortSet();break;
}
}
void CMyDlg::OnSelchangeBaudrate()
{
// TODO: Add your control notification handler code here
int i=m_baudrate.GetCurSel();
if(m_mscom.GetPortOpen())
m_mscom.SetPortOpen(false);
switch(i)
{
case 0:
Baudrate="300";PortSet();break;
case 1:
Baudrate="600";PortSet();break;
case 2:
Baudrate="1200";PortSet();break;
case 3:
Baudrate="2400";PortSet();break;
case 4:
Baudrate="4800";PortSet();break;
case 5:
Baudrate="9600";PortSet();break;
case 6:
Baudrate="19200";PortSet();break;
case 7:
Baudrate="38400";PortSet();break;
case 8:
Baudrate="43000";PortSet();break;
case 9:
Baudrate="56000";PortSet();break;
case 10:
Baudrate="57600";PortSet();break;
case 11:
Baudrate="115200";PortSet();break;
}
}
void CMyDlg::OnSelchangeStop()
{
// TODO: Add your control notification handler code here
int i=m_stop.GetCurSel();
if(m_mscom.GetPortOpen())
m_mscom.SetPortOpen(false);
switch(i)
{
case 0:
Stop="1";PortSet();break;
case 1:
Stop="2";PortSet();break;
}
}
void CMyDlg::OnSelchangeVerification()
{
// TODO: Add your control notification handler code here
int i=m_verification.GetCurSel();
if(m_mscom.GetPortOpen())
m_mscom.SetPortOpen(false);
switch(i)
{
case 0:
Verification="n";PortSet();break;
case 1:
Verification="o";;PortSet();break;
case 2:
Verification="e";;PortSet();break;
}
}
void CMyDlg::OnSelchangeFigure()
{
// TODO: Add your control notification handler code here
int i=m_Figure.GetCurSel();
if(m_mscom.GetPortOpen())
m_mscom.SetPortOpen(false);
switch(i)
{
case 0:
Figure="6";PortSet();break;
case 1:
Figure="7";;PortSet();break;
case 2:
Figure="8";;PortSet();break;
}
}
char* conver(const CString & str)
{
int len=str.GetLength();
char * temp=new char[len+1];
strcpy(temp,str);
temp[len]='\0';
return temp;
}
void CMyDlg::OnSave()
{
// TODO: Add your control notification handler code here
CFile file;
CString tim,input,tim1;
CStdioFile fileTemp2;
GetLocalTime(&ttime);
tim=ultoa(ttime.wYear,nn,10);
tim+="年";
tim+=ultoa(ttime.wMonth,nn,10);
tim+="月";
tim+=_ultoa(ttime.wDay,nn,10);
tim+="日";
tim+=".txt";
tim1+=ultoa(ttime.wHour,nn,10);
tim1+="时";
tim1+=ultoa(ttime.wMinute,nn,10);
tim1+="分";
tim1+=ultoa(ttime.wSecond,nn,10);
tim1+="秒";
if( !file.Open(tim,CFile::modeWrite))
{
if( !file.Open(tim,CFile::modeCreate|CFile::modeWrite))
{
MessageBox (_T("打不开文件"));
return;
}
else
{
UpdateData(TRUE);
CString strValue;
GetDlgItemText(IDC_RECV_EDIT,strValue);//此处为编辑框的内容
input+="刘常银制作\r\n接收时间:";
input+=tim1;
input+="\r\n接收数据:\r\n";
input+=strValue;
input+="\r\n\r\n";
char *str=conver(input);
file.SeekToEnd();
file.Write(str,strlen(str));
file.Close();
}
}
else{
UpdateData(TRUE);
CString strValue;
GetDlgItemText(IDC_RECV_EDIT,strValue);//此处为编辑框的内容
input+="刘常银制作\r\n接收时间:";
input+=tim1;
input+="\r\n接收数据:\r\n";
input+=strValue;
input+="\r\n\r\n";
char *str=conver(input);
file.SeekToEnd();
file.Write(str,strlen(str));
file.Close();
}
/*
file.Open(tim,CFile::modeCreate|CFile::modeWrite);
CString strValue;
GetDlgItemText(IDC_RECV_EDIT,strValue);//此处为编辑框的内容
file.Write(strValue,strValue.GetLength());
file.Close();*/
}
HBRUSH CMyDlg::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_Save) //设置编辑框内字体为红色
{ pDC->SetBkColor(RGB(200,220,250));//背景颜色
pDC->SetTextColor(RGB(255,0,0));//红色
}
// TODO: Return a different brush if the default is not desired
return hbr;
}
void CMyDlg::OnCancle()
{
// TODO: Add your control notification handler code here
CDialog::OnCancel();
}
void CMyDlg::OnClockwise() //电机1正转
{
// TODO: Add your control notification handler code here
m_send="0";
Send();
a[0]=10,a[1]=11,a[2]=16,a[3]=15;
SetTimer(1,200,NULL);//第一个参数为ID,第二个参数为定时(ms)
}
void CMyDlg::OnReverse() //电机1反转
{
// TODO: Add your control notification handler code here
m_send="1";
KillTimer(1);
Send();
a[3]=10,a[2]=11,a[1]=16,a[0]=15;
SetTimer(1,200,NULL);//第一个参数为ID,第二个参数为定时(ms)
}
void CMyDlg::OnStop() //电机1停止
{
// TODO: Add your control notification handler code here
m_send="2";
Send();
KillTimer(1);
}
void CMyDlg::OnClockwise1()//电机2正转
{
// TODO: Add your control notification handler code here
m_send="4";
Send();
b[0]=10,b[1]=11,b[2]=16,b[3]=15;
SetTimer(2,200,NULL);//第一个参数为ID,第二个参数为定时(ms)
}
void CMyDlg::OnReverse1()//电机2反转
{
// TODO: Add your control notification handler code here
m_send="5";
Send();
KillTimer(2);
b[3]=10,b[2]=11,b[1]=16,b[0]=15;
SetTimer(2,200,NULL);//第一个参数为ID,第二个参数为定时(ms)
}
void CMyDlg::OnStop1()//电机2停止
{
// TODO: Add your control notification handler code here
m_send="5";
Send();
KillTimer(2);
}
void CMyDlg::OnTimer(UINT nIDEvent)//定时触发
{
// TODO: Add your message handler code here and/or call default
if(nIDEvent==1)
{
SetMotor1();
}
if(nIDEvent==2)
{
SetMotor2();
}
CDialog::OnTimer(nIDEvent);
}
void CMyDlg::SetMotor1()//电机1控制
{
m_motor1.SetValue(a[Order1++]);
if(Order1==4) Order1=0;
}
void CMyDlg::SetMotor2()//电机2控制
{
m_motor2.SetValue(b[Order2++]);
if(Order2==4) Order2=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -