资源描述:
《CSerialPort_src串口类(PJ Naughter)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、最近因为工作的关系,要学习串口编程,在网上无意中发现了PJNaughter写的一个串口类(不知是何许人,孤陋寡闻,甚觉汗颜),感觉还可以,就抽了点时间把他网站上的有关此类的信息翻译了下,有时间研究下,说不定能用到项目中。时间较为仓促,加上我也不想在咬文嚼字上较真,肯定有许多不足,望大家指正,同时也希望对串口有研究的同志们不吝赐教。一、类源文件1.SERIALPORT.H/*Module:SERIALPORT.HPurpose:DeclarationforanMFCwrapperclassforser
2、ialportsCreated:PJN/31-05-1999History:NoneCopyright(c)1999byPJNaughter. Allrightsreserved.*/ /////////////////////Macros/Structsetc//////////////////////////#ifndef__SERIALPORT_H__#define__SERIALPORT_H__ ///////////////////////////Classes////////////
3、/////////////////////////////////////Serialportexceptionclass////////////////////////////////////////////voidAfxThrowSerialException(DWORDdwError=0);classCSerialException:publicCException{public://Constructors/Destructors CSerialException(DWORDdwError)
4、; ~CSerialException();//Methods#ifdef_DEBUG virtualvoidDump(CDumpContext&dc)const;#endif virtualBOOLGetErrorMessage(LPTSTRlpstrError,UINTnMaxError, PUINTpnHelpContext=NULL); CStringGetErrorMessage();-36-//Datamembers DWORDm_dwError;protected: DECLARE_D
5、YNAMIC(CSerialException)}; ////Theactualserialportclass/////////////////////////////////////////////classCSerialPort:publicCObject{public://Enums enumFlowControl { NoFlowControl, CtsRtsFlowControl, CtsDtrFlowControl, DsrRtsFlowControl, DsrDtr
6、FlowControl, XonXoffFlowControl }; enumParity { EvenParity, MarkParity, NoParity, OddParity, SpaceParity }; enumStopBits { OneStopBit, OnePointFiveStopBits, TwoStopBits };//Constructors/Destructors CSerialPort(); ~CSerialPort();//
7、GeneralMethods voidOpen(intnPort,DWORDdwBaud=9600,Parityparity=NoParity,BYTEDataBits=8, StopBitsstopbits=OneStopBit,FlowControlfc=NoFlowControl,BOOLbOverlapped=-36-FALSE); voidClose(); voidAttach(HANDLEhComm); HANDLEDetach(); operatorHANDLE(
8、)const{returnm_hComm;}; BOOLIsOpen()const{returnm_hComm!=INVALID_HANDLE_VALUE;};#ifdef_DEBUG voidCSerialPort::Dump(CDumpContext&dc)const;#endif//Reading/WritingMethods DWORDRead(void*lpBuf,DWORDdwCount); BOOLRead(void*lpBuf,DWORDdwCount