2条回答 默认 最新
- dengrui521 2016-12-07 09:12关注
CmscommDlg::CmscommDlg(CWnd*pParent/*=NULL*/)
:CDialogEx(CmscommDlg::IDD,pParent)
,m_EditReceive(_T(“”))
,m_Editsend(_T(“”))
,m_data(0)
,n_data(0)
,x_data(0)
{
m_hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
m_data=0;
n_data=0;
}
/*初始化串口控件,编辑框控件,teechart控件、列表控件*/
BOOL CmscommDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
CString str;
int i;
for(i=0;i {
str.Format(_T(“com%d”),i+1);
m_com1.InsertString(i,str);
}
m_com1.SetCurSel(0);
CString str1[]={_T(“300”),_T(“600”),_T(“1200”),_T(“2400”),_T(“4800”),_ T(“9600”),_T(“19200”),_T(“38400”),_T(“43000”),_T(“56000”),_T (“57600”),_T(“115200”)};
for{int i=0;i {
int judge_tf=m_comb2.AddString(str1[i]);
if((judge_tf==CB_ERR)||(judge_tf==CB_ERRSPACE))
MessageBox(_T(“build baud error!”));
}
m_com2.SetCurSel(5);
CRect rect;
/*teechart图表控件编写*/
m_list.GetClientRect(&rect);
m_list.SetExtendedStyle(m_list.GetExtendedStyle()|LVS_EX_FULLROW SELECT|LVS_EX_GRIDLINES);
m_list.InsertColumn(0,_T(“采样次数”), LVCFMT_CENTER,rect.Width()/3,0);
m_list.InsertColumn(0,_T(“数值”),LVCFMT_CENTER,rect.Width()/3,1);
m_list.InsertColumn(0,_T(“跑偏量”),LVCFMT_CENTER,rect.Width()/3,2);
int m;
CString n=_T(“0”); returnTURE;}
/*打开串口按钮程序编写*/
void CmscommDlg::OnBnClickedOpen()
{
CString str,str1,n;//定义字符串
GetDlgItemText(IDC_OPEN,str);
CWnd*h1;
h1=GetDlgItem(IDC_OPEN);//指向控件的caption
if(!m_mscom.get_PortOpen())
{
m_comb2.GetLBText(m_comb2.GetCurSel(),str1);//取得所选的字符串,并存放在str1
str1=str1+’,’+’n’+’,’+’8’+’,’+’1’;
m_mscom.put_CommPort((m_com1.GetCurSel()+1));//选择串口
m_mscom.put_InputMode(1);
m_mscom.put_Settings(str1);
m_mscom.put_InputLen(1024);
m_mscom.put_RThreshold(1);
m_mscom.put_RTSEnable(1);
m_mscom.put_PortOpen(TURE);
if(m_mscom.get_PortOpen())
{
Str=_T(“关闭串口”);
UpdateData(TURE);
h1->SetWindowText(str);
}
}
else
{
m_mscom.put_PortOpen(FALSE);
if(str!=_T(“打开串口”))
{
UpdateData(TRUE);
h1->SetWindowText(str);
}
}
}
void CmscommDlg::OnCommMscomm1()
{
//TODO:在此处添加消息处理代码
if(m_mscom.get_CommEvent()=2)
{
int n=0;
char str[1024]={0};
long k;
VARIANT InputData= m_mscom.get_ Input();
COleSafeArray fs;
fs= InputData;
for(k=0;k<fs.GetOneDimSize();k++)
{
fs.GetElement(&k,str+k);
m_EditReceive=str;
UpdateData(FALSE);
}
}
}
/*开始绘制曲线按钮*/
void CmscommDlg::OnBnClickedButton1()
{
SetTimer(1,10,NULL);
}
void CmscommDlg::OnEnChangeReceive()
{
UpdateData(TRUE);
}
void CmscommDlg::OnEnChangeSend()
{
}
void CmscommDlg::OnTimer(UINT_PTR nIDEvent)
{
Cstring nusf,ns,es=_T(“0”);
GetDlgItem Text(IDC_RECEIVE,nusf);
int ss=_ttoi(nusf),n=0;
float m=0.0;
CSeries serDemo=( CSeries)m_chart. Series(0);
serDemo.AddXY(++m_data,ss,NULL,0);
es.Format(_T(“%d),x_data);
m_list.InsertItem(x_data,es);
m_list.SetItemText(x_data,1,m_EditReceive);
m=_toff(m_EditReceive);
m=m-2.5;
ns.Format(_T(“%f”),m);
m_list.SetItemText(x_data,2,ns);
x_data++;
// m_list.InsertItem(m_data, m_EditReceive);
CDialogEx::OnTimer(nIDEvent);
}
/*停止绘制曲线按钮*/
void CmscommDlg::OnBnClickedCleart()
{
//TODO:在此添加控件通知处理程序代码
KillTimer(1);
}解决 无用评论 打赏 举报
悬赏问题
- ¥15 安卓adb backup备份应用数据失败
- ¥15 eclipse运行项目时遇到的问题
- ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
- ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
- ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
- ¥50 成都蓉城足球俱乐部小程序抢票
- ¥15 yolov7训练自己的数据集
- ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
- ¥15 电力市场出清matlab yalmip kkt 双层优化问题
- ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)