1 / 13
文档名称:

m.doc

格式:doc   大小:73KB   页数:13页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

m.doc

上传人:一花一世 2019/4/11 文件大小:73 KB

下载得到文件列表

m.doc

相关文档

文档介绍

文档介绍:Forpersonaluseonlyinstudyandresearch;mercialuse多线程,m作者:Liu_sir下载示例源代码描述:一个串口通讯类应用平台:Windows版本::设计了一个简洁易用的多线程串行通讯接口,可以切换查询和自动接收模式,进行对串口数据收发的类接触VC,m等Active控件老让人去注册的方式,Port,对PJNaughter的CSerialPort(ument/?id=612)进行了2次封装,,附图如下:下面我从如何使用和类的设计两个方面说明一下:一如何使用:考虑到使用过程尽可能简洁,实用,为了满足不同的使用要求设计4种接收模式,前两种为手动接收方式,后两种为自动类回调方式,#"m::Port;//misnamespaceinc++(2,m::CComPort::AutoReceiveByquery);//Data:接收语句DWORDInBufferCount;bytepbuffer[2048];InBufferCount=();if(InBufferCount>0){(pbuffer,InBufferCount);}//Data:写串口数据chara[10]="abcdefg";this->(a,sizeof(a));(异步模式)手动定常数接收模式#"m::Port;//misnamespaceinc++(2,m::CComPort::AutoReceiveByConst);//Data://接收数据DWORDInBufferCount=0;bytepbuffer[2048];InBufferCount=this->(pbuffer,10,1000);//上面我要在1000毫秒内接收10字节的数据,IbufferCount返回实际得到的数据if(InBufferCount==0) return;CStringc;chara[4];for(inti=0;i<(int)InBufferCount;i++){ ::sprintf(a,"%",pbuffer[i]); c+=a; c+="";}c="接收(Receive):"+c;写串口数据的过程同上注意:第3,4种模式为自动接收模式,在用以前你必须先定义回调函数,然后,设置类的接收函数/*回调函数定义*/voidOnReceiveData(LPVOIDpSender,void*pBuf,DWORDInBufferCount){ CStringc; bytea[100]; charb[4]=""; memcpy(a,pBuf,InBufferCount); mDemoDlg*pDlg=(mDemoDlg*)pSender; CListBox*pList=(CListBox*)pDlg->GetDlgItem(IDC_LIST1); for(inti=0;i<(int)InBufferCount;i++) { ::sprintf(b,"%",a[i]); c+=""; c+=b; } c="接收(Receive):"+c; pList->AddString(c);}#"m::Port;//misnamespaceinc++(2,m::CComPort::AutoReceiveBySignal);((FOnReceiveData)OnReceiveData,this);(Break);//Data:接收数据函数inOnReceiveData(LPVOIDpSender,void*pBuf,DWORDInBufferCount)//above//writedatathesameasthefirstmode;#"m::Port;//misnamespaceinc++(2,m::CComPort::AutoReceiveByBreak);((FOnReceiveData)OnReceiveData,this);//Data:接收数据函数inOnRece