由上一章節分析的結果,得知舊版廣告跑馬燈系統模組的連線機制、新增訊息機 制、刪除訊息機制功能並不齊全,而且還缺少取得已連線的廣告播放器上的訊息機制、
中斷連線機制、改善使用者介面等功能,若能將這些功能補齊,跑馬燈系統將更加完善。
以下將設計這六項機制的架構並實作。
4.5.1 改善使用者介面架構設計
舊版廣告跑馬燈系統的使用者介面設計單調、主題不明確,讓使用者無法很快了解 各項功能的特性及使用方法。因此設計的重點在於讓使用者介面友善化,方便使用者操 作,並且讓介面依系統功能分類、主題明確,讓使用者能快速了解各項功能的使用方法。
4.5.2 改善使用者介面實作
舊版廣告跑馬燈系統的操作介面會造成使用者困擾,主要是因為功能標示不明,以 及在不同語系下傳送的訊息會呈現亂碼等情況,將會在以下說明如何改善。
圖二十九為舊版廣告跑馬燈系統的介面:
圖二十九:舊版廣告跑馬燈系統介面圖
依圖二十九所示,舊版廣告跑馬燈系統的操作介面共分為連線區與訊息控制區,由 於功能模組標示不清,造成使用上的困擾,因此理想的廣告跑馬燈系統會依據功能模組 將操作介面細分為兩大部分,並且將操作介面友善化,讓使用者能夠快速上手。以下將 依據各功能模組,來介紹這兩大部份的操作介面,如圖三十所示:
圖三十:理想的廣告跑馬燈系統介面圖
1、連線控制區:依圖三十所示,理想的廣告跑馬燈系統的連線控制區中,細分為新增 連線伺服器、連線 Port、建立連線與中斷連線等四項功能。
(1) 新增連線伺服器:此功能將會在廣告跑馬燈系統模組的連線機制中詳細說明。
(2) 連線 Port:此功能 Port 的設定會被記錄於描述檔中。供使用者可修改連線 Port,
以免該網路 Port 已被佔用而無法建立連線,預設值為 10000,修改後的值會被記錄 於描述檔中,下次開機後,便以此設定值為預設值。
(3) 建立連線:此功能將會依連線伺服器的網路 IP 位置進行連線作業,當連線成功,
連線狀態會顯示綠色的連線成功訊息,並取得該網路 IP 的廣告播放器上的訊息;連 線失敗後,連線狀態會顯示紅色的連線失敗訊息。
(4) 中斷連線:此功能將會在廣告跑馬燈系統模組的中斷連線機制中詳細說明。
2、訊息控制區:依圖三十所示,理想的廣告跑馬燈系統的訊息控制區中,細分為新增 訊息、刪除單一訊息與全部訊息刪除等三項功能。
(1) 新增訊息:此功能將會在廣告跑馬燈系統模組的新增訊息機制中詳細說明。
(2) 刪除單一訊息:此功能將會在廣告跑馬燈系統模組的刪除訊息機制中詳細說明。
(3) 全部訊息刪除:此功能將會在廣告跑馬燈系統模組的刪除訊息機制中詳細說明。
4.5.3 連線機制架構設計
舊版廣告播放系統開啟跑馬燈 server 機制,舊版廣告跑馬燈系統就能以特殊的 Port 與廣告點播放器取得連線。但舊版跑馬燈系統一次只能與一部廣告播放器連線,當結束 彼此的連線後,並無法記錄該廣告播放器的 IP 位置,導致使用者必須自行記錄,造成 相當大的不便。因此設計的重點就在於要能記錄已連線成功的 IP 位置。
4.5.4 連線機制實作
此機制設計的重點就在於要能記錄已連線成功的 IP 位置。如圖三十一所示:
圖三十一:理想的廣告跑馬燈系統輸入伺服器位置介面圖
根據上述的設計重點,本研究加入圖三十一的輸入伺服器位置的對話方塊,如此當 使用者想要連線新的廣告點播放器時,只需輸入該廣告點的 IP 位置,此機制便會將 IP 位置記錄至描述檔中,並將該廣告點的 IP 位置放入圖三十一中連線伺服器的下拉式選 單,供使用者重複使用。另外在重新開啟廣告跑馬燈系統時,系統會自行讀取描述檔,
將描述檔中記錄的 IP 位置列在連線伺服器的下拉式選單中。
其機制流程如下:
1、按下圖三十一中新增伺服器按鈕,啟動輸入伺服器位置的對話方塊。
2、當跳出圖三十一的輸入伺服器位置對話方塊後,輸入欲連線的廣告點 IP 位置,再按 下確定鈕。
3、按下輸入伺服器位置對話方塊的確定鈕後,系統會將剛剛輸入的廣告點 IP 位置顯示 在圖三十一中連線伺服器的下拉式選單中。
4.5.5 新增訊息機制架構設計
當連線機制啟動後,舊版廣告跑馬燈系統就能以特殊的 port 為管道,對舊版廣告播 放系統傳送即時訊息,舊版廣告播放系統接收到訊息後,便會將訊息儲存至訊息循環佇 列中,並依序播放。但舊版跑馬燈系統只能在各語系系統下傳送該語系的文字訊息,例:
繁體中文系統下只能傳送繁體中文的訊息文字至繁體中文系統下的廣告播放器。若是傳 送至其他語系下的廣告播放器,該訊息文字將會變成亂碼,而無法辨識。因此設計的重 點就在於要能傳送各國語系的文字訊息。
4.5.6 新增訊息機制實作
此機制設計的重點就在於要能傳送各國語系的文字訊息。因此在傳送訊息前,需將 字串的格式轉換為 UTF8,若是不轉換,廣告播放系統將會接收到亂碼訊息,因此需透 過 UTF8Encode(C++ Builder [16]中可將字串轉換成 UTF8 格式的函式)函式進行轉換。
其機制流程如下:
1、在圖三十中訊息控制區的新增訊息欄位中,填入各國語系的訊息文字。
2、按下圖三十訊息控制區的傳送訊息按鈕後,便啟動此機制進行訊息字串的 UTF8 格 式轉換,並且傳送至廣告點播放器。
3、當訊息成功傳送至廣告點播放器後,此訊息便會顯示於圖三十中訊息控制區的訊息 列表上,以便使用者得知廣告點播放器上有那些訊息。
4.5.7 刪除訊息機制架構設計
當連線機制啟動後,舊版廣告跑馬燈系統就能以特殊的 port 為管道,對舊版廣告播 放系統刪除訊息,舊版廣告播放系統接收到刪除指令後,便會將從訊息循環佇列中刪除 訊息。但是舊版的跑馬燈系統執行刪除訊息指令時,廣告播放系統接收到後,便會將循 環佇列訊息中的第一個訊息移除,此種作法將會容易誤刪重要的訊息。因此設計的重點 就在於要能正確無誤地刪除指定的訊息。
4.5.8 刪除訊息機制實作
此機制設計的重點就在於要能正確無誤地刪除指定的訊息,因此需要有已傳送的訊 息清單供使用者選擇欲刪除那些訊息,在送出刪除指令與指定刪除的訊息前,需將兩者 組合成一列字串,並將字串的格式轉換為 UTF8;若是不轉換,廣告播放系統將會接收 到亂碼訊息與指令,而無法正確刪除訊息,因此該字串需透過 UTF8Encode(C++ Builder [16]中可將字串轉換成 UTF8 格式的函式)函式進行轉換。另外,此機制還提供使用者 有刪除單一訊息及全部刪除的功能。
其刪除單一訊息機制流程如下:
1、在圖三十中訊息控制區的訊息列表中,選擇一個訊息。
2、選擇完畢後,按下圖三十中訊息控制區的刪除訊息按鈕,便會啟動刪除訊息機制。
3、此機制會將刪除單一訊息的指令與刪除的訊息合併成一列字串,並將字串的格式轉 換為 UTF8,再傳送至廣告播放系統。
4、當廣告播放系統接收此字串,會先還原字串,並從中讀取指令,並依照欲刪除的字 串,搜尋循環佇列中相符合的字串並刪除。
5、當廣告跑馬燈系統將字串傳送出去後,便從訊息列表中刪除該訊息,並重新排列訊 息列表中的順序,不使編號順序出現空白。
其刪除全部訊息機制流程如下:
1、按下圖三十中訊息控制區的全部刪除按鈕。
2、按下全部刪除按鈕後,此機制會將全部刪除訊息的指令格式轉換為 UTF8,再傳送至 廣告播放系統。
3、當廣告播放系統接收此字串,會先還原字串,並從中讀取指令,再將循環佇列中所 有訊息刪除。
4、當廣告跑馬燈系統將字串傳送出去後,便會將訊息列表清空。
4.5.9 取得連線廣告播放器訊息機制架構設計
主要是為了讓使用者能得知已建立連線的廣告播放器,有哪些訊息正在播放,一方 面可讓使用者不會傳送重複的訊息,另一方面是也可解決刪除訊息機制中誤刪訊息的情 況。因此設計的重點就在於要如何取得已建立連線的廣告播放器上的訊息。
4.5.10 取得連線廣告播放器訊息機制實作
此機制設計的重點就在於要能取得已建立連線的廣告播放器上的訊息,所以需要廣 告播放系統配合,而新版的廣告播放系統已實作出回傳目前已有的跑馬燈訊息機制,此 機制可參閱 4.4.8 節。因此只需要再將廣告播放系統傳送過來的訊息解碼即可達成訊息 同步的效果。
其機制流程如下:
1、透過 Socket(C++ Builder [16]中的物件)接收廣告播放系統傳送過來的字串。
2、在接收訊息中時,在圖三十中訊息控制區的訊息列表右方會顯示藍色的搜尋該伺服 器的訊息的字串,讓使用者得知目前情況。
3、由於字串格式為 UTF8,而廣告跑馬燈系統的字串模組已修改為 Unicode[12],以符 合各國語言的需求,而 UTF8 與 Unicode[12]兩者格式不能相容,因此需透過 UTF8Decode(C++ Builder [16]中可將字串轉換成 Unicode[12]格式的函式)函式進 行轉換。 Socket(C++ Builder [16]中的物件)來啟動 Close 的函式,即可有效地中斷與廣告播放 器的連線,但前提是要廣告跑馬燈系統已與廣告點建立連線,否則此機制將不會啟動。