国产强伦姧在线观看无码,中文字幕99久久亚洲精品,国产精品乱码在线观看,色桃花亚洲天堂视频久久,日韩精品无码观看视频免费

      您現(xiàn)在的位置:智能制造網(wǎng)>技術(shù)中心>串口開發(fā)的另一種方式

      直播推薦

      更多>

      企業(yè)動態(tài)

      更多>

      推薦展會

      更多>

      串口開發(fā)的另一種方式

      2009年12月23日 11:31:25人氣:4956來源:北京通聯(lián)時(shí)代電子技術(shù)有限公司

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

      控制串口收發(fā)數(shù)據(jù)并利用window系統(tǒng)的消息來轉(zhuǎn)發(fā)接收到的數(shù)據(jù);
      支持一個(gè)CSuperSerialPort對象向多個(gè)窗口發(fā)送數(shù)據(jù);
      支持發(fā)送大塊數(shù)據(jù);
      支持動態(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ù)長度、數(shù)據(jù)類別和數(shù)據(jù)值。CSuperSerialPort利用這個(gè)結(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ū)的大小。如果傳輸時(shí)按協(xié)議傳輸這個(gè)一般沒什么問題,但是如果按一個(gè)字節(jié)一個(gè)字節(jié)的進(jìn)行傳輸,那么在收數(shù)據(jù)的時(shí)候就很麻煩。解決這一問題時(shí)我利用了串口中cbInQue這一屬性,同時(shí)為了提高程序的性能啟用了一個(gè)接收線程,并將收下來的數(shù)據(jù)都發(fā)往的窗體對象然后再進(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)然在接收的線程中還加入了互斥對象和臨界區(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ù)問題,我在CSuperSerialPort類中添加了一個(gè)窗體向量表typedef vector vWINLIST;你可以通過Attach和Detach函數(shù)來控制窗體數(shù)量。如果需要添加其他的功能到CSuperSerialPort類中,有三種方法可以實(shí)現(xiàn):
      直接修改CSuperSerialPort類代碼;
      繼承CSuperSerialPort類;
      調(diào)用GetComHandle返回串口句柄;






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


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

      關(guān)鍵詞:串口服務(wù)器
      全年征稿/資訊合作 聯(lián)系郵箱:1271141964@qq.com

      免責(zé)聲明

      • 凡本網(wǎng)注明"來源:智能制造網(wǎng)"的所有作品,版權(quán)均屬于智能制造網(wǎng),轉(zhuǎn)載請必須注明智能制造網(wǎng),http://towegas.com。違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
      • 企業(yè)發(fā)布的公司新聞、技術(shù)文章、資料下載等內(nèi)容,如涉及侵權(quán)、違規(guī)遭投訴的,一律由發(fā)布企業(yè)自行承擔(dān)責(zé)任,本網(wǎng)有權(quán)刪除內(nèi)容并追溯責(zé)任。
      • 本網(wǎng)轉(zhuǎn)載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品來源,并自負(fù)版權(quán)等法律責(zé)任。
      • 如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

      <
      更多 >

      工控網(wǎng)機(jī)器人儀器儀表物聯(lián)網(wǎng)3D打印工業(yè)軟件金屬加工機(jī)械包裝機(jī)械印刷機(jī)械農(nóng)業(yè)機(jī)械食品加工設(shè)備制藥設(shè)備倉儲物流環(huán)保設(shè)備造紙機(jī)械工程機(jī)械紡織機(jī)械化工設(shè)備電子加工設(shè)備水泥設(shè)備海洋水利裝備礦冶設(shè)備新能源設(shè)備服裝機(jī)械印染機(jī)械制鞋機(jī)械玻璃機(jī)械陶瓷設(shè)備橡塑設(shè)備船舶設(shè)備電子元器件電氣設(shè)備


      我要投稿
      • 投稿請發(fā)送郵件至:(郵件標(biāo)題請備注“投稿”)1271141964.qq.com
      • 聯(lián)系電話0571-89719789
      工業(yè)4.0時(shí)代智能制造領(lǐng)域“互聯(lián)網(wǎng)+”服務(wù)平臺
      智能制造網(wǎng)APP

      功能豐富 實(shí)時(shí)交流

      智能制造網(wǎng)小程序

      訂閱獲取更多服務(wù)

      微信公眾號

      關(guān)注我們

      抖音

      智能制造網(wǎng)

      抖音號:gkzhan

      打開抖音 搜索頁掃一掃

      視頻號

      智能制造網(wǎng)

      公眾號:智能制造網(wǎng)

      打開微信掃碼關(guān)注視頻號

      快手

      智能制造網(wǎng)

      快手ID:gkzhan2006

      打開快手 掃一掃關(guān)注
      意見反饋
      關(guān)閉
      企業(yè)未開通此功能
      詳詢客服 : 0571-87858618