第三章 情境感知系統
第二節 情境感知資料型態
情境感知系統應具有瞭解使用者意圖之能力。除了藉由感測器之協助收集 使用者周遭環境資訊外,情境感知系統還運用三種重要內涵:一是微運算(Micro
Computing)或普及運算(Pervasive Computing)、二是使用者介面設計(User Interface Design )、 三 是 無 所 不 在 通 訊 網 路 ( Ubiquitous Communications Networks)。情境感知的任務在於將環境智慧融入生活的情境中,期望在任何時 間、任何地點以任何設備(Anytime、Anywhere、Any devices)取得資訊並進
行回應,以各種運算裝置與網路技術的整合,達到無所不在的境界(資策會,
2005)。在此節中,本研究設計了一個廣泛用途的情境感知資料格式,該格式中 設定了五個欄位,此五個欄位各代表情境感知訊息中的“人、事、時、地、物"
的五個特性,該情境資訊將會儲存在使用者端的 tag_context.xml 的檔案裡,該 檔案的格式如圖 3.2 所示:
圖 3.2 tag_context.xml 資料格式
由圖 3.2 可知,tag_context.xml 的資料格式中,包含了五種資料類型,
ID_context 這個標籤相當於情境感知中的“人",Location_context 這個標籤相 當於情境感知中的“地",Network_context 這個標籤相當於情境感知中的
“物",Event_context 這個標籤相當於情境感知中的“事",Time_context 這 個標籤相當於情境感知中的“時",各標籤中的資料訊息將會在表 3.1 加以說 明:
<?xml version="1.0" encoding="utf-8"?>
<Tag_files>
<ID_context />
<Location_context />
<Network_context />
<Event_context />
<Time_context />
</Tag_files>
34
表 3.1 情境資訊標籤說明表
標籤欄位 欄位說明
ID_context 儲存辨識使用者個人身分的資訊 Location_context 儲存使用者目前所在地的相關資訊 Network_context 儲存使用者目前裝置的網路資訊
Event_context 儲存使用者向系統做 Request 的資訊 Time_context 儲存使用者目前時間的資訊
透過表 3.1 的簡易說明,接下來將個別說明在本研究中,每個標籤中會存 放的情境資訊,在 ID_context 這個欄位中,主要紀錄跟使用者本身身分相關的 個 人 資 料 , 其 中 包 含 RFID 卡 號 、 使 用 者 帳 號 、 使 用 者 帳 號 密 碼 , 在
Location_context 這個欄位中,主要記錄了使用者相關的地域資料,在此包含了 使 用 者 所 在 的 經 緯 度 的 資 料 以 及 使 用 者 所 在 距 離 海 平 面 的 高 度 ,
Network_context 這個欄位中包含了使用者本身裝置的網路資訊,其中記錄了使 用者手邊裝置的網路頻寬、網路的 IP 位址,Event_context 此欄位主要是要記錄 使用者向系統的 Request,最後在 Time_context 這個欄位中,記錄了使用者在啟 用該裝置時的時間變數。透過上述資料格式,建立了適合本研究的情境資料格 式,在此同時,我們也可以建立一個廣泛應用的情境感知資料格式,而其主要 內容為表中的五個標籤,而標籤中所需要輸入的情境變數則可依使用者的不同 的需求加入不同屬性值的情境變數。接下來會敘述在本研究中如何透過感應器 及手持裝置來獲取 tag_context.xml 中五種標籤“ID_context、Location_context
、Network_context、Event_context、Time_context"的情境感知資料,並且會詳
細介紹其情境資料的擷取、格式、內容以及使用方法。
3.2.1 ID_context 資訊擷取
在 RFID 讀取器中,本實驗採用了友鵬科技 U-Reader 的 RFID 模組,其主 要硬體規格是架構於 ISO 15693,本身使用 13.56MHz TI- HiTag/I-Code 2 讀取 介面[16]。透過該模組以及 USB 端的接頭,我們的可以順利的開啟 Port 來跟
RFID 模組溝通以及讀寫資料,當我們將 RFID Reader 接上客戶端的電腦設備 後,透過我們自製的 RFID 辨識 UI 會接收 RFID Tag 所讀進的訊號進行解碼步 驟,接收成功的 RFID 訊號收取的資料會轉為 16 進位表示如下所示:
"1B0E0FB0416118000007E000003F038B"
以下分別為各碼所代表的意義:
z 第一碼為前導字元:0x1B “1B"
z 第二碼為長度:0x0E (即長度 14) ,“0E"
z 第三碼為 Flags:“0F"
z 第四至十一碼為卡號:“B0416118000007E0”
z 第十二碼為 DSFID:“00”
z 第十三碼為 AFI:“00”
z 第十四.十五碼為 VICC:“3F03”
z 第十六碼為 IC_r:“8B”
我們所需要以卡號當作唯一識別 ID,用來區別不同使用者的身分。RFID
36
I Get System Info(Read UID)
R Read a block(Read Memories)
B Change Baud-Rate W Write a block(Write Memories)
L Lock a block
M Inventory Mode
在撰寫程式時,對於廠商所提供的函式庫要有相當的了解,對於所需求的 方法而提供相對應的指令,而在動作完成後,Reader 會回應相對應的執行結果。
如下指令範例是取得有關於卡片資訊內容:
Get System Info(Read UID) 1. Without UID:
EX:Request:0x1B,‘I’
Response:0x1B, data byte-count, (done) : 0x1B, 0x05,“Fail!”(fail) 2. With UID:
EX:Request:0x1B,‘i’
Response:UID
除了 RFID Tag 以外,本研究還在 ID_context 中置入了使用者帳號(Account)
和使用者密碼(Password)兩個資訊,透過此兩個訊息,讓後端系統可以直接 利用帳號密碼來登入需要有權限的網頁,透過該方式可讓系統自動化而不需要 人為的輸入資料。在此將 ID_context 這個標籤中的資料當作是情境感知資訊中
“人、事、時、地、物"中的“人"屬性。
3.2.2 Location_context 資訊擷取
本實驗採用了環天科技股份有限公司所生產的 BU-353 這一款 GPS 衛星接 收器來接收衛星的訊號,BU-353 具特殊輕巧造型及 100%防水設計,使用 SiRF
Star III 晶片組加上內建的主動型陶瓷天線讓定位更為精準[17];特別適合配合 各種戶外活動時使用,防滑的底部可容易運用在各種車輛、船隻及航空器。本 實驗的 GPS 系統中所採用的編碼格式是 NMEA 格式碼,該格式所傳輸的資料 為 美 國 國 家 標 準 資 訊 交 換 碼 ( American Standard Code for Information
Interchange,ASCII),以「句子(Sentence)」的方式傳輸資料,每一個句子以
「$」為起始位置,而以 16 進位控制碼「13」、「10」為終止,及 ASCII 中的
Carriage Return{CR}和 Line Feed{LF}碼。每一個句子的長度不一定,最長可達 82 個字元(Character),而句中的欄位(Field)以逗號「,」分格。第二、三 個字元為傳輸設備的識別碼,如「GP」為 GPS 的接收儀;「LC」為 Loran-C 接 收儀;「OM」為 Omega Navigation 接收儀。第四五六個字元為傳輸句子的名稱,
如「RMC」為 GPS 建議的最小傳輸資料(Recommended Minimum Specific
38
GPS/TRANSIT Data);「GGA」為 GPS 固定資料(Global Positioning System Fix Data)。「GGA」=>GPS 固定資料,意識本實驗資料處理的依據
$--GGA,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx*hh 範例說明:
$GPGGA,055148,2407.8945,N,12041.7649,E,1,00,1.0,155.2,M,16.6,M,X.X,xxxx,*
47
$GPGGA = Global Positioning System Fix Data
(1)055148 = UTC of Position【接收的時間(世界標準時),格式:時分 秒】
(2)2407.8945 = Latitude【緯度,格式:度分.分】
(3)N = N or S【N 指北半球(S 指南半球)】
(4)12041.7649 = Longitude【經度,格式:度分.分】
(5)E = E or W【E 指東半球(W 指西半球)】
(6)1 = GPS quality indicator(0=invalid; 1=GPS fix; 2=Diff. GPS fix)【GPS 等級,0:表示資料可用;1:非 DGPS 定位資料;2:DGPS 定位資 料】
(7)00 = Number of satellites in use【not those in view】【所使用之衛星數】
(8)1.0 = Horizontal dilution of position【平面精度指標(HDOP)】
(9)155.2 = Antenna altitude above/below mean sea level(geoid)【天線高
度(平均海水面)】
(10)M = Meters(Antenna height unit)【單位(公尺)】
(11)16.6 = Geoidal separation(Diff. between WGS-84 earth ellipsoid and
mean sea level. -=geoid is below WGS-84 ellipsoid)【大地起伏值】
(12)M = Meters(Units of geoidal separation)【單位(公尺)】
(13)X.X = Age in seconds since last update from diff. reference station【差 分 GPS 數據期】
(14)xxxx = Diff. reference station ID#【基站站號 0000-1023】
(15)*47 = Checksum(檢查位元)
透過上述的方式將所擷取出來的 GPS 訊號做分析,取出我們所需要的經緯 度以及使用者距離海平面的高度作為本研究中的參考資料,再將所擷取的經緯 度 還 有 高 度 連 同 本 機 端 的 情 境 感 知 資 料 送 到 後 端 的 系 統 做 處 理 。 在 此 將
Location_context 中的資料當作是情境感知資訊中“人、事、時、地、物"中的
“地"屬性。
3.2.3 Network_context 資訊擷取
在網路頻寬的測試中,利用下載資料的方式來做測試,在下載資料前跟下 載資料後各設定一個時間參數來標定時間,以測量出真正的網路頻寬,在此運 用的數學算式如下所示:
40
網路頻寬 =
除了網路頻寬大小,在此也透過.NET Framework 的工具取出使用者端手持 裝置的 IP 位址,讓後端管理系統在處理情境變數時,有更多的情境參數可供參 考,利用 IP 位址的描述可以讓使用者端的 Network_context 情境資料更完全,
而且也可以用 IP 這個參數來做身份的辨識認證,還有目前很多人在做透過 IP
Address 來取得使用者目前所在地,其原理是透過解析 IP 跟 ISP 或國家的 IP 管 理系統做比對來取的註冊該 IP 的位址或相關的地域資料,再經由 Google Maps 的呈現,讓使用者的視覺化服務更完整,在此將網路頻寬以及 IP 位址當作是
Network_context 中的情境資料也可以視為情境感知資訊中“人、事、時、地、
物"中的 “物"屬性。
3.2.4 Time_context 資訊擷取
透過.NET Framework 的工具來取使用者端系統的目前時間,在本實驗中利 用系統本身來抓取時間變數,將擷取到的時間變數至入 Time_context 這個標籤 中,在本研究中目前將時間參數當作使用者端情境感知界面背景的改變因素,
在此,將時間參數當作情境感知資訊中“人、事、時、地、物"中的“時"屬 性。
下載檔案大小(Mb) 時間參數相減(s)
3.2.5 Event_context 資訊擷取
本系統在使用者端還提供了使用者自訂描述的部份,該描述可以提供使用 者讓其對於自己所偏好的查詢向系統做 Request,在這裡主要是希望除了基本的 情境感知資料以外還可以讓使用者有更多的情境感知的選擇,在此所提供的
High-Level Context 使用者自訂描述為 Event_contetx 這個標籤中的使用者的 Request 變數的值,也可以視為情境感知資料中“人、事、時、地、物"中的“事"
屬性。
經由以上五點,整合了情境感知中的“人、事、時、地、物"中全部的五 個屬性,接下來章節將透過這些情境感知的資料整合出最適合使用者本身情境 的情境感知環境供使用者利用。