97自拍超碰I热久久免费视频I西西人体444wwwI欧美啪啪视频I中文字幕激情I国产亚洲精品91I国产精品久久久久久爽爽爽Iwww.youjizz.com在线观看I成人AV秘无码

產(chǎn)品列表PRODUCTS LIST

聯(lián)系信息

  • 電話:
    13521418576
  • 傳真:
    010-62979724
首頁(yè) > 技術(shù)與支持 > 串口開(kāi)發(fā)的另一種方式
串口開(kāi)發(fā)的另一種方式
點(diǎn)擊次數(shù):5691 更新時(shí)間:2009-12-23

  根據(jù)以前的使用過(guò)的一系列串口操作軟件發(fā)現(xiàn),大多數(shù)的串口操作軟件不具備自動(dòng)的記錄保存功能,記錄文件是在應(yīng)用程序目錄下 以時(shí)間命名的文本文件。現(xiàn)在發(fā)布的這個(gè)程序還有一些功能沒(méi)有實(shí)現(xiàn)不過(guò)這不影響使用。如果有需要大家可以自行添加代碼。下面主要說(shuō)明一下程序的核心類CSuperSerialPort。該類主要功能有:

控制串口收發(fā)數(shù)據(jù)并利用window系統(tǒng)的消息來(lái)轉(zhuǎn)發(fā)接收到的數(shù)據(jù);
支持一個(gè)CSuperSerialPort對(duì)象向多個(gè)窗口發(fā)送數(shù)據(jù);
支持發(fā)送大塊數(shù)據(jù);
支持動(dòng)態(tài)設(shè)置收發(fā)緩存區(qū)大小;
支持利用外部線程進(jìn)行文件傳輸;
支持收發(fā)數(shù)據(jù)統(tǒng)計(jì);
支持自定義錯(cuò)誤信息;
該類還有兩個(gè)輔助的結(jié)構(gòu)體 WIN_ARG 和 tagPackage。WIN_ARG 是窗體描述結(jié)構(gòu)體,該結(jié)構(gòu)體包含了窗體指針、自定義消息和位置ID。


typedef struct WIN_ARG
{
     UINT  winId;
     CWnd* pWin;
     DWORD msg;
}WINARG, *pWINARG;

tagPackage 是數(shù)據(jù)包描述結(jié)構(gòu)體,該結(jié)構(gòu)體包含了數(shù)據(jù)長(zhǎng)度、數(shù)據(jù)類別和數(shù)據(jù)值。CSuperSerialPort利用這個(gè)結(jié)構(gòu)體來(lái)分解大塊數(shù)據(jù)然后發(fā)送。
typedef struct tagPackage
{
     enum emMaxSize
     { emMAX_SIZE = 1024 };
 
     UINT iLen;
     UINT iType;
     BYTE pData[emMAX_SIZE];
}PACKAGE, * pPACKAGE;

  在串口程序的開(kāi)發(fā)過(guò)程中,zui麻煩的問(wèn)題就是需要事先確定緩存區(qū)的大小。如果傳輸時(shí)按協(xié)議傳輸這個(gè)一般沒(méi)什么問(wèn)題,但是如果按一個(gè)字節(jié)一個(gè)字節(jié)的進(jìn)行傳輸,那么在收數(shù)據(jù)的時(shí)候就很麻煩。解決這一問(wèn)題時(shí)我利用了串口中cbInQue這一屬性,同時(shí)為了提高程序的性能啟用了一個(gè)接收線程,并將收下來(lái)的數(shù)據(jù)都發(fā)往的窗體對(duì)象然后再進(jìn)行處理。如:
pPACKAGE pPack = new PACKAGE;
DWORD rdLen = pCom->m_comState.cbInQue;
pPack->iLen   = rdLen;

為了協(xié)同串口的收發(fā),在初始化串口的時(shí)候要啟用FILE_FLAG_OVERLAPPED這一屬性,如
CreateFile(, GENERIC_READ | GENERIC_WRITE, 0,NULL,OPEN_EXISTING,FILE_FLAG_OVERLAPPED,NULL);
  當(dāng)然在接收的線程中還加入了互斥對(duì)象和臨界區(qū)用于控制線程和數(shù)據(jù)統(tǒng)計(jì)。如果你直接使用CSuperSerialPort類,程序已經(jīng)替你完成了這些任務(wù)。如:
m_pSSP->Open(m_comName, m_uComRate, m_uComParity, m_uComDataBits, m_fComStopBits);
m_pSSP->StartReceive(m_pSSP)

詳細(xì)情況可以參照TestSerialPort2Dlg.cpp中的代碼。

  為了解決一個(gè)串口實(shí)例向多個(gè)窗口顯示數(shù)據(jù)問(wèn)題,我在CSuperSerialPort類中添加了一個(gè)窗體向量表typedef vector vWINLIST;你可以通過(guò)Attach和Detach函數(shù)來(lái)控制窗體數(shù)量。如果需要添加其他的功能到CSuperSerialPort類中,有三種方法可以實(shí)現(xiàn):
直接修改CSuperSerialPort類代碼;
繼承CSuperSerialPort類;
調(diào)用GetComHandle返回串口句柄;






<<利用串口“實(shí)時(shí)”接收短消息的方法


<<串口服務(wù)器的工作方式和應(yīng)用

主站蜘蛛池模板: 色网站免费在线观看 | 97超视频在线观看 | 欧美日韩国产精品一区 | 精品一区二区在线免费观看 | 五月天综合色激情 | 国产免费叼嘿网站免费 | 国产又粗又猛又黄 | 亚洲一区不卡视频 | 国产精品1000 | av女优中文字幕在线观看 | 黄色三级网站在线观看 | 色欧美综合 | 亚洲精品成人网 | 97色狠狠 | 人人擦| 国产精品久久久久久久久久久免费 | 精品黄色在线观看 | 国产黄色片一级三级 | 欧美视屏一区二区 | 久久精美视频 | 精品91视频 | 国产91区| 国产精品国产精品 | 99精彩视频在线观看免费 | 999热线在线观看 | 九色精品免费永久在线 | 五月激情五月激情 | 久久伊人国产精品 | 久久精美视频 | 中文亚洲欧美日韩 | 美女网站视频免费都是黄 | 国产精品毛片网 | 深爱婷婷久久综合 | 成年人视频在线 | 深爱激情久久 | 最近免费中文字幕mv在线视频3 | 九九综合九九 | 十八岁以下禁止观看的1000个网站 | 在线观看视频在线 | 99精品视频精品精品视频 | 国产裸体永久免费视频网站 | 伊人射 | 最新影院 | 久久人91精品久久久久久不卡 | 高潮久久久久久 | 在线播放亚洲 | 香蕉视频在线视频 | 国产一区二区精品在线 | 亚洲永久精品一区 | 日韩欧美不卡 | 国产精品嫩草在线 | 欧美精品久久 | 日批视频在线观看免费 | 九九有精品 | av免费看电影 | 国产成人精品免费在线观看 | 日本久久不卡视频 | 国产一区国产二区在线观看 | 超碰成人网 | 欧洲成人免费 | 欧美精品一区二区在线观看 | 久久免费在线视频 | 黄色一级免费网站 | 久久久久久久久久电影 | 99精品久久久久久久 | 国产一在线精品一区在线观看 | 国产视频不卡一区 | 欧美一级视频在线观看 | 久久综合婷婷国产二区高清 | 综合色天天 | 99久久99久久精品免费 | 蜜臀av免费一区二区三区 | 国产午夜在线 | 国产尤物在线观看 | 久草视频免费 | 久草精品视频在线观看 | 亚洲三级视频 | 免费看片色 | 草久久av| 一级成人免费视频 | 国产伦精品一区二区三区高清 | 成人久久久精品国产乱码一区二区 | 久久躁日日躁aaaaxxxx | 在线观看日本高清mv视频 | 色婷婷免费 | 欧美黑人xxxx猛性大交 | 亚洲欧美国产精品 | 久草精品电影 | 中文字幕av影院 | 色综合久久久久网 | 欧美精品一二 | 91热爆在线观看 | 日韩激情精品 | 中文字幕国内精品 | 99久久精品免费 | 五月天婷婷在线视频 | 欧美日韩视频 | 日韩高清精品免费观看 | 国产一级a毛片视频爆浆 |