• 沒有找到結果。

認證

在文檔中 PDA遙控家電 (頁 66-0)

第五章 系統實作及成果展示

5.3 Client 端

5.3.2 認證

要求輸入使用者帳號密碼和登入主機ip,展示圖所示如下:

圖 5-18 認證資料的輸入 5.3.3

Client 端程式初始化

Client 端透過輸入資料取得認證後,系統和 Server 進行資料 庫連結,並回傳家電狀態供 Client 端更新其介面下的家電狀態,展 示圖如下:

圖 5-19 認證後系統更新

58

5.3.4 操控家電

當使用者欲改變某家電狀態,按下功能鈕後,Client 會將訊息加 密後送出,Server 收到訊息解密後,首先辨認訊息格式規則是否正 確,如確認無誤,便根據訊息內容發出訊號給 ADAM 微處理器改變電 器狀態,改變後再向 ADAM 確認狀態有無更改成功,接著根據修改後 的狀態變數更新資料庫,然後回應一內含更新後狀態資訊的訊息給 Client,使得 Client 得以照著此資訊修改操作畫面資訊,回應給使 用者知道。其流程圖和展示圖所示如下:

圖 5-20 操控家電流程圖

Client 端按下 Application 上 的功能鍵

將資料訊息加密並送出至 Server 端處理

接收回應訊息並顯示在訊息

59

圖 5-21 Client 端開啟電燈

5.3.5 預約遙控家電

透過 Client 程式中的定時開啟關閉家電功能,Client 可以在設 定的時間開啟或關閉家電裝置,時間設定完成後,即送出訊息給 server,server 端收到訊息後將此資訊送至一預約操控家電 table 中,主程式中會有一執行緒負責檢查啟動時間到達沒,當時間到即依 照命令變更家電狀態及更改資料庫資料,再回傳訊息給 Client。其 流程圖和展示圖如下所示

圖 5-22 預約遙控家電流程圖

啟動預約開啟或關閉功能

設定家電開啟或關閉時間 等相關資訊

等候設定時間到臨 將資料訊息加密並送出至

Server 端處理

接收回應訊息並顯示在訊 息列

60

圖 5-23 Client 端程式定時啟動功能

5.3.6 系統告知特殊狀況

Server 端偵測到異常狀況〈如:門窗被打開、紅外線偵測到 動靜〉,會主動發一訊息告知 Client 端,圖示如下

圖 5-24 系統告知緊急狀況流程圖

Server 偵測到異常狀況

將資料訊息加密並送 出至 Server 端處理

取得警急訊息並顯示 在訊息列

61

圖 5-25 Client 端接受緊急訊息

5.4 系統資料庫

在MYSQL資料庫中家電的資訊如下圖所示,Code為家電的ID、Name 為家電名稱、O_switch為家電的啟動狀態 I_switch為Adam所得的輸 入狀態、Active則是Adam中的連接埠是否有使用,下表為資料庫各欄 位屬性表和資料庫中家電的資訊

表5-1 資料庫各欄位屬性表 Field Type

Code Int(2) Name Char(20) O_switch Int(2) I_switch Int(2) Active Int(2)

62

圖5-24 MYSQL資料庫中家電的資訊

63

第六章 心得感想與結論

6.1 遭遇到的困難

PDA 上程式的寫作

由於我們使用的 PDA 上免費的 JVM 只有 SUN 出的 PJEE(Personal Java Emulation Environment),只有實作到 JDK1.1.x 所以有很多已 做好的 JAVA 物件都無法使用,如 SWING、加解密套件,所以有很多 是少了 Carriage Return 的符號,最後加上去時發現板子上電器啟動 時,實在感動莫名。

JAVA 程式的寫作

由於以前很少接觸到 thread 的部分,而這次專題很多部分又需 要用到 thread,所以這部分也令我們感到相當的頭痛,所以花了很 多時間再研究這個部分,其中包括請問同學或是上某某 JAVA 論壇發

64

65

66

更為強大且控制更為友善的介面,不用再受限於PDA的軟硬體資源限 制。

至於控制家電方面,由於本系統是採用接線的方式來連結家電裝 置,未來Server可改用無線模組的方式來和各個家電裝置連線並透過 JAVA JINI的技術,實現真正無線的PDA遙控家電。

而且由於技術及硬體上的關係,目前只能夠做到對於家電進行開

67

6.5 甘特圖

下圖為顯示我們專題工作進度的甘特圖

圖6-1 甘特圖

68

[14]Java 教學手冊 / [康派爾]Mary Compione ,[華拉斯]kathy Walrath 原著; 堤香工作室編譯

[15] http://www.jsptw.com/jute/index.html

[16] http://www.cryptix.org/products/jce/index.html

69

[17]http://www.pcnet.idv.tw/pcnet/network/network_ip_tcp.ht m

[18]http://liy.slat.org/study/network/tcp_ip/network_ip_tcp .html

70

附錄 A

l 專題使用之 PDA

圖 附錄-1 PDA

l

專題模擬用之家電板子

圖 附錄-2 家電模擬版子

71

圖 附錄-2-1 家電模擬版子-大門紅外線偵測器、門/窗磁簧開關

圖 附錄-2-2 家電模擬版子-手動電燈開關、家電設備遠端控制

72

圖 附錄-2-3 家電模擬版子-ADAM 裝置、火災

73

附錄 B

l SQL 指令介紹

SQL 是「結構化查詢語言」(Structured Query Language)的 簡稱,是由 IBM 公司於 1970 年代所發展出來,用於關連式資料庫 (Relational Databases) 當中的一種資料庫查詢語言,利用 SQL 可 以用來定義資料庫結構、指定資料庫表格與欄位型態與長度、新增資

SELECT:所接的欄位名稱為待查資料庫的欄位名稱,

各欄位名稱之間以逗號隔開。

FROM:所接的資料表名稱為待查資料庫的資料表名 稱,各資料表名稱之間以逗號隔開。

WHERE:所接的條件式為設定查詢的條件式。

ORDER BY:所接的欄位名稱為欲排序的欄位,可將查 詢的資料加予排序,指定多個欄位時則以欄位名稱 1 排序,若其資料相同則再依欄位名稱 2 排序,依此類 推,各欄位名稱之間以逗號隔開。

74

新增資料: 若要新增資料庫的資料,使用的 SQL 指 令是「INSERT」,基本語法如下:

INSERT INTO 資料表名稱(欄位名稱 1,欄位名稱 2,...)

VALUES (欄位 1 的資料,欄位 2 的資料,...)

修改資料: 若要修改資料庫的資料,使用的 SQL 指 令是「UPDATE」,基本語法如下:

UPDATE 資料表名稱

SET 欄位名稱 1=欄位 1 的資料,欄位名稱 2=欄位 2 的 資料,...

WHERE 條件式

刪除資料: 若要刪除資料庫的資料,使用的 SQL 指 令是「DELETE」,基本語法如下:

DELETE FROM 資料表名稱

WHERE 條件式

75

!AATTCCFF(cr):表命令正確,傳回狀態,格式同命令 1

?AA(cr):表非法命令

3. 送出開起/關閉指令:#AABB(data)(cr) AA:機器的 ID 碼

76

BB:有兩種選擇

1.若為 00,表示設定所有 Channel,後面兩個(Data)代表 8 個 bits

2.若第一個字為 1,表示要設定單一 Channel,下個字表示 要設定的 Channel 編號

(Data):表要設定的資料值 回傳:

>(cr):表命令正確

?AA(cr):表非法命令

4. 讀取 DO,DI 狀態:$AA6(cr) AA:機器的 ID 碼

回傳:

!(DataOutput)(DataInput)00(cr):表命令正確

?AA(cr):表非法命令

(前兩 Byte 表 8 個 DO 狀態,後兩 Byte 表 7 個 DI 狀態, 最後兩個則固定為 0)

(cr):在此表示 Carriage Return。

在文檔中 PDA遙控家電 (頁 66-0)

相關文件