《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于Virtools 和串口通信的界面交互性設計與實現
基于Virtools 和串口通信的界面交互性設計與實現
維庫開發網
滕英巖 張福艷
摘要: 本文介紹了一種采用Virtools 和串口通信實現人機界面交互的設計方法。下位機通過串口通信的方式將采集的數據傳給上位機,上位機通過Virtools 的行為模組對這些數據進行處理, 并根據處理結果做出響應,從而實現人機界面的交互。
Abstract:
Key words :

      1 引言

      用戶界面設計是屏幕產品的重要組成部分,它為人機交互構建了一個溝通環境。其中交互性設 計是用戶界面設計中的重要內容之一。交互設計的目的是讓用戶能夠簡單方便地使用產品,任何產品功能的實現都是通過人機交互完成的?,F以單片機為核心的嵌入式應用中界面交互性設計為例具 體介紹其實現方法。

      2 總體設計方案

      總體設計方案如圖 1 所示。

                 圖 1 總體設計圖

      以單片機為核心的下位機主要是負責采集處理數據信息,在接到上位機的數據請求的時候發送 數據給上位機。編寫上位機端的串口通信程序,用于處理串口信息并且把處理過后的消息發送給 Virtools。在Virtools 中設計消息解釋執行行為模組,將解釋出的相應動作信息發送給界面控制程序, 最后由其完成屏幕的輸出。同時協調Virtools 中各行為模組的工作,使之達到良好的演示效果。

      3 串口通信設計與實現

      串口通信是指外設和計算機間,通過數據信號線、地線、控制線等,按位進行傳輸數據的一種 通信方式。這種通信方式使用的數據線少。本文的串口通信設計包括下位機端的串口通信模塊和上 位機端的串口通信模塊。

      3.1 下位機的串口通信模塊

      下位機的串口通信模塊通過串口完成與上位機的通信,在接到上位機數據請求后將采集的數據 信息發送給上位機。 在設計中首先設定定時器 T1 為串口波特率發生器,設定波特率為19200bps;上位機發送數據 請求后觸發下位機串口中斷,為了能夠快速的響應上位機的請求,減少上位機的等待,將串口中斷 的優先級設置為最高;下位機會優先調用通信模塊響應該中斷,通信模塊首先判斷請求消息是否正 確,在確定是正確的請求消息后,從緩沖區中取出數據,封裝成一條消息M 消息碼R(如M01R), 通過串口發送給上位機。通信模塊具備一定過濾及容錯能力。

      下面重點介紹一下串口通信模塊的處理方式。

      串口通信模塊采用中斷處理方式,每完整地接收到一個字符或發送完一個字符都會觸發該中斷, 進入到相應的中斷處理函數中。中斷處理函數涉及到接收和發送兩個部分,因此在中斷處理函數開 始的部分就判斷是接收引發的中斷,還是發送引發的中斷。如果是接收中斷,在接收中斷中每接收 一個字符都要判斷,確定是否為上位機發送過來的請求消息,如果不是放棄當前接收到的內容,從 頭開始接收;如果是,則響應上位機的數據請求,將接收態改為發送態,然后向上位機發送通信緩 沖區中的第一個字符,每發送一個字符會產生中斷,在下次中斷中再發送下一字符,按此過程直到 發送完畢。

      3.2 上位機的串口通信模塊

      上位機的串口通信模塊通過串口向下位機發送請求信息,處理下位機返回的數據信息,并將其 發送給處理這些信息的行為模組。這一過程是循環執行的。該程序是與下位機協同工作的唯一接口, 是聯系界面和下位機的橋梁。它的處理流程如圖2 所示。

 圖 2 上位機串口通信模塊處理流程圖

      上位機的串口通信程序是通過調用 Windows 提供的有關串口操作的API 函數完成的。首先創建 了基礎串口類_base_com,在其中實現基本信息配置、打開、關閉串口等基礎功能。為了實現異步發 送和異步接收,在_base_com 類的基礎上派生出異步串口通信類_sync_com 完成異步的數據傳輸。

  基類_base_com 的聲明如下。

  class _base_com //虛基類基本串口接口

  {

  protected:

  volatile int _port; //串口號

  volatile HANDLE _com_handle;//串口句柄

  DCB _dcb; //波特率,停止位,等

  int _in_buf, _out_buf; // 緩沖區

  COMMTIMEOUTS _co; // 超時時間

  //虛函數,用于不同方式的串口打開

  virtual bool open_port() = 0;

  void init(); //初始化

  public:

  _base_com()

  {

  init();

  }

  virtual ~_base_com();

  /*基本參數設置*/

  //設置串口參數:波特率,停止位,等

  inline bool set_para();

  //支持設置字符串 "9600, 8, n, 1"

  bool set_dcb(char *set_str);

  //設置內置結構串口參數:波特率,停止位

  bool set_dcb(int BaudRate, int ByteSize = 8, int Parity = NOPARITY, int StopBits =

  ONESTOPBIT);

  //設置緩沖區大小

  inline bool set_buf(int in_buf, int out_buf);

  //打開串口缺省 9600, 8, n, 1

  inline bool open(int port);

  //打開串口缺省 baud_rate, 8, n, 1

  inline bool open(int port, int baud_rate);

  //打開串口

  inline bool open(int port, char *set_str);

  //關閉串口

  inline virtual void close();

  //判斷串口是或打開

  inline bool is_open();

  //獲得串口句炳

  HANDLE get_handle();

  };

  異步串口通信類_sync_com 的聲明如下。

  class _sync_com : public _base_com

  {

  protected:

  //打開串口

  virtual bool open_port();

  public:

  _sync_com();

  //同步讀

  int read(char *buf, int buf_len);

  //同步寫

  int write(char *buf, int buf_len)

  //同步寫

  inline int write(char *buf)

  {

  assert(buf);

  return write(buf, strlen(buf));

  }

  };

  4 Virtools 中行為模組的設計與實現

  下位機通過串口傳輸的數據,經過上位機串口通信程序轉換成 Virtools 可以識別的消息,然后 交由Virtools 中的行為模組進行處理,從而達到利用外部采集數據控制界面顯示的目的。

  4.1Virtools 消息發送行為模組

  Virtools 消息發送行為模組對串口通信模塊處理得到的數據信息進行重新封裝,然后發送給消息 解釋執行行為模組。消息發送行為模組是使用Virtools 提供的開發工具包中相關類的方法實現對信 息的重新封裝。具體實現如下:

  CKBeObject *beo = beh->GetTarget(); //獲取消息發送目標

  if(!beo)

  return CKBR_OWNERERROR;

  int *tab = (int *)beh->GetLocalParameterReadDataPtr(0); //獲得本地變量操作句柄

  CKMessageManager *mm = BehContext.MessageManager; //消息管理對象

  int temp = GetMessage(BehContext) - '0'; //調用串口通信模塊讀取串口消息

  mm->SendMessageSingle(tab[temp],beo); //調用消息發送函數發送已經封裝好的動作消息

  activeOutput_0 = TRUE;

  4.2 消息解釋執行行為模組

  消息解釋執行行為模組首先從當前的消息列表中獲取消息類型,根據消息類型屬性中指定的特 定消息類型來判斷當前到達的消息是否為該特定消息,并根據判斷結果調用不同的處理模塊。具體 的處理流程如圖3 所示。

  圖 3 消息解釋執行行為模組流程圖

  利用 Virtools 中行為模組的回調機制,循環調用該行為模組。在界面切換時檢測一下消息,判 斷是否與屬性中設定的動作消息一致。如果一致,則向動作控制行為模組發送激活消息。

  4.3 動作控制行為模組

  動作控制行為模組主要使用 Virtools 自帶的行為模組,像按鍵響應行為模組、腳本的控制行為 模組等。另外為了控制外部媒體文件的播放,還利用了Virtools 中加載資源文件、播放資源文件的 行為模組。

  動作控制行為模組接收到消息解釋執行行為模組發送的激活信息,就會調用相應的行為模組完 成界面的輸出。

  5 結論

  本文從工程應用的角度,給出了基于 Virtools 和串口通信的界面交互性的設計方法,并給出關鍵部分的設計思路和方法。該設計方法具有一定的通用性,可應用于其它需要用戶界面交互設計的 應用系統中。

  本文作者創新點:串口通信下,采集下位機(單片機)傳遞的信息,運用 Virtools 的行為模組 進行實時處理,實現了人機界面的交互。這一設計也為其他人機界面交互性的實現提供了一種新的 思路。

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          亚洲免费精品| 欧美日韩蜜桃| 狠狠色丁香久久综合频道| 亚洲综合日韩中文字幕v在线| 国产综合18久久久久久| 欧美激情欧美激情在线五月| 亚洲国产精品综合| 欧美一区激情| 韩国一区二区三区在线观看| 国产精品久久久久久久9999| 日韩亚洲欧美高清| 亚洲欧洲精品一区二区| 欧美精品三级在线观看| 久久岛国电影| 一级日韩一区在线观看| 亚洲永久免费| 欧美成人黄色小视频| 欧美日韩亚洲一区二区三区四区| 久久久噜久噜久久综合| 欧美夜福利tv在线| 在线免费日韩片| 一区在线视频观看| 18成人免费观看视频| 亚洲精选视频在线| 亚洲精品在线二区| 亚洲人成在线免费观看| 国产日韩精品在线播放| 欧美精品一区二区三区高清aⅴ| 亚洲天堂黄色| 欧美激情中文字幕一区二区| 欧美激情一区二区三区在线视频| 国产精品区二区三区日本| 国产精品视频内| 黄网站色欧美视频| 亚洲激情成人| 国产一区二区三区观看| 美女黄毛**国产精品啪啪| 欧美一区二区高清| 欧美一激情一区二区三区| 欧美日韩国产一区精品一区| 国产精品99久久不卡二区| 欧美日韩在线综合| 久久精品国产99国产精品澳门| 国产亚洲福利社区一区| 一本一本久久a久久精品牛牛影视| 欧美大片18| 国模私拍一区二区三区| 狠狠色丁香久久婷婷综合_中| 国产精品wwwwww| 久久久综合网| 黑人巨大精品欧美一区二区小视频| 欲色影视综合吧| 伊人久久大香线蕉综合热线| 欧美成人黑人xx视频免费观看| 亚洲每日在线| 国产美女精品| 欧美日韩一区二区在线| 欧美日韩大片一区二区三区| 国产日韩欧美在线| 性久久久久久| 亚洲自拍都市欧美小说| 在线视频中文亚洲| 久久精品人人做人人爽电影蜜月| 欧美影院在线播放| 一区二区三区高清在线观看| 欧美激情中文不卡| 一区二区三区在线观看国产| 国产精品视频免费在线观看| 久久久久国产免费免费| 欧美—级a级欧美特级ar全黄| 欧美精品久久99久久在免费线| 亚洲精品麻豆| 亚洲一区二区精品在线观看| 国产精品成人播放| 国产精品午夜久久| 亚洲一区二区三区中文字幕在线| 欧美日韩一区在线观看| 欧美不卡在线| 欧美高清视频在线观看| 免费成人你懂的| 永久域名在线精品| 亚洲黄一区二区| 黑人极品videos精品欧美裸| 亚洲欧洲偷拍精品| 久久久欧美精品| 国产精品一级久久久| 国产噜噜噜噜噜久久久久久久久| 久久久久久夜精品精品免费| 一二美女精品欧洲| 国产老女人精品毛片久久| 日韩视频免费观看高清在线视频| 欧美精品粉嫩高潮一区二区| 亚洲欧美日本国产有色| 一区二区三区日韩精品| 国产精品久久久久久久午夜片| 欧美区亚洲区| 欧美在线影院| 亚洲国产成人av| 国产亚洲网站| 亚欧成人精品| 欧美精品一区在线| 久久综合久色欧美综合狠狠| 欧美乱人伦中文字幕在线| 久久精品一二三区| 欧美jizzhd精品欧美巨大免费| 国产精品一区二区三区久久| 国产视频在线观看一区| 国产精品无人区| 在线观看亚洲专区| 欧美激情一区二区三区四区| 欧美成人午夜免费视在线看片| 欧美日韩国产精品| 99re热这里只有精品免费视频| 亚洲美洲欧洲综合国产一区| 在线观看视频一区| 亚洲欧洲精品一区二区三区波多野1战4| 午夜精品三级视频福利| 欧美日韩免费看| 亚洲欧美日韩电影| 国产精品一页| 精品91在线| 欧美日韩专区在线| 国产麻豆精品theporn| 国内精品写真在线观看| 久久九九国产| 久久国产精品久久久久久电车| 午夜精品福利电影| 在线观看欧美精品| 欧美一二三视频| 国产麻豆精品久久一二三| 欧美jizzhd精品欧美巨大免费| 欧美激情视频一区二区三区在线播放| 欧美精品在线一区二区| 亚洲五月婷婷| 久久久国产一区二区| 牛牛精品成人免费视频| 影音先锋亚洲精品| 国产在线精品一区二区中文| 亚洲一区二区三| 韩日在线一区| 欧美性色视频在线| 国产亚洲欧美另类一区二区三区| 久久精品男女| 欧美精品在线一区二区三区| 亚洲麻豆视频| 乱码第一页成人| 99精品视频网| 国产精品狼人久久影院观看方式| 欧美激情视频一区二区三区在线播放| 亚洲缚视频在线观看| 欧美一区二区三区四区在线| 麻豆成人小视频| 99在线精品免费视频九九视| 亚洲欧美国产日韩中文字幕| 国产真实乱子伦精品视频| 久久久精品久久久久| 亚洲国产黄色片| 欧美日韩成人综合天天影院| 亚洲香蕉网站| 亚洲欧美日韩精品久久久| 国产欧美综合在线| 亚洲精品国产精品乱码不99| 亚洲免费在线视频一区 二区| 亚洲美女尤物影院| 亚洲一区高清| 亚洲欧美日韩中文在线制服| 久久亚洲一区二区| 欧美婷婷久久| 伊人夜夜躁av伊人久久| 精品成人国产| 女主播福利一区| 亚洲国产福利在线| 欧美激情一区二区| 久久亚洲免费| 亚洲综合日韩中文字幕v在线| 亚洲黄网站黄| 一区二区三区久久| 香蕉乱码成人久久天堂爱免费| 国产麻豆成人精品| 亚洲二区在线| 亚洲精品色婷婷福利天堂| 国产伦理精品不卡| 国产精品剧情在线亚洲| 欧美日韩国产色综合一二三四| 浪潮色综合久久天堂| 一区二区三区回区在观看免费视频| 欧美一二三视频| 国产亚洲一级高清| 国产精品进线69影院| 亚洲精品1区| 国产精品日韩欧美| 欧美精品福利在线| 欧美一区激情视频在线观看| 亚洲制服丝袜在线| 国产精品视频免费在线观看| 欧美精品一区二区三区高清aⅴ| 亚洲人体一区| 欧美日本免费| 精品1区2区3区4区| 亚洲国产一区二区视频| 国产丝袜一区二区| 久久伊人免费视频| 欧美午夜精品久久久久久孕妇| 老牛国产精品一区的观看方式| 久久福利视频导航| 亚洲人成网在线播放| 国产免费观看久久黄| 免费日本视频一区| 欧美在线高清视频| 亚洲欧美日韩国产综合| 欧美 日韩 国产 一区| 在线观看欧美成人| 久久精品日韩一区二区三区| 欧美在线一二三区| 亚洲一区二区日本| 欧美日韩国产一区二区| 亚洲综合色激情五月| 一区二区三区在线视频播放| 夜夜夜久久久| 国产精品夜夜夜| 欧美成人免费一级人片100| 一本大道久久a久久精二百| 国产毛片一区二区| 久久亚洲影院| 欧美日一区二区在线观看| 欧美特黄a级高清免费大片a级| 久久久欧美一区二区| 久久国产精品久久久| 亚洲特级毛片| 欧美精品乱人伦久久久久久| 欧美激情一二三区| 欧美一区二区三区免费视频| 久久精品国产视频| 激情欧美一区二区三区在线观看| 久久午夜羞羞影院免费观看| 欧美日韩免费区域视频在线观看| 国产精品欧美经典| 日韩一区二区精品| 欧美一区二区精品在线| 欧美日韩另类一区| 亚洲精品日韩激情在线电影| 欧美在线视频在线播放完整版免费观看| 欧美精品免费观看二区| 欧美国产日韩一区二区在线观看| 久久亚洲综合色一区二区三区| 欧美久久一级| 国产日韩精品在线| 国产一区二区三区在线观看网站| 欧美大片免费观看在线观看网站推荐| 亚洲人久久久| 亚洲国产成人一区| 欧美激情一二三区| 欧美绝品在线观看成人午夜影视| 欧美激情在线播放| 在线亚洲精品福利网址导航| 欧美亚洲尤物久久| 一本色道久久加勒比88综合| 国模叶桐国产精品一区| 国产区日韩欧美| 亚洲精品影院在线观看| 欧美在线免费观看亚洲| 一区二区日本视频| 欧美久久精品午夜青青大伊人| 91久久在线播放| 欧美色偷偷大香| 欧美性视频网站| 国产精品人人爽人人做我的可爱| 国产日韩欧美三区| 国内伊人久久久久久网站视频| 欧美激情性爽国产精品17p| 亚洲欧美日韩国产一区二区三区| 久久成人羞羞网站| 欧美理论电影在线观看| 欧美成人一区二区三区片免费| 在线观看国产精品淫| 欧美大片在线看免费观看| 久久香蕉国产线看观看网| 国产欧美一区二区三区久久人妖| 性欧美18~19sex高清播放| 久久综合色影院| 在线高清一区| av不卡免费看| 国产一区二区三区精品欧美日韩一区二区三区| 久久亚洲影院| 亚洲素人一区二区| 亚洲高清资源综合久久精品| 欧美激情视频在线免费观看 欧美视频免费一| 欧美黄色免费网站| 欧美激情国产日韩| 国模精品一区二区三区| 伊人男人综合视频网| 欧美日韩一区在线观看| 欧美视频在线播放| 欧美一区二区日韩| 尹人成人综合网| 在线视频国内自拍亚洲视频| 久久夜色精品亚洲噜噜国产mv| 一本色道久久99精品综合| 在线观看成人一级片| 欧美四级伦理在线| 亚洲国产va精品久久久不卡综合| 亚洲欧美国内爽妇网| 亚洲另类视频| 在线日本欧美| 欧美视频不卡| 亚洲区在线播放| 性久久久久久久| 日韩一区二区精品视频| 久久精品国产在热久久| 欧美国产精品专区| 欧美精品亚洲二区| 国产一区二区剧情av在线| 中日韩美女免费视频网址在线观看| 激情久久中文字幕| 精品盗摄一区二区三区| 亚洲免费观看在线观看| 韩国福利一区| 亚洲美女色禁图| 欧美精品在线一区二区| 久久久久国产一区二区三区四区| 亚洲性视频网站| 欧美性大战久久久久久久蜜臀| 亚洲欧美综合精品久久成人| 久久久精品国产99久久精品芒果| 一区二区三区在线视频播放| 国产视频精品免费播放| 国产精品久久国产愉拍| 久久久高清一区二区三区|