色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

英創信息技術ARM9工控板串口設備的COM組件應用

英創信息技術 ? 來源:英創信息技術 ? 作者:佚名 ? 2019-11-05 10:07 ? 次閱讀

英創公司的ARM9工控主板產品均預裝了Windows CE5.0操作系統,支持包括EVC、C#、VB、LabView等多種開發工具。作為工業控制領域的嵌入模塊,客戶的應用程序往往對系統的底層調用較多,相對于其它語言,C++具有強大的硬件控制能力和很高執行效率,因此我們提供的示例程序和軟件方面的技術支持均集中在C++方面。而C#、.net VB等在圖型界面開發、數據庫方面的應用和易用性方面更具優勢,我們很多客戶也選用他們作為開發工具。為了結合各語言的優勢,為了對客戶提供更好的支持,我們將與主板密切相關的一些底層功能模塊封裝成COM組件,用戶可以使用自己喜歡的語言來調用COM組件,不必關心低層調用的細節,而COM組件本身則采用C++來編寫。本文將介紹基于英創工控主板串口應用的COM組件和組件調用方法。

1、創建串口應用COM組件

串口通訊在工業控制場合應用十分廣泛,當串口作為RS485通信應用時,很多場合下,需要通過硬件RTS信號來控制數據收發的方向,以提高抗干擾能力。在C#這一類的高級語言中,盡管也包括了串口控件,但缺乏對RTS硬件的操作,因此在RS485應用中受到一定的限制。為了彌補這一缺陷,在我們所設計的串口應用COM組件中,通過對串口DCB結構參數的設置,并結合英創ARM9主板低層的串口驅動程序,實現對RTS信號的完整控制。本串口組件采用C++編寫,在組件內部對RTS進行設置,而上層的開發工具,如C#等,可通過向組件接口函數傳遞參數來控制RTS信號,從而最終實現RS485的半雙工通訊。

本串口COM組件提供四個接口方法函數:打開串口,關閉串口,向串口寫數據,讀串口數據。客戶方調用COM組件打開串口后,COM組件服務器便在組件內部創建一數據接收線程,接收線程里通過WaitCommEvent來等待串口事件發生,當串口收到數據后,將數據放入指定的接收數據緩存中,客戶方可調用讀串口數據方法函數將緩存中的數據讀出。在實際應用中,客戶可在接收線程中加入自己特定的協議轉換代碼,使得通過組件讀取的數據為一個完整應用報文。

為了跨語言調用組件,接口方法函數參數數據均采用VARIANT數據類型,這樣ASP、vbscript等可方便的進行組件調用,從而輕松實現通過網頁對串口進行操作。

COM組件的創建過程請參考本網站相關文章或參考相應書籍。這里不再贅述。

2、串口應用組件接口方法函數

為了跨語言調用組件,組件接口方法函數參數數據均采用VARIANT數據類型。

(1)OpenPort( VARIANT portNo, VARIANT baud, VARIANT parity, VARIANT dataBits, VARIANT stopBits, VARIANT rtsCtrl, VARIANT* pbool)

功能描述:打開指定串口。

輸入參數:

VARIANT portNo 要打開的串口號

VARIANT baud 設置波特率

VARIANT parity 設置奇偶較驗

VARIANT dataBits 設置數據位

VARIANT stopBits 設置停止位

VARIANT rtsCtrl RTS設置

輸出參數:

VARIANT* pbool 串口打開成功失敗標志

(2)WritePort(VARIANT *var_inp, VARIANT *retLen)

功能描述:向串口寫數據

輸入參數:

VARIANT *var_inp 發送數據緩存

輸出參數:

VARIANT *retLen 發送數據個數

(3)ReadPort(VARIANT *rxData)

功能描述:讀取串口數據

輸出參數:

VARIANT *rxData 接收數據緩存

(4)ClosePort( )

功能描述:關閉串口

3、串口組件調用

下面是在EVC中調用串口組件接口函數的一些程序片段,主要說明在調用接口方法時,VARIANT參數的用法。

// 從Program ID得到Class ID

hr = CLSIDFromProgID( OLESTR( ‘ComSerial.CoSerial’ ), &clsid );

if( FAILED( hr ) )

{

return -1;

}

// 從Class ID得到ICoSerial接口指針

hr = CoCreateInstance( clsid, NULL, CLSCTX_INPROC_SERVER, __uuidof( ICoSerial ),

( void** )&pICoSerial );

if( FAILED( hr ))

{

return -1;

}

//打開串口

CComVariant portNo( 3 ); // 打開串口3

CComVariant baud( 9600 ); // 波特率:9600

CComVariant parity( ‘n’ ); // 無校驗位

CComVariant dataBits( 8 ); // 8位數據

CComVariant stopBits( 1 ); // 1位停止位

CComVariant rtsCtrl(RTS_CONTROL_TOGGLE); // RTS設置

CComVariant pbool( FALSE ); // 串口打開成功標志

pbool = pICoSerial-》OpenPort( portNo, baud, parity, dataBits, stopBits, rtsCtrl );

// 向串口發送數據

char strBuf[100];

strcpy( strBuf, ‘1234567890!’ );

long i=0, m=0;

m = strlen( strBuf );

SAFEARRAY FAR* pSafeArray;

SAFEARRAYBOUND rgsabound[1];

rgsabound[0].lLbound = 0;

rgsabound[0].cElements = m;

pSafeArray = SafeArrayCreate( VT_VARIANT, 1, rgsabound );

VARIANT var;

for( i; i 《 m; i++)

{

var.vt = VT_UI1;

var.bVal = strBuf[i];

SafeArrayPutElement( pSafeArray, &i, &var );

}

VARIANT tarray,retLen;

tarray.parray = pSafeArray;

retLen = pICoSerial-》WritePort( &tarray );

// 接收數據

VARIANT vinput, var;

BYTE rxBuf[1500];

vinput = pICoSerial-》ReadPort( );

SafeArrayGetUBound( vinput.parray, 1, &lUbound );

SafeArrayGetLBound( vinput.parray, 1, &lLbound );

// m:串口接收到的數據個數

m = lUbound - lLbound+1;

// m=0表示串口沒有收到數據

if( 0 == m )

return;

for( i=0; i 《 m; i++)

{

Safe=ArrayGetElement( vinput.parray, &i, &var );

rxBuf[i] = (BYTE)var.bVal;

}

在實際的應用中,通訊各方必須遵循統一的通訊規約。在發送數據前通常需要將數據按相應的協議打包,添加較驗信息等,收到數據后,要進行幀完整性判斷、數據解包、數據較驗、協議轉換等工作。現在可以將這些與協議密切相關的處理放在COM組件內部,客戶方在使用串口時僅需要對客戶感興趣的數據進行處理,而協議轉換等工作交由COM組件完成。這樣程序具有更好結構,維護也更加方便。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • WINDOWS
    +關注

    關注

    4

    文章

    3586

    瀏覽量

    89929
  • 嵌入式主板
    +關注

    關注

    7

    文章

    6092

    瀏覽量

    35839
收藏 人收藏

    評論

    相關推薦

    ARM9工控主板應用程序自動加載實現

    ARM9工控主板有兩種工作模式:調試模式和運行模式。調試模式是指開機以后系統處于調試狀態,此時用戶可以通過eVC的遠程調試工具或微軟的ActiveSync來操作
    的頭像 發表于 10-08 17:13 ?1906次閱讀

    信息技術VS2005調試ARM9核心簡介

    公司自2007年開始陸續推出一系列以ARM9 CPU為核心的嵌入式主板(如EM9000、EM9260),這些高性能的工控主板不僅具有高端的硬件性能和豐富的硬件接口,而且還采用了Mi
    的頭像 發表于 10-31 15:03 ?1986次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b>VS2005調試<b class='flag-5'>ARM9</b>核心<b class='flag-5'>板</b>簡介

    信息技術ARM9工控主板WinCE應用程序遠程控制應用

    公司推出的ARM9嵌入式工控主板產品系列,均預裝了正版的WinCE5.0操作系統。微軟的WINCE實時多任務操作系統是嵌入式領域的主流操作系統之一,它包括了以TCP/IP為特色的完
    的頭像 發表于 11-04 09:28 ?1834次閱讀

    信息技術ARM9工控主板內嵌AD概述

    公司推出的ARM9 嵌入式工控主板產品系列,均預裝了正版WinCE5.0 操作系統。
    的頭像 發表于 11-04 09:43 ?2793次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b><b class='flag-5'>ARM9</b><b class='flag-5'>工控</b>主板內嵌AD概述

    信息技術ARM9工控在遠程監控領域的應用

    ARM9工控主板的數據采集功能通常采用上的GPIO實現數字輸入輸出、通過精簡ISA總線擴展相應的AD或DA實現模擬數據的輸入輸出。在
    的頭像 發表于 11-12 10:04 ?1918次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b><b class='flag-5'>ARM9</b><b class='flag-5'>工控</b><b class='flag-5'>板</b>在遠程監控領域的應用

    信息技術C#使用COM組件接口操作精簡ISA總線淺談

    ARM9工控主板的數據采集功能通常采用上的GPIO實現數字輸入輸出、通過精簡ISA總線擴展相應的外部控制電路(如控制繼電器或AD或DA
    的頭像 發表于 11-12 10:24 ?1701次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b>C#使用<b class='flag-5'>COM</b><b class='flag-5'>組件</b>接口操作精簡ISA總線淺談

    信息技術CAN接口COM組件在C#語言領域應用

     ARM9工控主板的一個很大的特色就是提供了標準的CAN總線通訊接口,客戶可以方便地在工業現場、汽車、船舶等等領域進行CAN通信應用。由于
    的頭像 發表于 11-12 10:34 ?2568次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b>CAN接口<b class='flag-5'>COM</b><b class='flag-5'>組件</b>在C#語言領域應用

    信息技術ARM9工控遠程抓拍圖像應用介紹

    ARM9工控主板功能齊全、體積小巧、性能穩定、超低價格的嵌入式主板產品。主板硬件完全按工業級標準設計,CPU采用了32位工業級ARM9
    的頭像 發表于 11-13 09:41 ?2136次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b><b class='flag-5'>ARM9</b><b class='flag-5'>工控</b><b class='flag-5'>板</b>遠程抓拍圖像應用介紹

    信息技術C#使用COM組件接口進行串口操作介紹

    ARM9工控主板均提供了多個串口供客戶進行通訊控制使用,包括標準的RS232和TTL電平的COM
    的頭像 發表于 11-14 09:37 ?2488次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b>C#使用<b class='flag-5'>COM</b><b class='flag-5'>組件</b>接口進行<b class='flag-5'>串口</b>操作介紹

    信息技術EM9000工控主板的版本信息管理概述

    EM9000是公司極具特色的一款ARM9工控主板。經過長時間的完善,現系統已完全穩定。
    的頭像 發表于 11-17 11:23 ?1824次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b>EM9000<b class='flag-5'>工控</b>主板的版本<b class='flag-5'>信息</b>管理概述

    信息技術如何實現WinCE系統中USB設備自動檢測概述

    公司ARM9系列工控主板預裝正版WinCE操作系統,提供標準USB接口,本文介紹如何在應用程序中判斷USB存儲設備的插入和移出操作。
    的頭像 發表于 11-18 09:44 ?1473次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b>如何實現WinCE系統中USB<b class='flag-5'>設備</b>自動檢測概述

    信息技術C#使用VS2005提供的串口類進行串口操作介紹

     ARM9工控主板均提供了多個串口供客戶進行通訊控制使用,包括標準的RS232和TTL電平的COM
    的頭像 發表于 11-18 09:53 ?1410次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b>C#使用VS2005提供的<b class='flag-5'>串口</b>類進行<b class='flag-5'>串口</b>操作介紹

    信息技術ARM9工控主板擴展矩陣鍵盤的方法

    公司ARM9系列工控主板預裝正版WinCE操作系統,板載了豐富的通訊接口,GPIO,存儲器等資源,支持TFT LCD顯示及觸摸,支持標準USB鍵盤,鼠標輸入。在實際使用中,客戶如果
    的頭像 發表于 01-14 11:05 ?1751次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b><b class='flag-5'>ARM9</b><b class='flag-5'>工控</b>主板擴展矩陣鍵盤的方法

    信息技術ARM9主板進行連接調試的兩種方法

    在我們提供給用戶的《使用VS2005連接和調試ARM9嵌入式模塊》一文中,我們分別以在EM9000上和在EM9260上為例講述了兩種對基于WinCE的ARM9主板進行連接調試的方法
    的頭像 發表于 01-14 11:29 ?1568次閱讀

    信息技術ARM9工控主板的SMS短信息應用介紹

    的應用越來越廣泛,其中主要以GPRS數據通訊及SMS短信息方式為主。GPRS數據通訊是以TCP/IP方式進行通訊,GPRS模塊發送SMS短信,是通過串口發送AT指令來實現。 公司基
    的頭像 發表于 01-14 11:45 ?1431次閱讀
    主站蜘蛛池模板: 久久精品热播在线看 | 久久涩视频 | 性色少妇AV蜜臀人妻无码 | 日韩精品一区二区三区AV在线观看 | 色多多污污在线观看网站 | 秀婷程仪公欲息肉婷在线观看 | 被老师按在办公桌吸奶头 | 成人免费网址在线 | 热思思 | 国产精品18久久久久网站 | 午夜福利电影网站鲁片大全 | 日本十八禁无遮拦啪啪漫画 | 抽插内射高潮呻吟V杜V | 国产福利不卡在线视频 | 国产精品免费视频播放 | 国产在线精品亚洲一品区 | 国产精品白浆精子流水合集 | 99精品国产高清自在线看超 | 激情内射亚州一区二区三区爱妻 | 97公开超碰在线视频 | 喜马拉雅听书免费版 | 乡土女性网动态图解 | 武侠艳妇屈辱的张开双腿 | 男女作爱在线播放免费网页版观看 | av天堂网2017avtt | 亚洲综合色在线视频久 | 国产午夜精品一区二区 | 69夫妇交友群 | jj插入bb| 伦理片在线线手机版韩国免费6 | 亚洲青青青网伊人精品 | 色橹橹欧美在线观看视频高 | 日韩欧美一区二区中文字幕 | 最近中文字幕免费高清MV视频 | 午夜一区二区三区 | 又紧又大又爽精品一区二区 | 中文字幕人成人乱码亚洲影视S | 精品一卡2卡三卡4卡乱码精品视频 | 色婷婷综合久久久久中文一区二区 | 欧美zozofoot | 女人爽到高潮嗷嗷叫视频 |