• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    讀寫串行口數據

    發布: 2007-7-14 19:53 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 85次 | 進入軟件測試論壇討論

    領測軟件測試網 我沒看過PHP源碼,但它有文件操作函數,我想應該可以吧?實在不行,那么做個CGI來實現也可以,而且獨立性好,容易維護。以前我在BCB環境下做過,思路如下:(其實相當于普通的文件讀寫操作,呵呵)

    一、打開文件

    //先用文件方式打開一個串口(COM1~~COM4中任一個)
    HANDLE m_hComm = CreateFile("COM2", GENERIC_READ | GENERIC_WRITE, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);

    然后就可以用WriteFile()和ReadFile()來對串行口進行讀寫了,最后記得CloseHandle(m_hComm);把當前打開的串行口關閉哦。
    由于CreateFile()函數采用FILE_FLAG_OVERLAPPED常量,那么注意一下WriteFile()和ReadFile()函數的最后一個參數是OVERLAPPED結構的,讀寫前需要先初始化該結構:

    OVERLAPPED m_ov;

    m_ov.Offset = 0;
    m_ov.OffsetHigh = 0;
    m_ov.hEvent = NULL;

    好了,上面已經打開COM2,那么就進行簡單讀寫:

    二、寫:

    BOOL bResult = true;
    char* m_WriteBuffer;
    DWORD BytesSent = 0;

    strcpy(m_WriteBuffer, "試試寫進去");
    bResult = WriteFile(m_hComm, m_WriteBuffer, strlen((char*)m_WriteBuffer), &BytesSent, m_ov);


    三、讀:

    COMSTAT comstat;//該結構包含通信設備的狀態。
    BOOL bResult = true;
    DWORD dwError = 0;
    DWORD BytesRead = 0;
    unsigned char m_ReadBuff;
    //開始循環讀
    for (;;)
    {
      bResult = ClearCommError(m_hComm, &dwError, &comstat);//更新COMSTAT結構并清除所有錯誤
      if (comstat.cbInQue == 0)
      {
        break;//如果讀完了就退出for循環
      }

      bResult = ReadFile(m_hComm, &ReadBuff, 1, &BytesRead, m_ov);//一次讀一位,如果喜歡,你也可以一次讀n位
      ......
      //在這里放入你的處理模塊,反正ReadBuff里是內容(1位),可以合并起來......
      ......
    }

    四、關掉
    CloseHandle(m_hComm);


    以上思路可以通過函數返回值進行錯誤處理,至于各錯誤常量的意思可以查書,完整處理是麻煩點,知道方法就可以了,只要你是簡單應用,那么簡單讀寫就足夠了。這個文件讀寫方式還適用于打印口LPT1、LPT2~~~LPTn。在Unix下我沒試過,但既然Unix類的操作系統比Windows更加強調設備文件,相信在Unix、Linux下用文件方式讀寫COM口更簡單更通用吧。。。?還是這句:知道方法就行。該出手時就出手。^_^
    不過如果在Unix、Linux下作為CGI來用的話,可能要設置編譯后CGI文件的權限,自己試哦。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>