• 沒有找到結果。

第四章 . 模組設計與實作

4.1 模組概觀

4.1.1 模組架構圖

本論文的模組內提供的應用程式介面

表 1 本論文提供的應用程式介面

名稱 說明

OpenPen 開始取樣

Close 結束取樣

GetPoint 取得該點的滑鼠資料

下圖為本模組的架構,主要由 Hook Callback Function 和提供呼叫的應用程式介 面組成,Hook Callback Function 負責攔截滑鼠訊息後的處理工作,而使用本取樣模組 的繪圖程式呼叫應用程式介面以使用本模組的功能:

窗程式的處理佇列前先被接收。第二、是使用 Windows Hook 機制可不需在系統裡進行 安裝,允許在較低權限的帳戶下直接使用,如果使用驅動程式的方式進行取樣,則需要 以較高權限的帳號進行安裝設定才能使用,導致用此模組的軟體就不可能成為綠色軟 體。

圖 15 滑鼠取樣模組運作方式

4.2.2 滑鼠訊息轉換成的非佇列訊息

滑鼠事件包含了事件的發生和該事件的相關資料,例如:指標的位置…等。本論文 以兩種不同的非佇列訊息分別進行事件傳遞,並且在實驗內針對效率加以比較。整合時 應用程式只需修改訊息處理函式處理滑鼠訊息的部分為接收對應產生的訊息,並且呼叫 解讀訊息的 API,再將訊息處理改為原本應用程式對應的訊息處理方式即可,而不需對 應用程式的處理流程或架構另做修改。

可供轉換的非佇列式訊息有以下兩種:

1. WM_COPYDATA 訊息

WM_COPYDATA[11]是 Windows 系統提供給應用程式作為少量資料行程間通訊的 訊息,使用時對接收資料的客戶端視窗程式以 SendMessage API 傳送 WM_COPYDAYA 訊

息,並且將要傳遞的資料其位址和大小加入參數中即可。接收端的訊息處理程式只需 要對 WM_COPYDATA 訊息做適當的處理。

2. 應用程式自訂訊息( Application Defined Message )

Windows 系統提供了自訂訊息[3]讓程式設計師建立自己使用的訊息,該訊息的 數值需位於 WM_APP 的實際數值和 0xBFFF 的區間內。

本論文以此兩種訊息設計了兩種不同轉換滑鼠訊息的方法:

1. WM_COPYDATA 方式

利用 WM_COPYDATA 訊息負責觸發滑鼠事件的處理和相關資料的傳遞。由於 WM_COPYDATA 本身具有傳遞資料的能力,滑鼠事件的相關資料由該訊息的參數傳遞 至視窗處理程式。

本設計如下圖:

義為 WM_BWDLL,當應用程式收到該訊息時,呼叫該 API 以取得事件的相關資料。

本設計如下圖:

圖 17 自訂訊息中斷方式運作流程

4.2.3 滑鼠訊息和本論文使用訊息的比較

下表為三種訊息於用途上的比較:

表 2 滑鼠訊息和本論文轉換後的非佇列式訊息在用途上的比較

用途 傳遞滑鼠事件方式

滑鼠訊息

負責提示應用程式滑鼠

事件發生 由視窗處理程式的參數傳遞。

WM_COPYDATA 訊息 少量資料行程間通訊。

由視窗處理程式的參數傳遞,

供 應 給 程 式 自 訂 通 知 訊 息 使 用。

應用程式自訂訊息 由訊息處理程式的參數

傳遞。

模組需提供 API,於訊息到達時 由呼叫 API 取得事件內容。

4.2.4 應用端程式開發 DDR400 512MB

Windows XP Professional 手寫數位板規格 WACOM BAMBOO

電子白板規格 Jector jp835xsp

1. 以滑鼠為輸入裝置得到的結果

表 4 以滑鼠為輸入裝置得到的結果,單位為毫秒(millisecond)

滑鼠訊息 WM_COPYDATA 訊息 應用程式自訂訊息

表 5 以手寫數位板為輸入裝置得到的結果,單位為毫秒(millisecond)

滑鼠訊息 WM_COPYDATA 訊息 應用程式自訂訊息

3. 以電子白板為輸入裝置得到的結果

表 6 以電子白板為輸入裝置得到的結果,單位為毫秒(millisecond)

滑鼠訊息 WM_COPYDATA 訊息 應用程式自訂訊息

第一次 12.145 1.426 0.573

第二次 12.261 2.113 0.019

第三次 11.245 3.539 0.673

第四次 9.549 0.853 0.086

第五次 13.725 0.85 0.052

平均 11.4018 1.7562 0.2806

2 4 6 8 10 12

( millisencond )

各取樣1000點5次的平均時間

0

0

表 7 以滑鼠裝置的滑鼠取樣時間與繪圖工作時間的預測取樣點數(單位:點數)

繪圖工作時間 (MS) 滑鼠取樣方式

10 20 30 40 50 60 70 80

滑鼠訊息方式 61 38 28 25 18 15 13 12

WM_COPYDATA 訊息方式 91 48 32 22 20 16 14 12

自訂訊息中斷方式 100 50 33 24 20 17 14 13

表 8 以手寫數位板的滑鼠取樣時間與繪圖工作時間的預測取樣點數(單位:點數)

繪圖工作時間 (MS) 滑鼠取樣方式

10 20 30 40 50 60 70 80

滑鼠訊息方式 61 38 27 22 18 15 13 12

WM_COPYDATA 訊息方式 98 50 33 25 20 17 14 12

自訂訊息中斷方式 100 50 33 25 20 17 14 13

表 9 以電子白板的滑鼠取樣時間與繪圖工作時間的預測取樣點數(單位:點數)

繪圖工作時間 (MS) 滑鼠取樣方式

10 20 30 40 50 60 70 80

滑鼠訊息方式 47 32 24 19 16 14 12 11

WM_COPYDATA 訊息方式 85 46 31 24 19 16 14 12

自訂訊息中斷方式 97 49 33 25 20 17 14 12

以下為各裝置的預測取樣數比較圖:

圖 23 以手寫數位板裝置的滑鼠取樣時間與繪圖工作時間的預測取樣點數比較圖 (單位:點數)

圖 24 以電子白板裝置的滑鼠取樣時間與繪圖工作時間的預測取樣點數比較圖 (單位:點數)

由前述圖表可發現當繪圖模組的繪圖工作時間假定為四十毫秒以下時,使用本 取樣模組可取得比原本滑鼠訊息取樣的方式取得點數超過 5 點以上。但是若繪圖工 作時間過長時,則效果不明顯。

4.3.4 實驗結論

本論文設計的滑鼠取樣模組確實能減少滑鼠訊息在傳遞的時間和取樣點數。在 處理時間上,本論文的方法可比原本滑鼠訊息方式的處理時間少約 10 毫秒。在取樣 點數上,若繪圖程式的繪圖工作時間小於 40 毫秒時,滑鼠取樣模組能取得較原本滑 鼠訊息方式 5 點以上的效果。

第五章. 應用範例

5.1 應用取樣模組程式展示

5.1.1 滑鼠訊息與自訂訊息中斷方式

以下為加入整合取樣模組前後的畫筆軟體效果對照圖:

整合取樣模組前 整合取樣模組後

圖 25 加入整合取樣模組前後的畫筆軟體效果對照圖

在整合前的筆跡裡,其中"a"的第一筆因缺少取樣點而有較大的缺口,另外

"3"字其因為取樣不足而變成線段相接。

5.1.2 WM_COPYDATA 訊息與自訂訊息中斷方式

以下為本論文兩種方式的畫筆軟體效果對照圖

WM_COPYDATA 訊息方式 自訂訊息中斷方式

圖 26 本論文提出兩種方式的畫筆軟體效果對照圖

兩種方式的繪圖效果差異並不大。

第六章. 結論

6.1 總結

本論文所設計的滑鼠取樣模組,可以改善手寫式輸入裝置對於繪圖應用程式的顯示 效果,同時擁有不需安裝、即時可使用的特性,更可應用於綠色軟體。另外,可與原有 的視窗訊息機制相容,減輕了使應用時對原本程式的修改程度。

本論文的模組在實作上利用原本 Windows 系統所提供的 WM_COPYDATA 訊息,也利用 應用程式自訂訊息將滑鼠訊息由佇列視訊息轉換為非佇列式訊息,藉以取得更好的反應 速度,並對兩者消耗的時間進行比較。最後在實驗中,對原本的滑鼠訊息和本論文兩種 機制取樣效果進行比較,驗證取樣模組設計的方法確實能有效改善滑鼠取樣的效果。

6.2 未來發展方向

以下提出對本論文所設計的滑鼠取樣模組可改善的方向:

可採用 Windows 系統提供的其他行程間通訊方式進行資料傳遞,以期望傳送滑鼠事 件相關資料的時間能更加的縮短。

為了使取樣的效果更好,在能安裝的環境下,可以使用過濾式驅動程式的方式進行 取樣。

參考文獻或資料

[1] Holzinger, Andreas, “Finger Instead of Mouse: Touch Screens as a means of enhancing Universal Access”, Theoretical Perspectives, Practice, and Experience Lecture Notes in Computer Science, 2003, pp. 387-397.

[2] Glover, D and Miller, D, Averis, D and Door, V., “The interactive whiteboard: a literature survey. Technology, Pedagogy and Education”, Vol. 14, 2005, pp.

155–170.

[3] Microsoft Corporation, “Windows Message”,

http://msdn.microsoft.com/en-us/library/ms632590(VS.85).aspx

[4] Charles Petzold, “Programming Windows Fifth Edition”, Microsoft Corporation,

1999

[5] Microsoft Corporation, “Windows Hook”, Available HTTP:

http://msdn.microsoft.com/en-us/library/dd458650(VS.85).aspx

[6] Jeffrey Richter, “Programming Applications for Microsoft Windows Windows”, 1999

[7] Microsoft, “Windows mouse message”, Available HTTP:

http://msdn.microsoft.com/en-us/library/ms645601(VS.85).aspx

[8] Visual staying phenomenon, Available HTTP:

http://en.wikipedia.org/wiki/Persistence_of_vision

[9] Green software, Available HTTP:

http://en.wikipedia.org/wiki/Portable_application

[10] O’Brien, J (1999). “Management Information Systems – Managing Information Technology in the Internetworked Enterprise”, Boston:Irwin McGraw-Hill, 1999

[11] Microsoft Corporation, “WM_COPYDATA Message”, Available HTTP:

http://msdn.microsoft.com/en-us/library/ms649011(VS.85).aspx

[12] Bestwise, Available HTTP: http://www.caidiy.com/

相關文件