• 沒有找到結果。

第三章 系統設計與實作

第二節 系統架構

MMLS分為System Component、Network Component 、Multimedia Component等三大元件系統,系統類別階層中(圖 16),各類別皆繼承於 Object基本類別,Learning Recorder、Command Encoder及Command Decoder 則與E-Board相依。其系統模組架構(圖 15)則以Network Component、

Multimedia Component、System Component順序圖分別說明:

圖 15 MMLS類別階層圖

圖 16 MMLS系統模組架構

(一) Network Component:(網路元件)

1、 NetServer

網路主機,設成主機之PDA需同時驅動NetServer及NetClient,

接受本身及其他PDA之NetClient連線、離線要求,傳遞Client之間 的繪圖指令,Server端持續更新連線之IP Table。

2、 NetClient

負 責 連 線 至 NetServer , 網 路 連 線 指 令 如 41 頁 表 4 , 接 收 NetServer所更新IP Table,將接收到DataCommandGlobalMessage 指令傳遞給Data Decoder Module以解碼並顯示在E-Board上,或是 將使用者在E-Board上的繪圖指令傳遞給Command Encoder Module

編碼後,經由NetClient傳遞給NetServer,再分送至各連線之MMLS 以同步顯示,系統連線示意如圖 17,說明如下:

(1) CLIENT端發送DATACOMMANDCLIENTIDENTIT訊息給遠端要求連線 (2) SERVER接受連線,CLIENT端傳送本身INFO

(3) SERVER傳送識別碼,以DATACOMMANDLISTCLIENTS指令傳送更新後 的IP TABLE

圖 17 系統連線示意

系統離線示意(圖 18):

(1) CLIENT傳送DATACOMMANDKICKCLIENT指令給SERVER,要求離線。

(2) SERVER接受離線,並在傳送更新後的更新後的IPTABLE給還連 線的PDA。

Client

嘗試連線

接受連線 傳送PDA之Info

傳 送 識 別

Server 傳送IP Table

圖 18 系統離線示意

表 4 網路連線指令

連線狀態指令(數值) 編

號 範例 說明

DataCommandClientIdentit(04) 1

04|192.168.0.11

連線時,Client傳送給Server,以"|"為分 隔符號,指令後之字串為Client端本身之 IP,Server接收後再藉由

DataCommandListClients傳送Clients的IP Table更新知資訊給Client。

DataCommandListClients (01) 2

01|192.168.0.9|192.168.0.10

Server專用,當連線的PDA狀態改變時,由 Server傳送給所有的Client,後面之字串為 所有連線PDA之IP,以"|"為分隔符號。

DataCommandGlobalMessage (02)

3

02|DrawLine,-65536,3,32,86,34,8 5,43,83,48,82,55,82,64,83,73,84 ,85,85,99,86,114,88,130,90,138, 91,167,96,184,100,184,100

Client之間經由Server傳送的繪圖指令,如 h_DrawLine、DrawLine、DrawRectangle、

FillEllipse等,當Network Module接收到此 類指令時,則移除表頭(02)之後 將其後之字 串交給 Data Transfer Module作後續處理。

DataCommandKickClient(05) 4

05|192.168.0.9

當Client欲離線時,由Client透過此指令發 送自身之IP給Server,通知Server,Server 再 呼 叫 DataCommandListClients 傳 送 Clients的IP Table更新知資訊給Client。

Client

嘗試離線

接受離線

傳送PDA之Info

Server Client

3、 File Transfer Module

檔案傳輸模組,當系統啟動時,以PORT 3600開啟一無窮迴圈,

接收其他Client端的TcpClient連線,當Client建立連線,則將其 TcpClient傳給server_recive_file函數來接收檔案,部份程式碼 如下:

Do While not myTcpListener Is Nothing

tmpClient = myTcpListener.AcceptTcpClient server_recive_file(tmpClient)

Loop

Client以Servert傳來的IP Table(clientlist1)為依據,不 經由Server直接傳檔案給其他PDA,以減輕Server之負擔,部份程 式碼如下:

For Each tmpip In clientlist1

If Not tmpip.Equals(myip) Then Dim tmptcpclient As New TcpClient tmptcpclient.Connect(tmpip, outPort)

cNetworkStream = tmptcpclient.GetStream()

綜合以上,網路模組的主要系統順序圖,在第 43 頁圖 19。

圖 19 MMLS系統順序圖

(二) Multimedia Component:(多媒體元件)

1、 E-board Module

電子白板模組,可供學生以觸控筆繪圖,並即時將繪圖指令傳 遞 給 Command Encoder Module 封 裝 後 經 由 NetClient 發 送 到 NetServer,並廣播予所有連線之PDA。繪圖指令如表 5。另可顯示 由Graphic Module匯入之相片,並即時同步於所有連線之PDA。

其中,手繪線的部份,因手繪時以點座標為單位,資料量十分 大,為減低PDA負荷及降低網路流量,只有當所記錄的超過一千筆 座標資料或觸控筆離開螢幕時才進行資料傳輸,部份程式碼如下:

Select Case Draw_Mode Case D_hand '手繪線 point.ToString + "," + d_hand_data)

End If

Dim tempcounter As Long = getcount("h_DrawLine" + "," +_

pen_c.ToArgb.ToString + "," + point.ToString + "," + d_hand_data) d_hand_data = ""

End If Case Else End Select

表 5 繪圖指令 h_DrawLine

繪製手繪線 1 07/2/3 上午 07:42:16 [in ] [draw]

h_DrawLine,-65536,3,145,58,144,55,146,53,148,51,150,50,152,50,154,5 0,156,52,157,54,157,56,156,59,155,61,152,63,150,64,148,65,146,65,144 ,65,142,63,142,61,143,57,143,57

DrawLine 繪製直線

2 07/2/3 上午 07:42:41 [in ] [draw] DrawLine,-65536,3,25,85,234,48 07/2/3 上午 07:42:45 [out] [draw] DrawLine,-16744448,3,197,30,71,20 07/2/3 上午 07:42:49 [out] [draw] DrawLine,-16777216,3,33,47,131,21

DrawRectangle 繪製矩形

3 07/2/3 上午 07:43:09 [out] [draw] DrawRectangle,-16777216,3,37,35,72,91 07/2/3 上午 07:43:15 [out] [draw] DrawRectangle,-65536,3,77,103,102,111 07/2/3 上午 07:43:24 [out] [draw] DrawRectangle,-16744448,3,90,18,117,93

FillEllipse 繪製實心橢圓

4 07/2/3 上午 07:43:55 [out] [draw] FillEllipse,-16777216,3,43,43,79,8 07/2/3 上午 07:44:00 [out] [draw] FillEllipse,-65536,3,28,93,91,92 07/2/3 上午 07:44:06 [out] [draw] FillEllipse,-16744448,3,73,9,29,77

/clear 清除畫布 5

2、 Graphic Module

相片拍攝、顯示及管理模組,拍攝相片、傳遞至E-board Module 以顯示、傳遞至File Transfer Module以傳輸至其他PDA或將特定 之相片傳送至多媒體筆記簿。

3、 Voice Module

聲音擷取及播放模組,錄製或播放語音檔案、傳遞至File Transfer Module以傳輸至其他PDA或將特定之語音傳送至多媒體筆 記簿。

4、 Video Module

視訊錄製模組,錄製視訊檔,可經由外部播放成播放或傳遞至 File Transfer Module以傳輸至其他PDA、將特定之視訊傳送至多 媒體筆記簿。

(三) System Component:(系統元件)

1、 Command Encoder Module

指令編碼模組,將網路連線指令(41頁表 4)、繪圖指令(44 頁表 5)等經編碼後,再由NetClient Module傳輸至其他線上之行 動裝置。

2、 Command Decoder Module

指令解碼模組,接收NetClient所傳來之字串後解碼,依指令格 式再傳輸給E-board Module或更新IP Table狀態。Command Encoder/

Decoder的說明如下(圖 20):

(1) 使用者在PDA_1上繪圖,透過ENCODER編碼後由NETCLIENT

傳送給遠端的NETSERVER

(2) NETSERVER將繪圖的資料傳送給所有PDA的NETCLIENT。 (3) NETCLIENT接收後由DECODER解碼,E_BOAD以繪圖指令繪製

出圖形。

圖 20 指令編碼/解碼

3、 Learning Record Module

學習歷程紀錄模組,當合作學習小組之間進行雙向的溝通、分 享等相關學習活動時,Learning Record Module以log檔案逐項紀 錄包含日期、時間、發送/接收、操作指令及檔案存放位置等細節,

方便後續的分析與比較,記錄格式如表 6,[in|out] 代表從本機 接收|傳送,另外也對多媒體的形式做紀錄,如[video]代表視訊,

表 6 學習歷程記錄格式

No 記錄類型 說明 範 例

1 [in ][video] 從合作學習小組 接收視訊檔案

07/1/31上午 02:09:01 [in ][video] \My Documents\我的圖片\painter4928.3gp\

2 [out][video] 傳送視訊檔案至 合作學習小組

07/1/31上午 02:09:21 [out][video] \My Documents\我的圖片\painter4928.3gp\

3 [in ][Photo] 從合作學習小組

07/1/31上午 02:09:01 [out][photo] \My Documents\我的圖片\painter22_28_43.jpg\

5 [in ][wave] 從合作學習小組 接收語音檔案

07/1/31上午 02:09:01 [in ][wave] \My Documents\我的圖片\1_2_43.wav

6 [out][wave] 傳輸語音檔案至 置合作學習小組

07/1/31上午 02:09:01 [out][video] \My Documents\我的圖片\1_2_43.wav

7 [in ][draw] 從合作學習小組 接收繪圖指令

07/1/31上午 02:09:01 [in ][draw]

h_DrawLine,-65536,3,148,22,149,18 8 [out][draw] 傳輸繪圖指令至

合作學習小組

07/1/31上午 02:09:01 [out][draw]

h_DrawLine,-65536,3,148,22,149,18 9 [record] 即時錄製語音檔 record \My Documents\我的圖片

\1_2_43.wav\