特黄特色的大片观看免费视频丨欧美一进一出抽搐大尺度视频丨亚洲精品成a人在线观看丨人妻体验按摩到忍不住哀求继续丨偷拍农村老熟妇xxxxx7视频

產(chǎn)品列表PRODUCTS LIST

聯(lián)系信息

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

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

控制串口收發(fā)數(shù)據(jù)并利用window系統(tǒng)的消息來轉(zhuǎn)發(fā)接收到的數(shù)據(jù);
支持一個CSuperSerialPort對象向多個窗口發(fā)送數(shù)據(jù);
支持發(fā)送大塊數(shù)據(jù);
支持動態(tài)設(shè)置收發(fā)緩存區(qū)大??;
支持利用外部線程進行文件傳輸;
支持收發(fā)數(shù)據(jù)統(tǒng)計;
支持自定義錯誤信息;
該類還有兩個輔助的結(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ù)長度、數(shù)據(jù)類別和數(shù)據(jù)值。CSuperSerialPort利用這個結(jié)構(gòu)體來分解大塊數(shù)據(jù)然后發(fā)送。
typedef struct tagPackage
{
     enum emMaxSize
     { emMAX_SIZE = 1024 };
 
     UINT iLen;
     UINT iType;
     BYTE pData[emMAX_SIZE];
}PACKAGE, * pPACKAGE;

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

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

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

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






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


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

主站蜘蛛池模板: 免费人成小说在线观看网站| 中文字幕亚洲综合久久综合| 99爱在线精品视频免费观看| 秋霞av鲁丝片一区二区| 白又丰满大屁股bbbbb| 永久免费的av片在线电影网| 无码三级av电影在线观看| 亚洲国产一区二区a毛片| 蜜桃av抽搐高潮一区二区| 亚洲国产精品不卡av在线| 精品av一区二区久久久| 亚洲精品国产成人| 色婷婷日日躁夜夜躁| 国产精品亚洲五月天高清| 视频二区丝袜国产欧美日韩| 搡女人真爽免费视频大全| 国产亚洲色婷婷久久99精品| 中文字幕av无码不卡免费| 伊人久久大香线蕉av网| 亚洲第一aaaaa片| s级爆乳玩具酱国产vip皮裤| 日本大片免费观看视频| 国产人碰人摸人爱免费视频| 欧美人与物videos另类xxxxx | 欧美写真视频在线观看| 国内精品伊人久久久久影院麻豆| 国产一区二区三区在线蜜桃| 在线精品亚洲一区二区小说| 国产乱码一区二区三区| 中文字幕精品无码一区二区三区| 中国内射xxxx6981少妇| 国产又爽又大又黄a片| 国产精品sp调教打屁股| 少妇仑乱a毛片无码| 国产精品线路一线路二| 国产麻豆成人传媒免费观看| 午夜私人成年影院| 久久99热只有频精品8| 精品午夜福利1000在线观看| 国产免费看又黄又大又污的胸| 国产美女遭强高潮网站观看|